单导线和水准平差

单导线平差计算具体步骤

第一步:读取观测数据与已知点坐标数据

第二步:计算未知点近似坐标(推算方法与简易计算中一样)

第三步:计算角度观测值误差方程的系数和常数项

第四步:计算边长观测值误差方程的系数和常数项

第五步:组成误差方程,得到系数矩阵和常数项矩阵

第六步:定权,得到权矩阵

第七步:组成并解算法方程

第八步:计算观测值残差及平差后观测值

第九步:精度评定(单位权中误差、观测值验后误差、点位误差,误差椭圆参

数计算)

第十步:输出结果

//数据格式: //第一行:单水准类型,=附合,=闭合 //第二行:起点高程," 点号,高程" //第三行:终点高程," 点号,高程" (附合水准才有,闭合水准则开始观测数据) //第四行:观测数据," 序号,高差观测值m ,水准路线长度km" //...... UpdateData(FALSE); //Edit control的MultiLine 和WantReturn 属性都设置成TRUE strObsData.Format(_T("%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s"), _T("1" ), _T("A, 45.286") , _T("B, 49.579") , _T("1,2.331,1.6" ), _T("2,2.813,2.1" ), _T("3,-2.244,1.7" ), _T("4,1.430,2.0" ));

} void CSingleLevelingDlg::OnSysCommand(UINT nID, LPARAM lParam) { } // 如果向对话框添加最小化按钮,则需要下面的代码 // 来绘制该图标。对于使用文档/视图模型的MFC 应用程序, // 这将由框架自动完成。 void CSingleLevelingDlg::OnPaint() { SendMessage(WM_ICONERASEBKGND, if (IsIconic()) { CPaintDC dc(this ); // 用于绘制的设备上下文 if ((nID & 0xFFF0) == IDM_ABOUTBOX) { } else { } CDialog::OnSysCommand(nID, lParam); CAboutDlg dlgAbout; dlgAbout.DoModal();

reinterpret_cast(dc.GetSafeHdc()), 0);

// 绘制图标 // 使图标在工作区矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2;

} } else { } CDialog::OnPaint(); //当用户拖动最小化窗口时系统调用此函数取得光标 //显示。 HCURSOR CSingleLevelingDlg::OnQueryDragIcon() { } void CSingleLevelingDlg::OnBnClickedBtncompute() { CString *strTmp=NULL; int n; nLevelType = _ttoi(pstrLine[0]); //第一行为单一水准类型 //分行并存入字符串数组 CString *pstrLine=SplitString(strObsData,13,iLine); if (iLine(m_hIcon);

Ha = _tstof((strTmp[1])); //获取起始点高程 if (strTmp!=NULL)//释放内存 { } delete [] strTmp; strTmp=NULL; strTmp = SplitString(pstrLine[2], ',' ,n); //分割第三行 Hb = _tstof((strTmp[1])); //获取终点高程 if (strTmp!=NULL)//释放内存 { } delete [] strTmp; strTmp=NULL; //逐行用Split 函数分离,获取观测数据 for (int i=0;i

} dSumD = dSumD + dObs[i];//计算水准路线总长度 dFh = dFh - (Hb - Ha); //计算高差闭合差 for (int i=0;i

} if (dObs!=NULL) { } delete [] dObs; dObs=NULL; if (hObs!=NULL) { } if (dH!=NULL) { } delete [] dH; dH=NULL; delete [] hObs; hObs=NULL; CString * CSingleLevelingDlg::SplitString(CString str, char split, int & iSubStrs) { int iPos = 0; //分割符位置 int iNums = 0; //分割符的总数 CString strTemp = str; CString strRight; //先计算子字符串的数量 while (iPos != -1) { iPos = strTemp.Find(split); if (iPos == -1) { break ; } strRight = strTemp.Mid(iPos + 1, str.GetLength()); strTemp = strRight; iNums++; } if (iNums == 0) //没有找到分割符

//子字符串数就是字符串本身 iSubStrs = 1; return NULL; } //子字符串数组 iSubStrs = iNums + 1; //子串的数量= 分割符数量+ 1 CString* pStrSplit; pStrSplit = new CString[iSubStrs]; strTemp = str; CString strLeft; for (int i = 0; i

水准网平差计算一般步骤

(1) 读取观测数据和已知数据

(2)计算未知点高程近似值

(3)列高差观测值误差方程

(4)根据水准路线长度计算高差观测值的权

(5)组成法方程

(6)解法方程,求得未知点高程改正数及平差后高程值

(7)求高差观测值残差及平差后高差观测值

(8)精度评定

(9)输出平差结果

单一水准导线计算

//数据格式:

//第一行:单水准类型,=附合,=闭合

//第二行:起点高程," 点号,高程"

//第三行:终点高程," 点号,高程" (附合水准才有,闭合水准则开始观测数据) //第四行:观测数据," 序号,高差观测值m ,水准路线长度km"

//......

void CSingleLevelingDlg::OnBnClickedBtncompute()

{

CString *strTmp=NULL; int n; //分行并存入字符串数组 CString *pstrLine=SplitString(strObsData,13,iLine); if (iLine

strTmp = SplitString(pstrLine[1], ',' ,n); //分割第二行 Ha = _tstof((strTmp[1])); //获取起始点高程 if (strTmp!=NULL)//释放内存 { } delete [] strTmp; strTmp=NULL; strTmp = SplitString(pstrLine[2], ',' ,n); //分割第三行 Hb = _tstof((strTmp[1])); //获取终点高程 if (strTmp!=NULL)//释放内存 { } delete [] strTmp; strTmp=NULL; //逐行用Split 函数分离,获取观测数据 for (int i=0;i

} dFh = dFh + hObs[i]; //计算高差观测值之和 dSumD = dSumD + dObs[i];//计算水准路线总长度 dFh = dFh - (Hb - Ha); //计算高差闭合差 for (int i=0;i

}

CString * CSingleLevelingDlg::SplitString(CString str, char split, int & iSubStrs) {

int iPos = 0; //分割符位置

int iNums = 0; //分割符的总数

CString strTemp = str;

CString strRight;

//先计算子字符串的数量

while (iPos != -1)

{

iPos = strTemp.Find(split);

if (iPos == -1)

{

break ;

}

strRight = strTemp.Mid(iPos + 1, str.GetLength());

strTemp = strRight;

iNums++;

}

if (iNums == 0) //没有找到分割符 if (hObs!=NULL) { } if (dH!=NULL) { } delete [] dH; dH=NULL; delete [] hObs; hObs=NULL; //释放内存 if (dObs!=NULL) { } delete [] dObs; dObs=NULL;

{

//子字符串数就是字符串本身

iSubStrs = 1;

return NULL;

}

//子字符串数组

iSubStrs = iNums + 1; //子串的数量= 分割符数量+ 1 CString* pStrSplit;

pStrSplit = new CString[iSubStrs];

strTemp = str;

CString strLeft;

for (int i = 0; i

{

iPos = strTemp.Find(split);

//左子串

strLeft = strTemp.Left(iPos);

//右子串

strRight = strTemp.Mid(iPos + 1, strTemp.GetLength()); strTemp = strRight;

pStrSplit[i] = strLeft;

}

pStrSplit[iNums] = strTemp;

return pStrSplit;

}

单导线平差计算具体步骤

第一步:读取观测数据与已知点坐标数据

第二步:计算未知点近似坐标(推算方法与简易计算中一样)

第三步:计算角度观测值误差方程的系数和常数项

第四步:计算边长观测值误差方程的系数和常数项

第五步:组成误差方程,得到系数矩阵和常数项矩阵

第六步:定权,得到权矩阵

第七步:组成并解算法方程

第八步:计算观测值残差及平差后观测值

第九步:精度评定(单位权中误差、观测值验后误差、点位误差,误差椭圆参

数计算)

第十步:输出结果

//数据格式: //第一行:单水准类型,=附合,=闭合 //第二行:起点高程," 点号,高程" //第三行:终点高程," 点号,高程" (附合水准才有,闭合水准则开始观测数据) //第四行:观测数据," 序号,高差观测值m ,水准路线长度km" //...... UpdateData(FALSE); //Edit control的MultiLine 和WantReturn 属性都设置成TRUE strObsData.Format(_T("%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s"), _T("1" ), _T("A, 45.286") , _T("B, 49.579") , _T("1,2.331,1.6" ), _T("2,2.813,2.1" ), _T("3,-2.244,1.7" ), _T("4,1.430,2.0" ));

} void CSingleLevelingDlg::OnSysCommand(UINT nID, LPARAM lParam) { } // 如果向对话框添加最小化按钮,则需要下面的代码 // 来绘制该图标。对于使用文档/视图模型的MFC 应用程序, // 这将由框架自动完成。 void CSingleLevelingDlg::OnPaint() { SendMessage(WM_ICONERASEBKGND, if (IsIconic()) { CPaintDC dc(this ); // 用于绘制的设备上下文 if ((nID & 0xFFF0) == IDM_ABOUTBOX) { } else { } CDialog::OnSysCommand(nID, lParam); CAboutDlg dlgAbout; dlgAbout.DoModal();

reinterpret_cast(dc.GetSafeHdc()), 0);

// 绘制图标 // 使图标在工作区矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2;

} } else { } CDialog::OnPaint(); //当用户拖动最小化窗口时系统调用此函数取得光标 //显示。 HCURSOR CSingleLevelingDlg::OnQueryDragIcon() { } void CSingleLevelingDlg::OnBnClickedBtncompute() { CString *strTmp=NULL; int n; nLevelType = _ttoi(pstrLine[0]); //第一行为单一水准类型 //分行并存入字符串数组 CString *pstrLine=SplitString(strObsData,13,iLine); if (iLine(m_hIcon);

Ha = _tstof((strTmp[1])); //获取起始点高程 if (strTmp!=NULL)//释放内存 { } delete [] strTmp; strTmp=NULL; strTmp = SplitString(pstrLine[2], ',' ,n); //分割第三行 Hb = _tstof((strTmp[1])); //获取终点高程 if (strTmp!=NULL)//释放内存 { } delete [] strTmp; strTmp=NULL; //逐行用Split 函数分离,获取观测数据 for (int i=0;i

} dSumD = dSumD + dObs[i];//计算水准路线总长度 dFh = dFh - (Hb - Ha); //计算高差闭合差 for (int i=0;i

} if (dObs!=NULL) { } delete [] dObs; dObs=NULL; if (hObs!=NULL) { } if (dH!=NULL) { } delete [] dH; dH=NULL; delete [] hObs; hObs=NULL; CString * CSingleLevelingDlg::SplitString(CString str, char split, int & iSubStrs) { int iPos = 0; //分割符位置 int iNums = 0; //分割符的总数 CString strTemp = str; CString strRight; //先计算子字符串的数量 while (iPos != -1) { iPos = strTemp.Find(split); if (iPos == -1) { break ; } strRight = strTemp.Mid(iPos + 1, str.GetLength()); strTemp = strRight; iNums++; } if (iNums == 0) //没有找到分割符

//子字符串数就是字符串本身 iSubStrs = 1; return NULL; } //子字符串数组 iSubStrs = iNums + 1; //子串的数量= 分割符数量+ 1 CString* pStrSplit; pStrSplit = new CString[iSubStrs]; strTemp = str; CString strLeft; for (int i = 0; i

水准网平差计算一般步骤

(1) 读取观测数据和已知数据

(2)计算未知点高程近似值

(3)列高差观测值误差方程

(4)根据水准路线长度计算高差观测值的权

(5)组成法方程

(6)解法方程,求得未知点高程改正数及平差后高程值

(7)求高差观测值残差及平差后高差观测值

(8)精度评定

(9)输出平差结果

单一水准导线计算

//数据格式:

//第一行:单水准类型,=附合,=闭合

//第二行:起点高程," 点号,高程"

//第三行:终点高程," 点号,高程" (附合水准才有,闭合水准则开始观测数据) //第四行:观测数据," 序号,高差观测值m ,水准路线长度km"

//......

void CSingleLevelingDlg::OnBnClickedBtncompute()

{

CString *strTmp=NULL; int n; //分行并存入字符串数组 CString *pstrLine=SplitString(strObsData,13,iLine); if (iLine

strTmp = SplitString(pstrLine[1], ',' ,n); //分割第二行 Ha = _tstof((strTmp[1])); //获取起始点高程 if (strTmp!=NULL)//释放内存 { } delete [] strTmp; strTmp=NULL; strTmp = SplitString(pstrLine[2], ',' ,n); //分割第三行 Hb = _tstof((strTmp[1])); //获取终点高程 if (strTmp!=NULL)//释放内存 { } delete [] strTmp; strTmp=NULL; //逐行用Split 函数分离,获取观测数据 for (int i=0;i

} dFh = dFh + hObs[i]; //计算高差观测值之和 dSumD = dSumD + dObs[i];//计算水准路线总长度 dFh = dFh - (Hb - Ha); //计算高差闭合差 for (int i=0;i

}

CString * CSingleLevelingDlg::SplitString(CString str, char split, int & iSubStrs) {

int iPos = 0; //分割符位置

int iNums = 0; //分割符的总数

CString strTemp = str;

CString strRight;

//先计算子字符串的数量

while (iPos != -1)

{

iPos = strTemp.Find(split);

if (iPos == -1)

{

break ;

}

strRight = strTemp.Mid(iPos + 1, str.GetLength());

strTemp = strRight;

iNums++;

}

if (iNums == 0) //没有找到分割符 if (hObs!=NULL) { } if (dH!=NULL) { } delete [] dH; dH=NULL; delete [] hObs; hObs=NULL; //释放内存 if (dObs!=NULL) { } delete [] dObs; dObs=NULL;

{

//子字符串数就是字符串本身

iSubStrs = 1;

return NULL;

}

//子字符串数组

iSubStrs = iNums + 1; //子串的数量= 分割符数量+ 1 CString* pStrSplit;

pStrSplit = new CString[iSubStrs];

strTemp = str;

CString strLeft;

for (int i = 0; i

{

iPos = strTemp.Find(split);

//左子串

strLeft = strTemp.Left(iPos);

//右子串

strRight = strTemp.Mid(iPos + 1, strTemp.GetLength()); strTemp = strRight;

pStrSplit[i] = strLeft;

}

pStrSplit[iNums] = strTemp;

return pStrSplit;

}


相关文章

  • 控制测量技术总结范文
  • 中山市大涌镇 导线控制网测量技术总结 中山市大涌测绘队 一级 中山市大涌镇控制测量技术总结 为城镇建设工程和地形.地籍测量的需要,中山市土地房产局特邀请大涌测量队在中山市大涌镇布测一级导线网和四等水准,为今后大比例尺测图提供基础控制资料. ...查看


  • 导线测量报告
  • 导线复测报告 (桩号:K0+000-K2+532.854) 计算: 李远进 复核: 韦毅 审核: 庄骏腾 广西建工集团第二建筑工程有限责任公司站前大道扩建及景观带工程 项目经理部 2017-3-15 导 线 复 测 报 告 本项目复测依据: ...查看


  • 导线测量平差最近更新
  • 导线测量平差最近更新 导线测量平差最近发布4.2版,主要增加或更新了以下功能: 一.表格输出. 表格输出到WORD,支持表格中的列向下错开半行(如方位角.边长),所有表格输出到WORD后与软件中显示的样式一样.如下表: 导线严密平差计算表 ...查看


  • 地籍调查技术设计书
  • 徐州市铜山新区 控制测量技术设计书 专 业: 工程测量 小 组: 第八组 姓 名: 学 号: 指导教师: 2012年 5 月 16 日 徐州市铜山新区控制测量技术设计书 目录 一. 任务概述 1. 任务来源 2. 测区范围 3. 地理位置 ...查看


  • 控制点复测报告
  • 遂宁-资阳-眉山高速公路遂宁至资阳段 桥梁独立控制网 导线成果报告 重庆交通建设(集团)有限责任公司 TJ1项目部第10工区 2010年9月6日 目 录 一.桥梁独立控制网导线观测依据 二.工程概况 三.平面精密导线成果 1.导线方案设计说 ...查看


  • 测量平差课程设计报告
  • 浙江农林大学环境与资源学院 课程设计报告 设计名称 各种网形的严密平差及精度评定 学生学号 [1**********]3 学生班级 测绘工程121班 学生姓名 专 业 测绘工程专业 指导教师 时 间 2013年12月23至27日 目录 目录 ...查看


  • 隧道贯通测量报告
  • 新建合福铁路安徽段站前四标 闻家山隧道贯通测量报告 1.前言 隧道贯通面接合处的偏差可以分解为空间的三个方向,即沿隧道中心线的长度偏差,为纵向贯通误差:垂直于隧道中心线的左右偏差,为横向贯通误差:还有高程贯通误差.纵向贯通误差只对贯通在距离 ...查看


  • 单条件闭合差调整通用模型
  • 第26卷第4期西安科技大学学报V01.26No.42006年12月JOURNALOFXI'ANUNIVERSITYOFSCIENCEAND'IECHNOLoGYDec.2006文章编号:1672-9315(2006)04-0490-04 单 ...查看


  • 导线测量实验报告
  • 课程设计报告 设计题目: "误差理论与测量平差基础"课程设计 专 业: 班级学号: 姓 名: 指导教师: 测绘工程 测绘10001.08 董恩忠 蒋 辉 起屹日期: 2012年9月3日-2012年9月9日 南京工业大学测 ...查看


热门内容