The model details can now be retrieved. Currently this includes spherical harmonic degree range, and availability window (start, end).
.available_models()
returns detailed information on all models.
from viresclient import SwarmRequest
request = SwarmRequest()
request.available_models(details=False)
['IGRF12', 'LCS-1', 'MF7', 'CHAOS-6-Core', 'CHAOS-6-Static', 'CHAOS-6-MMA-Primary', 'CHAOS-6-MMA-Secondary', 'MCO_SHA_2C', 'MCO_SHA_2D', 'MLI_SHA_2C', 'MLI_SHA_2D', 'MMA_SHA_2C-Primary', 'MMA_SHA_2C-Secondary', 'MMA_SHA_2F-Primary', 'MMA_SHA_2F-Secondary', 'MIO_SHA_2C-Primary', 'MIO_SHA_2C-Secondary', 'MIO_SHA_2D-Primary', 'MIO_SHA_2D-Secondary']
request.available_models(details=True)
CHAOS-6-Core = 'CHAOS-6-Core'(max_degree=20,min_degree=1) START: 1997-02-06T12:07:55.200002Z END: 2019-09-13T11:57:11.519999Z DESCRIPTION: CHAOS-6 Core field Recent geomagnetic secular variation from Swarm and ground observatories as estimated in the CHAOS-6 geomagnetic field model, http://doi.org/10.1186/s40623-016-0486-1 http://www.space.dtu.dk/english/Research/Scientific_data_and_models/Magnetic_Field_Models CHAOS-6-MMA-Primary = 'CHAOS-6-MMA-Primary'(max_degree=2,min_degree=1) START: 2012-01-01T00:00:00Z END: 2019-09-10T23:30:00Z DESCRIPTION: CHAOS-6 Primary (external) magnetospheric field Recent geomagnetic secular variation from Swarm and ground observatories as estimated in the CHAOS-6 geomagnetic field model, http://doi.org/10.1186/s40623-016-0486-1 http://www.space.dtu.dk/english/Research/Scientific_data_and_models/Magnetic_Field_Models CHAOS-6-MMA-Secondary = 'CHAOS-6-MMA-Secondary'(max_degree=2,min_degree=1) START: 2012-01-01T00:00:00Z END: 2019-09-10T23:30:00Z DESCRIPTION: CHAOS-6 Secondary (internal) magnetospheric field Recent geomagnetic secular variation from Swarm and ground observatories as estimated in the CHAOS-6 geomagnetic field model, http://doi.org/10.1186/s40623-016-0486-1 http://www.space.dtu.dk/english/Research/Scientific_data_and_models/Magnetic_Field_Models CHAOS-6-Static = 'CHAOS-6-Static'(max_degree=110,min_degree=21) START: 0001-01-01T00:00:00Z END: 4000-01-01T00:00:00Z DESCRIPTION: CHAOS-6 crust field Recent geomagnetic secular variation from Swarm and ground observatories as estimated in the CHAOS-6 geomagnetic field model, http://doi.org/10.1186/s40623-016-0486-1 http://www.space.dtu.dk/english/Research/Scientific_data_and_models/Magnetic_Field_Models IGRF12 = IGRF12(max_degree=13,min_degree=1) START: 1900-01-01T00:00:00Z END: 2020-01-01T00:00:00Z DESCRIPTION: International Geomagnetic Reference Field: the 12th generation, https://doi.org/10.1186/s40623-015-0228-9 https://www.ngdc.noaa.gov/IAGA/vmod/igrf.html LCS-1 = 'LCS-1'(max_degree=185,min_degree=1) START: 0001-01-01T00:00:00Z END: 4000-01-01T00:00:00Z DESCRIPTION: The LCS-1 high-resolution lithospheric field model, derived from CHAMP and Swarm satellite observations http://www.spacecenter.dk/files/magnetic-models/LCS-1/ MCO_SHA_2C = MCO_SHA_2C(max_degree=18,min_degree=1) START: 2013-11-24T18:28:47.999997Z END: 2019-01-01T00:00:00Z DESCRIPTION: [Comprehensive Inversion]: Core field of CIY4 A comprehensive model of Earth’s magnetic field determined from 4 years of Swarm satellite observations, https://doi.org/10.1186/s40623-018-0896-3 Validation: ftp://swarm-diss.eo.esa.int/Level2longterm/MCO/SW_OPER_MCO_VAL_2C_20131201T000000_20180101T000000_0401.ZIP MCO_SHA_2D = MCO_SHA_2D(max_degree=20,min_degree=1) START: 2013-11-25T12:00:00.000003Z END: 2018-01-01T00:00:00Z DESCRIPTION: [Dedicated Chain]: Core field An algorithm for deriving core magnetic field models from the Swarm data set, https://doi.org/10.5047/eps.2013.07.005 Validation: ftp://swarm-diss.eo.esa.int/Level2longterm/MCO/SW_OPER_MCO_VAL_2D_20131126T000000_20180101T000000_0401.ZIP MF7 = MF7(max_degree=133,min_degree=16) START: 0001-01-01T00:00:00Z END: 4000-01-01T00:00:00Z DESCRIPTION: MF7 crustal field model, derived from CHAMP satellite observations http://geomag.org/models/MF7.html MIO_SHA_2C-Primary = 'MIO_SHA_2C-Primary'(max_degree=60,min_degree=1) START: 0001-01-01T00:00:00Z END: 4000-01-01T00:00:00Z DESCRIPTION: [Comprehensive Inversion]: Primary (external) ionospheric field of CIY4 Validation: ftp://swarm-diss.eo.esa.int/Level2longterm/MIO/SW_OPER_MIO_VAL_2C_00000000T000000_99999999T999999_0401.ZIP MIO_SHA_2C-Secondary = 'MIO_SHA_2C-Secondary'(max_degree=60,min_degree=1) START: 0001-01-01T00:00:00Z END: 4000-01-01T00:00:00Z DESCRIPTION: [Comprehensive Inversion]: Secondary (external/induced) ionospheric field of CIY4 MIO_SHA_2D-Primary = 'MIO_SHA_2D-Primary'(max_degree=60,min_degree=1) START: 0001-01-01T00:00:00Z END: 4000-01-01T00:00:00Z DESCRIPTION: [Dedicated Chain]: Primary (external) ionospheric field, DIFI Swarm SCARF dedicated ionospheric field inversion chain, https://doi.org/10.5047/eps.2013.08.006 First results from the Swarm Dedicated Ionospheric Field Inversion chain, https://doi.org/10.1186/s40623-016-0481-6 http://geomag.colorado.edu/difi-3 Validation: ftp://swarm-diss.eo.esa.int/Level2longterm/MIO/SW_OPER_MIO_VAL_2D_20131201T000000_20171231T235959_0402.ZIP MIO_SHA_2D-Secondary = 'MIO_SHA_2D-Secondary'(max_degree=60,min_degree=1) START: 0001-01-01T00:00:00Z END: 4000-01-01T00:00:00Z DESCRIPTION: [Dedicated Chain]: Secondary (external/induced) ionospheric field, DIFI MLI_SHA_2C = MLI_SHA_2C(max_degree=120,min_degree=16) START: 0001-01-01T00:00:00Z END: 4000-01-01T00:00:00Z DESCRIPTION: [Comprehensive Inversion]: Lithospheric field of CIY4 Validation: ftp://swarm-diss.eo.esa.int/Level2longterm/MLI/SW_OPER_MLI_VAL_2C_00000000T000000_99999999T999999_0401.ZIP MLI_SHA_2D = MLI_SHA_2D(max_degree=133,min_degree=16) START: 0001-01-01T00:00:00Z END: 4000-01-01T00:00:00Z DESCRIPTION: [Dedicated Chain]: Lithospheric field Swarm SCARF Dedicated Lithospheric Field Inversion chain, https://doi.org/10.5047/eps.2013.07.008 Validation: ftp://swarm-diss.eo.esa.int/Level2longterm/MLI/SW_OPER_MLI_VAL_2D_00000000T000000_99999999T999999_0401.ZIP MMA_SHA_2C-Primary = 'MMA_SHA_2C-Primary'(max_degree=2,min_degree=1) START: 2013-11-25T03:00:00Z END: 2018-12-31T21:00:00Z DESCRIPTION: [Comprehensive Inversion]: Primary (external) magnetospheric field of CIY4 Validation: ftp://swarm-diss.eo.esa.int/Level2longterm/MMA/SW_OPER_MMA_VAL_2C_20131201T000000_20180101T000000_0401.ZIP MMA_SHA_2C-Secondary = 'MMA_SHA_2C-Secondary'(max_degree=3,min_degree=1) START: 2013-11-25T03:00:00Z END: 2018-12-31T21:00:00Z DESCRIPTION: [Comprehensive Inversion]: Secondary (internal/induced) magnetospheric field of CIY4 MMA_SHA_2F-Primary = 'MMA_SHA_2F-Primary'(max_degree=1,min_degree=1) START: 2013-11-25T11:15:00Z END: 2019-09-05T21:45:00Z DESCRIPTION: [Fast-Track Product]: Primary (external) magnetospheric field Rapid modelling of the large-scale magnetospheric field from Swarm satellite data, https://doi.org/10.5047/eps.2013.09.003 MMA_SHA_2F-Secondary = 'MMA_SHA_2F-Secondary'(max_degree=1,min_degree=1) START: 2013-11-25T11:15:00Z END: 2019-09-05T21:45:00Z DESCRIPTION: [Fast-Track Product]: Secondary (internal/induced) magnetospheric field
request.get_model_info(models=...)
can be used to get information on specific models, which is returned as a dictionary. The models
keyword behaves the same as in .set_products()
so can be passed as a list of strings of model names:
request.get_model_info(
models=["MCO_SHA_2D", "MCO_SHA_2C"]
)
{'MCO_SHA_2D': {'expression': 'MCO_SHA_2D(max_degree=20,min_degree=1)', 'validity': {'start': '2013-11-25T12:00:00.000003Z', 'end': '2018-01-01T00:00:00Z'}}, 'MCO_SHA_2C': {'expression': 'MCO_SHA_2C(max_degree=18,min_degree=1)', 'validity': {'start': '2013-11-24T18:28:47.999997Z', 'end': '2019-01-01T00:00:00Z'}}}
... or as a list of strings containing complex expressions that specify models, and can be combined with a local .shc file:
request.get_model_info(
models=[
"MLI_SHA_2D = MLI_SHA_2D(min_degree=1, max_degree=80)",
"LCS = Custom_Model(min_degree=1, max_degree=80)",
"LCS-SwarmMLI = LCS - MLI_SHA_2D"
],
custom_model="LCS-1.shc",
)
{'MLI_SHA_2D': {'expression': 'MLI_SHA_2D(max_degree=80,min_degree=16)', 'validity': {'start': '0001-01-01T00:00:00Z', 'end': '4000-01-01T00:00:00Z'}}, 'LCS': {'expression': 'Custom_Model(max_degree=80,min_degree=1)', 'validity': {'start': '0001-01-01T00:00:00Z', 'end': '4000-01-01T00:00:00Z'}}, 'LCS-SwarmMLI': {'expression': 'LCS(max_degree=80,min_degree=1) - MLI_SHA_2D(max_degree=80,min_degree=16)', 'validity': {'start': '0001-01-01T00:00:00Z', 'end': '4000-01-01T00:00:00Z'}}, 'Custom_Model': {'expression': 'Custom_Model(max_degree=185,min_degree=1)', 'validity': {'start': '0001-01-01T00:00:00Z', 'end': '4000-01-01T00:00:00Z'}}}
... or as a dictionary:
request.get_model_info(
models={
"MLI_SHA_2D": "MLI_SHA_2D(min_degree=1, max_degree=80)",
"LCS": "Custom_Model(min_degree=1, max_degree=80)",
"LCS-SwarmMLI": "LCS - MLI_SHA_2D"
},
custom_model="LCS-1.shc"
)
{'MLI_SHA_2D': {'expression': 'MLI_SHA_2D(max_degree=80,min_degree=16)', 'validity': {'start': '0001-01-01T00:00:00Z', 'end': '4000-01-01T00:00:00Z'}}, 'LCS': {'expression': 'Custom_Model(max_degree=80,min_degree=1)', 'validity': {'start': '0001-01-01T00:00:00Z', 'end': '4000-01-01T00:00:00Z'}}, 'LCS-SwarmMLI': {'expression': 'LCS(max_degree=80,min_degree=1) - MLI_SHA_2D(max_degree=80,min_degree=16)', 'validity': {'start': '0001-01-01T00:00:00Z', 'end': '4000-01-01T00:00:00Z'}}, 'Custom_Model': {'expression': 'Custom_Model(max_degree=185,min_degree=1)', 'validity': {'start': '0001-01-01T00:00:00Z', 'end': '4000-01-01T00:00:00Z'}}}