06_Geoist之地磁模型计算

内容摘要:Geoist的magmod模块,支持了8种常见的地磁场模型解算功能。地磁场无时不刻不在变化,一般可以分为:主磁场、岩石圈场和外源场。其中主磁场最强可以达到50000nT以上,外源场次之约1000nT,岩石圈场最弱。由于地球的地磁北和地理北不重合,地磁北总是在变化之中,历史上还曾经发生过多次的倒转。但总体来说变化不是很快,因此,依据现有观测数据可以用模型还描述地球主磁场的这种变化,通常5年更新一个模型。常说的IGRF和WMM就是最有名的两款,但是如果你要计算某一个时间地点的地磁场参考值,下载模型文件后还必须进行一系列解算才能实现,今天我们就说说Geoist软件包中,对地磁模型解算的函数调用方法。

1、支持的地磁模型

目前,支持IGRF、WMM、CHAOS、MF、EMM、LCS、SIFM、DIFI共8个模型,这些模型都是以高斯球谐分析方法为基础,结合大量地磁场实测资料建立的。下面是这些模型的详细信息:

(1) IGRF模型

国际地磁参考场模型(International Geomagnetic Reference Field,简称IGRF)是国际上通用的标准地磁模型,是一种根据高斯理论建立的用于描述地球主磁场及其长期变化在全球分布的数学模型。它是由国际地磁和高空大气物理协会(IAGA)的V-MOD工作小组建立和维护的。模型每隔5年更新一次。1968年,IAGA发布了第1代IGRF模型(IGRF-1)。2014年,IAGA发布了第12代IGRF模型(IGRF-12),至此,IGRF包括了1900-2015年(间隔5年)共24个主磁场模型,其适用的时间范围为1900.01.01-2019.12.31。IGRF-12融合了卫星(Swarm:2013-2014、Ørsted:1999-2013、CHAMP:2000-2010、SAC-C:2001-2013)数据、地面台站观测数据和地面流动磁测数据,球谐系数13阶,对应的空间分辨率为3000 km。该模型地磁场的全球估计精度约为50-300 nT。

(2) WMM 模型

世界地磁场模型 (World Magnetic Mode l,简称WMM)是一种主要用于描述地球主磁场,同时也兼顾到岩石圈磁场和海洋感应磁场长波成分的数学模型。WMM是IGRF的候选模型之一。该模型主要为美国、英国国防部、北大西洋公约组织( NATO)和国际海道测量组织(WHO)提供导航及定向服务,同时在民用导航定位系统和航向姿态测量系统中也有着广泛应用。WMM是由美国国家地理空间情报局(NGA)和英国国防地理中心(DGC)提供资助,并由美国国家地球物理数据中心(NGDC)联合英国地质调查局(BGS)共同研制的世界地磁模型。模型每隔5年更新一次。最新的WMM2015模型在2014年12月发布,有效使用期为2015.01.01-2019.12.31。WMM2015模型所使用的数据主要包括卫星磁测(Swarm:2013-2014、Ørsted:1999-2013、CHAMP:2000-2010)和地面台站时均值两种类型。该模型的球谐系数是12阶,对应的空间分辨率为3200 km。该模型地磁强度的全球估计精度约为90-170 nT。

(3) CHAOS 模型

CHAOS系列模型( CHAMP/Ørsted/SAC-C model)是描述全球地磁场(包括内源场和外源场)及其长期变化的高精度数学模型。该模型在构建过程中, 采用了一些新的改进技术,如: 重新确定资料筛选标准、矢量资料的坐标转化、外源磁场的拟合等,使模型的可靠性得以提高。它是由丹麦国家空间中心(DTU Space)建立和维护的。2006 年,DTU Space提出了第一代CHAOS模型。第一代CHAOS模型是利用1999年3月至2005年9月的CHAMP、Ørsted和SAC-C三颗卫星的高精度磁测数据计算得到的。DTU Space 在2008-2016年先后提出了xCHAOS、CHAOS-2、CHAOS-3、CHAOS-4、CHAOS-5和CHAOS-6模型。最新的CHAOS-7模型在2019年发布,有效使用期为1999-2020年。CHAOS-7 使用的数据包括卫星磁测数据(来自CHAMP, Ørsted、SAC-C、Cryosat2和Swarm卫星)和182个地面台站数据。CHAOS-7模型球谐级数展开至90阶,其中,地核磁场为1-20阶,岩石圈磁场为21-90阶。

(4) MF 模型

MF模型(Magnetic Field,简称MF)是基于 CHAMP卫星数据构建的描述岩石圈磁场的数学模型。它在推测岩石圈的组成和结构上有独特的优势,其中的长波长成分是编制大陆异常图、全球尺度海洋异常图和航磁异常图的重要依据,而且具有较高的精度。MF模型是由德国国家地球科学研究中心(GFZ)建立和维护的。第1代的MF1模型于2002年发布,用15-80阶球谐函数描述岩石圈磁场的可见部分。最新的MF7模型在2010年8月发布。该模型主要使用了2007年5月至2010年4月的CHAMP卫星数据,球谐级数展开至133阶,对应的空间分辨率为300 km。

(5) EMM模型

增强地磁场模型(Enhanced Magnetic Model,简称EMM)是描述地球主磁场和岩石圈磁场的数学模型。EMM模型是利用球谐分析法描述岩石圈磁场的模型中精度和空间分辨率最高的模型之一,其包含的地球岩石圏磁场信息更加全面精细。该模型被广泛应用于民用定位导航系统中,具有很高的实用价值。EMM模型是由美国国家地球物理数据中心(NGDC)和英国地质调查局(BGS)联合研制和维护的。该模型的前身是NGDC-720模型。最新的EMM2017模型在2017年7月发布,有效使用期为2000-2022年。EMM2017使用的数据包括卫星、 航空、海洋和地面磁测数据,球谐级数展开至790阶(地核磁场为1-15阶,岩石圈磁场为16-790阶),空间分辨率达到51 km。

(6)LCS模型

基于CHAMP和Swarm卫星数据的岩石圈磁场模型(Lithospheric model derived from CHAMP and Swarm satellite data,简称LCS)是描述全球岩石圈磁场的高精度数学模型。LCS模型是由丹麦国家空间中心(DTU Space)的Nils Olsen教授领导的科研小组于2017年首次提出的,目前只有一个版本LCS-1。该模型使用了CHAMP卫星在2006年9月至2010年9月期间以及Swarm 的Alpha 和 Charlie两颗卫星在2014年4月至2016年12月期间的磁测数据。该模型是由磁梯度数据计算得到的。LCS-1用16-185阶球谐函数表示岩石圈磁场,空间分辨率达到220 km。需要注意的是,当球谐阶数大于133时,模型会出现严重的能量泄露现象。

(7) SIFM 模型

Swarm初始磁场模型(Swarm Initial Field Model,简称SIFM)是描述地球磁场(包括主磁场和岩石圈磁场)及其长期变化的数学模型。该模型是由丹麦国家空间中心(DTU Space)的Nils Olsen教授领导的科研小组于2014年提出的。SIFM模型在构建过程中,仅使用了由欧洲航天局 (ESA)发射的Swarm系列卫星(Alpha、 Bravo和Charlie)在2013年11月至2015年1月期间的的磁测数据。该模型首次利用由低轨道卫星数据计算得到的磁梯度信息来提高模型精度,并取得了良好效果(模型估计值与卫星实测值的平均残差值仅为0.12 nT)。SIFM模型球谐级数展开至70阶,对应的空间分辨率为550 km。对静态岩石圈磁场值(15-70阶)的描述,SIFM和MF7模型基本接近。

(8) DIFI 模型

专用电离层磁场反演模型(Dedicated Ionospheric Field Inversion Model,简称 DIFI)是描述地球中低纬度地区(+/- 55度之间)在地磁静日期间的太阳宁静区(Solar-quiet,Sq)和赤道电急流(Equatorial electrojet,EEJ) 磁场(此类磁场属于地磁场中占比例极小的感应磁场)及其变化的数学模型。DIFI模型是由欧洲航天局 (ESA)提供资助,并由科罗拉多大学波尔得分校的环境科学合作研究所(CIRES)和巴黎地球物理学院(IPGP)共同研制的。该模型的计算方法于2013年首次提出。在2015-2016年期间,CIRES发布了DIFI-2015a、 DIFI-2015b和DIFI-2版本。最新的DIFI-3模型在2017年发布。该模型在构建过程中,使用了Swarm系列卫星和地面观测台站在2013年12月至2017年6月期间的磁测数据。DIFI-3模型球谐级数展开至60阶。

2、magmod的函数接口

首先,GEOIST的geoist\magmod\data目录下,已经存放了全部支持模型的球谐函数文件,打开init.py文件,可以查阅到如下信息:

WMM_2015 = join(_DIRNAME, 'WMM2015v2.COF')
WMM_2020 = join(_DIRNAME, 'WMM2020.COF')
EMM_2010_STATIC = join(_DIRNAME, 'EMM-720_V3p0_static.cof')
EMM_2010_SECVAR = join(_DIRNAME, 'EMM-720_V3p0_secvar.cof')
CHAOS6_CORE_X8 = join(_DIRNAME, 'CHAOS-6-x8_core.shc')
CHAOS6_CORE_LATEST = CHAOS6_CORE_X8
CHAOS6_STATIC = join(_DIRNAME, 'CHAOS-6_static.shc')
IGRF11 = join(_DIRNAME, 'igrf11coeffs.txt')
IGRF12 = join(_DIRNAME, 'IGRF12.shc')
IGRF13 = join(_DIRNAME, 'igrf13.COF')
SIFM = join(_DIRNAME, 'SIFM.shc')
LCS1 = join(_DIRNAME, 'LCS-1.shc')
MF7 = join(_DIRNAME, 'MF7.shc')

要想使用这些模型,在python程序中,直接import即可,如下:

from geoist.magmod.data import (
    EMM_2010_STATIC, EMM_2010_SECVAR, WMM_2015, WMM_2020, IGRF13, 
    CHAOS6_CORE_LATEST, CHAOS6_STATIC,
    IGRF11, IGRF12, SIFM,)

其次,模型有了就是要加载解算函数了,在GEOIST的geoist\magmod\magnetic_model目录下,有多种类型的解算函数接口,import方法如下:

from geoist.magmod.magnetic_model.loader_igrf import load_model_igrf
from geoist.magmod.magnetic_model.loader_wmm import load_model_wmm
from geoist.magmod.magnetic_model.loader_emm import load_model_emm

接下来,要注意的就是时间定义,表示时间除了公历日期外,还有常用到儒略日,有时候需要相互转换。直接import函数即可,方法如下:

import datetime as dt
from geoist.magmod.time_util import (
    decimal_year_to_mjd2000, decimal_year_to_mjd2000_simple,mjd2000_to_decimal_year,mjd2000_to_year_fraction
)

准备好上面的步骤后,我们就可以计算了,不论什么模型,最后计算都要调用eval函数,示例如下:

wmm2020 = load_model_wmm(WMM_2020)
d2 = 2022.5
loc1 = (80.0, 0.0, 100.0)
wmm2020.eval(decimal_year_to_mjd2000(d2), loc1, 0, 0, **options) 

简单来讲,就是先import所有要用的接口,然后load模型,再eval一个时间地点的模型,来计算磁场参考值即可。

3、一个完整的简单例子

通过上面的介绍,我们来看看如果要完成的计算一个模型,代码大概长什么样子。下面我们测试一个电离层模型(DIFI4)计算一个地面点在1天24小时的地磁场变化结果。

完整代码如下:

import datetime as dt

from geoist.magmod.data import DIFI4
from geoist.magmod.magnetic_model.loader_mio import (
    load_model_swarm_mio_internal,
    load_model_swarm_mio_external)

from geoist.magmod.time_util import decimal_year_to_mjd2000
from geoist.magmod.util import datetime_to_decimal_year

loc = (45.0, 105.0, 1.0)
options = {"f107": 70, "scale": [1, 1, -1]}  #-1 is Z direction

# load DIFI4 model
difi4 = load_model_swarm_mio_external(DIFI4)
difi42 = load_model_swarm_mio_internal(DIFI4)

#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()

如果正确运行,结果可视化如图1所示:

图1 DIFI4模型计算结果

加载模型,确定接口,计算再加上可视化,计算地磁模型,是不是很简单?

结语:

计算地磁模型,获得指定时空地点的地磁参考场,在地磁勘探、导航领域都有重要的应用。特别是对于高精度磁场参数的预报更加关键,基于magmod程序包提供程序接口可以作为开发多种地磁应用软件的基础,甚至可以进一步开发为在线的API服务接口。

下一节将继续介绍magmod针对IGRF13和WMM2000最新模型的更新支持情况。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容