python结合ogr2ogr之地理数据格式转换-2

python结合ogr2ogr之地理数据格式转换-1

这篇公众号文章里,初步记录了使用python调用org2ogr进行数据格式转换以及打包exe的过程,测试了常用的几种数据,shp数据、dxf数据、dwg数据、KML数据,shp和kml互转没有问题,牵扯到dxf和dwg的都有问题,主要是:


1ERROR 4: Failed to find template header file header.dxf for reading,
is GDAL_DATA set properly?
DXF driver failed to create out.dxf

当输入输出的数据类型有dxf时,则会报这个错误

从错误的字面理解来看,查找header.dxf文件失败,是否正确设置了GDAL_DATA,意思是,执行该操作,需要用到header.dxf这个文件,可是程序找不到这个文件,这个文件应该通过GDAL_DATA设置。

解决办法:在环境变量添加GDAL_DATA,值为header.dxf所在的路径

重启vscode再次执行即可正确实现dxf与shapefile之间的互转,dxf与kml之间的互转。不过在执行kml转dxf的时候,可能会出现一些错误,提示某些字段无法正常创建,主要是因为不同的格式之间,不可避免的存在一些差异,无法一一对应的转换,如果只对图形有要求,这些错误可以忽略。

2、

CAD driver does not support data source creation.

当进行CAD数据与其他数据之间转换时,会出现这个错误,字面意思是CAD驱动器不支持数据源的创建。这主要是因为CAD驱动器对版本有要求,我不知道是我安装的ogr2ogr版本老了还是怎么滴,该工具只支持R2000,瞬间让我觉得这个功能非常鸡肋,这个淘汰了那么多年的版本现在几乎见不到,只能二次转换,当转换一个R2000版本的CAD时,可以顺利转出,然而,当别的格式转换成CAD时,就不牵扯到版本了,程序可以按照它自己的要求转出CAD版本,然后,这个错误一直没有解决。

3、这个不是错误,pyinstaller打包exe时图标更换

加入-i 参数

 pyinstaller --onefile --windowed g:\python\learting\shapefile\ToKML.PY -i g:\python\learting\shapefile\favicon.ico

整体来说,org2ogr功能强大,将很多复杂的转换通过命令行的形式简单解决,原来写一个kml和dxf转换的程序,花了几千行代码,只能转换部分要素,这几个加起来不到100行,极大提高了效率,但是它确实也有不足啊:

  • 版本要求严格,且有的数据格式支持版本有限

  • CSV到kml无法进行坐标转换,只能直接写入,其他数据转换为空不知道为什么

  • 同样存在数据丢失的情况

测试了自己常用的几个数据,其它几十种等用得到有数据再测试看看吧。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值