MAGNETIC FIELD MODEL COLLETCTION

using geomag models.

../_images/sphx_glr_earth_mag_mods_001.png

Out:

D:\Miniconda3\lib\site-packages\magmod\magnetic_model\tests\data\TEST_MIO_SHA.txt
2020.0
[2015.         2020.         2017.49863014]
mio1 has finished
D:\MyWeb\geoistdoc\examples\tutorials\earth_mag_mods.py:101: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
  plt.show()

array([ 1.13686118,  3.10004906,  6.92227844, 11.05073976, 13.51112583,
       12.9677949 , 10.10356869,  7.18825594,  5.34568385,  3.72687073,
        2.45721053,  2.28269557,  2.20540992,  1.72766654,  1.3111884 ,
        1.32111032,  1.48665841,  1.45998716,  1.22209613,  1.09753999,
        1.18240634,  1.26422307,  1.35843354,  1.28995806])

import datetime as dt

from magmod.magnetic_model.loader_igrf import load_model_igrf
from magmod.magnetic_model.loader_wmm import load_model_wmm
from magmod.magnetic_model.loader_emm import load_model_emm
from magmod.magnetic_model.loader_shc import (
    load_model_shc, load_model_shc_combined,
)
from magmod.magnetic_model.loader_mio import (
    load_model_swarm_mio_internal,
    load_model_swarm_mio_external,
)

from magmod.data import (
    EMM_2010_STATIC, EMM_2010_SECVAR, WMM_2015,
    CHAOS6_CORE_LATEST, CHAOS6_STATIC,
    IGRF11, IGRF12, SIFM,
)
from magmod.time_util import (
    decimal_year_to_mjd2000, decimal_year_to_mjd2000_simple,mjd2000_to_decimal_year,mjd2000_to_year_fraction
)
from magmod.util import datetime_to_decimal_year, vnorm

from magmod.magnetic_model.parser_mio import parse_swarm_mio_file
from magmod.magnetic_model.tests.data import SWARM_MIO_SHA_2_TEST_DATA
import magmod._pymm as pymm

print(SWARM_MIO_SHA_2_TEST_DATA) #DIFI4 is a type of MIO SHA model
print(mjd2000_to_decimal_year(7305))
print(mjd2000_to_decimal_year([5479., 7305., 6392.0]))
d1 = dt.datetime(2015,1,1)   # import time , location(lat, lon)
d11 = datetime_to_decimal_year(d1) # datetime to decimal year
loc = (30.0, 40.0, 1000.0)
wmm2015 = load_model_wmm(WMM_2015)  #load wmm2015 model
igrf11 = load_model_igrf(IGRF11)    #load igrf11 model
igrf12 = load_model_shc(IGRF12, interpolate_in_decimal_years=True)    #load igrf12 model
emm = load_model_emm(EMM_2010_STATIC, EMM_2010_SECVAR)  #load emm model
options = {"scale": [1, 1, -1]}   #-1 is Z direction

wmm2015.eval(decimal_year_to_mjd2000(d11), loc, 0, 0, **options) # 0,0 mean input,output using GEODETIC_ABOVE_WGS84
igrf11.eval(decimal_year_to_mjd2000(d11), loc, 0, 0, **options)
igrf12.eval(decimal_year_to_mjd2000(d11), loc, 0, 0, **options) #North-X, East-Y, Vertical-Z
vnorm(igrf12.eval(decimal_year_to_mjd2000(d11), (30.0, 40.0, 1000.0), 0, 0)) #Total intensity
mjd2000_to_decimal_year([5479., 7305., 6392.0])

emm.eval(decimal_year_to_mjd2000(d11), loc, 0, 0, **options)

# load mio model
mio = load_model_swarm_mio_internal(SWARM_MIO_SHA_2_TEST_DATA)
options = {"f107": 70, "scale": [1, 1, -1]}
mio.eval(decimal_year_to_mjd2000(d11), (30.0, 40.0, 1000.0), 0, 0, **options)

mio1 = load_model_swarm_mio_external(SWARM_MIO_SHA_2_TEST_DATA)
mio1.eval(5661.87, [(30.0, 40.0, 6400.0), (30.0, 40.0, 8000.0),], **options)
print('mio1 has finished')
# load DIFI4 model
#import sys

path = "D:\\MyProjects\\2018-科学院地球所\\models\\"

difi3 = load_model_swarm_mio_internal(path+'SW_OPER_MIO_SHAi2D_20131201T000000_20170129T235959_0301.txt')
difi4 = load_model_swarm_mio_external(path+'SW_OPER_MIO_SHAi2D_20131201T000000_20171231T235959_0401.txt')
difi42 = load_model_swarm_mio_internal(path+'SW_OPER_MIO_SHAi2D_20131201T000000_20171231T235959_0401.txt')

difi3.eval(decimal_year_to_mjd2000(d11), loc, 0, 0, **options)
difi4.eval(decimal_year_to_mjd2000(d11), loc, 0, 0, **options)
loc = (45.0, 105.0, 1.0)
difi4.eval(decimal_year_to_mjd2000(d11), loc, 0, 0, **options)
difi4.eval(decimal_year_to_mjd2000(datetime_to_decimal_year(dt.datetime(2019,1,1,12,0,30))), loc, 0, 0, **options)
difi4.eval(decimal_year_to_mjd2000(datetime_to_decimal_year(dt.datetime(2019,1,1,0,0,30))), loc, 0, 0, **options)
difi4.eval(decimal_year_to_mjd2000(datetime_to_decimal_year(dt.datetime(2019,1,1,13,0,30))), loc, 0, 0, **options)

#get_ipython().run_line_magic('matplotlib', 'inline')
import matplotlib.pyplot as plt
import numpy as np
magdifi = np.zeros(3*24).reshape(24,3)
magdifi2 = np.zeros(3*24).reshape(24,3)

for i in range(24):
   t1 = decimal_year_to_mjd2000(datetime_to_decimal_year(dt.datetime(2019,1,1,i,0,30)))
   magdifi[i] = difi4.eval(t1, loc, 0, 0, **options)
   magdifi2[i] = difi42.eval(t1, loc, 0, 0, **options)

plt.title("DIFI-4 IONOSPHERE MAGNETIC FIELD MODEL")
plt.xlabel("UTC time/h")
plt.ylabel("Sq intensity/nT")
plt.plot(magdifi[:,0],'bo', label = "North-X")
plt.plot(magdifi[:,1],'ro', label = "East-Y")
plt.plot(magdifi[:,2],'go', label = "Vertical-Z")
plt.plot(magdifi[:,0] + magdifi2[:,0],'b', label = "North-X2")
plt.plot(magdifi[:,1] + magdifi2[:,1],'r', label = "East-Y2")
plt.plot(magdifi[:,2] + magdifi2[:,2],'g', label = "Vertical-Z2")
plt.legend()
plt.show()
vnorm(magdifi)

Total running time of the script: ( 0 minutes 1.234 seconds)

Gallery generated by Sphinx-Gallery