es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La proyección del polígono a otro sistema de coordenadas de referencia y su devolución al sistema original resulta en un polígono diferente.

Estoy intentando colocar un búfer de 50 km en cada país del mundo. Para ello, transformo las formas de los países desde epsg:4326 a Lambert azimuthal equal-area (laea), aplico un búfer y luego lo transformo de vuelta a espg:4326. Esto funciona bien para la mayoría de los países, pero para Rusia, la transformación inversa resulta en algún error de proyección:

Este es mi código y las formas resultantes:

center =centroid(border)
plot(to_shapely(border),'border.png')
proj_str = "+proj=laea +lat_0=" + str(center.y) + " +lon_0=" + str(
        center.x) + " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"
project = pyproj.Transformer.from_proj(pyproj.Proj('epsg:4326'),pyproj.Proj(proj_str),always_xy=True)
project2 = pyproj.Transformer.from_proj(pyproj.Proj(proj_str),pyproj.Proj('epsg:4326'),always_xy=True)
plot(transform(project2.transform,transform(project.transform, shapely.wkt.loads(geometry))),'backtrans.png')

¿Alguien tiene alguna sugerencia de lo que estoy haciendo mal?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que la transformación inversa desde la proyección de Lambert Azimuthal Equal-Area hasta EPSG:4326 está resultando en un error de proyección para Rusia. Esto puede deberse al hecho de que Rusia abarca varias zonas UTM y la transformación no está considerando esto. Una sugerencia sería utilizar una proyección UTM en lugar de la de Lambert Azimuthal Equal-Area para el buffer, ya que las zonas UTM están diseñadas para minimizar la distorsión dentro de una zona. Otra opción sería dividir Rusia en regiones más pequeñas y aplicar el buffer por separado a cada región.

Comments are closed.