¿Hay una manera fácil de transformar objetos Shapely (a saber, polígonos y polígonos múltiples) de una proyección a otra sin tener que cavar y extraer coordenadas a mano?
De hecho, ni siquiera me importa si son objetos Shapely en este punto, solo quiero pasar características y una proyección, y recuperar un conjunto de características reproyectadas.
¿Existe este tipo de funcionalidad o debe codificarse a mano?
python
coordinate-system
shapely
pyproj
Chris Fonnesbeck
fuente
fuente

fiona.transformparece tener lo que necesitas.Respuestas:
Si bien Shapely no entiende de forma nativa los sistemas de coordenadas,
shapely.ops.transform()puede hacerlo junto conpyproj. Sipyproj.Projpuede comprender sus dos sistemas de coordenadas, entonces se puede convertir en una función con la que se puede transformar bien.De los documentos bien formados :
fuente
itertoolsmódulo, puede hacerloproject = lambda x, y: pyproj.transform(pyproj.Proj(init='epsg:4326'), pyproj.Proj(init='epsg:26913'), x, y)y luegog2 = transform(project, g1).Transformer. Ver aquí: pyproj4.github.io/pyproj/stable/gotchas.htmlSi bien no es una solución bien proporcionada, el uso de GeoPandas permite una proyección relativamente sencilla. Por ejemplo, si queremos convertir un shapefile a ESPG 4326:
fuente
Si está usando pyproj2, es mucho más fácil usar un Transformer. Aquí hay un ejemplo:
Esto también es mucho más rápido, porque pyproj no necesita recrear la proyección para cada punto.
fuente