Determine el centroide de múltiples puntos

votos
6

Estoy escribiendo una aplicación de mapeo que estoy escribiendo en python y necesito obtener el centroide lat / lon de N puntos. Digamos que tengo dos ubicaciones

a.lat = 101
a.lon = 230

b.lat = 146
b.lon = 200

Obtener el centro de dos puntos es bastante fácil usando una fórmula euclidiana. Me gustaría poder hacerlo por más de dos puntos.

Fundamentalmente, busco hacer algo como http://a.placebetween.us/, donde se pueden ingresar varias direcciones y encontrar el lugar equidistante para todos.

Publicado el 09/12/2008 a las 19:06
fuente por usuario
En otros idiomas...                            


6 respuestas

votos
7

Eche un vistazo al documento pdf vinculado a continuación. Explica cómo aplicar el algoritmo de figura plana que menciona Bill the Lizard , pero en la superficie de una esfera.

miniaturas del póster y algunos detalles http://img51.imageshack.us/img51/4093/centroidspostersummary.jpg
Fuente: http://www.jennessent.com/arcgis/shapes_poster.htm
También hay disponible un PDF de 25 MB de tamaño completo para descargar
El crédito va a mixdev para encontrar el enlace a la fuente original, y por supuesto a Jenness Enterprises para que la información esté disponible. Nota: de ninguna manera estoy afiliado con el autor de este material.

Respondida el 09/12/2008 a las 19:44
fuente por usuario

votos
3

Si está promediando ángulos y tiene que lidiar con ellos cruzando el 0/360, entonces es más seguro sumar el pecado y el cos de cada valor y luego Promedio = atan2 (suma de senos, suma de cosenos)
(tenga cuidado con el orden de los argumentos) en tu función atan2)

Respondida el 09/12/2008 a las 19:56
fuente por usuario

votos
3

Añadiendo a la respuesta de Andrew Rollings.

También deberá asegurarse de que si tiene puntos a cada lado de la línea de longitud 0/360 que está midiendo en la "dirección correcta"

Is the center of (0,359) and (0, 1) at (0,0) or (0,180)?
Respondida el 09/12/2008 a las 19:20
fuente por usuario

votos
1

La matemática es bastante simple si los puntos forman una figura plana . Sin embargo, no hay garantía de que un conjunto de latitudes y longitudes sea así de simple, por lo que puede ser necesario primero encontrar el casco convexo de los puntos.

EDITAR: Como señala eJames , tienes que hacer correcciones para la superficie de una esfera. Mi culpa por suponer (sin pensar) que esto fue entendido. +1 a él.

Respondida el 09/12/2008 a las 19:17
fuente por usuario

votos
0

El siguiente PDF tiene un poco más de detalle que el cartel de Jenness Empresas. También se ocupa de la conversión en ambas direcciones y por un esferoide (como la Tierra) en lugar de una esfera perfecta.

La conversión entre 3-D latitud cartesiano y elipsoidal, longitud y coordenadas de altura

Respondida el 11/11/2011 a las 22:38
fuente por usuario

votos
-2

Separadamente promedie las latitudes y longitudes.

Respondida el 09/12/2008 a las 21:34
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more