En R
léelos con x <- gdal::readOGR(datasource, layername)
casi cualquier formato
use la as(x, "class")
coerción para convertir de polígonos a sus límites de línea a sus puntos componentes (y, de manera práctica, registre las identificaciones de objeto y anillo)
Use funciones de resumen de la manera estándar para X / Y agrupadas por ID de polígono
Ejemplo:
library(rgdal)
dsn <- system.file("vectors/ps_cant_31.MIF", package = "rgdal")[1]
ogrInfo(dsn=dsn, layer="ps_cant_31")
ps_cant_31 <- readOGR(dsn=dsn, layer="ps_cant_31")
## cast to lines and then to points (creates columns Lines.NR, Lines.ID, Line.NR to identify pieces)
p <- as(as(ps_cant_31, "SpatialLinesDataFrame"), "SpatialPointsDataFrame")
coords <- coordinates(p)
## see that Lines.NR groups your original polygons (nrow(ps_cant_31))
#spplot(p["Lines.NR"])
## summarize the Y-coordinate into groups defined by original polygon object
tapply(coords[,2], p$Lines.NR, median)
tapply(coords[,2], p$Lines.NR, max)
tapply(coords[,2], p$Lines.NR, min)
Usted menciona "rango de latitud" pero no especifica si sus coordenadas están en un sistema de coordenadas proyectadas, si es así, debe asegurarse de que se desproyecta y clasifica por latitud (no solo Y) si ese es el caso.
Me altamente recomiendo que echa un vistazo dplyr
a la última resumir, de R incorporado en las herramientas son muy potentes, pero tedioso en retrospectiva. Desafortunadamente sp
, necesita convertir manualmente entre matrices de coordenadas y data.frame
formar de manera bastante rutinaria para obtener este tipo de respuestas, pero todo es factible.
Finalmente, si esto es realmente lo que busca, no tomará ningún tiempo en absoluto, siempre que sus recursos de memoria virtual coincidan con el conjunto de datos que tiene, para leerlo todo de una vez y hacer el trabajo en uno paso como este