利用EGM96和EGM2008模型,分别计算计算高程异常、重力异常和垂线偏差。

1.前言

高程异常是似大地水准面至地球椭球面的高度,在GPS水准中,求解高程异常的方法是用水准测量的方法联测GPS网中的若干GPS点的正常高,然后根据GPS点的大地高求出各公共点的高程异常,然后由公共点的平面坐标和高程异常用数值拟合的方法拟合出区域的似大地水准面,最后即可求得各点的高程异常值,进而求出各点的正常高。这种方法在实际运用中操作不便,而且耗时耗力,精度不高。如果用EGM96或EGM2008求得的大地水准面差距之差能以较高的精度将 GPS测定的大地高差转换为正常高差, 那么测区内既不需要联测GPS水准点 ,也不需要测量正常高差,只需1~2个已知水准点就能够解决测区所有GPS点的高程转换问题。因此,利用EGM模型计算高程异常在实际应用中是非常重要的步骤。

EGM96模型是美国 NASA/GSFC和国防制图局 (DMA)联合研制的 360 阶全球重力场模型 , 被公认为是同阶次模型中最好的一个。美国国家地理空间情报局 (NGA)最新给出了EGM2008重力场模型 , 该新一代地球重力场模型达到2159阶次(球谐系数的阶扩展至2190,次为2159),空间分辨率约为5′。高精度、高分辨率局部或区域大地水准面不仅为大地测量、地球物理、地球动力学及海洋学等地球科学的研究和应用提供基础地球空间信息,而且也是当今构建数字地球必不可少的信息之一 。下文就利用EGM2008模型计算高程异常的方法进行了总结。

2.步骤

一、从ICGEM网站获取EGM96和EGM2008模型数据。发现网站上并没有数据,于是求助同学。只找到了EGM96数据,下面以EGM96数据为例,说明编程的思路和步骤。

二、利用Matlab对EGM96数据文件进行读取,为了方便编程,对EGM数据进行了预处理。

首先利用结构体存储每一列,然后再分别利用数组,对文件中的l,m,c,s进行存储。其具体的代码如下:

l=[];m=[];c=[];s=[];

for i=1:yinzi

l(i)=zb(i).xl;%将l下标变成矩阵

m(i)=zb(i).xm;%将m下标变成矩阵

c(l(i)+1,m(i)+1)=zb(i).xc;%矩阵下标不能为0,所以+1

s(l(i)+1,m(i)+1)=zb(i).xs;

end                               %c31相当于c20位系数

c(3,1)=c(3,1)+0.484166774985E-03; %减去正常重力位系数

c(5,1)=c(5,1)-0.790303733511E-06;

c(7,1)=c(7,1)+0.168724961151E-08;

c(9,1)=c(9,1)-0.34605248394E-11;

c(11,1)=c(11,1)+0.265002225747E-14;

值得注意的地方是:Matlab中数组的下标不能为0,故在上述第5行代码中加了1。另外,还要对C2 0至C10 0减去正常重力位系数。这一步,使C,S系数对应了l,m,方便后来的调用。从下图中可以看到,C和S位系数在数组中表示为了361*361的下三角矩阵

三、将大地坐标(B,L,H)转化为地心坐标(φ,λ,r)。

根据上述转换模型,设计Matlab代码如下:

%----------------------------坐标转换-------------------------

R=6378136.460;GM=3.986004415E+14;PI=3.1415926535897932384626433;

e2=0.00669437999013;ge=9.7803253359;aerfa=1/298.257223563;%扁率

k1=0.00193185265246;B=-90;L=-180;H=0;World=[];mmm=1; 

%mmm是world结构体循环变量

for B=-90:10:90    %%%%%%%%%%%%%%%%% 超大循环体 %%%%%%%%%%%%%%

    for L=-180:10:180

    H=0;

PP=fix(B);  AA=(B-PP)*100; QQQ=fix(AA);degs=AA-QQQ; %化弧度

A=(PP+QQQ/60.00+degs/36.0)*pi/180.0;

N=R/(sqrt(1-e2*sin(A)*sin(A)));

X=(N+H)*cos(A)*cos(L);

Y=(N+H)*cos(A)*sin(L);

Z=(N*(1-e2)+H)*sin(A);

fai=atan(Z/(sqrt(X*X+Y*Y)));%地心坐标

lanmat=L;%λ

注意的地方是,B在后面应转化为弧度制再带入计算。

四、计算给定点处的平均正常重力

根据上述公式编制对应的Matlab代码。

五、Legendre 递推公式的计算

根据前面推算的C和S系数阵以及l,m参数,利用上述公式可以计算P值并综合到矩阵中。P矩阵也是361*361的下三角矩阵。其具体的代码已经运行结果如下:

%-------------------------Legendre 递推公式的计算-------------------

p=[];

jieshu=360;%EGM96为360阶,若是EGM2008,则修改成2190.

p(1,1)=1;

p(2,1)=sqrt(3)*sin(fai);

p(2,2)=sqrt(3*(1-sin(fai)*sin(fai)));

for i=3:(jieshu+1)

    p(i,i-1)=sqrt(2*(i-1)+1)*sin(fai)*p(i-1,i-1); %此处i-1对应公式中的L

    p(i,i)=sqrt((2*(i-1)+1)/(2*(i-1)))*cos(fai)*p(i-1,i-1);

end

for i=3:(jieshu+1)

    for j=1:i-2

        %式子太长,避免括号错位,分开计算

    ddd=sqrt((2*(i-1)*(i-1))/((i-1)*(i-1)-(j-1)*(j-1)))*sin(fai)*p(i-1,j);

dddd=sqrt(((2*(i-1)+1)/(2*(i-1)-3))*((i-1-1)*(i-1-1)-j*j)/((i-1)*(i-1)-j*j))*p(i-2,j);

p(i,j)=ddd-dddd;

    end

end

P矩阵的运行结果如下

六、计算N值

由上述模型计算N值。并写入到文本中,利用Matlab的绘图函数进行绘制。最终结果为:

附录:Matlab代码

https://download.csdn.net/download/qq_38437948/19400765?spm=1001.2014.3001.5503

  • 21
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
### 回答1: EGM96(Earth Gravitational Model 1996)和EGM2008(Earth Gravitational Model 2008)是两种用于计算地球重力模型的方法。 利用EGM96计算高程异常重力异常垂线偏差时,首先需要使用EGM96模型中的重力场系数来计算重力场的分布情况。然后,通过将地球表面的高程数据与标准椭球模型下的大地水准面进行比较,可以计算出地球表面上各个点的高程异常高程异常是指某一地点的实际高程与该地点在标准椭球模型下的理论高程之差。 接下来,利用EGM96模型中的重力场系数,可以计算出地球表面上各个点的重力异常重力异常是指某一地点的实际重力加速度与该地点在标准椭球模型下的理论重力加速度之差。重力异常可以用来研究地球内部的质量分布情况。 最后,计算垂线偏差时,需要先计算出地球表面上每个点的所在垂线与实际重力方向之间的夹角,然后根据这些夹角的大小来计算垂线偏差垂线偏差是指某一地点的实际重力方向与该地点所在垂线方向之间的夹角。 EGM2008模型计算方法与EGM96类似,但在计算过程中使用了更多的重力场系数,提高了计算结果的精度。因此,利用EGM2008模型计算出的高程异常重力异常垂线偏差EGM96更准确。 ### 回答2: 利用EGM96EGM2008模型,可以分别计算计算高程异常重力异常垂线偏差高程异常是指某个点的实际高程与参考椭球上的理论高程之间的差异。EGM96EGM2008模型都提供了全球范围内的高程异常数据。可以通过在这些模型中查询某个点的坐标,获取该点的高程异常值。 重力异常是指某个点的实测重力值与参考椭球上的重力值之间的差异。EGM96EGM2008模型都提供了全球范围内的重力异常数据。可以通过在这些模型中查询某个点的坐标,获取该点的重力异常值。 垂线偏差是指沿着某条直线测量的重力值与该直线上某个点的标准重力值之间的差异。EGM96EGM2008模型都提供了全球范围内的重力异常系数数据,可以通过这些数据计算垂线偏差计算垂线偏差需要知道引力异常系数和经度、纬度以及海拔高程等参数,利用这些参数可以通过公式计算垂线偏差值。 总之,利用EGM96EGM2008模型可以分别计算高程异常重力异常垂线偏差,通过查询这些模型中的数据,结合相应的计算公式,可以得到所需的结果。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值