Em R
leia-os com x <- gdal::readOGR(datasource, layername)praticamente qualquer formato
use as(x, "class")coerção para converter de polígonos em seus limites de linha em seus pontos componentes (e com facilidade, registre os IDs de objeto e anel)
Use funções de resumo da maneira padrão para o X / Y agrupado por ID de polígono
Exemplo:
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)
Você menciona "intervalo de latitude", mas não especifica se suas coordenadas estão em um sistema de coordenadas projetadas; se houver, é necessário garantir que você não projete e classifique por latitude (não apenas Y), se for o caso.
Eu altamente recomendo que você verifique dplyrpara o resumindo final, de R built-in ferramentas são muito poderoso, mas cansativo em retrospectiva. Infelizmente, spvocê precisa converter manualmente entre matrizes de coordenadas e data.frameformar bastante rotineiramente para obter esse tipo de resposta, mas tudo é possível.
Por fim, se é realmente isso que você procura, não demorará nada, desde que seus recursos de memória virtual correspondam ao conjunto de dados que você possui, para ler tudo de uma vez e fazer o trabalho de uma só vez. passo assim.