输入地理经纬度,怎样用matlab计算地磁经纬度?

输入地理经纬度,怎样用matlab计算地磁经纬度?
2024-10-31 18:54:22
推荐回答(2个)
回答(1):

function [Bm,Lm]=geo2mag(Bg,Lg)
% 将大地经纬度转化为地磁经纬度
% 磁极点取:经度72.2°W,纬度80.0°N(IGRF,2011)
% 输入及输出值为弧度制单位(rad)
% by chensd HHU 2016.01.02

% 磁极点经纬度
b=80.0*pi/180;
l=-72.2*pi/180;

% 以下公式基于刘长建,2011
sb=sin(Bg)*sin(b)+cos(Bg)*cos(b)*cos(Lg-l);
Bm=asin(sb);
sl=cos(Bg)*sin(Lg-l)/cos(Bm);
cl=(sin(b)*sb-sin(Bg))/(cos(b)*cos(Bm));
Lm=atan2(sl,cl);

回答(2):

地磁不同地点的磁倾角等分量值是不同的,海拔高度影响很大。我有根据IGRF12系数计算全球各地的地磁总场和各个分量的matlab源码。包括水平分量、垂直分量、年变化量、磁倾角等值。