Python 没有GDAL的shapefile的坐标变换

Python coordinate transformation of shapefiles without GDAL

我在我的 Anaconda Spyder 中使用 GDAL 时遇到了很大的问题,但我需要进行以下坐标转换:

 src_spatialReference = osr.SpatialReference()#input coordinate system
 src_spatialReference.ImportFromEPSG(inputCoordSystem) #import coordinate system from EPSG code

 dst_spatialReference = osr.SpatialReference()#output coordinate system
 dst_spatialReference.ImportFromEPSG(outputCoordSystem) #import coordinate system from EPSG code

 transform_coord = osr.CoordinateTransformation(src_spatialReference,dst_spatialReference) 

#transform geometry object
 geomObj = ogr.CreateGeometryFromWkt(geomObj.wkt) #get geometric Object as WKT (well known text) and transform it to org geoemtry
 geomObj.Transform(transform_coord) #transform object to other coordinate system
 geomObjTransf=shapely.wkt.loads(geomObj.ExportToWkt()) #create shapely object form org geometry objekt

有人知道如何在没有 GDAL 的情况下做到这一点吗?

我用 shapely 中的 transform 尝试过,但我读到它仅适用于点,我需要转换 shapefile,它仅适用于点。

我在 Anaconda 中使用 Spyder 3.2.8 和 Python 3.6.4

非常感谢您的帮助!

也许这不是最好的解决方案,但这个现在适合我:

from shapely.geometry import Point
from shapely.geometry import LineString  
from pyproj import Proj, transform

df_all = df

# store the measured points in a list
measuredpoints_list = np.array([df_all.LON20Hz.tolist(), df_all.LAT20Hz.tolist()]).T

# transform them to a proj. coord. system
measuredpoints_listtrans = []
for i in range(len(measuredpoints_list)):
    measuredpoints_listtrans.append(PyProjTransform(4326, 3581, measuredpoints_list[i]))
cl_trans = []
for i in range(len(cl)):
    cl_trans.append(PyProjTransform(4326, 3581, cl[i]))

使用shapely可以逐点变换shapefile,之后,您可以创建一个包含变换点的新数组。有了这个,你就可以开始进一步的计算了。