geomodels.wmmf module

World Magnetic Model Format tools.

Classes and function for reading and writing files in World Magnetic Model Format and in IGRF text format.

See: https://geographiclib.sourceforge.io/C++/doc/magnetic.html#magneticformat and https://www.ngdc.noaa.gov/IAGA/vmod/igrf.html.

class geomodels.wmmf.MetaData(Name: str = 'N/A', Description: str = 'International Geomagnetic Reference Field', URL: str = 'http://ngdc.noaa.gov/IAGA/vmod/igrf.html', Publisher: str = 'International Association of Geomagnetism and Aeronomy', ReleaseDate: str = 'N/A', DataCutOff: str = 'N/A', ConversionDate: str = 'N/A', DataVersion: int = 1, Radius: int = 6371200, NumModels: int = 0, Epoch: int = 1900, DeltaEpoch: int = 5, MinTime: int = 0, MaxTime: int = 0, MinHeight: int = -1000, MaxHeight: int = 600000, NumConstants: int = 0, Normalization: int = 1, ID: str = 'N/A', N: int = 0, M: int = 0, FORMAT_VERSION: int = 1)[source]

Bases: object

World Magnetic Model Format metadata.

ByteOrder = 'little'
ConversionDate: str = 'N/A'
DataCutOff: str = 'N/A'
DataVersion: int = 1
DeltaEpoch: int = 5
Description: str = 'International Geomagnetic Reference Field'
Epoch: int = 1900
FORMAT_VERSION: int = 1
ID: str = 'N/A'
M: int = 0
MaxHeight: int = 600000
MaxTime: int = 0
MinHeight: int = -1000
MinTime: int = 0
N: int = 0
Name: str = 'N/A'
Normalization: int = 1
NumConstants: int = 0
NumModels: int = 0
Publisher: str = 'International Association of Geomagnetism and Aeronomy'
Radius: int = 6371200
ReleaseDate: str = 'N/A'
Type = 'linear'
URL: str = 'http://ngdc.noaa.gov/IAGA/vmod/igrf.html'
get_id() str[source]

Return the model ID (eventually inferred by the model name).

get_years() list[int][source]

Return the list of years associated to the models.

load(filename: str | PathLike[str]) None[source]

Load a metadata file in WMM format and return a MetaData object.

save(filename: str | PathLike[str]) None[source]

Save metadata in WMM format.

class geomodels.wmmf.SphCoeffSet(C, S)

Bases: tuple

C

Alias for field number 0

S

Alias for field number 1

class geomodels.wmmf.WmmData(filename: str | PathLike[str] | None = None)[source]

Bases: object

Magnetic field data.

classmethod from_metadata_and_coeffs(medadata: MetaData, coeffs: OrderedDict[str, SphCoeffSet]) WmmData[source]

Instantiate a WmmData object from metadata and coefficients.

load(filename: str | PathLike[str]) None[source]

Load metadata and spherical harmonics coefficients.

save(outpath: str | PathLike[str], force: bool = False) None[source]

Save data in WMM format (metadata and binary).

geomodels.wmmf.import_igrf_txt(path: str | PathLike[str]) WmmData[source]

Decode a spherical harmonics coefficient file in IGRF text format.

Parameters:

path – the path to a local filename or a remote URL.