航摄像片生成DSM(Pix4d)2021.5.21
航摄像片生成DSM(以Pix4d软件为例)2021.5.14欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchar
航摄像片生成DSM(以Pix4d软件为例)2021.5.21
1、常用无人机数据处理软件
1.1、ContextCapture
1.2、Pix4d
2、Pix4d安装步骤
2.1 Pix4d安装包下载
到百度网盘下载链接中下载Pix4d安装包文件,提取码:mw66
下载到本地文件夹后如下图所示:
2.2 Pix4d安装方法
首先双击Pix4Dmapper.msi安装包文件,弹出安装界面,点击Next
选择安装路径为 D:\Pix4Dmapper\ 后点击Next
之后点击Install开始安装,安装结束后取消勾选 Launch Pix4Dmapper后点击Finish即可。
下面利用Pix4d文件夹中的破解工具进行破解,双击硬件获取.exe后弹出窗口坐下角输入123后点击右侧的Generate HWID后在上方的文本框中生成了硬件ID码,复制下来。
之后打开注册机文件夹下的注册.exe,将HWID码粘贴到左侧文本框中后在右侧Owner中输入123,Days输入9999后点击Decode后会在右侧生成log日志,最终点击最右侧的Save REG两次即可在注册机文件夹生成123_pix4d.reg注册表文件。
现在双击123_pix4d.reg注册表文件,看到123_pix4d.reg中包含的项和值已成功添加到注册表中后点击确定即可,至此Pix4d破解完成。
最后双击Pix4d文件夹下的联网工具.exe后在右下角弹出Pix4d Tool v4.0,点击AutoStart即可,启动桌面或开始菜单的Pix4Dmapper.exe便可打开Pix4D。
进入上述Pix4d界面表示破解成功,可以新建项目了。(注:如果没正常启动该界面,需要多次尝试注册机破解后并注意打开联网公工具中的AutoStart后打开Pix4Dmapper.exe)
3、准备无人机倾斜摄影测量数据(航摄像片)
外业无人机倾斜摄影测量数据如下图所示。
4、利用Pix4d生成DOM和DSM
4.1 新建项目开始处理
打开Pix4Dmapper后,点击新项目,项目名称输入TestUAVGerateDOMandDSM
后点击Next
在弹出的新项目窗口中点击添加图像,在图像浏览窗口选择无人机倾斜摄影测量的数据(54张航摄像片)后点击Next
在图片属性窗口会显示图像的地理位置、基准和相机型号等信息,直接点击Next
在选择输出坐标系窗口可以看到自动检测到WGS 84/ UTM zone 44N,而非纯粹的地理坐标系WGS 84,处理的结果如果要用WGS 84地理坐标系的话需要进行坐标转换。
选择处理选项模板为 3DMaps,右侧可以看到为应用实例生成DSM和正射影像图,选中开始处理后点击Finish。
下面进入数据处理阶段,只需等待
4.2 Pix4d处理航摄像片生成的DSM和DOM
最后项目处理结果文件夹如下图所示,数字表面模型DSM和数字正射影像DOM结果都被保存在3_dsm_ortho文件夹下,其中DSM被保存在1_dsm文件夹,DOM被保存在2_mosaic文件夹。
DSM正射影像对应的空间参考投影文件TestUAVGerateDOMandDSM_dsm.prj内容为:
PROJCS["WGS 84 / UTM zone 44N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32644"]]
DOM正射影像对应的空间参考投影文件TestUAVGerateDOMandDSM_transparent_mosaic_group1.prj内容为:
PROJCS["WGS 84 / UTM zone 44N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32644"]]
4.3 ArcGIS打开DSM和DOM结果查看坐标系
打开ArcMap后,点击添加数据,选择DSM和DOM后确定,显示效果如下图所示,同时在图层上右键->属性->源可查看对应的空间参考(坐标系)为WGS 84 / UTM zone 44N。
5、DSM结果tif投影坐标转换为地理坐标WGS84
在ArcGIS中导出地理坐标系WGS84对应的空间参考文件WGS 1984.prj
WGS 1984.prj内容如下:
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4326]]
5.1 使用ArcGIS中的ToolBox(ArcMap手动操作)
在ArcGIS的工具箱ToolBox中找到数据管理工具下的投影与变换,进入栅格中的投影栅格,打开投影栅格窗口,选择要重投影的栅格文件和输出坐标系WGS84地理坐标系后确定即可。
在ArcMap中查看重投影后DSM84.tif和DOM84.tif的坐标系
DSM84影像中通过识别工具查看影像像素值发现黑色的边框部分对应的RGB的值均为0,可在图层上右键选择属性,在符号系统下的RGB合成中选中显示背景值左侧的方框,并选择背景颜色为白色则可去除黑色边框。
5.2 后台调用ArcGIS中的Arcpy实现栅格重投影并处理NoData(python脚本)
5.2.1 栅格重投影坐标系arcpy脚本所用工具介绍
这里主要利用ArcGISToolBox中的投影栅格和复制栅格两个工具,通过查看工具帮助里的arcpy调用API来实现python脚本对DSM和DOM的重投影,最终编写了一个ConvertTifToWGS84.py脚本文件,放到ArcGIS对应的python编译器路径(D:\ArcGIS\Python27\ArcGIS10.4)下打开cmd窗口输入python.exe ConvertTifToWGS84.py
即可运行。
5.2.2 ConvertTifToWGS84.py调用示例
如上图所示,要转换的栅格影像Tif所在的文件夹为C:\Users\Administrator\Documents\pix4d\TestUAVGerateDOMandDSM\3_dsm_ortho\DSMandDOMToWGS84
,需要手动在此文件夹下新建一个result文件夹,这个result文件夹用来保存转换为WGS 84坐标系后的Tif文件,同时在D:\ArcGIS\Python27\ArcGIS10.4
文件夹下修改ConvertTifToWGS84.py代码的第三行为rootdir = "C:/Users/Administrator/Documents/pix4d/TestUAVGerateDOMandDSM/3_dsm_ortho/DSMandDOMToWGS84"
后内容如下所示。
ConvertTifToWGS84.py(利用ArcGIS 的python2.7 arcpy)
import os
import arcpy
rootdir = "C:/Users/Administrator/Documents/pix4d/TestUAVGerateDOMandDSM/3_dsm_ortho/DSMandDOMToWGS84"
flag = 0
for (dirpath, dirnames, filenames) in os.walk(rootdir):
for filename in filenames:
suffex = filename[len(filename) - 4] + filename[len(filename) - 3] + filename[len(filename) - 2] + filename[len(filename) - 1]
if (suffex == '.tif'):
inputTif = rootdir + '/' + filename
middleTif = rootdir + '/result/' + '' + 'wgs1984' + filename
outputTif = rootdir + '/result/' + '' + 'Noda_wgs1984' + filename
print(inputTif)
filename_prj = inputTif.replace('.tif','.prj')
#sourceSR = arcpy.SpatialReference(filename_prj)
print(filename_prj)
targetSR = arcpy.SpatialReference("C:/Users/Administrator/Desktop/WGS 1984.prj")
arcpy.ProjectRaster_management(inputTif, middleTif, targetSR, "BILINEAR")
# arcpy.ProjectRaster_management(inputTif, middleTif, targetSR, "BILINEAR", "#", "#", "#", sourceSR)
arcpy.CopyRaster_management(middleTif,outputTif,"#", "#", 0);
print('Result:'+outputTif)
print('successed!')
# python.exe ConvertTifToWGS84.py
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4326]]
下面需要将WGS 1984.prj复制到桌面,在D:\ArcGIS\Python27\ArcGIS10.4文件夹下打开cmd命令行窗口,并输入命令python.exe ConvertTifTiWGS874.py
回车开始执行坐标转换,执行完成后会在result文件夹得到转换后的DSM和DOM。
result文件夹下转换为WGS 84坐标系后的DSM和DOM结果如下,可以在ArcGIS中打开查看坐标系。
5.2.3 成功叠加WGS84坐标系的DSM和DOM到三维地球OSGEarth显示
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)