A Python interface to Gemini3D, funded in part by NASA NNH19ZDA001N-HDEE grant 80NSSC20K0176.
Setup PyGemini by:
git clone https://github.com/gemini3d/pygemini
pip install -e pygemini
For those working with GEMINI Fortran code itself or to work with non-release versions of GEMINI Fortran code:
- install PyGemini in development mode as above
- set environment variable GEMINI_ROOT to the Gemini3D Fortran code directory, otherwise PyGemini will Git clone a new copy.
-
make a config.nml with desired parameters for an equilibrium sim.
-
setup and/or run the equilibrium sim:
python -m gemini3d.model /sim_equil/config.nml /path_to/sim_eq/ # or python -m gemini3d.run /sim_equil/config.nml /path_to/sim_eq/
-
create a new config.nml for the actual simulation and run
python -m gemini3d.model /sim/config.nml /path_to/sim_out/ # or python -m gemini3d.run /sim/config.nml /path_to/sim_out/
An important part of any simulation is viewing the output. Because of the large data involved, most plotting functions automatically save PNG stacks to disk for quick flipping through with your preferred image viewing program.
Help ensure the simulation grid is what you intended by the following, which can be used before or after running the simulation.
import gemini3d.plot
gemini3d.plot.grid("path/to/sim")
These commands create plots and save to disk under the "plots/" directory under the specified data directory.
command line:
python -m gemini3d.plot path/to/data -save png
or from within Python:
import gemini3d.plot as plot
plot.frame("path/to/data", datetime(2020, 1, 2, 1, 2, 3), saveplot_fmt="png")
# or
plot.plot_all("path/to/data", saveplot_fmt="png")
There is a a script to convert data to HDF5, and another to convert grids to HDF5. The scripts convert from {raw, Matlab, NetCDF4} to HDF5. The benefits of doing this are especially significant for raw data, and HDF5 may compress by 50% or more, and make the data self-describing.
python scripts/convert_data.py h5 ~/mysim
python scripts/convert_grid.py h5 ~/mysim/inputs/simgrid.dat