[英]How do you reproject a shapefile?
我正在尝试使用python代码将shapefile的投影从“ epsg:26741”更改为“ epsg:4326”。 我已经查找了如何在线执行此操作并找到了一些代码,但是当我运行代码时,它会引发错误消息。 这在下面的代码中特别抛出:
from pyproj import Transformer
x = 5.0
y = 6.0
transformer = Transformer.from_crs("epsg:26741", "epsg:4326")
new_x, new_y = transformer.transform(x, y)
这将生成以下错误消息:
runfile('/Users/isaak/Desktop/GIS_Layer_Programs/TestTransform.py', wdir='/Users/isaak/Desktop/GIS_Layer_Programs')
Traceback (most recent call last):
File "<ipython-input-108-6daf357ca70c>", line 1, in <module>
runfile('/Users/isaak/Desktop/GIS_Layer_Programs/TestTransform.py', wdir='/Users/isaak/Desktop/GIS_Layer_Programs')
File "//anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 827, in runfile
execfile(filename, namespace)
File "//anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/Users/isaak/Desktop/GIS_Layer_Programs/TestTransform.py", line 6, in <module>
new_x, new_y = transformer.transform(x, y)
File "//anaconda3/lib/python3.7/pyproj/transformer.py", line 274, in transform
File "pyproj/_transformer.pyx", line 122, in pyproj._transformer._Transformer._transform
File "//anaconda3/lib/python3.7/enum.py", line 310, in __call__
return cls.__new__(cls, value)
File "//anaconda3/lib/python3.7/enum.py", line 571, in __new__
raise exc
TypeError: error in TransformDirection._missing_: returned <TransformDirection.FORWARD: 'FORWARD'> instead of None or a valid member
我会认真看一下QGIS。 它基于python,但具有所有复杂的位以及所有投影库和文件。 如果您有很多文件要修复/修改,则QGIS还内置了python脚本。 老实说,在绘制地图时,请不要尝试重新发明轮子。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.