当前位置:文档之家› 第八章 高斯投影

第八章 高斯投影

第八章  高斯投影
第八章  高斯投影

第八章 高斯投影

地面-----椭球面-----平面 熟悉,简单 地图投影

高斯—克吕格投影(高斯投影)

§8.1高斯投影概述

8.1.1投影与变形

所谓地球投影,简略说来就是将椭球面各元素(包括坐标、方向和长度)按一定的数学法则投影到平面上。研究这个问题的专门学科叫地图投影学。这里所说的数学法则可用下面两个方程式表示:

)

,(),(21B L F y B L F x == (8-1)

式中L ,B 是椭球面上某点的大地坐标,而y x ,是该点投影后的平面(投影面)直角坐标。

式(8-1)表示了椭球面上一点同投影面上对应点之间坐标的解析关系,也叫做坐标投影公式。投影问题也就是建立椭球面元素与投影面相对应元素之间的解析关系式。投影的方法很多,每种方法的本质特征都是由坐标投影公式F 的具体形式体现的。

椭球面是一个凸起的、不可展平的曲面,若将这个曲面上的元素(比如一段距离、一个角度、一个图形)投影到平面上,就会和原来的距离、角度、图形呈现差异,这一差异称作投影的变形。

地图投影必然产生变形。投影变形一般分为角度变形、长度变形和面积变形三种。在地图投影时,我们可根据需要使某种变形为零,也可使其减小到某一适当程度。因此,地图投影中产生了所谓的等角投影(投影前后角度相等,但长度和面积有变形)、等距投影(投影前后长度相等,但角度和面积有变形)、等积投影(投影前后面积相等,但角度和长度有变形)等。

8.1.2控制测量对地图投影的要求

1.应采用等角投影(又称正形投影)。这样①保证了在三角测量中大量的角度元素在投影前后保持不变,免除了大量的投影工作;②所测制的地图

可以保证在有限的范围内使得地图上图形同椭球上原形保持相似,给国民经济建设中识图用图带来很大方便。如图多边形,相应角度相等,但长度有变化,投影面上的边长与原面上的相应长度之比,称为长度比。图中,

EA A E AB B A m '

'==''=

即在微小范围内保证了形状的相似性,当ABCDE 无限接近时,可把该多边形看作一个点,因此在正形投影中,长度比m 仅与点的位置有关,与方向无关,给地图测制及地图的使用等带来极大方便。

2.要求长度和面积变形不大,并能用简单公式计算由变形而引起的改正数。为此地图投影应该限制在不大的投影范围内,从而控制变形并能进行简单计算。

3.要求投影能很方便地按分带进行,并能按高精度的、简单的、同样的计算公式和用表把各带联成整体。保证每个带进行单独投影,并组成本身的直角坐标系统,然后再将这些带用简单的数学方法联接在一起,从而组成统一的系统。

8.1.3高斯投影的基本概念

高斯投影又称横轴椭圆柱等角投影,是德国测量学家高斯于1825~1830年首先提出的。实际上,直到1912年,由德国另一位测量学家克吕格推导出实用的坐标投影公式后,这种投影才得到推广,所以该投影又称高斯-克吕格投影。想象有一椭圆柱面横套在地球椭球体外面,并与某一条子

午线(称中央子午线或轴子午线)相切,椭圆柱的中心轴通过椭球体中心,然后用一定的投影方法将中央子午线两侧各一定经差范围内的地区投影到椭圆柱面上,再将此柱面展开即成为投影面。

我国规定按经差06和03度进行投影分带,为大比例尺测图和工程测量采用03带投影。特殊情况下工程测量控制网也可用05.1带或任意带。

高斯投影06带自00子午线起每隔经差06自西向东分带,依次编号1,2,3,…。我国06中央子午线的经度,由0

69起每隔06而至0

135,共计12带,

带号用n 表示,中央子午线的经度用0L 表示,360

-=n L 。

高斯投影03带是在06带的基础上分成的,它的中央子午线一部分同06带中央子午线重合,一部分同06带分界子午线重合,带号用n /表示,03带中央子午线用L 表示,关系是:n L

'=3。

在投影面上,中央子午线和赤道的投影都是直线,并且以中央子午线和赤道的交点O 作为坐标原点,以中央子午线的投影为纵坐标轴,以赤道的投影为横坐标轴,这样便形成了高斯平面直角坐标系。在我国x 坐标均为正,y 坐标的最大值(在赤道上)约为330KM 。为避免出现负的横坐标,可在横坐标上加500KM 。此外还应在坐标前面冠以带号,这种坐标称为国家统一坐标。如某点Y=19123456.789m ,该点位于19带内,其相对于中央子午线而言的横坐标是:首先去掉带号,再减去500KM ,最后得y=-376543.211m 。

由于分带造成了边界子午线两侧的控制点和地形图处于不同的投影带内,为了把各带连成整体,一般规定各投影带要有一定的重叠度,其中每一06带向东加宽03',向西加宽5.751''或,这样在上述重叠范围内,控制点将有两套相邻带的坐标值,地形图将有两套公里格网,从而保证了边缘地区

控制点间的互相应用,也保证了地图的拼接和使用。

由此可见,由于高斯投影是正形投影,故保证了投影的角度不变性、图形的相似性以及在某点各方向上长度比的同一性;由于采用了同样法则的分带投影,既限制了长度变形,又保证了在不同投影带中采用相同的简单公式和数表进行由于变形引起的各项改正的计算,且带与带间的互相换算也能用相同的公式和方法进行。高斯投影这些优点使用权它得到广泛的推广和具有国际性。

8.1.4椭球面三角系化算到高斯平面

①高斯投影坐标计算y

B,

, ;②平面子午线收敛角r;③方向改化,距离

l

x

改化;④换带计算。

§8.2正形投影的一般条件

研究高斯投影应首先满足正形投影的一般条件,然后加上高斯投影的特殊条件,即可导出高斯投影坐标正反算公式。推求时抓住正形投影区别于其它投影的特殊本质:在正形投影中,长度比与方向无关。

⑴建立长度比关系

在微分直角三角形P 1P 2P 3和P 1/P 2/P 3/中有:

2

222

22)cos ()(dy dx ds Bdl N MdB dS +=+= (8-5)

则长度比为

??

?

?????+??? ??+=++=??

?

??=2

2

22

22

2222

2

cos )cos ()cos ()(dl B N MdB B N dy dx Bdl N MdB dy dx dS ds m (8-6) ⑵引进等量纬度 B N MdB

dq cos = (8-7)

则 ?

=

B

B N MdB

q 0

cos (8-8)

因q 只与B 有关,故可把dq 和dl 看作互为独立的变量的微分。则(8-6)式可表示为:

[]2

22

222)()(dl dq r dy

dx m ++= (8-9)

地图投影就是建立x,y 与L,B 的函数关系,因B 与q 有确定的关系,因此投影问题也可以说是建立x,y 与q,l 的函数关系。设函数关系式为:

),(),(q l y y q l x x == (8-10)

全微分

dl l

x

dq q x dx ??+??=

dl l y dq q y dy ??+??= (8-11) 代入(8-5)2式得:

2

22

2

2

???

?????+??+????????+??=+=dl l y dq q

y dl l x dq q x dy dx ds

()()2

2

2

22

22dl l y l x dl dq l y q y l x q x dq q y q x ??????????? ????+??? ????+????????????+?????+???

????????? ????+???? ????=令

???

?

???????? ????+???? ????=22q y q x E ,

???

????????+?????=l y q y l x q x F , (8-12)

???

???????? ????+??? ????=22l y l x G

得:

()()()()

2

2

22dl G dl dq F dq E ds ++= (8-13)

则(8-9)式变为:

()()()()

()

()

[]

2

2

2

2

2

22dl dq r

dl G dl dq F dq E m +++=

(8-14)

⑶引入方向,由图知:

(

)

dl

dq

Bdl N MdB P P P P A tg ===-cos 9031320

(8-15) 则

dq tgA dl ?= (8-16)

代入(8-14)式

()()()

()

()

[]

2

2

2

2

2

22

2

22dq A tg dq r

dq A Gtg dq FtgA dq E m +++=

2

22222sin cos sin 2cos sec 2r

A

G A A F A E A r A Gtg FtgA E ++=++=(8-17) 若想使上式中m 与A 无关,必须满足条件:

F=0、E=G (8-18)

将条件代入(8-12)式得:

?????

???

??? ????+??? ????=???????????? ????+???? ????=??

?????????+?????=22220

l y l x q y q x l y q y l x q x F (8-19) 由F=0得,

q

x l y

q y l

x ?????

??-

=??

代入(8-19)2式得:

?

???????+??????=??+??2222

2

2)()()()

(

)()(q y q x q

x l

y q

y q x 整理得:

2

2

??? ????=???

? ????l y q x 或02

2=?

??? ????+???? ????q y q x 上式开方并代入(19)式得柯西(Cauchy)—黎曼(Riemann)条件:

l y q x ??±=??

q

y l x ??=?? (8-20) ⑷通常,在选取椭球面和平面的坐标轴方向时,要求,椭球面上沿经线方向q(或B)增加时平面上x 也增加,即q x ??/要求为正;沿纬线方向l 增加时,平面上的y 也增加,即l y ??/也要求为正,对此取

l

y q x ??=?? 相应的 q

y l x ??-=?? (8-20) (8-20)(8-21)式即为椭球?平面正形投影的一般条件,是各类正形投影方法都必须遵循的法则,高斯坐标正、反算公式均以此为基础。

当满足F=0,E=G 条件时,长度比的公式:

?????

?????? ????+??? ????=???????????? ????+???? ????=2222222

cos 1cos 1l y l x B N q y q x B N m (8-22)

§8.3高斯投影坐标正反算公式

任何一种投影①坐标对应关系是最主要的;②如果是正形投影,除了满足正形投影的条件外(C-R 偏微分方程),还有它本身的特殊条件。 8.3.1高斯投影坐标正算公式: B,l ? x,y

高斯投影必须满足以下三个条件:

①中央子午线投影后为直线;②中央子午线投影后长度不变;③投影具有正形性质,即正形投影条件。

由第一条件知中央子午线东西两侧的投影必然对称于中央子午线,即(8-10)

式中,x 为l 的偶函数,y 为l 的奇函数;0330

'≤l ,即20/1/≈''''ρl ,如展

开为l 的级数,收敛。

+++=++++=553316644220l m l m l m y l m l m l m m x (8-33)

式中 ,,10m m 是待定系数,它们都是纬度B 的函数。 由第三个条件知:

q y l x l y q x ??-=????=??,

(8-33)式分别对l 和q 求偏导数并代入上式

----=++++++=

+++553315

63424

42204523164253l dq dm l dq dm l dq dm l m l m l m l dq

dm l dq dm dq dm l m l m m (8-34) 上两式两边相等,其必要充分条件是同次幂l 前的系数应相等,即

dq dm m dq

dm m dq

dm m 231

20

13121?

=?

-==

(8-35)

(8-35)是一种递推公式,只要确定了

0m 就可依次确定其余各系数。

由第二条件知:位于中央子午线上的点,投影后的纵坐标x 应等于投影前从赤道量至该点的子午线弧长X ,即(8-33)式第一式中,当0=l 时有:

0m X x ==

(8-36)

顾及(对于中央子午线)

B V M

r M B N dq dB M dB

dX

cos cos 2

==== 得:

B V

c

B N r dq dB dB dX dq dX dq dm m cos cos 01===?===(8-37,38)

B B N

dq dB dB dm dq dm m cos sin 2

2121112=?-=?-= (8-39)

依次求得6543,,,m m m m 并代入(8-33)式,得到高斯投影正算公式

6

42564

42234

22)5861(cos sin 720)495(cos 24cos sin 2l t t B B N l

t B simB N l B B N X x ''+-'

'+''++-''+''?''+=ρηηρρ 5

22242553

2233

)5814185(cos 120)1(cos 6cos l t t t B N l

t B N l B N y ''-++-'

'+''+-''+''?''=

ηηρηρρ (8-42) 8.3.2高斯投影坐标反算公式

x,y ?B,l 投影方程:

),()

,(21y x l y x B ??== (8-43)

满足以下三个条件:

①x 坐标轴投影后为中央子午线是投影的对称轴;② x 坐标轴投影后长度不变;③投影具有正形性质,即正形投影条件。 高斯投影坐标反算公式推导要复杂些。

①由x 求底点纬度(垂足纬度)f B ,对应的有底点处的等量纬度f q ,求x,y 与l q q f

,-的关系式,仿照(8-10)式有,

),(),(y x l l y x q q ==

由于y 和椭球半径相比较小(1/16.37),可将l q ,展开为y 的幂级数;又由于是对称投影,q 必是y 的偶函数,l 必是y 的奇函数。

++=+++=33144220y n y n l y n y n n q (8-45)

,,,210n n n 是待定系数,它们都是x 的函数.

由第三条件知:

y l x q ??=

??,

y

q

x l ??-=??, (8-21) (8-45)式分别对x 和y 求偏导数并代入上式

?

?

? ??+++-=++++++=+++ 553315

6342452314

422064253y dx dn y dx dn y dx dn y n y n y n y n y n n y dx

dn y dx dn dx dn 上式相等必要充分条件,是同次幂y 前的系数相等,

,41,31,21,3

4231201dx

dn n dx dn n dx dn n dx dn n -==-==

第二条件,当y=0时,点在中央子午线上,即x=X ,对应的点称为底点,其纬度为底点纬度f B ,也就是x=X 时的子午线弧长所对应的纬度,设所对应的等量纬度为f q 。也就是在底点展开为y 的幂级数。 由(8-45)1式

f

q n =0

依次求得其它各系数

f

f f f f f f r B N M B N M dX dB dB dq dX dq dX dq dX dn n 1cos 11cos 01==

??? ??=??? ??=??? ??===

(8-51)

f

f f f f B N t dX dB dB dn dX dn n cos 221212112

-=???

??-=??? ??-= (8-51)1

………… 将6420,,,n n n n 代入(8-45)1式得

()

()

6

222426

4

42242

2484612018061cos 720465cos 24cos 2y

t t t

B N t y t

B N t y B N t q q f

f f f

f f

f f

f

f f f

f

f

f

f

f f ηηηη++++-

-+++

-=

-

(8-55)1

()

f f

f

f f f f

f

f

f

B N y t t B N y t q q 2

66

42222

4422

cos 24)465(cos 4ηη-++-

=

-

()

f

f

f

f

B N y t q q 3

66

33

cos 8-=

- (8-55)

将531,,n n n 代入(8-45)2式得(8-56)2式。(最后表达式) ②求f B B -与y x ,的关系。

由(8-7)式dB B

N M

dq cos =知: )(),(f f q f B q f B == (8-47)

)()(dq q f q q q f B f f f +=-+= (8-48)

按台劳级数在f q 展开

+???? ??+???? ??+???? ??+=3

332226121)(dq dq B d dq dq B d dq dq dB q f B f f f

f (8-49) ()()() +-???? ??+-???? ??+-???? ??=-3332226121f f f f f f

f q q dq B d q q dq B d q q dq dB B B (8-50)

由(8-7)式可求出各阶导数:

f f f

B V dq dB cos 2

=???? ?? (8-53) )341(cos sin 4222f f f f f B B dq B d ηη++-=???? ?? (8-54)1 )2771351(cos 2442222333f f f f f f f f f

t t t B dq B d ηηηη-+-+--=???? ??(8-54)2 …………………

将式(8-55)1,(8-55),(8-53),(8-54)代入(8-50)式并按y 幂集合得高斯投影坐标反算公式(8-56)1,

()

()

()(

)

2

22425

52

23

36

4254

222232

8624285cos 12021cos 6cos 459061720935242f f f f f f

f f f f

f f f f

f f

f f

f

f f f f

f f f

f f f t t t B N y t B N y B N y l y t t y N

M t y t t

N

M t y N M t B B ηηηηη+++++++-=++-

-+++

-=

(8-56)

归纳由),(y x p 求),(l B P 的基本思想:由点),(y x p 得到底点

)0,(x f ,将底点f 作为过渡,也就是说将坐标原点o 移到f 点,先求

)

,(),(21y x Q l y x Q q q f ==-关系式,再将

),(1y x Q q q f =-关系式代入

)(3f f q q Q B B -=-关系式得),(4y x Q B B f =-关系式,最后将坐标原

点移回到o 点,从而求得),(l B P 点。

8.3.3高斯投影坐标正反算公式的几何解释

①当B=0时x=X=0,y 则随l 的变化而变化,这就是说,赤道投影为一直线且为y 轴。当l=0时,则y=0,x=X,这就是说,中央子午线投影亦为直线,且为x 轴,其长度与中央子午线长度相等。两轴的交点为坐标原点。②当l=常数时(经线),随着B 值增加,x 值增大,y 值减小,这就告诉我们,经线是凹向中央子午线的曲线,且收敛于两极。又因B B cos )cos(=-,即当用-B 代替B 时,y 值不变,而x 值数值相等符号相反,这就说明赤道是投影的对称轴。③当B=常数时(纬线),随着的l 增加,x 值和y 值都增大,这就是说,纬线是凸向赤道的曲线。又当用-l 代替l 时,x 值不变,而y 值数值相等符号相反,这就说明,中央子午线是投影对称轴。由于满足正形投影条件,所以经线和纬线的投影是互相垂直的。④距中央子午线愈远的子午线,投影后弯曲愈厉害,表明长度变形愈大。

§8.4高斯投影计算的实用公式

1子午线弧长计算公式 改写并扩充(7-65)(7-64)两式

)8sin()6sin()4sin()2sin(864200B a B a B a B a B a X ++++=

)1638417640512525646043)(1(218642

22e e e e e a a +++--=

)16384

88205122106415)(1(418642

4e e e e a a ++-=

)16384

252051235)(1(61862

6e e e a a +--=

)16384

315)(1(8182

8e e a a -=

2正算公式(8-67)(8-81)

00/cos ρBl p =

2

/)12/)30/))58(61())49(5((1(22222222p p p t t t Nt X x -++++-++=ηηp p p t t t N y )6/)20/)14)5818(5()1((1(22222222ηηη+--+++-+=

)3/)5/)2())23(1((1(sin 22222

00p p t Bl r -++++=ηη

式中:

B t tan = 22

)c o s (B

e '=η 221η+=V V c N /= 0000L L l -=

3 底点纬度公式

)

16384

110255123506445431)(1(8

6422

0e e e e e a a ++++-=

00Xq B = (单位:弧度)

)))

sin (sin (sin )(2sin(028*********B q q B q B q B B B f ++++=(单位:弧度)

式中:

01a q =

)16384

11025512350644543(218

6422e e e e q +++=

)163845823951211086463(318

644e e e q ++-=

)16384

68484512604(318

66e e q +=

)16384

26328(318

8e q -=

4 反算公式(8-71)(8-83)

f N y q /=

2/)12/)30/))2(4561())91(35((1(2

22222222000q q q t t t t t V B B f

f f f f f f f +++-++-+-=ηρ)6/)20/))43(2)67(45()21((1(cos /2222222200q q t t t t B q l f

f f f f f f +++++++-+=ηηρ)3/)5/))35(2()1((1(22222200q q t t t qt r f

f f f f +++-+-+=ηρ 式中:

f f B t tan = 2

2)c o s (f

f B e '=η 221f f V η+= f f V c N /=

§8.5平面子午线收敛角

8.5.1定义,用途。 8.5.2公式

1由l B ,求r 的公式。由于正形投影的关系,B=常数(或q=常数)与x=常数直线在P /点所组成的角也是

r 。设P /沿B=常数(或q=常数)的曲线移到P /1,P /与P /1无限接近,

dy

dx

tgr = (8-77)

),()

,(21l q f y l q f x ==全微分

dl

l

y

dy dl

l

x dq q f dl l f dx ??=??=??+??=11 因此有: 根据C-R 条件又有

(8-77)1

q

x q

y tgr ????-=

(8-77)2

上两式用于由l B ,求r 。根据(8-42)式求偏导数

l

y l x ????,,求l

y ??1并代入上式得tgr ,再按反正切展开即得由l B ,求r 的(8-81)式。

l

y l

x tgr ????=

高斯投影正反算公式 新

高斯投影坐标正反算 一、相关概念 大地坐标系由大地基准面和地图投影确定,由地图投影到特定椭圆柱面后在南北两极剪开展开而成,是对地球表面的逼近,各国或地区有各自的大地基准面,我国目前主要采用的基准面为:基准面,为GPS基准面,17届国际大地测量协会上推荐,椭圆柱长半轴a=6378137m,短半轴b=; 2.西安80坐标系,1975年国际大地测量协会上推荐,椭圆柱长半轴a=6378140m,短半轴b=; 3.北京54坐标系,参照前苏联克拉索夫斯基椭球体建立,椭圆柱长半轴a=6378245m, 短半轴b=; 通常所说的高斯投影有三种,即投影后: a)角度不变(正角投影),投影后经线和纬线仍然垂直; b)长度不变; c)面积不变; 大地坐标一般采用高斯正角投影,即在地球球心放一点光源,地图投影到过与中央经线相切的椭圆柱面上而成;可分带投影,按中央经线经度值分带,有每6度一带或每3度一带两种(起始带中央经线经度为均为3度,即:6度带1带位置0-6度,3度带1带位置度),即所谓的高斯-克吕格投影。

图表11高斯投影和分带 地球某点经度(L)为过该点和地球自转轴的半圆与子午线所在半圆夹角,东半球为东经,西半球为西经;地球某点纬度(B)为所在水平面法线与赤道圆面的线面角。 正算是已知大地坐标(L,B),求解高斯平面坐标(X,Y),为确保Y值为正,Y增加500公里;反算则是由高斯平面坐标(X,Y)求解大地坐标(L,B)。 二、计算模型: 地球椭球面由椭圆绕地球自转轴旋转180度而成。 图表 1 椭圆 椭圆长半轴a,椭圆短半轴b, 椭圆方程:

(1) 图表2椭球面 椭球面方程: y2 a2+ x2 b2 + z2 a2 =1 /*************************************** 与网上充斥的将函数关系先展开为泰勒级数,再依据投影规则确定各参数不同,本文直接依据空间立体三角函数关系得出结果。 *****/ (一)正算 由图表1,

高斯投影坐标正反算VB程序

高斯投影坐标正反算 V B程序 文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)

高斯投影坐标正反算 学院: 班级: 学号: 姓名: 课程名称: 指导老师:

实验目的: 1.了解高斯投影坐标正反算的基本思想; 2.学会编写高斯正反算程序,加深了解。 实验原理: 高斯投影正算公式中应满足的三个条件: 1. 中央子午线投影后为直线; 2. 中央子午线投影后长度不变; 3. 投影具有正形性质,即正形投影条件。 高斯投影反算公式中应满足的三个条件: 1. x坐标轴投影成中央子午线,是投影的对称轴; 2. x轴上的长度投影保持不变; 3. 正形投影条件,即高斯面上的角度投影到椭球面上后角度没有 变形,仍然相等。 操作工具: 计算机中的 代码: Dim a As Double, b As Double, x As Double, y As Double, y_#

Dim l_ As Double, b_ As Double, a0#, a2#, a4#, a6#, a8#, m2#, m4#, m6#, m8#, m0#, l0#, e#, e1# Dim deg1 As Double, min1 As Double, sec1 As Double, deg2 As Double, min2 As Double, sec2 As Double Private Sub Command1_Click() Dim x_ As Double, t#, eta#, N#, W#, k1#, k2#, ik1%, ik2%, dh% deg1 = Val min1 = Val sec1 = Val deg2 = Val min2 = Val sec2 = Val l_ = (deg1 * 3600 + min1 * 60 + sec1) / 206265 b_ = (deg2 * 3600 + min2 * 60 + sec2) / 206265 dh = Val k1 = ((l_ * 180 / + 3) / 6) k2 = (l_ * 180 / / 3) ik1 = Round(k1, 0) ik2 = Round(k2, 0) If dh = 6 Then l0 = 6 * ik1 - 3 Else

高斯投影坐标正反算编程报告

高斯投影坐标正反算编程报告 1. 编程思想 进行高斯投影坐标正反算的编程需要牵涉到大量的公式,为了使程序条理更清楚,各块的数据复用性更强,这里采取了结构化的编程思想。 程序由四大块组成。 GeodesyHomework 、cpp 文件用于存放main()函数,就是整个程序的入口。通过结构化的编程尽力使main()函数变得简单。 MyFunction 、h 与MyFunction 、cpp 用于存放计算过程中进行角度弧度换算时所要用到的一些自定的转换函数。 Zhengsuan 、h 与Zhengsuan 、cpp 用于存放Zhengsuan 类,在Zhengsuan 类中声明了高斯投影坐标正算所要用到的所有变量,在类的构造函数中进行成员变量的初始化及正算计算。通过get 函数获得相应的正算结果。 Fansuan 、h 与Fansuan 、cpp 用于存放Fansuan 类,类似于Zhengsuan 类,Fansuan 类中声明了高斯投影坐标反算所要用到的所有变量,在类的构造函数中进行成员变量的初始化及反算计算。通过get 函数获得相应的反算结果。 2. 计算模型 高斯投影正算公式 6 4256 4 42234 22)5861(cos sin 720)495(cos 24cos sin 2l t t B B N l t B simB N l B B N X x ''+-''+ ''++-''+''?''+=ρηηρρ 5 2224255 3 2233 )5814185(cos 120)1(cos 6cos l t t t B N l t B N l B N y ''-++-''+ ''+-''+''?''=ηηρηρρ 高斯投影反算公式 () () ()( ) 2 22425 52 23 36 4254 222232 8624285cos 12021cos 6cos 459061720935242f f f f f f f f f f f f f f f f f f f f f f f f f f f f f t t t B N y t B N y B N y l y t t y N M t y t t N M t y N M t B B ηηηηη+++++++-=++- -+++ -= 3. 程序框图

高斯投影正反算编程(可编辑修改word版)

高斯投影正反算编程一.高斯投影正反算基本公式(1)高斯正算基本公式 (2)高斯反算基本公式

以上主要通过大地测量学基础课程得到,这不进行详细的推导,只是列出基本公式指导编程的进行。 二.编程的基本方法和流程图 (1)编程的基本方法 高斯投影正反算基本上运用了所有的编程基本语句,本文中是利用C++语言进行基本的设计。高斯正算中对椭球参数和带宽的选择主要运用了选择语句。而高斯反算中除了选择语句的应用,在利用迭代算法求底点纬度还应用了循环语句。编程中还应特别注意相关的度分秒和弧度之间的相互转换,这是极其重要的。 (2)相关流程图 1)正算

选择带宽 3/6 度带 计算带号 输入大地坐标 B ,L 和经差 L0 6 度带 3 度带 选择椭球参数 计算带号 计算弧长 计算平面坐标 x,y 打印 x,y 开始 计算平面坐标 x,y 计算弧长 打印 x,y

开始 输入自然值坐标x,y 和经差L0 选择椭球参数 利用迭代算法 求解底点纬度 利用公式计算B 和L 打印B 和L 2)反算

三.编程的相关代码(1)正算 # include "stdio.h" # include "stdlib.h" # include "math.h" # include "assert.h" #define pi (4*atan(1.0)) int i; struct jin { double B; double L; double L0; }; struct jin g[100]; main(int argc, double *argv[]) { FILE *r=fopen("a.txt","r"); assert(r!=NULL); FILE *w=fopen("b.txt","w"); assert(r!=NULL); int i=0;

高斯投影坐标正算公式

高斯投影坐标正算公式 高斯投影坐标正反算公式 2.2.2. 1高斯投影坐标正算公式: B, x,y 高斯投影必须满足以下三个条件: ⑴中央子午线投影后为直线;⑵中央子午线投影后长度不变;⑶投影具有正形性质,即正形投影条件。 由第一条件知中央子午线东西两侧的投影必然对称于中央子午线,即 式中,x为的偶函数,y为的奇函数;,即, 如展开为的级数,收敛。 (2-10) 式中是待定系数,它们都是纬度B的函数。 由第三个条件知: 分别对和q求偏导数并代入上式 (2-11) 上两式两边相等,其必要充分条件是同次幂前的系数应相等,即

(2-12) (2-12)是一种递推公式,只要确定了就可依次确定其余各系数。 由第二条件知:位于中央子午线上的点,投影后的纵坐标x应等于投影前从赤道量至该点的子午线弧长X,即(2-10)式第一式中,当时有: (2-13) 顾及(对于中央子午线) 得: (2-14,15) (2-16) 依次求得并代入(2-10)式,得到高斯投影正算公式

(2-17) 2.2.2. 2高斯投影坐标反算公式 x,y B, 投影方程: (2-18) 高斯投影坐标反算公式推导要复杂些。 ⑴由x求底点纬度(垂足纬度),对应的有底点处的等量纬度,求x,y与 的关系式,仿照式有, 由于y和椭球半径相比较小(1/16.37),可将展开为y的幂级数;又由于是对称投影,q必是y的偶函数,必是y的奇函数。 (2-19) 是待定系数,它们都是x的函数. 由第三条件知: ,

, (2-20) (2-19)式分别对x和y求偏导数并代入上式 上式相等必要充分条件,是同次幂y前的系数相等, 第二条件,当y=0时,点在中央子午线上,即x=X,对应的点称为底点,其纬度为底点纬度,也就是x=X时的子午线弧长所对应的纬度,设所对应的等量纬度为。也就是在底点展开为y的幂级数。 由(2-19)1式 依次求得其它各系数 (2-21) (2-21)1 ………… 将代入(2-19)1式得

高斯投影坐标正反算VB程序

高斯投影坐标正反算 学院: 班级: 学号: 姓名: 课程名称: 指导老师:

实验目的: 1.了解高斯投影坐标正反算的基本思想; 2.学会编写高斯正反算程序,加深了解。 实验原理: 高斯投影正算公式中应满足的三个条件: 1. 中央子午线投影后为直线; 2. 中央子午线投影后长度不变; 3. 投影具有正形性质,即正形投影条件。 高斯投影反算公式中应满足的三个条件: 1. x坐标轴投影成中央子午线,是投影的对称轴; 2. x轴上的长度投影保持不变; 3. 正形投影条件,即高斯面上的角度投影到椭球面上后角度没 有变形,仍然相等。 操作工具: 计算机中的VB6.0 代码: Dim a As Double, b As Double, x As Double, y As Double, y_# Dim l_ As Double, b_ As Double, a0#, a2#, a4#, a6#, a8#, m2#, m4#,

m6#, m8#, m0#, l0#, e#, e1# Dim deg1 As Double, min1 As Double, sec1 As Double, deg2 As Double, min2 As Double, sec2 As Double Private Sub Command1_Click() Dim x_ As Double, t#, eta#, N#, W#, k1#, k2#, ik1%, ik2%, dh% deg1 = Val(Text1.Text) min1 = Val(Text2.Text) sec1 = Val(Text3.Text) deg2 = Val(Text4.Text) min2 = Val(Text5.Text) sec2 = Val(Text6.Text) l_ = (deg1 * 3600 + min1 * 60 + sec1) / 206265 b_ = (deg2 * 3600 + min2 * 60 + sec2) / 206265 dh = Val(Text9.Text) k1 = ((l_ * 180 / 3.14159 + 3) / 6) k2 = (l_ * 180 / 3.14159 / 3) ik1 = Round(k1, 0) ik2 = Round(k2, 0) If dh = 6 Then l0 = 6 * ik1 - 3 Else If dh = 3 Then

高斯投影计算的实用公式

§8.4高斯投影计算的实用公式 1子午线弧长计算公式 改写并扩充(7-65)(7-64)两式 )8sin()6sin()4sin()2sin(86420B a B a B a B a B a X ++++= )16384 17640512525646043)(1(21864222e e e e e a a +++--= )16384 88205122106415)(1(4186424e e e e a a ++-= )16384 252051235)(1(618626e e e a a +--= )16384 315)(1(81828e e a a -= 2正算公式(8-67)(8-81) 00/cos ρBl p = 2/)12/)30/))58(61())49(5((1(22222222p p p t t t Nt X x -++++-++=ηηp p p t t t N y )6/)20/)14)5818(5()1((1(22222222ηηη+--+++-+= )3/)5/)2())23(1((1(sin 22222 00p p t Bl r -++++=ηη 式中: B t tan = 22)cos (B e '=η 221η+=V V c N /= 0000L L l -= 21a/e c -= 3 底点纬度公式 00Xq B = (单位:弧度) ))) sin (sin (sin )(2sin(028*********B q q B q B q B B B f ++++=(单位:弧度) 式中: )16384110255123506445431)(1(864220e e e e e a a ++++-=

高斯投影正算

高斯投影正、反算代码 //高斯投影正、反算 //////6度带宽 54年北京坐标系 //高斯投影由经纬度(Unit:DD)反算大地坐标(含带号,Unit:Metres) void GaussProjCal(double longitude, double latitude, double *X, double *Y) { int ProjNo=0; int ZoneWide; ////带宽 double longitude1,latitude1, longitude0,latitude0, X0,Y0, xval,yval; double a,f, e2,ee, NN, T,C,A, M, iPI; iPI = 0.0174532925199433; ////3.1415926535898/180.0; ZoneWide = 6; ////6度带宽 a=6378245.0; f=1.0/298.3; //54年北京坐标系参数 ////a=6378140.0; f=1/298.257; //80年西安坐标系参数 ProjNo = (int)(longitude / ZoneWide) ; longitude0 = ProjNo * ZoneWide + ZoneWide / 2; longitude0 = longitude0 * iPI ; latitude0=0; longitude1 = longitude * iPI ; //经度转换为弧度 latitude1 = latitude * iPI ; //纬度转换为弧度 e2=2*f-f*f; ee=e2*(1.0-e2); NN=a/sqrt(1.0-e2*sin(latitude1)*sin(latitude1)); T=tan(latitude1)*tan(latitude1); C=ee*cos(latitude1)*cos(latitude1); A=(longitude1-longitude0)*cos(latitude1); M=a*((1-e2/4-3*e2*e2/64-5*e2*e2*e2/256)*latitude1-(3*e2/8+3*e2*e2 /32+45*e2*e2 *e2/1024)*sin(2*latitude1)

高斯投影及其中央子午线的判断

一、高斯-克吕格投影 1、高斯-克吕格简介 高斯-克吕格(Gauss-Kruger)投影简称“高斯投影”,又名"等角横切椭圆柱投影”,地球椭球面和平面间正形投影的一种。德国数学家、物理学家、天文学家高斯(Carl FriedrichGauss,1777一1855)于十九世纪二十年代拟定,后经德国大地测量学家克吕格(Johannes Kruger,1857~1928)于1912年对投影公式加以补充,故名。该投影按照投影带中央子午线投影为直线且长度不变和赤道投影为直线的条件,确定函数的形式,从而得到高斯一克吕格投影公式。投影后,除中央子午线和赤道为直线外,其他子午线均为对称于中央子午线的曲线。设想用一个椭圆柱横切于椭球面上投影带的中央子午线,按上述投影条件,将中央子午线两侧一定经差范围内的椭球面正形投影于椭圆柱面。将椭圆柱面沿过南北极的母线剪开展平,即为高斯投影平面。取中央子午线与赤道交点的投影为原点,中央子午线的投影为纵坐标x 轴,赤道的投影为横坐标y轴,构成高斯克吕格平面直角坐标系。 2、高斯-克吕格特性 (1)等角投影——投影前后的角度相等,但长度和面积有变形; (2)等距投影——投影前后的长度相等,但角度和面积有变形; (3)等积投影——投影前后的面积相等,但角度和长度有变形。 3、投影的基本概念 它是一种横轴等角切圆柱投影。它把地球视为球体,假想一个平面卷成一个横圆柱面并把它套在球体外面,使横轴圆柱的轴心通过球的中心,球面上一根子午线与横轴圆柱面相切。这样,该子午线在圆柱面上的投影为一直线,赤道面与圆柱面的交线是一条与该子午线投影垂直的直线。将横圆柱面展开成平面,由这两条正交直线就构成高斯-克吕格平面直角坐标系。为减少投影变形,高斯-克吕格投影分为3o带和6o带投影。

高斯投影正反算

高斯投影正、反算及换带 程序执行条件 ※数组投影选择 T、换算点个数“Z=0 F≠0”、=0正算0、≠0反算 ※坐标系选择 “54 ≠54”、=54换算为1954年北京坐标系输入54、≠54换算为1988年西安坐标系 M、中央子午线经度(°′″) 输入 ※大地坐标 I、序列号 B、L:大地纬度和经度(地理坐标)(°′″) ※高斯平面坐标轴子午线 I、序列号 X、Y:高斯平面坐标(m) Z、轴子午线(°) 输出 ※大地坐标子午收敛角 N、序列号 B、L:大地纬度和经度(地理坐标)(°′″) R、子午收敛角(°′″) ※高斯平面坐标子午收敛角 N、序列号 X、Y:高斯平面坐标(m) R、子午收敛角(°′″) 注: 1、程序执行前必须进行数组定位。如:Defm 10 T×2=5×2=10 2、Y坐标值要去掉带号及避免出现负值的500公里; 4、本程序运算时,各已知数据、观测变量不会随之变化,可非常方便地进行各数据的核对; 5、本程序在进行换带计算时采用的是间接换带计算法。 Prog GSXY Defm 10:TA“Z=0 F≠0”G“54 ≠54”Z:Fixm:I=0:「b」0:I=I+1◢ J=2I-1:M=Z[J:L=Z[J+1:A=0=>Prog“3”:B=M:M=L+Z:Prog“3”:L=M:{BL}:M=B:Prog“2”: B=M:M=L:Prog“2”:L=M-Z:≠>X=M:Y=L:{XY}:B=X:L=Y⊿Z[J]=B:Z[J+1]=L:IGoto 0⊿G=54=>C=6399698.90178271:E=.006738525414684:≠>C=6399596.65198801:E=.006 739501819473⊿I=0:「b」0:I“N”=I+1◢ J=2I-1:B=Z[J:L=Z[J+1:A≠0=>X=B:Y=L:Goto 2⊿S=sin B:G=54=>F=111134.8611B-(32 005.7799S+133.9238S∧3+.6973S∧5+.0039S∧7)cos B:≠>F=111133.0047B-(32009.857 S+133.9602S∧3+.6976S∧5+.0039S∧7)cos B⊿U=√Ecos B:V=√(1+U2:N=C÷V:W=tan B: M=cos B(Lπ÷180:X=F+NW(.5M2+1┛24(5-W2+9U2+4U∧4)M∧4+1┛720(61-58W2+W∧4)M∧6◢

电子表格进行高斯投影换算GPS坐标的方法

利用EXCEL电子表格进行高斯投影换算GPS坐标的方法 2009-06-13 10:05 [摘要] 对利用EXCEL电子表格进行高斯投影换算的方法进行了较详细的介绍,对如何进行GPS坐标系转换进行了分析,提出了一种简单实用的坐标改正转换方法,介绍了用EXCEL完成转换的思路。 [关键字] 电子表格;GPS;坐标转换 作为尖端技术GPS,能方便快捷性地测定出点位坐标,无论是操作上还是精度上,比全站仪等其他常规测量设备有明显的优越性。随着我国各地GPS差分台站的不断建立以及美国SA政策的取消,使得单机定位的精度大大提高,有的已经达到了亚米级精度,能够满足国土资源调查、土地利用更新、遥感监测、海域使用权清查等工作的应用。在一般情况下,我们使用的是1954年北京坐标系或1980年西安坐标系(以下分别简称54系和80系),而GPS测定的坐标是WGS-84坐标系坐标,需要进行坐标系转换。对于非测量专业的工作人员来说,虽然GPS定位操作非常容易,但坐标转换则难以掌握,EXCEL是比较普及的电子表格软件,能够处理较复杂的数学运算,用它来进行GPS坐标转换、面积计算会非常轻松自如。要进行坐标系转换,离不开高斯投影换算,下面分别介绍用EXCEL进行换算的方法和GPS坐标转换方法。 一、用EXCEL进行高斯投影换算 从经纬度BL换算到高斯平面直角坐标XY(高斯投影正算),或从XY换算成BL(高斯投影反算),一般需要专用计算机软件完成,在目前流行的换算软件中,存在一个共同的不足之处,就是灵活性较差,大都需要一个点一个点地进行,不能成批量地完成,给实际工作带来许多不便。笔者发现,用EXCEL可以很直观、方便地完成坐标换算工作,不需要编制任何软件,只需要在EXCEL的相应单元格中输入相应的公式即可。下面以54系为例,介绍具体的计算方法。 完成经纬度BL到平面直角坐标XY的换算,在EXCEL中大约需要占用21列,当然读者可以通过简化计算公式或考虑直观性,适当增加或减少所占列数。在EXCEL中,输入公式的起始单元格不同,则反映出来的公式不同,以公式从第2行第1列(A2格)为起始单元格为例,各单元格的公式如下: 单元格 单元格内容 说明 A2 输入中央子午线,以度.分秒形式输入,如115度30分则输入115.30 起算数据L0 B2 =INT(A2)+(INT(A2*100)-INT(A2)*100)/60+(A2*10000-INT(A2*100)*100)/3600 把L0化成度 C2

高斯投影正反算c代码

高斯投影正反算c代码 Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-ZZT18】

高斯投影正反算程序设计 一.程序设计流程 本程序的设计思路如下: (1),程序采用VS08版本作为开发平台,并采用C#语言作为开发语言,设计为WindowsForm窗体程序形式。 (2),程序主要的算法来自于教材。但是本程序为了更加实用,添加了更多的解算基准,包括:WGS-84,国际椭球1975,克氏椭球,和2000国家大地坐标系。 (3),程序为了更方便的读取数据和输出数据,故需要自己定义了固定的数据输入格式和数据输出格式或形式,请老师注意查看。 二.代码 using System; using ; using ; using ; using ; using Gauss { public partial class Form1 : Form { double b = (a * a * (1 - ee * ee)); double c = a * a / b; double epp = ((a * a - b * b) / b / b); CRDGEODETIC pcrdGeo; CRDCARTESIAN pcrdCar; double midlong = 0;

//求X,Y和带号 = ; ytext = ; string temp = (0, 2); num = (temp); ytext = (0, 2); = (ytext) - 500000; try { tt = } catch { ("Choose 3/6 error!"); return; } if ("3度带") == 0) { midlong = num * 3 * pai / 180; } if ("6度带") == 0) { midlong = (6 * num - 3) * pai / 180; } b = (a * a * (1 - ee * ee)); c = a * a / b; epp = (a * a - b * b) / b; double m0, m2, m4, m6, m8; double a0, a2, a4, a6, a8; m0 = a * (1 - ee * ee);

高斯投影坐标正反算VB程序

高斯投影坐标正反算V B 程序 Jenny was compiled in January 2021

高斯投影坐标正反算 学院: 班级: 学号: 姓名: 课程名称: 指导老师:

实验目的: 1.了解高斯投影坐标正反算的基本思想; 2.学会编写高斯正反算程序,加深了解。 实验原理: 高斯投影正算公式中应满足的三个条件: 1. 中央子午线投影后为直线; 2. 中央子午线投影后长度不变; 3. 投影具有正形性质,即正形投影条件。 高斯投影反算公式中应满足的三个条件: 1. x坐标轴投影成中央子午线,是投影的对称轴; 2. x轴上的长度投影保持不变; 3. 正形投影条件,即高斯面上的角度投影到椭球面上后角度没有 变形,仍然相等。 操作工具: 计算机中的 代码: Dim a As Double, b As Double, x As Double, y As Double, y_#

Dim l_ As Double, b_ As Double, a0#, a2#, a4#, a6#, a8#, m2#, m4#, m6#, m8#, m0#, l0#, e#, e1# Dim deg1 As Double, min1 As Double, sec1 As Double, deg2 As Double, min2 As Double, sec2 As Double Private Sub Command1_Click() Dim x_ As Double, t#, eta#, N#, W#, k1#, k2#, ik1%, ik2%, dh% deg1 = Val min1 = Val sec1 = Val deg2 = Val min2 = Val sec2 = Val l_ = (deg1 * 3600 + min1 * 60 + sec1) / 206265 b_ = (deg2 * 3600 + min2 * 60 + sec2) / 206265 dh = Val k1 = ((l_ * 180 / + 3) / 6) k2 = (l_ * 180 / / 3) ik1 = Round(k1, 0) ik2 = Round(k2, 0) If dh = 6 Then l0 = 6 * ik1 - 3 Else

高斯投影正反算——包括3度和6度带的选择

// guass coordinateDlg.cpp : implementation file // #include "stdafx.h" #include "guass coordinate.h" #include "guass coordinateDlg.h" #include "math.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT }

高斯投影坐标正反算公式及适合电算的高斯投影公式

§8.3高斯投影坐标正反算公式 任何一种投影①坐标对应关系是最主要的;②如果是正形投影,除了满足正形投影的条件外(C-R 偏微分方程),还有它本身的特殊条件。 8.3.1高斯投影坐标正算公式: B,l ? x,y 高斯投影必须满足以下三个条件: ①中央子午线投影后为直线;②中央子午线投影后长度不变;③投影具有正形性质,即正形投影条件。 由第一条件知中央子午线东西两侧的投影必然对称于中央子午线,即 (8-10)式中,x 为l 的偶函数,y 为l 的奇函数;0330 '≤l ,即20/1/≈''''ρl , 如展开为l 的级数,收敛。 +++=++++=553316644220l m l m l m y l m l m l m m x (8-33) 式中 ,,10m m 是待定系数,它们都是纬度B 的函数。 由第三个条件知: q y l x l y q x ??-=????=??, (8-33)式分别对l 和q 求偏导数并代入上式 ----=++++++=+++553315 63424 42204 52 3164253l dq dm l dq dm l dq dm l m l m l m l dq dm l dq dm dq dm l m l m m (8-34) 上两式两边相等,其必要充分条件是同次幂l 前的系数应相等,即

dq dm m dq dm m dq dm m 231 20 13121? =? -== (8-35) (8-35)是一种递推公式,只要确定了 0m 就可依次确定其余各系数。 由第二条件知:位于中央子午线上的点,投影后的纵坐标x 应等于投影前从赤道量至该点的子午线弧长X ,即(8-33)式第一式中,当0=l 时有: 0m X x == (8-36) 顾及(对于中央子午线) B V M r M B N dq dB M dB dX cos cos 2 ==== 得: B V c B N r dq dB dB dX dq dX dq dm m cos cos 01===?===(8-37,38) B B N dq dB dB dm dq dm m cos sin 2 2121112=?-=?-= (8-39) 依次求得6543,,,m m m m 并代入(8-33)式,得到高斯投影正 算公式

高斯投影坐标正反算公式

高斯投影坐标正反算公式 未知2010-04-03 10:47:15 本站 §高斯投影坐标正反算公式 任何一种投影①坐标对应关系是最主要的;②如果是正形投影,除了满足正形投影的条件外( C-R 偏微分方程),还有它本身的特殊条件。 1.1 高斯投影坐标正算公式: B, x,y 高斯投影必须满足以下三个条件: ①中央子午线投影后为直线;②中央子午线投影后长度不变;③投影具有正形性质,即正形投影条件。 由第一条件知中央子午线东西两侧的投影必然对称于中央子午线,即 (8-10) 式中, x 为 的偶函数, y 为的奇函数;,即,如展开为的级数,收敛。 ( 8-33 ) 式中是待定系数,它们都是纬度 B 的函数。 由第三个条件知: (8-33) 式分别对和 q 求偏导数并代入上式

(8-34) 上两式两边相等,其必要充分条件是同次幂前的系数应相等,即 (8-35) (8-35) 是一种递推公式,只要确定了就可依次确定其余各系数。 由第二条件知 : 位于中央子午线上的点,投影后的纵坐标 x 应等于投影前从赤道量至该点的子午线弧长 X ,即 (8-33) 式第一式中,当时有: (8-36) 顾及 ( 对于中央子午线 )

得: (8-37,38) (8-39) 依次求得并代入 (8-33) 式,得到高斯投影正算公式 (8-42) 1.2 高斯投影坐标反算公式 x,y B, 投影方程: (8-43)

满足以下三个条件:

①x 坐标轴投影后为中央子午线是投影的对称轴;② x 坐标轴投影后长度不变;③投影具有正形性质,即正形投影条件。 高斯投影坐标反算公式推导要复杂些。 ①由 x 求底点纬度 ( 垂足纬度 ), 对应的有底点处的等量纬度,求 x,y 与 的关系式,仿照 (8-10) 式有, 由于 y 和椭球半径相比较小 (1/16.37) ,可将展开为 y 的幂级数;又由于是对称投影, q 必是 y 的偶函数,必是 y 的奇函数。 (8-45) 是待定系数,它们都是 x 的函数 . 由第三条件知: , , (8-21)

基于python的高斯投影计算

袁钱梅 (贵州省第二测绘院,贵州贵阳550000) 摘要: 本文基于python脚本语言编制了测量厂用的高斯投影正、反计算工具。有效的解决了在python及ARCGIS环境中高斯投影计算工作;并具有一定的灵活性。工具以在全国第一次地理国情普查数据生产中进行了批量性验证。 关键词:Python;高斯投影 1、Python语言概述 Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python吸收了Perl,TCL等脚本语言的优点,使得Python具备Tcl的扩展性,同时又具备Perl的文本解析和匹配能力。 2、高斯投影 高斯-克吕格投影是一种等角横轴切椭圆柱投影。它是假设一个椭圆柱面与地球椭球体面横切于某一条经线上,按照等角条件将中央经线东、西各3°或1.5°经线范围内的经纬线投影到椭圆柱面上,然后将椭圆柱面展开成平面而成的。 这种投影,将中央经线投影为直线,其长度没有变形,与球面实际长度相等,其余经线为向极点收敛的弧线,距中央经线愈远,变形愈大。赤道线投影后是直线,但有长度变形。除赤道外的其余纬线,投影后为凸向赤道的曲线,并以赤道为对称轴。经线和纬线投影后仍然保持正交。所有长度变形的线段,其长度变形比均大于1,随远离中央经线,面积变形也愈大。若采用分带投影的方法,可使

投影边缘的变形不致过大。我国各种大、中比例尺地形图采用了不同的高斯-克吕格投影带。其中大于1:1万的地形图采用3°带;1:2.5万至1:50万的地形图采用6°带。 3、Python模块 P博闻新闻ython是中许多功能是由一系列的模块组成的,每个模块可以是一个py为后缀的文件。模块也可以理解为lib库,如果需要使用某个模块中的函数或对象,则要导入这个模块才可以使用;除了系统默认的模块(内置函数)不需要导入。在实际使用中高斯投影计https://www.doczj.com/doc/099484748.html,算是使用在实际工作中的各个部分的,为方便调用,采用Python的模块方式对高斯计算进行封装,可高效利用模块在不同的应用中进行计算。 4、高斯投影计算 高斯投影计算分正算和反算,正算为经纬度坐标计算到投影坐标;反算为投影坐标计算到经纬度坐标。高斯投影正算需要确定投影后的中央经度,及投影椭球参数信息;如采用CGCS2000坐标系及1980西安坐标系其采用椭球参数不同,经过正算的投影坐标即不同。 由于Python为脚本语言,其在进行科学计算时小数位取位是无法保证计算精度的,在Python中实现高斯投影计算单纯的使用其提供的基本计算函数是无法满足计算精度需求的,因此需要借助Python提供的模块进行提高精度计算。Python提供了decimal模块用于十进制数学计算,它具有以下特点: 1.提供十进制数据类型,并且存储为十进制数序列; 2.有界精度:用于存储数字的位数是固定的,可以通过decimal.getcontext ().prec=x 来设定,不同的数字可以有不同的精度;

利用EXCEL行高斯投影正反算

利用EXCEL行高斯投影正反算

————————————————————————————————作者:————————————————————————————————日期:

利用EXCEL 进行高斯投影正反算 在工作中常需要将大量经纬度转换成高斯平面坐标、将高斯平面坐标转换成经纬度、将6度带坐标转换成3度带坐标等坐标转换问题。面对这些问题,我们希望能找个坐标转换软件进行批量转换从而降低劳动强度、提高工作效率。然而我们通常用的软件对批量转换往往有一定的限制而且对转换数据的格式要求比较严格不容易掌握和使用。实际上我们通常用的办公软件EXCEL 就可以完成这项工作。 EXCEL 办公软件操作简单方便、易于掌握。想要用EXCEL 实现正反算,我们必须知道高斯投影正反算数学公式。(高斯投影正算实际就是把大地坐标通过高斯投影数学模 型转换为平面坐标,反之则为高斯投影反算)下面就是高斯投影公式: 正算公式: "2 322"4""4sin cos sin cos (59)22N N x X B Bl B B t l ηρρ =++-+ " 322"3 524"5 " "3 "5 cos cos (1)cos (118)6120N N N y X Bl B t l B t t l ηρ ρρ =+ +-++-+ 反算公式: 232224 24635 (539)(619045)224720f f f f f f f f f f f f f f f t t N B B y t t y t t y M N M N M N ηη=- + -+---+ 223245 35 111(12)(52824)cos 6cos 120cos f f f f f f f f f f l y t y t t y N B N B N B η= -+++++ 我们只需要把上述两个公式用EXCEL 函数写于EXCEL 表格中就可以进行计算了。其实,我们用的其他软件中高斯正反算基本全都是用这两个公式实现的,然而由于各种程序语言以及软件计算数据时精度不同所以最后结果也会有很小的误差。我们在用软件处理数据时最关心的是数据结果的精度是否满足要求。面对这个问题我们可以通过与其他坐标转换软件比较来检查一下EXCEL 数据处理的结果是否能满足我们的要求。 下表为同一组数据分别用南方CASS 和EXCEL 表进行高斯正反算后的结果对 照表: 高斯正算结果比较表: 原始经纬度坐标 EXCEL CASS 点位误差 B L X Y X Y △S

高斯投影坐标反算c语言代码

高斯投影坐标反算c语言代码 #include #include #include main() { printf("#####################################################\n"); printf("# 角度输入说明:如26°12′45.2″输入为26,12,45.2 #\n"); printf("#####################################################\n"); double x,y; int j,L0; printf("请输入高斯投影坐标(自然坐标),中间用逗号隔开:\n"); scanf("%lf,%lf",&x,&y); //自然坐标输入 printf("请输入中央子午线L0:\n"); scanf("%d,%d,%lf",&L0); //中央子午线输入 printf("请选择参考椭球:1.北京1954参考椭球。\n 2.西安1980参考椭球。\n"); printf("选择的参考椭球为:"); scanf("%d",&j); //选择椭球参数 if(j==1) { long double Bf0=0.157046064172*pow(10,-6)*x; long double Bf=Bf0+cos(Bf0)*(0.005051773759*sin(Bf0)-0.000029837302*pow(sin(Bf0),3)+0.00000023818 9*pow(sin(Bf0),5)); long double t=tan(Bf); long double m=0.00673852541468*pow(cos(Bf),2); long double V=1+m; long double N=6378245.000/sqrt(1-0.00669342162297*pow(sin(Bf),2)); long double B1=Bf-1.0/2*V*t*pow(y/N,2)+1.0/24*(5+3*pow(t,2)+m-9*m*pow(t,2))*V*t*pow(y/N,4)-1.0/72 0*(61+90*pow(t,2)+45*pow(t,4)) *V*t*pow(y/N,6); long double l1=(1/cos(Bf))*(y/N)-1.0/6*(1+2*pow(t,2)+m)*(1/cos(Bf))*pow(y/N,3) +1.0/120*(5+28*pow(t,2)+24*pow(t,4)+6*m+8*m*pow(t,2))*(1/cos(Bf))*pow(y/N,5); long double B=B1*57.29577951; long double l=l1*57.29577951; long double L=L0+l; int d2=int(B);

相关主题
相关文档 最新文档