Distancia métrica adecuada para la agrupación espacial de coordenadas geográficas

8

Tengo un conjunto de ubicaciones en coordenadas geográficas, y me gustaría agrupar los puntos mediante el agrupamiento jerárquico seguido de la tala de árboles en varias "alturas" con el fin de calcular las medias de las variables agrupadas en cada ubicación.

La agrupación jerárquica de la matriz de distancia de coordenadas geográficas, supongo, puede ser una forma engañosa de formar grupos porque la latitud y la longitud no están igualmente espaciadas.

Entonces puedo imaginar dos caminos a seguir:

  1. Usando la gran distancia del círculo para la distancia métrica.
  2. Convirtiendo las coordenadas geográficas en una proyección igualmente escalada y luego encontrando la distancia euclidiana.

Además de que la opción dos es más complicada de realizar, ¿son equivalentes estos enfoques? ¿Y cuál es exactamente el significado de la altura de corte del árbol en estos casos?

mapas digitales
fuente
2
Re 2: No existe tal cosa como una "proyección igualmente escalada": la matriz de distancia obtenida con cualquier proyección diferirá de la que usa distancias geodésicas. Sin embargo, si todos los puntos están cerca, digamos, dentro de unos pocos miles de kilómetros entre sí, habrá muchas proyecciones cuyas matrices de distancia son aproximaciones razonablemente cercanas a la correcta. Para trabajar en toda la Tierra, hay una tercera opción disponible: considere usar la matriz de distancia 3D. Es fácil de calcular y, en general, debe dar resultados similares a la distancia geodésica.
whuber

Respuestas:

6

Gracias a @whuber por ponerme en el camino correcto aquí. Parece que no habrá respuestas adicionales en el futuro, por lo que resolveré esta pregunta publicando mis propias observaciones que pueden ser útiles para que otros aprendan sobre distancias, agrupaciones y proyecciones.

El siguiente código R, mediante el geosphere, rgdaly sppaquetes demuestra que la selección cuidadosa de la proyección adecuada puede dar una matriz de distancia precisa (donde precisa se define como la distancia geodésica) cuando los puntos son de hasta 2000 km entre sí (ejes están en metros).

library(sp)
library(rgdal)
library(geosphere)

## Produce 200 randomly positioned geographic coordinates
## in central Canada
xyLatLon <- data.frame(lon=(runif(200)*-30)-85,
                       lat=(runif(200)*5)+50)

## Convert to a Lambert Conformal Conic projection that should
## reasonably approximate the true distance
newProj <- "+proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675
            +lon_0=-91.86666666666666 +x_0=6200000 +y_0=3000000
            +ellps=GRS80 +units=m +no_defs" 
xyLcc <- spTransform(SpatialPoints(xyLatLon, proj4string=CRS("+proj=longlat")), CRS(newProj))


## Find the geodesic distance matrix from geographic coordinates
## assuming the WGS84 ellipsoid
xyDist1 <- distm(xyLatLon, fun=distMeeus)

## Find the Euclidean distance matrix from the projection
xyDist2 <- as.matrix(dist(coordinates(xyLcc)))

## Find the Euclidean distance matrix of the geographic coordinates
xyDist3 <- as.matrix(dist(xyLatLon))

Las gráficas de los elementos de estas tres matrices de distancia se muestran a continuación. El gráfico a la izquierda indica que la proyección seleccionada está altamente correlacionada con la distancia geodésica a través del rango de distancias utilizadas aquí. Mientras que la gráfica correcta muestra el error considerable que se esperaría si se usaran coordenadas geográficas no proyectadas.

ingrese la descripción de la imagen aquí

mapas digitales
fuente
Hola @digitalmaps, estoy tratando de agrupar los datos de temperatura en una cuadrícula lat-lon regularmente espaciada. Me gustaría tener en cuenta las distancias geográficas, no solo los valores temporales. ¿Necesito calcular una matriz de distancia como usted explica? Gracias
pacomet