MATLAB实现高斯-克吕格投影正算-即经纬度转为x和y

高斯-克吕格投影简介

更新2020-06,重新整理一下脚本函数

高斯-克吕格投影,是由德国数学家、物理学家、天文学家高斯于1822年代首次提出,后经德国大地测量学家克吕格于1912年对投影公式加以补充,故称高斯-克吕格投影,又名"等角横切椭圆柱投影”,是地球椭球面和平面间正形投影的一种。该投影是用一个设想的圆柱筒横置于地球表面,与地球相切于某一经线(中央经线),圆柱的中心轴位于赤道面内,按等角条件将地球椭球面投影于椭球圆柱面上。
为控制投影变形,先按一定的经度差(6°或者3°)将地球表面划分为若干投影带,再使圆柱面依次和每一带的中央经线相切,并把各带中央经线东西两侧一定经度差范围内的经纬线网投影到圆柱上,然后从两级将该圆柱面切开展平,构成地球各带经纬线网在平面上的图形。

高斯-克吕格投影正算公式

x = X + N t c o s 2 B l 2 ρ 2 [ 0.5 + 1 24 ( 5 − t 2 + 9 η 2 + 4 η 4 ) c o s 2 B l 2 ρ 2 + 1 720 ( 61 − 58 t 2 + t 4 ) c o s 4 B l 4 ρ 4 ] ( 1 ) y = N c o s B l ρ [ 1 + 1 6 ( 1 − t 2 + η 2 ) c o s 2 B l 2 ρ 2 + 1 120 ( 5 − 18 t 2 + t 4 + 14 η 2 − 58 t 2 η 2 ) c o s 4 B l 4 ρ 4 ] ( 2 ) \begin{alignedat}{4} x=X+Ntcos^2{B}\frac{l^2}{\rho^2} \lbrack 0.5+ \frac{1}{24}(5-t^2+9\eta^2+4\eta^4)cos^2{B}\frac{l^2}{\rho^2} +\frac{1}{720} (61-58t^2+t^4) cos^4{B}\frac{l^4}{\rho^4}\rbrack \qquad (1) \\ y=Ncos{B}\frac{l}{\rho}[1+\frac{1}{6}(1-t^2+\eta^2)cos^2{B}\frac{l^2}{\rho^2} + \frac{1}{120}(5-18t^2+t^4+14\eta^2-58t^2\eta^2)cos^4{B}\frac{l^4}{\rho^4}] \qquad (2) \end{alignedat} x=X+Ntcos2Bρ2l2​[0.5+241​(5−t2+9η2+4η4)cos2Bρ2l2​+7201​(61−58t2+t4)cos4Bρ4l4​](1)y=NcosBρl​[1+61​(1−t2+η2)cos2Bρ2l2​+1201​(5−18t2+t4+14η2−58t2η2)cos4Bρ4l4​](2)​其中, X X X为中央子午线弧长, N N N为卯酉圈曲率半径, t = t a n B t=tan{B} t=tanB, ρ = 180 × 3600 / π \rho=180×3600/\pi ρ=180×3600/π为弧度秒, η 2 = e ′ 2 c o s 2 B \eta^2 = e'^2cos^2{B} η2=e′2cos2B, e ′ e' e′为地球椭球第二偏心率, B B B为当地纬度。卯酉圈曲率半径及中央子午线弧长公式如下: N = a 1 − e 2 s i n 2 B ( 3 ) N=\frac{a}{\sqrt{1-e^2sin^2{B}}} \qquad (3) N=1−e2sin2B ​a​(3) X = a ( 1 − e 2 ) ( A ′ a r c B − B ′ s i n 2 B + C ′ s i n 4 B − D ′ s i n 6 B + E ′ s i n 8 B − F ′ s i n 10 B + G ′ s i n 12 B ) ( 4 ) X =a(1-e^2)(A'arcB-B'sin{2B}+C'sin{4B}-D'sin{6B}\\ +E'sin{8B}-F'sin{10B}+G'sin{12B}) \qquad (4) X=a(1−e2)(A′arcB−B′sin2B+C′sin4B−D′sin6B+E′sin8B−F′sin10B+G′sin12B)(4)子午线弧长计算公式中的各项符号具体公式如下: A ′ = 1 + 3 4 e 2 + 45 64 e 4 + 175 256 e 6 + 11025 16384 e 8 + 43659 65536 e 10 + 693693 1048576 e 12 A'=1+\frac{3}{4}e^2+\frac{45}{64}e^4+\frac{175}{256}e^6+\frac{11025}{16384}e^8+\frac{43659}{65536}e^{10}+\frac{693693}{1048576}e^{12} A′=1+43​e2+6445​e4+256175​e6+1638411025​e8+6553643659​e10+1048576693693​e12 B ′ = 3 8 e 2 + 15 32 e 4 + 525 1024 e 6 + 2205 4096 e 8 + 72765 131072 e 10 + 297297 524288 e 12 B'=\frac{3}{8}e^2+\frac{15}{32}e^4+\frac{525}{1024}e^6+\frac{2205}{4096}e^8+\frac{72765}{131072}e^{10}+\frac{297297}{524288}e^{12} B′=83​e2+3215​e4+1024525​e6+40962205​e8+13107272765​e10+524288297297​e12 C ′ = 15 256 e 4 + 105 1024 e 6 + 2205 16384 e 8 + 10396 65536 e 10 + 1486485 8388608 e 12 C'=\frac{15}{256}e^4+\frac{105}{1024}e^6+\frac{2205}{16384}e^8+\frac{10396}{65536}e^{10}+\frac{1486485}{8388608}e^{12} C′=25615​e4+1024105​e6+163842205​e8+6553610396​e10+83886081486485​e12 D ′ = 35 3072 e 6 + 105 4096 e 8 + 10395 262144 e 10 + 55055 1048576 e 12 D'=\frac{35}{3072}e^6+\frac{105}{4096}e^8+\frac{10395}{262144}e^{10}+\frac{55055}{1048576}e^{12} D′=307235​e6+4096105​e8+26214410395​e10+104857655055​e12 E ′ = 315 131072 e 8 + 3465 524288 e 10 + 99099 8388608 e 12 E'=\frac{315}{131072}e^8+\frac{3465}{524288}e^{10}+\frac{99099}{8388608}e^{12} E′=131072315​e8+5242883465​e10+838860899099​e12 F ′ = 693 1310720 e 10 + 9909 5242880 e 12 F'=\frac{693}{1310720}e^{10}+\frac{9909}{5242880}e^{12} F′=1310720693​e10+52428809909​e12 G ′ = 1001 8388608 e 12 G'=\frac{1001}{8388608}e^{12} G′=83886081001​e12其中, e e e为地球椭球第一偏心率, a a a为地球椭球长半轴。
注 意 1 : 当 纬 度 已 经 为 弧 度 ( π = 180 ° ) 时 ρ = 1 ; \color{blue}注意1:当纬度已经为弧度(\pi=180°)时\rho=1; 注意1:当纬度已经为弧度(π=180°)时ρ=1;
注 意 2 : 中 国 地 区 内 , 为 了 避 免 出 现 负 数 , y 需 要 加 上 500000 m . \color{blue}注意2:中国地区内,为了避免出现负数,y需要加上500000m. 注意2:中国地区内,为了避免出现负数,y需要加上500000m.
在WGS-84坐标系中, a = 6378137 m , f = 1 / 298.257223563 , e 2 = 2 f − f 2 , e ′ 2 = ( 2 f − f 2 ) / ( 1 − f 2 ) a=6378137m,f = 1/298.257223563,e^2=2f-f^2,e'^2={(2f-f^2)}/{(1-f^2)} a=6378137m,f=1/298.257223563,e2=2f−f2,e′2=(2f−f2)/(1−f2)

高斯-克吕格投影的MATLAB函数

function Pos = GaussProDirect(Coord)
% INPUT // Units of longitude and latitude is RAD (°)
% REF[1]// 程鹏飞,等.2000国家大地坐标系实用宝典[M].北京:测绘出版社,2008.
% REF[2]// 孔祥元,郭际明.大地测量学基础(第二版)[M].武汉:武汉大学出版社,2010.
% Longitude of the Earth central meridian
MerLon = 114;
% Extract the longitude and latitude
Pos = Coord;
Eth.D2R = 0.0174532925199433;  % pi/180
Lat = Coord(1)*Eth.D2R;
Lon = Coord(2)*Eth.D2R - MerLon*Eth.D2R;
%% Earth orientation parameters of WGS 84 Coordinate System
Eth.R0 = 6378137.0;
Eth.f = 1/298.257223563;
Eth.Rp = 6356752.3142452;      % R0*(1 - f);
% First Eccentricity and its Squared
Eth.e12 = 0.006694379990141;   % (2f - f*f);
Eth.e11 = 0.081819190842622;   % sqrt(2f - f*f);
% Second Eccentricity and its Squared
Eth.e22 = 0.00673949674227643; % (2f - f*f)/(1 + f*f - 2*f);
Eth.e21 = 0.08209443794969570; % sqrt((2f - f*f)/(1 + f*f - 2*f));
%% 高斯投影正算公式
RN = Eth.R0/sqrt(1 - Eth.e12*sin(Lat)*sin(Lat));
Lon2 = Lon*Lon;   Lon4 = Lon2*Lon2;
tnLat = tan(Lat); tn2Lat = tnLat*tnLat; tn4Lat = tn2Lat*tn2Lat;
csLat = cos(Lat); cs2Lat = csLat*csLat; cs4Lat = cs2Lat*cs2Lat;
Eta2 = Eth.e22*cs2Lat;   Eta4 = Eta2*Eta2;
NTBLP = RN*tnLat*cs2Lat*Lon2;
COE1 = (5 - tn2Lat + 9*Eta2 + 4*Eta4)*cs2Lat*Lon2/24;
COE2 = (61 - 58*tn2Lat + tn4Lat)*cs4Lat*Lon4/720;
x = Merdian(Eth,Lat) + NTBLP*(0.5 + COE1 + COE2);
NBLP = RN*csLat*Lon;
COE3 = (1 - tn2Lat + Eta2)*cs2Lat*Lon2/6;
COE4 = (5 - 18*tn2Lat + tn4Lat + 14*Eta2 - 58*tn2Lat*Eta2)*cs4Lat*Lon4/120;
y = NBLP*(1 + COE3 + COE4) + 500000;
Pos(1) = x; Pos(2) = y;
endfunction X0 = Merdian(Eth,Lat)
% REF//过家春.子午线弧长公式的简化及其泰勒级数解释[J].测绘学报,2014,43(2):125-130.
S0 = Eth.R0*(1 - Eth.e12);
e2 = Eth.e12;
e4 = e2*e2;
e6 = e4*e2;
e8 = e6*e2;
e10 = e8*e2;
e12 = e10*e2;
A1 = 1 + 3*e2/4 + 45*e4/64 + 175*e6/256 + 11025*e8/16384 + 43659*e10/65536 + 693693*e12/1048576;
B1 = 3*e2/8 + 15*e4/32 + 525*e6/1024 + 2205*e8/4096 + 72765*e10/131072 + 297297*e12/524288;
C1 = 15*e4/256 + 105*e6/1024 + 2205*e8/16384 + 10395*e10/65536 + 1486485*e12/8388608;
D1 = 35*e6/3072 + 105*e8/4096 + 10395*e10/262144 + 55055*e12/1048576;
E1 = 315*e8/131072 + 3465*e10/524288 + 99099*e12/8388608;
F1 = 693*e10/1310720 + 9009*e12/5242880;
G1 = 1001*e12/8388608;
X0 = S0*(A1*Lat - B1*sin(2*Lat) + C1*sin(4*Lat) - D1*sin(6*Lat) +...E1*sin(8*Lat) - F1*sin(10*Lat) + G1*sin(12*Lat));
end

函数代码使用示例

示例中纬度为30.4691868227°,经度为114.3510760836°,中央子午线经度为114°(武汉),参考真值为:x(北向) = 3372178.140m,y(东向) = 533713.649m。计算结果如下。可以看出:计算结果正确。

参考资料

[1] 程鹏飞,成英燕,文汉江,等.2000国家大地坐标系实用宝典[M]. 北京:测绘出版社,2008.
[2] 孔祥元, 郭际明. 大地测量学基础[M]. 武汉: 武汉大学出版社, 2005.
[3] 过家春.子午线弧长公式的简化及其泰勒级数解释[J].测绘学报,2014,43(2):125-130.

完毕

MATLAB实现高斯-克吕格投影正算相关推荐

  1. 高斯——克吕格投影正算

    高斯--克吕格投影正算

  2. 高斯——克吕格投影反算

    高斯--克吕格投影反算

  3. 保姆级C语言版高斯坐标正算反算倾情奉献!

    文章目录 正反算原理速递 C语言正反算实现 坐标正算 坐标反算 扩展阅读: [小程序]坐标正算神器V1.0(附C/C#/VB源程序) 测量人看过来:多种语言编写的测量坐标反算神器附源码(C#/VB) ...

  4. 基于MATLAB的批量3度带高斯正算(LB--xy)

    文章目录 一.高斯正算原理 (1)高斯-克吕格投影 (2)高斯正算原理以及公式(LB----xy) 二.MATLAB高斯正算详解代码 1.源数据 2.源码 3.运行结果 一.高斯正算原理 (1)高斯- ...

  5. ArcGIS基础:实现高斯正算与反算

    1.[高斯正算]:由经纬度坐标计算平面的XY坐标(投影实现地理坐标系转为投影坐标系). 实验数据:如下所示为高斯正算原始的[度分秒数据]. 首先要将[度分秒]的数据格式转换为[十进制]的形式. 如下所 ...

  6. matlab生成满足二维高斯(正…

    原文地址:matlab生成满足二维高斯(正态)分布的随机数/作图程序作者:乐韵悠杨 产生满足二维高斯(正态)分布的随机数: mu=[0,2];%数学期望 sigma=[1 0;0,4];%协方差矩阵 ...

  7. matlab大地主题正算代码,大地主题解算正算

    其关键问题是找出椭球 面上的大地元素与球面上相应元素之间的关系式,同时解决在球面上进行大地主题解算的方 法. 正算流程: 1.计算起点的归化纬度 2.计算辅助...... 其关键问题是找出椭球 面上的 ...

  8. 【Matlab笔记】测绘工程专业正算、反算、度分秒转弧度函数

    上传,作为网络笔记 正算 %%坐标正算函数,起点坐标x1,y1 function [x2,y2]=zhengsuan(x1,y1,A,L)x2=x1+L*cos(A)y2=y1+L*sin(A) en ...

  9. 对高斯——克吕格投影的认识

    <script language=javascript> allkey=allkey+"72537836a53a6edfa3cc2b95_"; </script& ...

最新文章

  1. 漫画:如何用 K8s 实现 CI/CD 发布流程?
  2. 学python心得体会500字-Python初学心得体会
  3. java panel 左对齐,将Shape的中心与JPanel的中心对齐 - java
  4. win10下安装PHP_CodeSniffer 检查编码规范
  5. Bent Normal
  6. chisel快速入门(一)
  7. P2587 [ZJOI2008]泡泡堂 神仙贪心
  8. 【今日CV 计算机视觉论文速览 第131期】Mon, 17 Jun 2019
  9. java569_java如何实现这样一个程序
  10. Java 8中的Optional 类型与 Kotlin 中的可空类型
  11. qt中如何刷新一下屏幕_感情维护:如何在恋爱关系中分开一下,然后更坚强地回来...
  12. 【图像处理】基于matlab GUI图像滤镜(马赛克+蓝色透镜+素描)【含Matlab源码 1145期】
  13. 阿里云公司简介介绍资料
  14. lnmp 一键安装
  15. 【kafka思考】最小成本的扩缩容副本设计方案
  16. keras中 shape参数如何设置
  17. 电网数字化转型经验分享
  18. Vue使用自定义字体
  19. shell学习四十三天----临时性文件的建立与使用
  20. 一位女程序员兼俩小子妈咪的人生历程(5)

热门文章

  1. 基于FPGA的除法器设计
  2. 《达·芬奇密码》解读解密
  3. php的封装继承多态,PHP封装、继承和多态
  4. CSS渐变字体、镂空字体、input框提示信息颜色、给图片加上内阴影
  5. Canal 整合 canal-admin ,canal-adapter
  6. 还在手动测试?那是那还不知道Python自动化测试的强大之处
  7. 自动将BAT文件转换为EXE
  8. 计算机木桶原理,何谓性价比?浅谈摩尔定律和木桶原理
  9. Android 之dragger使用
  10. Java实用工具类五:URL转码、解码类