*注:转载请注明出处*

在地形图制图的过程中,cad是最经典的处理软件,现市面上出现许多面向地形制图的基于cad的二次开发软件,各类软件有各自适用范围。在内业处理过程中,由于人员不严谨及不熟练的成图手段,会使得在成果过程中出现很多小问题,或者对简单问题无法实现流程化、规范化、便捷化。在此,将一些关键节点的处理心得和手段记录在此,供大家自纠自查,加快生产速度,保证生产质量。此次仅对一下三种情况进行不全面的总结:同线连接;点线矛盾处理;闭合等高线添加高程点。若再有其他方面加快生产流程的心得,届时将继续补更。也欢迎各博友互相分享心得,让笔者踩着巨人的肩膀与大家一同进步。

话不多说,

分割线-----------------------------------------------------------------------------------------------------------------------

(1)同线连接:由于多人任务分配产生等高线拼接等问题,会出现多段同一条等高线的情况。按规范,应把多段同一条等高线连接成一条等高线,即进行J线连接。在J线连接前需注意,图层CL-将无法进行此操作,若已提前将【DGX】归为【CL-首曲线】层,需将【CL-首曲线】改为【CL首曲线】(去除短横线-),然后进行J线连接(完成后可再将图层改回)。完成J线连接后有些高程值可能会有错误,下一步进行点线矛盾的线间检查(故J线连接与线间矛盾有操作上的先后关系)。

(2)点线矛盾查重:点线矛盾无非是点错误或者线位置不合适(pix4d生线中往往产生大量的近三分之一的错误点),分两步走:第一步,对于明确是线位置不合适的错误,人工对其修正,这种线与附近点往往距离很近,对于线的修正,无论人工修的点线拓扑关系是否合适,CM软件均判断修改正确并自动删除对应error点(一个bug,CM修线后error自动消除,但不一定修正确,实际中显然不合适),故需要在修完后在进行一次点线矛盾检查。第二次检查后,开始对点错误进行修正。若点错误过多,可用代码实现删错误点工作(代码附于下方)。脚本所需要的输入数据是原高程点数据和error层数据(目前仅支持txt格式),代码前的工作如下:

在cass中→【工程应用】→【高程点生成数据文件】→【无编码高程点】,把高程点和error层都导出,然后变为csv格式,保证两类文件的高程位数一致(1:500两位,1:2000一位)(rounddown函数取位数,round函数四舍五入,具体用哪个函数要看原高程点属性值是四舍五入来的还是保留位数来的)。

删除两个文件中的第一列序号列(两文件的同序号行其实并不是同点位数据,无对应关系,故需删除序号列),再将两csv文件保存为txt。

依脚本指令输入对应输入文件(绝对路径+文件名及后缀)和输出路径,即得剔除后点位结果(New_GCD)。再将其转为csv格式,然后在cass中把原高程点删除,重新展高程点,展入New_GCD即可。

需注意,由于CMAP点线查重的bug(不彻底性),需多次查重进行此操作,方可修改完全。

代码原理为寻求子集A在U中的绝对补集,∁uA(非常简单)。具体代码及运行交互指令如下:

#-*-coding:UTF-8-*-
"""
功能:在A文件中删除A与B的子集部分,即寻求集合B在集合A中的绝对补集(常用于点线查重后的删除功能)。
Date:2021.1.21
Author:Kiki
"""def TXT2LIST(A_file, B_file):global las1_tableglobal las2_tablelas1_table =[]  #用于存放读取的A文件列表las2_table =[]   #用于存放读取的B文件列表f=open(A_file,"r",encoding='utf-8')line = f.readline()  #逐行读取print("START!!")while line:txt_data = eval(line) #数据转换为列表形式las1_table.append(txt_data)  #数据存入列表line = f.readline() #读取下一行数据print("las1_table is finished")   #A文件列表存入完毕#print("las1_table:" + str(las1_table))f.close() f=open(B_file,"r",encoding='utf-8')line = f.readline()while line:txt_data = eval(line)las2_table.append(txt_data)line = f.readline()print("las1_table is finished")   #B文件列表存入完毕#print("las2_table:" + str(las2_table))f.close()return las1_table, las2_table#定义函数提取两个文件的子集
def REMOVE_SAME_ELEM(list1, list2):set1 = set(list1)set2 = set(list2)iset = set1.intersection(set2)lst = list(iset)print("The intersection is over")#print(lst)for i in lst:las1_table.remove(i)   #A中移除子集las2_table.remove(i)   #B中移除子集global New_las1,New_las2New_las1 = las1_tableNew_las2 = las2_tableprint("TheBigFile and TheSmallFile have updated completely!")#print("new las1_table:"+str(New_las1))#print("new las2_table:"+str(New_las2))#输出结果
def EXPORT(Output_path, Output_name):t=''file = open(Output_path + Output_name, 'w')  #创建文件并开始写入with file as q:for i in New_las1:                print(str(i)+"Start Storing")for e in range(len(New_las1[0])-1):#print(e)t=t+str(i[e])+','t=t+str(i[e+1])  #每行最后不是逗号q.write(t.strip(' '))q.write('\n')t=''print("Finished!!")file.close()print("在此功能开始之前,您将键入两个需要处理的输入文件和一个需要创建的结果文件")
A_file = input("请输入大文件路径及文件名字(如C:\\BigFile.txt):\n")
B_file = input("请输入小文件路径及文件名字(如C:\\SmallFile.txt):\n")
Output_path = input("请输入生成文件的路径(如C:\\):\n")
Output_name = input("请输入新文件名字(如New.txt):\n")  #输出文件名TXT2LIST(A_file,B_file)
REMOVE_SAME_ELEM(las1_table, las2_table)
EXPORT(Output_path, Output_name)

图 删重代码

在此功能开始之前,您将键入两个需要处理的输入文件和一个需要创建的结果文件
请输入大文件路径及文件名字(如C:\BigFile.txt):请输入小文件路径及文件名字(如C:\SmallFile.txt):请输入生成文件的路径(如C:\):请输入新文件名字(如New.txt):

图 交互指令

(3)闭合线圈补高程点:由于高程点稀释步骤(1:500高程点间距8m,1:2000高程点间距32m),将导致部分闭合等高线圈内缺少高程点,高程点的缺失将使得无法判断闭合圈内部是凹地形还是凸地形,导致地形信息缺失问题。由此,在闭合线圈内部添加高程点是地形图制作的规范流程,而所添加的高程点值源于原始高程点(未稀释前),由此问题转换为如何排查出所有的最小闭合线圈(线圈内不再包含其他闭合线圈)。流程如下:

基于地形图大致情况,给定等高线面积阈值,快速选取出面积小于给定阈值的闭合线圈。此举将导致套和线圈的出现,在新工程文件中对套和线圈的外部线圈删除,仅保留最小闭合线圈,结果另存备用;

把已知闭合线圈和原始点云数据一同加载到GIS中,按位置选择提取出位于闭合线圈内部的原始点云,导出新文件(线圈内点云集合)并移除原始点云数据层。此刻所有高程点将位于闭合线圈内,下一步将在各闭合线圈内选取一个高程点数据作为闭合线圈的内部点;

把所有点添加xy数据,使其具有坐标位置(xyz)。把闭合线圈要素转点,用【空间连接】把距离闭合点最近的高程点的属性值(xyz)赋值给闭合点,其提取的最近唯一点属性值即是所需的闭合线圈内的高程点;

把闭合点的属性表导出dbf,在excel中打开,保留xyz列,利用展高程点展到cass中。此时,有些闭合线圈内原已有高程点,在最终检查中需要进行取舍(邻近高程点取其一即可)。

欢迎大家留言交流,有新的心得会来补更。

Cass和Cmap在地形图编辑中的一点心得相关推荐

  1. 我在建站过程中的一点心得体会

    原创文章请认准:主网站  微笑涛声     作者其他平台: CSDN    简书    开源中国    思否 所有的努力,不是为了让别人觉得你了不起,而是为了能让自己打心里看得起自己,人生的奔跑,不在 ...

  2. alter table add column多个字段_WordPress 在文章列表快速编辑中编辑自定义字段

    在快速编辑中添加自定义字段,通常我们不需要在 WordPress 后台文章列表的"快速编辑"菜单中进行更改,但有的时候如果可以把常用的设置添加到"快速编辑"菜单 ...

  3. 【MM系列】SAP ABAP 编辑字段出现:对象编辑中的错误

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 编辑字段出现: ...

  4. java视频编辑怎么实现_OpenGL 实现视频编辑中的转场效果

    转场介绍 转场效果是什么? 转场效果,简单来说就是两段视频之间的衔接过渡效果. 现在拍摄 vlog 的玩家越来越多,要是视频没有一两个炫酷的转场效果,都不好意思拿出来炫酷了. 那么如何在视频编辑软件中 ...

  5. OpenGL 实现视频编辑中的转场效果

    转场介绍 转场效果是什么? 转场效果,简单来说就是两段视频之间的衔接过渡效果. 现在拍摄 vlog 的玩家越来越多,要是视频没有一两个炫酷的转场效果,都不好意思拿出来炫酷了. 那么如何在视频编辑软件中 ...

  6. python 视频转场_OpenGL 实现视频编辑中的转场效果

    转场介绍 转场效果是什么? 转场效果,简单来说就是两段视频之间的衔接过渡效果. 现在拍摄 vlog 的玩家越来越多,要是视频没有一两个炫酷的转场效果,都不好意思拿出来炫酷了. 那么如何在视频编辑软件中 ...

  7. word表格分开快捷键_在Word 表格的编辑中,快速拆分表格应按快捷键为______。

    [单选题]在Word文档中,如果要指定每页中的行数,可以通过_____进行设置. [简答题]要求把任务点的所有课程笔记都上传,拍照上传. [单选题]在Word文档中,有一个段落的最后一行只有一个字符, ...

  8. 计算机信息检索在医学中的应用,探索医学文献检索在医学期刊编辑中的重要性及应用...

    医学文献检索论文独家整理10篇之第三篇:探索医学文献检索在医学期刊编辑中的重要性及应用 摘要:经济的发展推动了社会进步, 计算机技术的出现和发展使人们对医疗.科技.政治等各个领域有了更加全面的认识和了 ...

  9. 稻田香计算机毕业设计官网,大学毕业论文---航空摄影测量内外业一体化在地形图测量中的应用.doc...

    甘肃工业职业技术学院毕业论文 航空摄影测量内外业一体化 在地形图测量中的应用 姓 名: 冉 旭 升 指 导 教 师: 王利军 .王筱君 学 号: 专 业 名 称: 工 程 测 量 2015年 5 月 ...

最新文章

  1. Android之打造可定制的全场秒杀倒计时控件
  2. 复习笔记(九)——C++中的容器(STL容器)
  3. Synchronize读脏
  4. 修改mysql表的itemId字段为自增长SQL语句
  5. 一个iOS表单框架-UFKit
  6. [bzoj3532][Sdoi2014]Lis
  7. mysql 吧库下的表名都加_mysql数据库表名大小写问题
  8. java 挖矿代码_我的大脑被挖矿代码搞的不能好好思考了
  9. 【转载】我目瞪口呆地望着即时通讯
  10. 创建预编译头 Debug 正常 Release Link Error:预编译头已存在,使用第一个 PCH
  11. ChaiNext:当前市场短期行情波动大
  12. Android设计模式(1)----单例模式
  13. JavaScript中defer 和onload的执行顺序
  14. Oracle v$sql,v$sqlarea,v$sqltext区别
  15. mllib线性回归GeneralizedLinearModel GeneralizedLinearAlgorithm源码解析
  16. WebCrack:一键自动化日站工具 ——yzddMr6
  17. 网络邻居上的计算机没权限,xp系统打开网上邻居提示“您可能没有权限使用网络资源”怎么办...
  18. android 原生camera——设置模块修改
  19. KinectSDK + Unity3D学习总结
  20. ruoyi-vue集成积木报表

热门文章

  1. 史上最长最全!围绕故障管理谈SRE体系建设
  2. 解析机智云MCU源码
  3. STC单片机74hc164驱动8位数码管动态显示
  4. 宋宝华:Linux设备与驱动的手动解绑与手动绑定
  5. 打不死对方,就选择合作-Novell和微软共同建立互操实验室
  6. openwrt重启后,修复dns
  7. 费曼学习法——孩子弱点方向的提升和沟通技巧
  8. 实验八 一阶常微分方程初值问题Matlab实现
  9. 大数据学习内容及方法
  10. 智慧物联网下的工控安全解决方案