当前位置:文档之家› 基于matlab的坐标正反算

基于matlab的坐标正反算

基于matlab的坐标正反算
基于matlab的坐标正反算

测量程序设计实验报告

实验名称:坐标正反算

实验三坐标正反算

一、实验目的

编写坐标正反算程序,并对格式化文件数据进行计算,验证程序。

二、实验内容

1、编写坐标正算程序

1)建立以xy_direct命名的函数,函数输入输出格式为

[x2,y2] = xy_direct(x1,y1,distance, azimuth)

度转度分秒:

>> function dms= degree2dms(jiaodu)

>>degree = fix(jiaodu);

>>mimute = fix((jiaodu-degree)*60);

>>second = ((jiaodu-degree)*60-mimute)*60;

>>dms = degree+mimute/100+second/10000;

度分秒转度:

>> function degree = dms2degree(jiaodu)

>>degree = fix(jiaodu);

>> mimute = fix((jiaodu-degree)*100);

>>second = (jiaodu-degree-mimute/100)*10000;

>>degree = degree+mimute/60+second/3600;

弧度转度:

>> function dms=rad2dms(rad)

>> rad=abs(rad);

>>jiaodu=rad*180.0/pi;

>> % l=fix(a)

>> % b=(a-l)*60.0

>> % m=fix(b)

>> % a=l+m/100.0+(b-m)*0.006

>> % if(rad<0)

>> % dms=-a;

>> % else

>> % dms=a;

>> % end

>> degree = fix(jiaodu);

>> mimute = fix((jiaodu-degree)*60);

>> second = ((jiaodu-degree)*60-mimute)*60;

>> dms = degree+mimute/100+second/10000;

>> if(rad<0)

dms=-dms;

else

dms=dms;

end

return

>> function [x2,y2] = xy_direct(x1,y1,distance, azimuth)

>>x2=x1+distance.*cos(azimuth*pi/180);

>>y2=y1+distance.*sin(azimuth*pi/180);

>>end

2) 对文件data1.txt中数据进行坐标正算,并将已知点和计算点坐标按照格式存贮在文件data2.txt中,

data1.txt格式为: x1 y1 距离方位角(dd.mmss)

data2.txt格式为:

x1 y1 x2 y2

>> [filename,pathname]=uigetfile;

>> file=[pathname,filename];

>> data=importdata(file);

>> %[x1,y1]=data.data(:,[1,2]);

>> azimuth=dms2degree(data.data(:,4));

>> distance=data.data(:,3);

>> %[x2,y2]=xy_direct(x1,y1,distance,azimuth);

>>[x2,y2]=xy_direct(data.data(:,1),data.data(:,2),distance,azimuth); >> [filename_out,pathname_out]=uiputfile;

>> fileout=[pathname_out,filename_out];

>> fid=fopen(fileout,'wt');

>> fprintf(fid,'x1 y1 x2 y2\n');

>> fprintf(fid,'%8.2f %8.2f %8.2f %8.2f\n',[data.data(:,1:2),x2,y2]); >> fclose('all')

ans =

2、编写坐标反算程序

1)建立以xy_inv命名的函数,函数输入输出格式为

[distance, azimuth] = xy_inv(x1,y1, x2,y2)

>> function [distance, azimuth] = xy_inv(x1,y1, x2,y2)

>> delt_x=x2-x1;

>> delt_y=y2-y1;

>> [m,x]=size(delt_x);

>> azimuth=zeros(0,m);

>> for i=1:m

azimuth_temp=atan2(abs(delt_y(i)),abs(delt_x(i)));

if delt_x(i)>0&&delt_y(i)>0

azimuth(i)=azimuth_temp;

elseif delt_x(i)>0&&delt_y(i)<0

azimuth(i)=2*pi-azimuth_temp;

elseif delt_x(i)<0&&delt_y(i)>0

azimuth(i)=pi-azimuth_temp;

else delt_x(i)<0&&delt_y(i)<0;

azimuth(i)=pi+azimuth_temp;

end

end

>> azimuth=rad2dms(azimuth)

>> distance=sqrt((x2-x1).^2+(y2-y1).^2);

>>%fprintf('两点间距离:%8.3f ;方位角为:%8.3f',distance,azimuth);

2) 对文件data2.txt中数据进行坐标反算,并将计算结果按照格式存贮在文件data3.txt中,

Data3.txt格式为: x1 y1 x2 y2 距离方位角(dd.mmss)

>> [filename,pathname] = uigetfile;

>>file = [pathname, filename];

>>data=importdata(file);

>> [distance, azimuth] =

xy_inv(data.data(:,1),data.data(:,2),data.data(:,3),data.data(:,4)); >> [filename_out,pathname_out] = uiputfile;

>>fileout = [pathname_out, filename_out];

>>fid = fopen(fileout,'wt');

>>fprintf(fid,' x1 y1 x2 y2 距离方位角(dd.mmss)\n'); >>fprintf(fid,'%8.2f %8.2f %8.2f %8.2f %8.2f %8.4f\n',[data .data(:,1:4),distance,azimuth']');

>>fclose('all');

3、可能用到的函数

开根号,sqrt(x)

sin(rad)、cos(rad)、atan2(y,x),find

高斯投影坐标正反算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 引言 目前,大比例尺地形图广泛应用在市政建设、路桥、管道铺设和城市规划等工程建设中。为了满足城市大比例尺1:500地形测图精度要求,《城市测量规范》要求,控制点之间的投影长度变形不得大于 2.5cm/km。当控制点之间的长度变形大于2.5cm/km时,要采取适当的措施进行改化,以达到城市大比例尺1:500地形测图精度要求。国家坐标系是6°带或3°带投影的高斯-克吕格直角坐标系,根据它的变形规律,离中央子午线越远,所产生的投影变形越大。城市独立坐标系的建立,通常是选择过城市的某国家控制点为地方坐标系的起算点,过这点的经线为其中央子午线并联测国家高等级的控制点建立起来的。这样,国家坐标系与城市独立坐标系的中央子午线存在一个差值λ。为了更好的进行数据共享,城市平面控制坐标最理想的是和国家坐标系相统一,这就要进行城市独立坐标与国家坐标之间的坐标换算。高斯-克吕格投影正反算公式能很好的解决不同投影带之间的坐标换算问题。其方法是:先将已知的平面坐标,按高斯-克吕格投影反算公式求得其大地坐标(B,L),然后根据大地纬度B和经差λ,再按高斯-克吕格投影正算公式求得其在另一投影带中的平面坐标。 2 高斯-克吕格投影正反算公式 2.1 高斯-克吕格投影正算公式: (1) 其中:,为中央子午线弧长,其计算公式为: 、、、为常数,其计算公式为: 2.2 高斯-克吕格投影反算公式: 其中:。 (1)、(4)式中的N、的计算公式为:

高斯投影正反算编程(可编辑修改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;

VC++ MFC高斯平均引数大地主题正反算

地球科学与环境工程学院实验报告书 课程名: 学号: 姓名: 指导老师: 日期:

目录 一、目的与要求 (1) 二、实验容 (1) 三、计算公式整理 (1) 四、程序代码 (4) 五、计算结果 (15) 六、实验体会 (16)

一、目的与要求 参考椭球面是测量计算的基准面。坐标是椭球面上的基本坐标系,根据测量的观测成果(如距离与方向),从原点出发,逐点计算在椭球面上的坐标;或根据两点的坐标,计算它们之间的线长度和方位角,这类计算称为问题解算(或称为主题解算)。问题解算的用途是多方面的,随着现代空间技术和航空航天、航海等领域的发展,问题解算(尤其是反算)有着更为重要的作用,因此需要熟练掌握其计算。 二、实验容 在《测量学基础》教材中,介绍了高斯平均引数法与白塞尔方法的计算过程、步骤。鉴于此,需要熟练掌握高斯平均引数法与白塞尔方法解主题问题的基本方法与原理。采用所熟悉的计算机语言编程计算。计算时采用克拉索夫椭球参数,至少完成其中一种方反算,按照数据序号选取不同的已知数据,在计算结果中注明所选取的数据序号,选取其它数据作为无效数据处理。 三、计算公式整理 3.1、高斯平均引数正算计算公式(S< 200 km)

3.2、高斯平均引数正算计算公式(S< 200 km)

四、程序代码 4.1、角度转换类的头文件: #pragma once const double Pi=3.141592653589793; class AngleTrans { public: AngleTrans(void); ~AngleTrans(void); double D,F,M,DFM,Rad,Ten; double trans1(double DFM), //度分秒形式的角度转换为弧度形式 trans2(double Rad), //弧度形式的角度转换为度分秒形式 trans3(double D); //十进制度转化为弧度 }; 4.2、角度转换类的源文件: #include"StdAfx.h" #include"AngleTrans.h" #include AngleTrans::AngleTrans(void) { } AngleTrans::~AngleTrans(void) { } //度分秒转换为弧度 double AngleTrans::trans1(double DFM) { D=floor(DFM); F=floor((DFM-D)*100); M=(DFM-D-F/100)*10000; Ten=D+F/60+M/3600; Rad=Ten/180*Pi; return Rad; }

高斯投影坐标正反算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

高斯投影正反算

class Gauss { #region 高斯投影正反算 ///

/// 从大地坐标到平面坐标的高斯正算 /// /// 默认的是使用假定坐标的六度带投影 /// /// 大地纬度 /// 大地经度 /// 平面纵轴 /// 平面横轴 /// 参考椭球长半轴 /// 参考椭球扁率倒数 public static void BL_xy(double B, double L, out double x, out double y, double a, double f) { BL_xy(B, L, out x, out y, a, f, 6, true); } /// /// 从大地坐标到平面坐标的高斯正算 /// /// 默认的是使用假定坐标 /// /// 大地纬度 /// 大地经度 /// 平面纵轴 /// 平面横轴 /// 参考椭球长半轴 /// 参考椭球扁率倒数 /// 投影分带的带宽 public static void BL_xy(double B, double L, out double x, out double y, double a, double f, int beltWidth) { BL_xy(B, L, out x, out y, a, f, beltWidth, true); } /// /// 从大地坐标到平面坐标的高斯正算 /// /// 默认的是六度带投影 /// /// 大地纬度 /// 大地经度 /// 平面纵轴

大地主题解算程序设计报告

大地主题结算实验报告 姓名:高成 学号:20104214 测绘2班 一、实验目的: 1.提高运用计算机语言编程开发的能力; 2.加深对大地主题解算计算公式及辅助参数的理解并掌握计算步骤; 3.通过编程语言实现大地主题解算。 二、工具: Windows XP Mode 环境下的Microsoft Visual C++ 6.0 三、注意事项: 1.计算所需变量多,容易混淆; 2.正反算函数的编写; 3.函数调用; 4.弧度与角度之间的转化。 四、实验要求: 1.提交报告,实验总结,编写代码; 2.独立编程,调试运行; 3.上交成果:编写思想,编写过程,问题分析,源代码,计算结果;

实验源代码: #include #include double hudu(double,double,double); /*度分秒转换为弧度*/ double du(double); /*弧度转换为度*/ double fen(double); /*弧度转换为分*/ double miao(double); /*弧度转换为秒*/ #define PI 3.1415926 void main (void) { int k; printf("请选择大地主题算法,若执行正算,请输入1;若执行反算,请输入2。\n"); scanf("%d",&k); /*大地主题正算*/ if(k==1) { double ax,ay,az,bx,by,bz,cx,cy,cz,S,dz,ez,fz,B1,B2,L1,L2,A1,A2; int dx,dy,ex,ey,fx,fy; double e2,W1,sinu1,cosu1,sinA0,coto1,sin2o1,cos2o1,sin2o,cos2o,A,B,C,r,t,o0,o,g,sinu2,q; /*输入度分秒数据*/ printf("请输入大地线起点纬度度分秒\n"); scanf("%lf%lf%lf",&ax,&ay,&az); printf("请输入大地线起点经度度分秒\n"); scanf("%lf%lf%lf",&bx,&by,&bz); printf("请输入大地方位角度分秒\n"); scanf("%lf%lf%lf",&cx,&cy,&cz); printf("请输入大地线长度\n"); scanf("%lf",&S); /*调用函数*/ B1=hudu(ax,ay,az); L1=hudu(bx,by,bz); A1=hudu(cx,cy,cz); /*白塞尔大地主题解算*/ e2=0.006693421622966; W1=sqrt(1-e2*sin(B1)*sin(B1)); sinu1=sin(B1)*(sqrt(1-e2))/W1; cosu1=cos(B1)/W1; sinA0=cosu1*sin(A1); coto1=cosu1*cos(A1)/sinu1; sin2o1=2*coto1/(coto1*coto1+1); cos2o1=(coto1*coto1-1)/(coto1*coto1+1);

高斯投影正反算公式 新

高斯投影坐标正反算 一、相关概念 大地坐标系由大地基准面和地图投影确定,由地图投影到特定椭圆柱面后在南北两极剪开展开而成,是对地球表面的逼近,各国或地区有各自的大地基准面,我国目前主要采用的基准面为:基准面,为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,

(完整版)大地测量学基础期末考试试卷A(中文)

一、解释下列术语(每个2分,共10分) 大地水准面球面角超底点纬度高程异常水准标尺零点差 二、填空(1-15小题每空1分;16题4分,共36分) 1、在地球自转中,地轴方向相对于空间的变化有______和_____。 2、时间的度量单位有______和______两种形式。 3、重力位是______和_____之和,重力位的公式表达式为_______。 4、椭球的形状和大小一般用_______来表示。 5、在大地控制网优化设计中把_____、______和_____作为三个主要质量控制标准。 6、测距精度表达式中,的单位是______,表示的意义是_____;的单位是______,表示的意义是_____。 7、利用测段往返不符值计算的用来衡量水准测量外业观测的精度指标用_____来表示,其意义是______。 8、利用闭合环闭合差计算的用来衡量水准测量外业观测的精度指标用_____来表示,其意义是______。 9、某点在高斯投影3°带的坐标表示为XA=3347256m, YA=37476543m,则该点在6°带第19带的实际坐标为xA=___________________,yA=___________________。 10、精密水准测量中每个测段设置______个测站可消除水准标尺______零点差的影响。 11、点P从B=0°变化到B=90°时,其卯酉圈曲率半径从______变化到_____。 12、某点P的大地纬度B=30°,则该点法线与短轴的交点离开椭球中心的距离为_____。 13、高斯投影中,_____投影后长度不变,而投影后为直线的有_____,其它均为凹向_____的曲线。 14、大地线克莱劳方程决定了大地线在椭球面上的_______;在椭球面上某大地线所能达到的最大纬度为60°,则该大地线穿越赤道时的大地方位角表达式为_____(不用计算出数值) 。 15、在换带计算中,3°的_____带中央子午线经度和6°相同,坐标不用化算。 16、按下表给出的大地经度确定其在高斯投影中的带号和相应的中央子午线经度(答案写在试卷纸上,本小题4分,每空0.5分) 大地点经度六度带三度带

高斯投影坐标正算公式

高斯投影坐标正算公式 高斯投影坐标正反算公式 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式得

大地测量学基础复习题答案

1岁差:地球绕地轴旋转,由于日、月等天体的影响,地球的旋转轴在空间围绕黄级发生缓慢 章动:地球旋转轴在岁差的基础上叠加年的短期周圆周运动,振幅为秒,这种现象称为章动。 极移:地球自转使地球体自身内部结构的相对位置变化,从而导致极点在地球表面上的位置随时间而变化,这种现象被称为极移。 2卯酉圈:过椭球面上一点的法线,可作无限个法截面,其中一个与该点子午面相垂直的法截面同椭球面相截形成的闭合的圈称为卯酉圈。 子午圈椭球子午面与椭球面的截线。 3黄道:地球公转的轨道面黄道面与天球相交的大园称为黄道 4春分点:视太阳在黄道上从南半球向北半球运动时,黄道与天球赤道的交点称为春分点,用γ表示。 5高程异常:似大地水准面与椭球面的高程差。A卷 6子午线收敛角:高斯投影面上任意点子午线的投影线的切线方向与该点坐标的正北方向的夹角。B卷 7大地主题反算:已知椭球面上两点的大地经纬度求解两点间的大地线长度与正反方位角。 8总椭球体:总椭球体的中心与地球的质心重合,其短轴与地球的地轴重合,起始子午面与起始天文子午面重合,而且与地球体最佳密合的椭球体。B卷 9法截面:过椭球面上任意一点可作一条垂直于椭球面的法线,包含这条法线的平面叫作法截面; 11相对法接线:在A点安置仪器观测B点,照准面与椭球面的交线AaB称A点的正法截线,或B点的反法截线;在B点安置仪器观测A点,照准面与椭球面的交线BbA称B点的正法截线,或A点的反法截线。AaB与BbA称A、B两点的相对法截线。 12垂线偏差:同一测站点上铅垂线与椭球面法线之间的夹角u,即是垂线偏差 13大地线:椭球面上两点间最短程曲线叫做大地线 1在精密水准测量概算中包括哪些计算工作A卷 答:水准测量概算主要计算工作: (1)水准标尺每米长度误差的改正数计算 (2)正常水准面不平行的改正数计算 (3)水准路线闭合差计算 (4)高差改正数的计算 3为什么要分带和换带计算A卷 限制变形,要分带,存在邻带坐标换算。 (1)当一个网跨两个投影带,为了在某一带内进行平差,需把另一带的坐标换算为该带的坐标。 (2)分界子午线附近重叠部分的大地点需计算相邻两带坐标系的坐标值, (3)6°带同3°、°带之间相互坐标换算 (4)因特殊需要,把国家带的坐标化为任意带坐标 4试述椭球面三角元素归到高斯平面上包括哪些内容及需要进行哪些计算工作B卷 1)将起始点P的大地坐标(L,B)归算为高斯平面直角坐标x, y;为了检核还应进行反算,亦即根据x, y反算B,L。 2)将椭球面上起算边大地方位角归算到高斯平面上相应边的坐标方位角,通过计算该点的子午线收敛角及方向改化实现。 3) 将椭球面上各三角形内角归算到高斯平面上的由相应直线组成的三角形内角,通过计算方向的曲率改化即方向改化来实现。 4) 将椭球面上起算边的长度归算到高斯平面上的直线长度。 因此将椭球面三角系归算到平面上,包括坐标、曲率改化、距离改化和子午线收敛角等计算工作。 5.按投影面和原面的相对位置关系分类 1)正轴投影:圆锥轴(圆柱轴)与地球自转轴相重合的投影,称正轴圆锥投影或正轴圆柱投影。2)斜轴投影:投影面与原面相切于除极点和赤道以外的某一位置所得的投影。 3)横轴投影:投影面的轴线与地球自转轴相垂直,且与某一条经线相切所得的投影。比如横轴椭圆柱投影等。 投影面还可以与地球椭球相割于两条标准线,这就是所谓割圆锥,割圆柱投影等。 6高斯投影应满足哪三个条件为什么是正形投影A卷 高斯投影满足的三个条件为: (1)正形投影:投影长度比在一个点上与方向无关; (2)中央子午线投影后为一直线,且是投影点的对称轴; (3)中央子午线投影后长度不变 高斯投影(正形投影)的性质: (1)投影后角度不变 (2)长度比与点位有关,与方向无关 (3)离中央子午线越远变形越大 (4)投影后,除中央子午线外,长度增大 7精密测角的误差来源及影响采取措施 1外界条件影响:

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

高斯投影坐标正反算编程报告 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. 程序框图

《大地测量学基础》试卷(A)含答案

《大地测量学基础》试卷(A) 一、解释下列术语(每个2分,共10分) 大地水准面 球面角超 底点纬度 高程异常 水准标尺零点差 二、填空(1-15小题每空1分;16题4分,共36分) 1、在地球自转中,地轴方向相对于空间的变化有______和_____。 2、时间的度量单位有______和______两种形式。 3、重力位是______和_____之和,重力位的公式表达式为_______。 4、椭球的形状和大小一般用_______来表示。 5、在大地控制网优化设计中把_____、______和_____作为三个主要质量控制标准。 6、测距精度表达式 () m a b D =±+? 中,的单位是______,表示的意义是_____;的单位是 ______,表示的意义是_____。 7、利用测段往返不符值计算的用来衡量水准测量外业观测的精度指标用_____来表示,其意义是 ______。 8、利用闭合环闭合差计算的用来衡量水准测量外业观测的精度指标用_____来表示,其意义是 ______。 9、某点在高斯投影3°带的坐标表示为XA=3347256m, YA=37476543m,则该点在6°带第19带的 实际坐标为xA=___________________,yA=___________________。 10、精密水准测量中每个测段设置______个测站可消除水准标尺______零点差的影响。 11、点P从B=0°变化到B=90°时,其卯酉圈曲率半径从______变化到_____。 12、某点P的大地纬度B=30°,则该点法线与短轴的交点离开椭球中心的距离为_____。 13、高斯投影中,_____投影后长度不变,而投影后为直线的有_____,其它均为凹向_____的曲 线。 14、大地线克莱劳方程决定了大地线在椭球面上的_______;在椭球面上某大地线所能达到的最 大纬度为60°,则该大地线穿越赤道时的大地方位角表达式为_____(不用计算出数值)。 15、在换带计算中,3°的_____带中央子午线经度和6°相同,坐标不用化算。 16、按下表给出的大地经度确定其在高斯投影中的带号和相应的中央子午线经度(答案写在试卷 纸上,本小题4分,每空0.5分)

高斯投影坐标正反算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

分段累加法大地主题解算及高斯投影

大地测量编程实习报告 班号:XXXX 学号:XXXXXXXXXX 姓名:XXX 大地主题解算(分段累加法正算) 结果截图: 主要代码: privatevoid button1_Click(object sender, EventArgs e) { double bx, by, bz, B1, lx, ly, lz, L1, ax, ay, az, A1, S; double dB, dL; double e2 = 0.006693421622966, a = 6378245.0000000000; double M, N, W, C; double B2 = 0, L2 = 0, A2 = 0; int Bx, By, Lx, Ly, Ax, Ay; double Bz, Lz, Az; bx = Convert.ToDouble(du1.Text); by = Convert.ToDouble(fen1.Text); bz = Convert.ToDouble(miao1.Text); lx = Convert.ToDouble(du2.Text); ly = Convert.ToDouble(fen2.Text); lz = Convert.ToDouble(miao2.Text); ax = Convert.ToDouble(du3.Text); ay = Convert.ToDouble(fen3.Text); az = Convert.ToDouble(miao3.Text); S = Convert.ToDouble(m.Text); double PI = Math.PI; B1 = (bx + by / 60 + bz / 3600) * PI / 180; L1 = (lx + ly / 60 + lz / 3600) * PI / 180; A1 = (ax + ay / 60 + az / 3600) * PI / 180; W = Math.Sqrt(1 - e2 * (Math.Sin(B1) * Math.Sin(B1)));

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

§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)式,得到高斯投影正 算公式

大地主题解算-C#

大地主题解算-正算-C#

大地主题解算-正算-程序 using System; using System.Collections.Generic; using https://www.doczj.com/doc/3a10231407.html,ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { int n,du,fen,miao; double B1, L1, A1, S, dS, dB1, dL1, M1, N1, W1; double E = 0.006694384999588, a = 6378140, C;

B1 =( Convert.ToDouble(textBox1.Text) + Convert.ToDouble(textBox9.Text)/60 + Convert.ToDouble(textBox10.Text)/3600 )* Math.PI / 180; L1 = (Convert.ToDouble(textBox2.Text) + Convert.ToDouble(textBox11.Text)/60 + Convert.ToDouble(textBox12.Text)/3600) * Math.PI / 180; ; A1 = (Convert.ToDouble(textBox3.Text) + Convert.ToDouble(textBox13.Text)/60 + Convert.ToDouble(textBox14.Text)/3600) * Math.PI / 180; ; S = Convert.ToDouble(textBox5.Text); n = Convert.ToInt16(textBox4.Text); double[] L = new double[100000]; double[] B = new double[100000]; double[] dL = new double[100000]; double[] dB = new double[100000]; double[] A = new double[100000]; double[] W = new double[100000]; double[] N = new double[100000]; double[] M = new double[100000]; W1 = Math.Pow(1 - E * Math.Pow(Math.Sin(B1), 2), 0.5); N1 = a / W1; M1 = a * (1 - E) / (W1 * W1 * W1); C = N1 * Math.Sin(A1) * Math.Cos(B1); dS = S / n; dB1 = dS * Math.Cos(A1) / M1; dL1 = dS * Math.Sin(A1) / N1 / Math.Cos(B1); B[0] = B1; L[0] = L1; dB[0] = dB1; dL[0] = dL1; A[0] = A1; M[0] = M1; N[0] = N1; W[0] = W1; int i; for (i = 1; i < n; i++) { dB[i - 1] = dS * Math.Cos(A[i - 1]) / M[i - 1]; B[i] = B[i - 1] + dB[i - 1]; W[i] = Math.Pow(1 - E * Math.Pow(Math.Sin(B[i]), 2), 0.5); N[i] = a / W[i];

相关主题
文本预览
相关文档 最新文档