当前位置:文档之家› 5800导线近似平差程序及应用

5800导线近似平差程序及应用

5800导线近似平差程序及应用
5800导线近似平差程序及应用

C语言间接平差程序

教材《误差理论与测量平差基础》第二版武汉大学出版社 P108页的例7-1的运行结果: 源程序: #define N 5 /*N是观测值个数*/ #define T 3 /*T是必要观测数*/ #include #include float Nbb[T][T],Nb[T][T],W[T][1],x[T][1]; main() { float D(float a[T][N],float b[N][N],float c[N][T]); float K(float a[T][N],float b[N][N],float c[N][1]); float G(float a[T][T]); float F(float ca[T-1][T-1]); float DM(float a[1][N],float b[N][N] ,float c[N][1]); int i,j,m,n; float B[N][T],BT[T][N],V[N][1],VT[1][N],P[N][N],C[N][1],Bx[N][1],f,g,h,x1; printf("请输入V的系数B[N][T]:\n"); for(i=0;i

for(i=0;i

水准网平差(VB代码)

(误差理论与测量平差础) 课程设计报告 系(部):土木工程系 实习单位:山东交通学院 班级:测绘084 学生姓名:田忠星学号080712420 带队教师:夏小裕﹑周宝兴 时间:10 年12 月13日到10 年12 月19日 山东交通学院

目录: 1.摘要P3 2.概述P3 3.水准网间接平差程序设计思路P3—P4 4. 平差程序流程图P4—P6 5. 程序源代码及说明P7—P23 6. 计算结果P23—P26 7. 总结P26—P27

一:摘要 在测量工作中,为了能及时发现错误和提高测量成果的精度,常作多余观测,这就产生了平差问题。在一个平差问题中,当所选的独立参数X?的个数等于必要观测数t时,可将每个观测值表达成这t个参数的函数,组成观测方程,这种以观测方程为函数模型的平差方法,就是间接平差。 二:概述: 该课程设计的主要目是对水准网进行间接平差,在输入数据后依次计算高程近似值﹑误差方程和平差计算。 三:水准网间接平差程序设计思路 1.根据平差问题的性质,选择t个独立量(既未知点的高程)作为参数X? 2. 将每一个观测量的平差值(既观测的高程差值)分别表达成 3.由误差方程系数B和自由项组成法方程,法方程个数等于参数的个数t ; 4. 解算法方程,求出参数X?,计算参数(高程)的平差值 X?=X0 +x?; 5.由误差方程计算V,求出观测量(高差)平差值6.评定精度 单位权中误差 V L L+ = ∧ V L L+ = ∧

平差值函数的中误差 四:平差程序流程图 1. 已知数据的输入 需要输入的数据包括水准网中已知点数﹑未知点数以及这些点的点号,已知高程和高差观测值﹑距离观测值。程序采用文件方式进行输入,约定文件输入的格式如下: 第一行:已知点数﹑未知点数﹑观测值个数 第二行:点号(已知点在前,未知点在后) 第三行:已知高程(顺序与上一行的点号对应) 第四行:高差观测值,按“起点点号,终点点号。高差观测值,距离观测值”的顺序输入。 本节中使用的算例的数据格式如下 2,3,7 1,2,3,4,5 5.016,6.016 1,3,1.359,1.1 1,4,2.009,1.7 2,3,0.363,2.3 ,?20s u n PV V r PV V T T +-==σ. ???0????σσQ =

fx-5800P_单一闭附合图根导线近似平差程序

单一闭附合图根导线近似平差计算程序(PM3-1) (2) 程序PM3-1,占用内存1848字节。 "CLOSED Or CONNECTING MAPPING TRAVERSE PM3-1"显示程序标题 Norm 1 "CLOSED(0) Or CONNECTING(1)="?Z导线类型,0为闭合导线,1为附合导线 "UNKNOWN POINT n="?P未知导线点数 Deg:Fix 3设置十进制度为单位 "XA(m),0 To BEAR A B(Deg)="?A输入已知点A的x坐标或输入≤0的数值 If A>0:Then "YA(m)="?B:Else "BEAR A B(Deg)="?R:IfEnd A>0时为输入A点y坐标,否则为输入A→B的方位角 "XB(m)="?C:"YB(m)="?D输入已知点B的坐标 If A>0:Then Pol(C-A,D-B):Cls计算A→B的方位角 If J<0:Then J+360R:Else J R:IfEnd "DIST A B(m)=":I显示A→B的水平距离 "BEAR A B(DMS)=":R显示A→B的方位角 IfEnd If Z=1:Then "XC(m)="?E:"YC(m)="?F附合导线,继续输入已知点C的坐标 "XD(m),0 To BEAR C D(Deg)="?G输入已知点D的x坐标或输入≤0的数值 If G>0:Then "YD(m)="?H:Else "BEAR C D(Deg)="?S:IfEnd G>0时为输入D点y坐标,否则为输入C→D的方位角 If G>0:Then Pol(G-E,H-F):Cls计算C→D的方位角 If J<0:Then J+360S:Else J S:IfEnd "DIST C D(m)=":I显示C→D的水平距离 "BEAR C D(DMS)=":S显示C→D的方位角 IfEnd Else If R>180:Then R-180S:Else R+180S:IfEnd闭合导线计算A→B的反方位角"BEAR B A(DMS)=":S显示B→A方向的方位角 IfEnd ClrStat:FreqOn清除统计串列List X,List Y,List Freq,打开频度串列 0M累加边长和变量清零 For 1I To P+1 Norm 1:"POINT n=":I显示当前输入的观测数据计数 "ANGLE(Deg)="?List X[I]输入水平角观测值 "DIST(m)="?List Y[I]输入水平距离观测值 List Y[I]+M M累加水平距离和 If I=1:Then R+List X[I]L:Else List Freq[I-1]+List X[I]L:IfEnd推算导线边方位角 If L>180:Then L-180L:Else L+180L:IfEnd If L>360:Then L-360L:IfEnd判断方位角是否大于360 L List Freq[I]存储导线边方位角 Next "LAST ANGLE(Deg)="?List X[P+2]输入最后一个水平角 List Freq[P+1]+List X[P+2]L If L>180:Then L-180L:Else L+180L:IfEnd If L>360:Then L-360L:IfEnd判断方位角是否大于360 L List Freq[P+2]存储最后一个方位角 3600(L-S)U以秒为单位的方位角闭合差 Fix 1:"ANGLE CLOSE ERROR(S)=":U显示方位角闭合差 60(P+2)W以秒为单位的方位角闭合差限差

测绘程序设计—实验八 水准网平差程序设计报告

《测绘程序设计(https://www.doczj.com/doc/8211793634.html,)》 上机实验报告 (Visual C++.Net) 班级:测绘0901班 学号:0405090204 姓名:代娅琴 2012年4月29日

实验八平差程序设计基础 一、实验目的 ?巩固过程的定义与调用 ?巩固类的创建与使用 ?巩固间接平差模型及平差计算 ?掌握平差程序设计的基本技巧与步骤 二、实验内容 水准网平差程序设计。设计一个水准网平差的程序,要求数据从文件中读取,计算部分与界面无关。 1.水准网间接平差模型: 2.计算示例:

近似高程计算:

3.水准网平差计算一般步骤 (1)读取观测数据和已知数据; (2)计算未知点高程近似值; (3)列高差观测值误差方程; (4)根据水准路线长度计算高差观测值的权; (5)组成法方程; (6)解法方程,求得未知点高程改正数及平差后高程值; (7)求高差观测值残差及平差后高差观测值; (8)精度评定; (9)输出平差结果。 4.水准网高程近似值计算算法 5.输入数据格式示例

实验代码: #pragma once class LevelControlPoint { public: LevelControlPoint(void); ~LevelControlPoint(void); public: CString strName;//点名 CString strID;//点号 float H; bool flag;//标记是否已经计算出近似高程值,若计算出则为,否则为}; class CDhObs { public: CDhObs(void); ~CDhObs(void); public: LevelControlPoint* cpBackObj;//后视点 LevelControlPoint* cpFrontObj;//前视点 double ObsValue;//高差值 double Dist;//测站的距离 }; #include"StdAfx.h" #include"LevelControlPoint.h" LevelControlPoint::LevelControlPoint(void) {

5800导线平差程序

5800计算器导线平差程序 一、程序用途及使用范围 本程序适用于一般导线复测平差计算,利用左角复测复合导线、闭合导线的平差时可直接使用。复合导线平差时输入起始和终止边两个方位角,如果将终止边方位角输入为0,程序会自动转入闭合导线平差界面。如果想用观测右角平差时,只需将程序中带下划线的地方按使用说明稍加改动即可。 二、源程序清单:1、JDPCA(文件名称) 0→M:0→I:0→K:“AFWJ”?A:“BFWJ”?B:“CZS”?→N:“JDRXBHCA”:24√ˉ(N)→P◣“∑(ZJ)”?→C:If B≠0 Then A-B-180N+C→D: EIseC-180(N-2)→D:IfEnd: “JDBHCA.f=”:D ?DMS◣PGoto 4:“JDGZ=”:-D÷N→F:F?DMS◣LbI 1:“CJ”?→P:B=0 And P=0=>Goto3:“JGH=”:P+F→J:J?DMS ◣A+J-180→E:If E>0 And E<360:ThenE:IfEnd:If E>360:ThenE-360→E:IfEnd: :If E<360:ThenE+360→E:IfEnd: “FWJ=”:E?DMS◣“L”?→L:L=0 And B≠0=>Goto3:“XO=”:Lcos(E)→X◣“YO=”:Lsin(E)→Y◣M+L→M:I+X→I:K+Y→K:E→A:Goto1:LbI3:“∑(L)=”:M◣“∑(XO)=”:I◣“∑(YO)=”:K◣Prog“DXPCA”:LbI4 DXPCA(文件名称,可单独运行) “AX”?→A:“A Y”?→Z:If B≠0:Then “BX”?→C:“BY”?→D:“FX=”:I-C+A→F◣“FY=”:K-D+Z→W◣EIse “FX=”:I

水准网间接平差程序设计(C++)

//////////////////////////////////////////////////// // visual C++6.0 编译通过 // //////////////////////////////////////////////////// /////////////////////////////////////////////////// // 参考资料 // // 部分网络资料 // // 宋力杰《测量平差程序设计》 // //连壁《基于matlab的控制网平差程序设计》 // /////////////////////////////////////////////////// #include #include #include #include #include using namespace std; //////////////////////////////////////////////////////////////////////////class class SZWPC { private: int gcz_zs; //高差总数 int szd_zs; //总点数 int yz_szd_zs; //已知点数 double m_pvv; //[pvv] int *qsd_dh; //高差起点号 int *zd_dh; //高差终点号 char **dm; //点名地址数组 double *gcz; //观测值数组 double *szd_gc; //高程值数组 double *P; //观测值的权 double *ATPA,*ATPL; //法方程系数矩阵与自由项 double *dX; //高程改正数、平差值 double *V; //残差 double m_mu; //单位权中误差 public: SZWPC(); ~SZWPC(); int ij(int i,int j);//对称矩阵下标计算函数 bool inverse(double a[],int n);//对称正定矩阵求逆(仅存下三角元素)(参考他人)

实验三-利用matlab程序设计语言完成某工程导线网平差计算

实验三利用matlab程序设计语言完成某工 程导线网平差计算 实验数据; 某工程项目按城市测量规范(CJJ8-99)不设一个二级导线网作为首级平面控制网,主要技术要求为:平均边长200cm,测角中误差±8,导线全长相对闭合差<1/10000,最弱点的点位中误差不得大于5cm,经过测量得到观测数据,设角度为等精度观测值、测角中误差为m=±8秒,鞭长光电测距、测距中误差为m=±0.8√smm,根据所学的‘误差理论与测量平差基础’提出一个最佳的平差方案,利用matlab完成该网的严密平差级精度评定计算; 平差程序设计思路: 1采用间接平差方法,12个点的坐标的平差值作为参数.利用matlab进行坐标反算,求出已知坐标方位角;根据已知图形各观测方向方位角; 2计算各待定点的近似坐标,然后反算出近似方位角,近似边.计算各边坐标方位角改正数系数; 3确定角和边的权,角度权Pj=1;边长权Ps=100/S; 4计算角度和边长的误差方程系数和常数项,列出误差方程系数矩阵B,算出Nbb=B’PB,W=B’Pl,参数改正数x=inv(Nbb)*W;角

度和边长改正数V=Bx-l; 6 建立法方程和解算x,计算坐标平差值, 精度计算;程序代码以及说明: s10=238.619;s20=170.759; s30=217.869;s40=318.173; s50=245.635;s60=215.514; s70=273.829;s80=241.560; s90=224.996;s100=261.826; s110=279.840;s120=346.443; s130=312.109;s140=197.637; %已知点间距离 Xa=5256.953;Ya=4520.068; Xb=5163.752;Yb=4281.277; Xc=3659.371;Yc=3621.210; Xd=4119.879;Yd=3891.607; Xe=4581.150;Ye=5345.292; Xf=4851.554;Yf=5316.953; %已知点坐标值 a0=atand((Yb-Ya)/(Xb-Xa))+180; d0=atand((Yd-Yc)/(Xd-Xc)); f0=atand((Yf-Ye)/(Xf-Xe))+360; %坐标反算方位角a1=a0+(163+45/60+4/3600)-180 a2=a1+(64+58/60+37/3600)-180; a3=a2+(250+18/60+11/3600)-180;

附合导线平差教程

附合导线导线平差步骤 城市平面控制网的种类较多,有GPS网、三角网、边角组合网和导线网,其中导线网按等级划分为三、四等和一、二、三级。本文以附合导线的内业数据处理为例,说明控制点坐标平差处理的方法。 导线的内业计算,就是根据起始点的坐标和起始边的坐标方位角,以及所观测的导线边长和转折角,计算各导线点的坐标。计算的目的除了求得各导线点的坐标外,还有就是检核导线外业测量成果的精度。 在转入内业计算之前,应整理并全面检查外业测量的基础资料,检查数据是否完整,是否有记录错误和计算错误,是否满足精度要求,起算数据是否正确和完整,然后绘制相应导线的平面草图,并将相关数据标示于草图的对应部位。 如图2-21所示的附合导线,观测转折角为左角,计算的步骤如下: (1)填表。 计算之前,首先将示意图中各观测数据(观测角和边长)和已知数据(起始边和附合边的坐标方位角,起始点和终止点的坐标)填入相应表格之中,如表2-19所示。 (2)角度闭合差的计算与调整。 如图2-20所示的附合导线,观测转折角为左角,根据坐标方位角的推算公式可以依次计算各边的坐标方位角: αA1=αBA+βA-180° α12=αA1+β1-180° α2C=α12+180°+β 2 +)α CD ′=α 2C +180°+β C αCD′=αBA+∑β测左-4×180°计算终边坐标方位角的一般公式为: α 终边′=α 始边 +∑β 测左 -n·180°(2-5) 式中n为导线观测角个数。 角度闭合差的计算公式为: f β测 =α终边′(实测)-α终边(理论)(2-6)

图2-21 附合导线计算示意图 角度闭合差f β的大小,表明测角精度的高低。对于不同等级的导线,有不同的限差(即f β容)要求,例如图根导线角度闭合差的允许值为: f β容=±60″n (2-7) f β容=±10″n (一级导线角度闭合差) 式中n 为多边形内角的个数。这一步计算见辅助计算栏,f β测=+41″, f β 容 =±120″。 若f β测≤f β容,说明测角精度符合要求,此时需要进行角度闭合差的调整。 调整是应注意:当用左角计算α终边 ′时,改正数的符号与f β测符号相反;当用右 角计算α 终边 ′时,改正数的符号与f β测符号相同。可将闭合差按相反符号平均分 配给各观测角,而得出改正角: β=β测-f β测/n (2-8) 式中n 为多边形内角的个数。按(-f β测/n )式计算的改正数,取位至秒,填入表格第3列。 当f β测>f β容时,则说明测角误差超限,应停止计算,重新检测角度。 (3)坐标方位角的推算 根据起始边的坐标方位角及改正角,用(2-5)式依次计算各边的坐标方位角,填入第5列。为了检核,最后应重新推算结束边的坐标方位角,它应与已知数值相等。否则,应重新推算。例如 α CD ′ =α 2C +180°+βC =139°50′18″+180°+49°02′38″=8°52′ 55″ (4)坐标增量的计算及闭合差调整 坐标增量计算,就是根据已经推算出的导线各边的坐标方位角和相应边的边

测绘程序设计实验八水准网平差程序设计报告完整版

测绘程序设计实验八水准网平差程序设计报告 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

《测绘程序设计》上机实验报告 (Visual C++.Net) 班级:测绘0901班 学号: 04 姓名:代娅琴 2012年4月29日

实验八平差程序设计基础 一、实验目的 巩固过程的定义与调用 巩固类的创建与使用 巩固间接平差模型及平差计算 掌握平差程序设计的基本技巧与步骤 二、实验内容 水准网平差程序设计。设计一个水准网平差的程序,要求数据从文件中读取,计算部分与界面无关。 1.水准网间接平差模型: 2.计算示例:

近似高程计算: 3.水准网平差计算一般步骤 (1)读取观测数据和已知数据; (2)计算未知点高程近似值; (3)列高差观测值误差方程; (4)根据水准路线长度计算高差观测值的权; (5)组成法方程; (6)解法方程,求得未知点高程改正数及平差后高程值; (7)求高差观测值残差及平差后高差观测值; (8)精度评定; (9)输出平差结果。 4.水准网高程近似值计算算法

5.输入数据格式示例 实验代码: #pragma once class LevelControlPoint { public: LevelControlPoint(void); ~LevelControlPoint(void);

public: CString strName;trName=pstrData[0]; m_pKnownPoint[i].strID=pstrData[0]; m_pKnownPoint[i].H=_tstof(pstrData[1]); m_pKnownPoint[i].flag=1;trName=pstrData[i]; m_pUnknownPoint[i].strID=pstrData[i]; m_pUnknownPoint[i].H=0;lag=0;pBackObj=SearchPointUsingID(pstrData[0]);pFrontObj=Sea rchPointUsingID(pstrData[1]);ObsValue=_tstof(pstrData[2]);ist=_tstof(pstrData[3]);trID==ID) {return &m_pKnownPoint[i];} } return NULL; } trID==ID) {return &m_pUnknownPoint[i];} } return NULL; } LevelControlPoint* AdjustLevel::SearchPointUsingID(CString ID) { LevelControlPoint* cp; cp=SearchKnownPointUsingID(ID); if(cp==NULL) cp=SearchUnknownPointUsingID(ID); return cp; } void AdjustLevel::ApproHeignt(void)lag!=1) { pFrontObj->strID==m_pUnknownPoint[i].strID) && m_pDhObs[j].cpBackObj->flag==1 ) { =m_pDhObs[i].cpBackObj->H - m_pDhObs[i].ObsValue;*/ m_pUnknownPoint[i].H=m_pDhObs[j].cpBackObj->H + m_pDhObs[j].HObsValue; m_pUnknownPoint[i].flag=1; break; } } if(m_pUnknownPoint[i].flag!=1)pBackObj- >strID==m_pUnknownPoint[i].strID) && m_pDhObs[j].cpFrontObj->flag==1 ) { =m_pDhObs[j].cpFrontObj->H-m_pDhObs[j].HObsValue;

附合导线平差程序设计报告

《测量平差程序》课程设计 (报告) 学生姓名:罗正材 学号:1108030128 专业:2011级测绘工程 指导教师:肖东升

目录 一、前言 (3) 二、平差程序的基本要求 (3) 三、平差程序模块化 (3)

图1 四、平差中的重要函数 (一)、角度制与弧度制的相互转化 C/C++程序设计中,关于角度的计算以弧度制为单位,而在测量以及具体工作中我们通常习惯以角度制为单位。这样,在数据处理中,经常需要在角度制与弧度制之间进行相互转化。这里,我们利用C/C++数学函数库math.h中的相关函数完成这两种功能。 这里,我们使用double类型数据表示角度制数和弧度制数。例如:123度44分58.445秒,用double类型表示为123.4458445,其中分、秒根据小数位确定。 在角度制与弧度制的转化中,涉及如下图2所示的两个环节。 度.分秒度弧度 图2 1.角度化弧度函数 double d_h(double angle) //角度化弧度 { double a,b; angle=modf(angle,&a);//a为提取的度值(int类型),angle为分秒值(小数) angle=modf(angle*100.0,&b); // b为提取的分值(int类型),angle为秒值(小数) return (a+b/60.0+angle/36.0)*(PI+3.0E-16)/180.0; } 2.弧度化角度函数 double h_d(double angle) //弧度化角度

{ double a,b,c; angle=modf(angle*180.0/(PI-3.0E-16),&a); angle=modf(angle*60.0,&b); angle=modf(angle*60.0,&c); return a+b*0.01+c*0.0001+angle*0.0001; } 其中,函数modf(angle,&a)为C语言数学库函数,返回值有两个,以引用类型定义的a 返回angle的整数部分,函数直接返回值为angle的小数部分。 (二)近似坐标计算 在平面网间接平差计算中,近似坐标计算是非常重要的一项基础工作。近似坐标是否计算成功是间接平差是否可以进行的必要条件。 1.两方向交会 已知条件:两个点的近似坐标,这两个点到未知点的方位角,如图3所示 图3两方向交会 根据图4.2,设 1 1 α tg k=, 2 2 α tg k=,则很容易写出 ? ? ? ? ? ? - = - - = B P B P A P A P y y k x x y y k 2 1 整理该式,得两方向交会的的计算公式 ?? ? ? ? ? - - = ?? ? ? ? ? ?? ? ? ? ? - - B B A A P P y x k y x k y x k k 2 1 2 1 1 1 (4.1)对(4.1)式计算,即可得到未知点的近似坐标。应用中需要注意的是,若两方向值相同或相反,则该式无解。 程序中,定义该问题的函数为:int xy0ang(obser &a1,obser &a2) 2.三边交会 如图4所示,为排除两边长交会的二义性,给出如下三边交会的模型,已知条件:三个

条件平差程序

条件平差程序 #include <stdio.h> #include <math.h> #include <conio.h> #define N_max 15 int n,m,r,p; //n:观测值的个数,m:待定点个数,r:多余观测值个数,p:已知高程的水准点个数 float Hd[6]={0}; void Choose() { int i; printf("此程序能够解决闭合水准路线、附和水准路线、支水准路线的条件平差。\n"); printf("请问已知高程的水准点个数为:(不要太多喔,~ 。~):"); scanf("%d",&p); for(i=1;i<=p;i++) { printf("已知点%c点的高程为:",64+i); scanf("%f",&Hd[i]); } } void Input(float Hgao[][3]) //输入各测点的高程差以及它们之间的距离 { int i; for(i=1;i<=n;i++) { printf("请输入h%d的数值:",i); scanf(" %f",&Hgao[i][1]); printf("请输入S%d的数值:",i); scanf("%f",&Hgao[i][2]); } } void Equation(int A[][N_max],char Equa[][50],int asd[][6],float Hgao[][3],float W[],int flag)//输入条件方程或者求某待定点的表达式 { int i,j,k,ppt;

C#附和导线平差程序设计实习报告

前言 随着测绘科学技术的不断发展,在测量数据的处理中产生很多种平差的方法。附和导线近似平差程序是利用C#编程实现的,我们需要将导线网的已知数据信息按照特定的规则输入到.txt文本中,利用C#程序读取文本数据信息后,对其进行一系列的平差计算,最终获得平差后的结果,并以.txt文本的形式输出,这样就可为测量工作提供一定的参考。 平差程序的基本要求 平差程序的设计与其他程序设计相同,应满足一定要求。 1.程序逻辑结构简单,清晰易读,符合结构化程序设计要求,便于拓展; 2.运算速度快,占用内存小,内外存储之间的交换不宜过于频繁; 3.数学模型及计算方法正确且先进,计算结果精度高; 4.适用性强,便于移植,充分考虑各种可能形式,满足不同需求; 5.方便用户,操作简单,输出明了、齐全,人机交互良好。 上述要求,既体现现在平差程序的总体设计中,也贯穿于平差程序设计的各个环节中。 平差程序中的重要函数 (一)角度制与弧度制的相互转化 C#程序设计中,关于角度的计算以弧度制为单位,而在测量工作中我们通常以角度制记录数据。所以,在数据处理中,通常需要在角度制与弧度制之间进行相互转化。这里我们需要利用相关函数完成这两种功能。 1.角度化弧度函数: static public double DEG(double ang) { int fuhao = (int)(ang / Math.Abs(ang)); ang = Math.Abs(ang); int d = (int)ang; int m = ((int)(ang * 100)) - d * 100; double s = ang * 10000 - m * 100 - d * 10000; return ((d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 * Math.PI; } 2.弧度化角度函数: static public double DMS(double ang) { ang += 1.0E-15;//加上一个小量,以保证进位 int fuhao = (int)(ang / Math.Abs(ang));

水准网平差c++代码

水准网平差 结果 #include #include #include #include #define max 50 class CMatrix { public: CMatrix(){row=0; column=0;}; // 默认构造函数 CMatrix(int i, int j){row=i;column=j;} // 构造函数一 CMatrix(const CMatrix& m); // 复制构造函数 ~CMatrix(void){/*cout<<"谢谢使用,矩阵所占空间以释放!"<

导线测量平差常见问答

导线测量平差常见问答 一、为何有时计算结果与其它计算有些差异? 答:a.观测角度使用的是前进方向的左角还是右角,本软件采用前进方向的左角,输入负号时表示是前进方向的右角,并转换为左角平差。 b.是否选用了概算,及概算的各选项是否正确。 c.是否使用严密平差,严密平差与近似平差计算结果是不同的。 d.严密平差是否使用迭代平差,有些软件尽管使用严密平差,但只进行单次平差,精度不高。 e.严密平差的先验误差设置是否一致,是否使用了Helmert验后方差定权,软件使用的定权方式可能不一样,导致部分差异。 f.近似平差是否选用了反算等,可以在“项目设置”中更改以适合您的需要。 g.近似平差时是否选用了角度改正前的坐标增量闭合差,这会导致坐标增量闭合差的不一致。 h.高程平差时,水准和三角高程因为定权的不同而有差异,坐标导线按三角高程计算,其它则提供了高差类型的选择。 二、如何选择严密平差或近似平差?近似平差是否需要进行方位角边长反算? 答: 《工程测量规范》规定:一级及以上平面控制网的计算,应采用严密平差法,二级及以下平面控制网,可根据需要采用严密或简化方法平差。当采用简化方法平差时,应以平差后坐标反算的角度和边长作为成果。 《城市测量规范》规定:四等以下平面控制网可采用近似平差法和按近似方法评定其精度。......采用近似平差方法的导线网,应根据平差后坐标反算的方位角与边长作为成果。 因此,严密平差适用于各等级导线,而近似平差适用于较低等级导线,采用近似平差时应对方位角、角度、边长等进行反算,以便方位角、边长、角度等可以作为最终成果使用。 三、为什么软件中默认的计算表格样式与我们的习惯不一样? 答:成果表格可以自定义,计算表因方案设置的不同而有所不同。 这里主要是因为您使用的是近似平差且不进行反算的格式,而本软件默认是严密平差,当选择近似平差时默认也是进行反算的。可以在项目设置中选择近似平差,并且去掉“方位角、边长反算”等即可获得您所需的格式。 四、近似平差时的坐标增量闭合差为什么与有些书上不一样? 答:近似平差中,计算方案里有一个选项,以让用户选择近似平差是否使用在角度闭合差分配前计算的坐标增量闭合差来反映导线精度。使用角度闭合差分配前计算的坐标增量闭合差将与严密平差一致,否则与通常的手工计算一致。 五、验后测角中误差有时相对于角度闭合差为何显得很大? 答:这主要有以下情况: a.先验误差设置不切实际,相对于测角,将测距先验误差设置过高会导致程序认为误差主要来源于角度,而对角度加以较大的改正数,使得评定的测角中误差较大。 b.测量发生错误,主要可能是边长测量错误,使得坐标增量闭合差太大。 c.已知点精度不高。 六、为什么角度闭合差不是平均分配的? 答:严密平差是按最小二乘法平差,角度闭合差不是平均分配的。 近似平差角度闭合差是平均分配的,但如果计算方案里选择了进行反算,则角度、方位角、边长等都是反算后的最终成果,并不是计算的中间成果,角度改正数也就可能有正有负。

基于MATLAB的控制网平差程序设计--第四章源代码

chkdat函数(72页) function [n1,k]=chkdat(sd,pn,n1) n=length(n1); k=0; for i=1:n i1=0; for j=1:sd if(n1(i)==pn(j)) i1=1; n1(i)=j; break; end end if(i1==0) % fprintf(fit2,'%5d %5d\n',i,n1(i) k=1; end end return readlevelnetdata函数(73页) function [ed,dd,sd,gd,pn,h0,k1,k2,h1,s]=readlevelnetdata global filename filepath; global ed dd sd pn gd h0 k1 k2 h1 s k11 k12; k1=[];k2=[];h=[];s=[]; [filename,filepath]=uigetfile('*.txt','选择高程数据文件'); fid1=fopen(strcat(filepath,filename),'rt'); if(fid1==-1) msgbox('Input File or Path is not correct','Warning','warn'); return; end ed=fscanf(fid1,'%f',1); dd=fscanf(fid1,'%f',1); sd=ed+dd; gd=fscanf(fid1,'%f',1); pn=fscanf(fid1,'%f',sd); h0=fscanf(fid1,'%f',ed); h0(dd+1:ed+dd)=h0(1:ed); heightdiff=fscanf(fid1,'%f',[4,gd]); heightdiff=heightdiff'; k1=heightdiff(:,1);%起点 k2=heightdiff(:,2);%终点 k11=heightdiff(:,1);%起点

南方平差软件PA2005说明书

关于平差易(PA2005) 平差易(Power Adjust 2005,简称PA2005),它是在Windows系统下用VC 开发的控制测量数据处理软件,也是南方测绘PA2002的升级产品。它一改过去单一的表格输入,采用了Windows风格的数据输入技术和多种数据接口(南方系列产品接口、其他软件文件接口),同时辅以网图动态显示,实现了从数据采集、数据处理和成果打印的一体化。成果输出丰富强大、多种多样,平差报告完整详细,报告内容也可根据用户需要自行定制,另有详细的精度统计和网形分析信息等。其界面友好,功能强大,操作简便,是控制测量理想的数据处理工具。 如何安装平差易 平差易可在Windows95、98、2000和XP下安装运行。 安装步骤 平差易(PA2005)的安装光盘中有PA2005文件夹,打开此文件夹并找到setup.exe 文件,双击setup.exe后屏幕上将出现下图的界面。 平差易的安装准备 等待2秒钟,平差易的安装准备完成后即进入平差易的安装。

点击“Next”进入软件安装“用户须知”界面 如果同意安装许可,请点击“yes”。

安装路径 在上图“安装路径”中设置PA2005的安装目录。安装软件给出了默认的安装位置c:\Program Files\South Survey Office\Power Adjust,用户也可以通过单击Browse 按钮从弹出的对话框中修改软件的文件夹。如果已选择好了文件夹,则可以单击Next 按钮开始进行安装。此时平差易的主体程序已安装完毕。 安装完成后屏幕弹出以下界面,确定是否要安装软件狗的驱动程序。

单一附合导线测量控制网平差程序

单一符合导线测量控制网平差程序 梁彩艳 (西北石油局工程服务大队,新疆乌鲁木齐830011) 摘要:由于全站仪(光电仪) 的不断普及,导线布网已在测量控制网中广泛应用。为了简化计算,提高平差精度,节约 平差经费,结合实际工作中的一个实例,运用PC —E500 计算器编制了单一符合导线高斯平差程序。 关键词:单一;符合导线;平差程序 1 差原理及程序框图(见图1) 2 实例 在单一符合导线(如图2) 中,已知各起始数据,观测了各折 角方向值,测量了各边长(见表1) ,观测方向中误差δr = ±5″,边长丈量中误差δsi = ±0. 5 simm ,求各导线点的坐标平差值和最弱点4 号点的点位精度(可假设单位权中误差δ0 = ±5″,则观测角权为0. 5 ,观测边权Psi = 100/ Si) 。 图2 单一符合导线示意图 表1 测量数据一览表 点号 已知坐标(m) X Y 编号 已知坐标

方位角 B 3020. 348 - 9049. 801 αAB 226°44′59″ C 3702. 437 - 10133. 399 αC D 57°59′31″ 编号观测角度编号 观测边长 (m) 1 230°32′37″ 1 204. 952 2 180°00′42″ 2 200. 130 3 170°39′22″ 3 345. 153 4 236°48′37″ 4 278. 059 5 192°14′25″ 5 451. 692 6 260°59′01″ 3 平差程序 10 :REM SUB 10 - 190 QIU DAO XIAN DIAN GAI LUE ZUO BIAO 20 :REM SHU ZU”A”WEI FANG WEI J IAO ,”B”WEI GUAN CE ZUO J IAO ,”S”WEI BIAN CHANG,”P”WEI QUAN ,”V”WEI GAI ZHENG SHU ,”MX、MY、M”WEI DAI QIU DIAN ZHONG WU CHA ,”X、Y”WEI ZUO BIAO 30 : INPUT”GUAN CE J IAO GE SHU :N = ”;N 40 :DIM A (N) ,B (N) ,S (N) ,X(2 3 N) , Y(2 3 N) , P (2 3

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