viscid.readers.openggcm module¶
Wrapper grid for some OpenGGCM convenience
-
class
viscid.readers.openggcm.GGCMFile[source]¶ Bases:
objectMixin some GGCM convenience stuff
-
read_log_file¶ search for a log file to load some of the libmrc runtime parameters. This does not read parameters from all libmrc classes, but can be customized with :py:const`viscid.readers.ggcm_logfile.GGCMLogFile. watched_classes`. Defaults to False for performance.
Type: bool
-
dipoletime¶
-
read_log_file= True
-
-
class
viscid.readers.openggcm.GGCMFileFortran(fname, crds=None, fld_templates=None, file_wrapper=None, **kwargs)[source]¶ Bases:
viscid.readers.openggcm.GGCMFile,viscid.readers.vfile_bucket.ContainerFileAn abstract class from which jrrle and fortbin files are derived
Note
All subclasses should implement a _shape_discovery_hack
-
assume_mhd_crds= True¶
-
grid2= None¶
-
classmethod
group_fnames(fnames)[source]¶ Group File names
The default implementation just returns fnames, but some file types might do something fancy here
Parameters: fnames (list) – names that can be logically grouped, as in a bunch of file names that are different time steps of a given run Returns: A list of things that can be given to the constructor of this class
-
-
class
viscid.readers.openggcm.GGCMGrid(*args, **kwargs)[source]¶ Bases:
viscid.grid.GridThis defines some cool openggcm convinience stuff… The following attributes can be set by saying
viscid.grid.readers.openggcm.GGCMGrid.flag = value.This should be done before a call to readers.load_file so that all grids that are instantiated have the flags you want.
- Derived quantities accessable by dictionary lookup
- T: Temperature, for now, just pressure / density
- bx, by, bz: CC mag field components, if not already stored by component)
- b, b_cc: B as CC vector field in nT, layout affected by
- GGCMGrid.derived_vector_layout
- b_fc, b1, b2: B as FC vector field in nT, layout affected by
- GGCMGrid.derived_vector_layout
- e_cc: E as CC vector field in mV/m?, layout affected by
- GGCMGrid.derived_vector_layout.
- e_ec: E as EC vector field in mV/m?, layout affected by
- GGCMGrid.derived_vector_layout. This should be used even for jrrle files.
- v: velocity as vector, same idea as b
- beta: plasma beta, just pp/b^2
- psi: flux function (only works for 2d files/grids)
-
mhd_to_gse_on_read¶ flips arrays on load to be in GSE crds. If ‘auto’, then try to use the runtime parameters to figure out if conversion is needed; auto requires reading the logfile. (default is False)
Type: bool, str
-
copy_on_transform¶ True means array will be contiguous after transform (if one is done), but makes data load 50%-60% slower (default is True)
Type: bool
-
force_vector_layout¶ inherited from grid.Grid, enforces layout for vector fields on load (default is
viscid.field.LAYOUT_DEFAULT)Type: str
-
add_field(*fields)[source]¶ Note: in XDMF reader, the grid will NOT have crds when adding fields, so any grid crd transforms won’t be set
-
copy_on_transform= False
-
mhd_to_gse_on_read= 'auto'
-
viscid.readers.openggcm.find_file_uptree(directory, basename, max_depth=8, _depth=0)[source]¶ Find basename by going up the file tree
Keep going up a directory until you find one that has the file “basename”
Parameters: - directory (str) – directory to start the search
- basename (str) – bare file name
- max_depth (int) – max number of directories to seach
Returns: Relative path to file, or None if not found
-
viscid.readers.openggcm.mhd2gse_field_scalar(fld, crds, arr, comp_slc=None, copy_on_transform=False)[source]¶