avni.models.common module#
This script/module contains routines that are used to Earth models
- avni.models.common.readepixfile(filename: str) Tuple[numpy.ndarray, dict, list][source]#
 Read a local file in extended pixel (.epix) format.
- Parameters
 - filenamestr
 Name of the file containing four columns: (latitude, longitude, pixel_size, value)
- Returns
 - tp.Tuple[np.ndarray, dict, list]
 First element is an array containing (latitude, longitude, pixel_size, value).
Second element are metadata from input fields if specified.
Third element are all other comments except lines containing metadata.
- Raises
 - IOError
 File not found in local directory
Notes
This function assumes cell-centered values within a pixel of size pixel_size. In order to interpolate in arbitrary locations, this assumption needs to be used.
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
Examples
>>> epixarr,metadata,comments = readepixfile('file.epix')
- avni.models.common.writeepixfile(filename: str, epixarr: numpy.ndarray, metadata: dict = {'BASIS': 'PIX', 'FORMAT': '50'}, comments: Optional[list] = None) None[source]#
 Write named numpy array to extended pixel format (.epix) file.
- Parameters
 - filenamestr
 Name of the file containing four columns: (latitude, longitude, pixel_size, value)
- epixarrnp.ndarray
 array containing (latitude, longitude, pixel_size, value)
- metadatadict, optional
 metadata from input fields if specified, by default {‘BASIS’:’PIX’,’FORMAT’:’50’}
- commentslist, optional
 all other comments except lines containing metadata, by default None
- Raises
 - IOError
 File cannot be written in local directory
Notes
This function assumes cell-centered values within a pixel of size pixel_size. In order to interpolate in arbitrary locations, this assumption needs to be used.
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
Examples
>>> writeepixfile('file.epix',epixarr,metadata,comments)
- avni.models.common.read3dmodelfile(modelfile: str) dict[source]#
 Reads a standard 3D model file into a model3d dictionary containing data and metadata. The data field contains the basis coefficients of the parameterization employed in the 3D model file. The metadata fields contain various parameters relevant for evaluating the 3D model at various locations.
- Parameters
 - modelfilestr
 Text file describing the 3D model
- Returns
 - dict
 A model3d dictionary containing data and metadata
- Raises
 - IOError
 File not found in local directory
- ValueError
 Parameterization type has not been implemented yet. Current ones include spherical harmonics, spherical splines and pixels.
Notes
This function has several fields in the data and matadata fields. The details depend on what kind of parameterization is employed. In general, maxkern is the maximum number of radial kernels and maxcoeff is the maximum number of corresponding lateral basis functions, resolution and realization are the indices for the resolution level and the realization from a model ensemble (usually 0 if it is a single file).
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
Examples
>>> model3d = read3dmodelfile('S362ANI+M')
- avni.models.common.epix2xarray(model_dir: str = '.', setup_file: str = 'setup.cfg', output_dir: str = '.', n_hpar: int = 1, buffer: bool = True) xarray.core.dataset.Dataset[source]#
 Convert a set of extended pixel format (.epix) files in a directory to a netCDF4 file in AVNI format using xarray.
- Parameters
 - model_dirstr, optional
 path to directory containing epix layer files, by default ‘.’
- setup_filestr, optional
 setup file containing metadata for the model, by default ‘setup.cfg’
- output_dirstr, optional
 path to output directory, by default ‘.’
- n_hparint, optional
 number of unique horizontal parameterizations, by default 1
- bufferbool, optional
 write to buffer instead of file for the intermediate step of the ascii file, by default True
- Returns
 - xr.Dataset
 An xarray Dataset that stores the values from a 3D model.
- Raises
 - IOError
 File not found in local directory
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.models.common.checksetup(parser)[source]#
 Check the arguments in the model setup file and populate the default options
- Parameters
 - parserA ConfigObj object
 - :Authors:
 Raj Moulik (moulik@caa.columbia.edu)
- :Last Modified:
 2023.02.16 5.00
- avni.models.common.epix2ascii(model_dir: str = '.', setup_file: str = 'setup.cfg', output_dir: str = '.', n_hpar: int = 1, checks: bool = True, buffer: bool = True, onlyheaders: bool = False)[source]#
 Write AVNI formatted ASCII file from a directory containing extended pixel format (.epix) files
- Parameters
 - model_dirstr, optional
 path to directory containing epix layer files, by default ‘.’
- setup_filestr, optional
 setup file containing metadata for the model, by default ‘setup.cfg’
- output_dirstr, optional
 path to output directory, by default ‘.’
- n_hparint, optional
 number of horizontal parameterizations (currently only handles models with 1 horizontal parameterization, and with a constant pixel width), by default 1
- checksbool, optional
 checks if the metadata in setup_file is consistent with epix files, by default True
- bufferbool, optional
 write to buffer instead of file for the intermediate step of the ascii file, by default True
- onlyheadersbool, optional
 write only headers, not the coefficients, by default False
- Returns
 - buffer or file name
 The memory buffer containing the file output (buffer=True) or the output file name on disk.
- Raises
 - IOError
 Some epix files have not been found in the directory
- AssertionError
 Checks for compatibility across epix files are not satisfied
- ValueError
 Invalid values are found for some metadata fields
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.models.common.ascii2xarray(asciioutput, outfile=None, model_dir: str = '.', setup_file: str = 'setup.cfg', complevel: int = 9, engine: str = 'netcdf4', writenc4: bool = False)[source]#
 Create an xarray Dataset from AVNI formatted ASCII file
- Parameters
 - asciioutputbuffer or str
 A filename string or buffer that will be read
- outfilestr, optional
 Output file in netCDF4 format, by default None
- model_dirstr, optional
 _description_, by default ‘.’
- setup_filestr, optional
 setup file containing metadata for the model, by default ‘setup.cfg’
- complevelint, optional
 options for compression in netcdf file, by default 9
- enginestr, optional
 options in netcdf file, by default ‘netcdf4’
- writenc4bool, optional
 write a netcdf4 file, by default False
- Returns
 - ds: xarray Dataset
 Contains the model description in a new xarray Dataset
- Raises
 - IOError
 Configuration file has not been found in the directory
- AssertionError
 Checks for compatibility across files are not satisfied
- ValueError
 Only pixels are allowed as parameterization for netCDF files
- warnings.warn
 Checks for number of pixels not satisfied
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.models.common.getLU2symmetric(insparse)[source]#
 Get the full symmetric matrix from LU matrix
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.models.common.readResCov(infile: str, onlymetadata: bool = False)[source]#
 Reads Resolution or Covariance matrix created by invwdata_pm64 with option -r. R=inv(ATA+DTD)ATA and the name of file is typically outmodel.Resolution.bin
- Parameters
 - infilestr
 Binary file containing Resolution or Covariance matrix
- onlymetadatabool, optional
 Only read the metadata and ignore the elements of the matrix, by default False
- Returns
 - refmdlstr
 Reference 1D model
- kerstrstr
 Kernel signifying the basis sets comprising radial and horizontal parameterization
- ntotint
 Number of parameters or basis coefficients in the model
- indexrad1,indexrad2,indexhor1,indexhor2np.ndarray
 Arrays describing the radial and horizontal basis sets that each ATA element in out correponds to
- outnp.ndarray
 Elements of the sparse Resolution or Covariance matrix
- Raises
 - IOError
 Input file has not been found in the directory
- ValueError
 Number of bytes in binary file does not match expected
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00