{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Model details\n", "\n", "The model details can now be retrieved. Currently this includes spherical harmonic degree range, and availability window (start, end).\n", "\n", "`.available_models()` returns detailed information on all models." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['IGRF12',\n", " 'LCS-1',\n", " 'MF7',\n", " 'CHAOS-6-Core',\n", " 'CHAOS-6-Static',\n", " 'CHAOS-6-MMA-Primary',\n", " 'CHAOS-6-MMA-Secondary',\n", " 'MCO_SHA_2C',\n", " 'MCO_SHA_2D',\n", " 'MLI_SHA_2C',\n", " 'MLI_SHA_2D',\n", " 'MMA_SHA_2C-Primary',\n", " 'MMA_SHA_2C-Secondary',\n", " 'MMA_SHA_2F-Primary',\n", " 'MMA_SHA_2F-Secondary',\n", " 'MIO_SHA_2C-Primary',\n", " 'MIO_SHA_2C-Secondary',\n", " 'MIO_SHA_2D-Primary',\n", " 'MIO_SHA_2D-Secondary']" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from viresclient import SwarmRequest\n", "\n", "request = SwarmRequest()\n", "request.available_models(details=False)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CHAOS-6-Core = 'CHAOS-6-Core'(max_degree=20,min_degree=1)\n", " START: 1997-02-06T12:07:55.200002Z\n", " END: 2019-09-13T11:57:11.519999Z\n", "DESCRIPTION:\n", "CHAOS-6 Core field\n", " 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 \n", " http://www.space.dtu.dk/english/Research/Scientific_data_and_models/Magnetic_Field_Models \n", "\n", "CHAOS-6-MMA-Primary = 'CHAOS-6-MMA-Primary'(max_degree=2,min_degree=1)\n", " START: 2012-01-01T00:00:00Z\n", " END: 2019-09-10T23:30:00Z\n", "DESCRIPTION:\n", "CHAOS-6 Primary (external) magnetospheric field\n", " 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 \n", " http://www.space.dtu.dk/english/Research/Scientific_data_and_models/Magnetic_Field_Models \n", "\n", "CHAOS-6-MMA-Secondary = 'CHAOS-6-MMA-Secondary'(max_degree=2,min_degree=1)\n", " START: 2012-01-01T00:00:00Z\n", " END: 2019-09-10T23:30:00Z\n", "DESCRIPTION:\n", "CHAOS-6 Secondary (internal) magnetospheric field\n", " 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 \n", " http://www.space.dtu.dk/english/Research/Scientific_data_and_models/Magnetic_Field_Models \n", "\n", "CHAOS-6-Static = 'CHAOS-6-Static'(max_degree=110,min_degree=21)\n", " START: 0001-01-01T00:00:00Z\n", " END: 4000-01-01T00:00:00Z\n", "DESCRIPTION:\n", "CHAOS-6 crust field\n", " 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 \n", " http://www.space.dtu.dk/english/Research/Scientific_data_and_models/Magnetic_Field_Models \n", "\n", "IGRF12 = IGRF12(max_degree=13,min_degree=1)\n", " START: 1900-01-01T00:00:00Z\n", " END: 2020-01-01T00:00:00Z\n", "DESCRIPTION:\n", " International Geomagnetic Reference Field: the 12th generation, https://doi.org/10.1186/s40623-015-0228-9 \n", " https://www.ngdc.noaa.gov/IAGA/vmod/igrf.html \n", "\n", "LCS-1 = 'LCS-1'(max_degree=185,min_degree=1)\n", " START: 0001-01-01T00:00:00Z\n", " END: 4000-01-01T00:00:00Z\n", "DESCRIPTION:\n", "The LCS-1 high-resolution lithospheric field model, derived from CHAMP and Swarm satellite observations\n", " http://www.spacecenter.dk/files/magnetic-models/LCS-1/\n", "\n", "MCO_SHA_2C = MCO_SHA_2C(max_degree=18,min_degree=1)\n", " START: 2013-11-24T18:28:47.999997Z\n", " END: 2019-01-01T00:00:00Z\n", "DESCRIPTION:\n", "[Comprehensive Inversion]: Core field of CIY4\n", " 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 \n", "Validation: ftp://swarm-diss.eo.esa.int/Level2longterm/MCO/SW_OPER_MCO_VAL_2C_20131201T000000_20180101T000000_0401.ZIP \n", "\n", "MCO_SHA_2D = MCO_SHA_2D(max_degree=20,min_degree=1)\n", " START: 2013-11-25T12:00:00.000003Z\n", " END: 2018-01-01T00:00:00Z\n", "DESCRIPTION:\n", "[Dedicated Chain]: Core field\n", "An algorithm for deriving core magnetic field models from the Swarm data set, https://doi.org/10.5047/eps.2013.07.005 \n", "Validation: ftp://swarm-diss.eo.esa.int/Level2longterm/MCO/SW_OPER_MCO_VAL_2D_20131126T000000_20180101T000000_0401.ZIP \n", "\n", "MF7 = MF7(max_degree=133,min_degree=16)\n", " START: 0001-01-01T00:00:00Z\n", " END: 4000-01-01T00:00:00Z\n", "DESCRIPTION:\n", "MF7 crustal field model, derived from CHAMP satellite observations\n", " http://geomag.org/models/MF7.html\n", "\n", "MIO_SHA_2C-Primary = 'MIO_SHA_2C-Primary'(max_degree=60,min_degree=1)\n", " START: 0001-01-01T00:00:00Z\n", " END: 4000-01-01T00:00:00Z\n", "DESCRIPTION:\n", "[Comprehensive Inversion]: Primary (external) ionospheric field of CIY4\n", "Validation: ftp://swarm-diss.eo.esa.int/Level2longterm/MIO/SW_OPER_MIO_VAL_2C_00000000T000000_99999999T999999_0401.ZIP \n", "\n", "MIO_SHA_2C-Secondary = 'MIO_SHA_2C-Secondary'(max_degree=60,min_degree=1)\n", " START: 0001-01-01T00:00:00Z\n", " END: 4000-01-01T00:00:00Z\n", "DESCRIPTION:\n", "[Comprehensive Inversion]: Secondary (external/induced) ionospheric field of CIY4\n", "\n", "MIO_SHA_2D-Primary = 'MIO_SHA_2D-Primary'(max_degree=60,min_degree=1)\n", " START: 0001-01-01T00:00:00Z\n", " END: 4000-01-01T00:00:00Z\n", "DESCRIPTION:\n", "[Dedicated Chain]: Primary (external) ionospheric field, DIFI\n", " Swarm SCARF dedicated ionospheric field inversion chain, https://doi.org/10.5047/eps.2013.08.006 \n", " First results from the Swarm Dedicated Ionospheric Field Inversion chain, https://doi.org/10.1186/s40623-016-0481-6 \n", " http://geomag.colorado.edu/difi-3 \n", "Validation: ftp://swarm-diss.eo.esa.int/Level2longterm/MIO/SW_OPER_MIO_VAL_2D_20131201T000000_20171231T235959_0402.ZIP \n", "\n", "MIO_SHA_2D-Secondary = 'MIO_SHA_2D-Secondary'(max_degree=60,min_degree=1)\n", " START: 0001-01-01T00:00:00Z\n", " END: 4000-01-01T00:00:00Z\n", "DESCRIPTION:\n", "[Dedicated Chain]: Secondary (external/induced) ionospheric field, DIFI\n", "\n", "MLI_SHA_2C = MLI_SHA_2C(max_degree=120,min_degree=16)\n", " START: 0001-01-01T00:00:00Z\n", " END: 4000-01-01T00:00:00Z\n", "DESCRIPTION:\n", "[Comprehensive Inversion]: Lithospheric field of CIY4\n", "Validation: ftp://swarm-diss.eo.esa.int/Level2longterm/MLI/SW_OPER_MLI_VAL_2C_00000000T000000_99999999T999999_0401.ZIP\n", "\n", "MLI_SHA_2D = MLI_SHA_2D(max_degree=133,min_degree=16)\n", " START: 0001-01-01T00:00:00Z\n", " END: 4000-01-01T00:00:00Z\n", "DESCRIPTION:\n", "[Dedicated Chain]: Lithospheric field\n", " Swarm SCARF Dedicated Lithospheric Field Inversion chain, https://doi.org/10.5047/eps.2013.07.008 \n", " Validation: ftp://swarm-diss.eo.esa.int/Level2longterm/MLI/SW_OPER_MLI_VAL_2D_00000000T000000_99999999T999999_0401.ZIP \n", "\n", "MMA_SHA_2C-Primary = 'MMA_SHA_2C-Primary'(max_degree=2,min_degree=1)\n", " START: 2013-11-25T03:00:00Z\n", " END: 2018-12-31T21:00:00Z\n", "DESCRIPTION:\n", "[Comprehensive Inversion]: Primary (external) magnetospheric field of CIY4\n", "Validation: ftp://swarm-diss.eo.esa.int/Level2longterm/MMA/SW_OPER_MMA_VAL_2C_20131201T000000_20180101T000000_0401.ZIP\n", "\n", "MMA_SHA_2C-Secondary = 'MMA_SHA_2C-Secondary'(max_degree=3,min_degree=1)\n", " START: 2013-11-25T03:00:00Z\n", " END: 2018-12-31T21:00:00Z\n", "DESCRIPTION:\n", "[Comprehensive Inversion]: Secondary (internal/induced) magnetospheric field of CIY4\n", "\n", "MMA_SHA_2F-Primary = 'MMA_SHA_2F-Primary'(max_degree=1,min_degree=1)\n", " START: 2013-11-25T11:15:00Z\n", " END: 2019-09-05T21:45:00Z\n", "DESCRIPTION:\n", "[Fast-Track Product]: Primary (external) magnetospheric field\n", " Rapid modelling of the large-scale magnetospheric field from Swarm satellite data, https://doi.org/10.5047/eps.2013.09.003 \n", "\n", "MMA_SHA_2F-Secondary = 'MMA_SHA_2F-Secondary'(max_degree=1,min_degree=1)\n", " START: 2013-11-25T11:15:00Z\n", " END: 2019-09-05T21:45:00Z\n", "DESCRIPTION:\n", "[Fast-Track Product]: Secondary (internal/induced) magnetospheric field\n", "\n" ] } ], "source": [ "request.available_models(details=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "`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:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'MCO_SHA_2D': {'expression': 'MCO_SHA_2D(max_degree=20,min_degree=1)',\n", " 'validity': {'start': '2013-11-25T12:00:00.000003Z',\n", " 'end': '2018-01-01T00:00:00Z'}},\n", " 'MCO_SHA_2C': {'expression': 'MCO_SHA_2C(max_degree=18,min_degree=1)',\n", " 'validity': {'start': '2013-11-24T18:28:47.999997Z',\n", " 'end': '2019-01-01T00:00:00Z'}}}" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "request.get_model_info(\n", " models=[\"MCO_SHA_2D\", \"MCO_SHA_2C\"]\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "... or as a list of strings containing complex expressions that specify models, and can be combined with a local .shc file:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'MLI_SHA_2D': {'expression': 'MLI_SHA_2D(max_degree=80,min_degree=16)',\n", " 'validity': {'start': '0001-01-01T00:00:00Z',\n", " 'end': '4000-01-01T00:00:00Z'}},\n", " 'LCS': {'expression': 'Custom_Model(max_degree=80,min_degree=1)',\n", " 'validity': {'start': '0001-01-01T00:00:00Z',\n", " 'end': '4000-01-01T00:00:00Z'}},\n", " 'LCS-SwarmMLI': {'expression': 'LCS(max_degree=80,min_degree=1) - MLI_SHA_2D(max_degree=80,min_degree=16)',\n", " 'validity': {'start': '0001-01-01T00:00:00Z',\n", " 'end': '4000-01-01T00:00:00Z'}},\n", " 'Custom_Model': {'expression': 'Custom_Model(max_degree=185,min_degree=1)',\n", " 'validity': {'start': '0001-01-01T00:00:00Z',\n", " 'end': '4000-01-01T00:00:00Z'}}}" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "request.get_model_info(\n", " models=[\n", " \"MLI_SHA_2D = MLI_SHA_2D(min_degree=1, max_degree=80)\",\n", " \"LCS = Custom_Model(min_degree=1, max_degree=80)\",\n", " \"LCS-SwarmMLI = LCS - MLI_SHA_2D\"\n", " ],\n", " custom_model=\"LCS-1.shc\",\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "... or as a dictionary:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'MLI_SHA_2D': {'expression': 'MLI_SHA_2D(max_degree=80,min_degree=16)',\n", " 'validity': {'start': '0001-01-01T00:00:00Z',\n", " 'end': '4000-01-01T00:00:00Z'}},\n", " 'LCS': {'expression': 'Custom_Model(max_degree=80,min_degree=1)',\n", " 'validity': {'start': '0001-01-01T00:00:00Z',\n", " 'end': '4000-01-01T00:00:00Z'}},\n", " 'LCS-SwarmMLI': {'expression': 'LCS(max_degree=80,min_degree=1) - MLI_SHA_2D(max_degree=80,min_degree=16)',\n", " 'validity': {'start': '0001-01-01T00:00:00Z',\n", " 'end': '4000-01-01T00:00:00Z'}},\n", " 'Custom_Model': {'expression': 'Custom_Model(max_degree=185,min_degree=1)',\n", " 'validity': {'start': '0001-01-01T00:00:00Z',\n", " 'end': '4000-01-01T00:00:00Z'}}}" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "request.get_model_info(\n", " models={\n", " \"MLI_SHA_2D\": \"MLI_SHA_2D(min_degree=1, max_degree=80)\",\n", " \"LCS\": \"Custom_Model(min_degree=1, max_degree=80)\",\n", " \"LCS-SwarmMLI\": \"LCS - MLI_SHA_2D\"\n", " },\n", " custom_model=\"LCS-1.shc\"\n", ")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 4 }