Dalam R
membacanya dengan x <- gdal::readOGR(datasource, layername)
format apa saja
gunakan as(x, "class")
paksaan untuk mengonversi dari poligon ke batas garisnya ke titik komponennya (dan dengan mudah, catat objek dan cincin ID)
Gunakan fungsi ringkasan dengan cara standar untuk X / Y yang dikelompokkan berdasarkan ID poligon
Contoh:
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)
Anda menyebutkan "rentang lintang" tetapi tidak menentukan apakah koordinat Anda berada dalam sistem koordinat yang diproyeksikan, jika mereka Anda perlu memastikan Anda tidak memproyeksikan dan mengklasifikasikan berdasarkan lintang (bukan hanya Y) jika itu masalahnya.
Saya akan sangat menyarankan Anda memeriksa dplyr
ringkasan akhir, alat bawaan R's sangat kuat tapi melelahkan jika dilihat. Sayangnya dengan sp
Anda perlu mengkonversi secara manual antara array koordinat dan data.frame
membentuk cukup rutin untuk mendapatkan jawaban semacam ini, tetapi semua itu bisa dilakukan.
Akhirnya, jika ini adalah apa yang Anda inginkan setelah itu tidak akan memakan waktu sama sekali, selama sumber daya memori virtual Anda cocok dengan set data yang Anda miliki, untuk membacanya sekaligus dan melakukan pekerjaan dalam satu langkah seperti ini.