2 votos

Limitaciones de las transformaciones de coordenadas

Para aplicar shapely.affinity.scale (véase documentación ) He tenido que transformar una serie de coordenadas geodésicas en coordenadas proyectadas, véase python - Advertencia de usuario: La geometría está en un CRS geográfico. Los resultados de 'buffer' son probablemente incorrectos - Stack Overflow y Advertencia al usuario: La geometría está en un CRS geográfico. Los resultados de 'buffer' son probablemente incorrectos por contexto

Todas mis coordenadas están dentro de un cuadro delimitador definido como 35,5, -11,0, 71,5, 31,5 (Sur, Oeste, Norte, Este) que abarca la mayor parte de Europa.

La transformación de, por ejemplo, 54,1767° de latitud y 7,8911° de longitud de EPSG:4326 (WGS 84) a EPSG:4936 (ETRS89) da como resultado X: 3705858.6428144597 e Y: 513643.6629113175 . Pero el transformación inversa da como resultado 0° de latitud y 7,8911° de longitud. Así que algo va mal.

Transformación de EPSG:4326 a EPSG:3034 (ETRS89-extended / LCC Europe) y volver a EPSG:4326 funciona perfectamente.

Ambos sistemas de coordenadas (EPSG:4936 y EPSG:3034) cubren la misma zona (límites WGS84: -16,1 32,88, 40,18 84,73) y las coordenadas utilizadas se sitúan dentro de estos límites.

¿Qué limitación de las transformaciones de coordenadas me estoy perdiendo?

ACTUALIZACIÓN un ejemplo mínimo y reproducible en Python

In [1]: import geopandas as gpd 
        import pandas as pd 
        import shapely 

In [2]: point = shapely.Point([7.8911,54.1767]) 

In [3]: gdf = gpd.GeoDataFrame(index=[0], crs="epsg:4326", 
                               geometry=[point]) 

In [4]: # transform point from WGS 84 to ETRS89 
        gdf["geometry"].to_crs(4936)
Out[4]: 0    POINT (3705858.64281 513643.66291)
        Name: geometry, dtype: geometry

In [5]: # transform point from WGS 84 to ETRS89 and back to WGS 84 
        gdf["geometry"].to_crs(4936).to_crs(4326) 
Out[5]: 0    POINT (7.89110 0.00000)
        Name: geometry, dtype: geometry

In [6]: # transform point from WGS 84 to ETRS89-extended 
        gdf["geometry"].to_crs(3034)
Out[6]: 0    POINT (3866814.669 3036011.045)
        Name: geometry, dtype: geometry

In [7]: # transform point from WGS 84 to ETRS89-extended and back to WGS 84 
        gdf["geometry"].to_crs(3034).to_crs(4326) 
Out[7]: 0    POINT (7.89110 54.17670)
        Name: geometry, dtype: geometry

1voto

Inspector Puntos 33

Ambos EPSG:4326 (WGS 84) y EPSG:3034 (ETRS89-extendido / LCC Europa) son 2D sistemas de coordenadas cartesianas. EPSG:4936 (ETRS89) es un (geocéntrico) 3D sistema de coordenadas cartesianas:

CS cartesiano 3D (geocéntrico). Ejes: geocéntrico X Y Z. Orientaciones: X e Y en el plano ecuatorial, X positivo a través de la intersección con el primer meridiano, Y a través de 0°N 90°E. Eje Z paralelo al eje medio de rotación terrestre y positivo hacia el Polo Norte. UoM: m.

La transformación de coordenadas en un sistema de coordenadas 3D requiere tres parámetros. Un parámetro omitido provoca un error durante la transformación.

Gracias a mkennedy por indicarme el camino correcto.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X