Welcome to emout’s documentation!
EMSESの出力ファイルを取り扱うパッケージ.
Installation
$ pip install emout
Example code
Usage
以下のようなフォルダ構成の場合のサンプルコード
.
└── output_dir
├── plasma.inp
├── phisp00_0000.h5
├── nd1p00_0000.h5
├── nd2p00_0000.h5
├── j1x00_0000.h5
├── j1y00_0000.h5
...
└── bz00_0000.h5
データのロード
>>> import emout
>>> data = emout.Emout('output_dir')
>>>
>>> data.phisp # data of "phisp00_0000.h5"
>>> len(data.phisp)
11
>>> data.phisp[0].shape
(513, 65, 65)
>>> data.j1x # data of "j1x00_0000.h5"
>>> data.bz # data of "bz00_0000.h5"
データのプロット
>>> x, y, z = 32, 32, 100
>>> data.phisp[1][z, :, :].plot() # plot xy-plane at z=100
>>> data.phisp[1][:, y, x].plot() # plot center line along z-axis
>>> data.phisp[1][z, :, :].plot(use_si=True) # can plot with SI-unit (such as x[m], y[m], phisp[V])
>>> data.phisp[1][z, :, :].plot(show=True) # to view the plot on the fly (same as matplotlib.pyplot.show())
>>> data.phisp[1][z, :, :].plot(savefilename='phisp.png') # to save to the file
パラメータファイル(plasma.inp)の取得
>>> data.inp # namelist of 'plasma.inp'
>>> data.inp['tmgrid']['nx'] # inp[group_name][parameter_name]
64
>>> data.inp['nx'] # can omit group name
64
単位変換(EMSES単位系 <=> SI単位系)
>>> data.unit.v.trans(1) # velocity: Physical unit to EMSES unit
3.3356409519815205e-05
>>> data.unit.v.reverse(1) # velocity: EMSES unit to Physical unit
29979.2458
データマスクの適用
>>> # mask below average values
>>> data.phisp[1].masked(lambda phi: phi < phi.mean())
>>>
>>> # above code does the same as this code
>>> phi = data.phisp[1].copy()
>>> phi[phi < phi.mean()] = np.nan
グループ化
>>> from emout.utils import Group
>>> data1 = emout.Emout('output_dir1')
>>> data2 = emout.Emout('output_dir2')
>>>
>>> # grouping
>>> group = Group([data1, data2])
>>> group.phisp[10][100, :, :].plot(show=True, title=group.directory.name)
>>>
>>> # above code does the same as this code
>>> data1.phisp[10][100, :, :].plot(show=True, title=data1.directory.name)
>>> data2.phisp[10][100, :, :].plot(show=True, title=data2.directory.name)
継続したシミュレーション結果を扱う
>>> import emout
>>> data = emout.Emout('output_dir', append_directories=['output_dir2', 'output_dir3'])
Modules:
- emout
- emout package
- Subpackages
- emout.data package
- Submodules
- emout.data.data module
Data
Data.datafile
Data.name
Data.slices
Data.slice_axes
Data.axisunits
Data.valunit
Data.axis()
Data.directory
Data.filename
Data.gifplot()
Data.masked()
Data.plot()
Data.t
Data.t_si
Data.to_numpy()
Data.tslice
Data.use_axes
Data.val_si
Data.x
Data.x_si
Data.xslice
Data.y
Data.y_si
Data.yslice
Data.z
Data.z_si
Data.zslice
Data1d
Data2d
Data3d
Data4d
- emout.data.data_loader module
- emout.data.emout module
- emout.data.griddata_series module
GridDataSeries
MultiGridDataSeries
MultiGridDataSeries.datafile
MultiGridDataSeries.name
MultiGridDataSeries.tunit
MultiGridDataSeries.axisunit
MultiGridDataSeries.valunit
MultiGridDataSeries.close()
MultiGridDataSeries.directories
MultiGridDataSeries.directory
MultiGridDataSeries.filename
MultiGridDataSeries.filenames
MultiGridDataSeries.time_series()
- emout.data.vector_data module
- Module contents
- emout.plot package
- emout.utils package
- Submodules
- emout.utils.emsesinp module
- emout.utils.group module
- emout.utils.poisson module
- emout.utils.units module
UnitTranslator
Units
Units.B
Units.C
Units.E
Units.EC
Units.F
Units.G
Units.H
Units.J
Units.L
Units.N
Units.P
Units.R
Units.T
Units.W
Units.a
Units.c
Units.dx
Units.e
Units.e0
Units.eps
Units.f
Units.i
Units.kB
Units.length
Units.m
Units.m0
Units.me
Units.mi
Units.mu
Units.n
Units.phi
Units.pi
Units.q
Units.q_m
Units.qe
Units.qe_me
Units.rho
Units.t
Units.to_c
Units.translators()
Units.v
Units.w
- emout.utils.util module
- Module contents
- emout.data package
- Module contents
- Subpackages
- emout package