5 votos

¿Cuál es la proyección de Alemania que conserva la distancia?

Tengo un point A (EPSG 4326) en Berlín, Alemania:

{
   "type": "Point",
   "coordinates": [
     13.394994735717773,
     52.514849775310154
   ]
}

Quiero crear point B que está a 500 metros al este de point A y point C que está a 500 metros al norte.

Para ello, tengo que proyectar point A a una proyección que preserva la distancia.

¿Puede recomendar una proyección que funcione para esta operación en toda Alemania?

Estoy trabajando con GeoPandas y Shapely para este proyecto.

6voto

Nikola Puntos 21

No se necesita una proyección equidistante, pero las distancias geodésicas calculadas sobre un esferoide ( Las fórmulas de Vincenty ) o una esfera ( Distancia del carámbano ). Por ejemplo, geopy es capaz de calcularlos.

Este es un ejemplo de uso de la distancia Vincenty:

>>> from geopy.distance import vincenty
>>> newport_ri = (41.49008, -71.312796)
>>> cleveland_oh = (41.499498, -81.695391)
>>> print(vincenty(newport_ri, cleveland_oh).miles)
538.3904451566326

Utilizando la distancia del círculo máximo:

>>> from geopy.distance import great_circle
>>> newport_ri = (41.49008, -71.312796)
>>> cleveland_oh = (41.499498, -81.695391)
>>> print(great_circle(newport_ri, cleveland_oh).miles)
537.1485284062816

Fuente: https://pypi.python.org/pypi/geopy#measuring-distance


¿cómo encontrar el punto B con el método descrito anteriormente?

Es necesario resolver el problema directo es decir, dado un punto inicial, su acimut y una distancia geodésica calcular el punto final. Una implementación en Python del problema directo está disponible en el Paquete PyGeodesy .

Ejemplo:

>>> from pygeodesy.ellipsoidalVincenty import LatLon 
>>> p = LatLon(-37.95103, 144.42487)
>>> d = p.destination(54972.271, 306.86816)
>>> print d.lon, d.lat
143.926497668 -37.6528177174

3voto

Cohen Puntos 1649

Para ello, tengo que proyectar el punto A a una proyección que conserve la distancia (Equidistante).

Es posible que haya entendido mal "Equidistante" en las proyecciones Equidistantes. Es un malentendido común que las proyecciones "Equidistantes" preservan las distancias en todas partes, lo cual es imposible debido a uno de los teoremas de Gauss.

Algunas proyecciones se denominan "Equidistantes" porque conservan la distancia a lo largo de un conjunto de líneas específicas, como los meridianos o los paralelos, que se denominan líneas estándar .

Si en su caso, los puntos A y B están siempre al Este/Oeste el uno del otro, entonces en Proyección sinusoidal, todas las líneas paralelas son estándar .

De lo contrario, puede utilizar la distancia esferoidal, por ejemplo, calculando la distancia directamente con sus puntos en lat/long (EPSG 4326) utilizando la herramienta de PostGIS tipo de geografía .

2voto

Mikaveli Puntos 126

Si no necesita una precisión milimétrica, puede utilizar uno de los sistemas de coordenadas transversales de Mercator habituales para esta zona, la zona UTM 33 (EPSG 32633) o Gauß-Krüger zona 4 (EPSG 31468):

gk4_data = latlon_data.to_crs(epsg=31468)

Berlín está cerca de una frontera zonal en ambos sistemas, lo que provoca pequeños errores. Como menciona Matte, en UTM las desviaciones son de unos 25 cm por km; Gauß-Krüger utiliza zonas más estrechas, pero sin el factor de escala de UTM, por lo que las desviaciones son aproximadamente las mismas.

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