一、事情缘由
前两天写了一个工具,实现了从照片中提取GPS信息并创建Shapefile。
从照片中提取GPS信息并创建Shapefile(第一版)适用于无人机照片和手机照片
从照片中提取GPS信息并创建Shapefile(第二版)适用于无人机照片和手机照片
今天听取留言区的建议,增加一个功能:创建shp文件的同时生成一个TXT文本。
从编程的角度来说,这个功能实现是很简单的。
二、从编程的角度
因为我们已经获取了坐标点信息,只需要写几行代码,把这些坐标点信息写入到TXT中就好了。具体实现如下:
使用with语句,是常见的python创建TXT文本的做法。
三、测试
我在测试的过程中,使用了970张DJI的原图照片。
输出结果如下:
TXT文本打开如下:
每一行由经度、纬度组成,二者中间由空格隔开。
之前我都是用QGIS打开,本次测试将使用arcgis打开photos.shp
结果如下:
在arcgis打开会提示缺失空间参考。
点击确定按钮后,是不影响坐标点的可视化。如下:
如果是在QGIS打开则不会提示。
四、解决办法
那如何消除arcgis打开我们的phots.shp的空间参考警告呢?
我们可以在同目录下创建一个叫做photos.prj文件,该文件本质上是一个文本文件。
我们的无人机或者手机照片,在一般情况下的坐标系为WGS84坐标系。
我们只需要把WGS84所涉及的WKT文本写入到photos.prj中。
完成以上步骤即可消除arcgis的空间参考警告。
代码如下:
with open('photos.prj', 'w') as f:
f.write("""GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]
""")
再次测试,顺利在arcgis打开了photos.shp文件,无报错。
最后
朋友们在使用这个工具的时候,无论是成功运行或者是运行失败,都可以在下方留言。这个对我来说很重要。。。因为收集到各种错误,才能更好地去改进这个工具。
本次已将打包后的rstool上传到云盘,有需要的朋友在后台回复rstool获取下载链接。