Voglio sottoporre a serie uno shapefile (il file .shp e i file associati sono here) in un altro delimitato da un insieme di coordinate, diciamo tra long [80,90] e lats [20,30], quindi scrivi questo come un altro shapefile. Se uso il pacchetto maptools
:R/GIS: Come suddividere uno shapefile con un bounding box lat-long?
df = readShapeLines("/path/asia_rivers.shp")
e poi guardare la struttura del file con as.data.frame(df)
, non riesco a trovare alcun modo ovvio di sottoinsiemi per coordinate. I posso utilizzare il pacchetto PBSmapping
al sottoinsieme:
df = importShapefile("/path/asia_rivers.shp")
df_sub = subset(df, X>=80 & X<=90 & Y >=20 & Y <=30)
ma poi non riesco a essere in grado di forzare questo in un frame di dati che possono essere esportati tramite writeSpatialShape()
in maptools
. Continuo a ricevere questo errore: Error in PolySet2SpatialLines(df_sub) : unknown coordinate reference system
. Sicuramente mi manca qualcosa di molto semplice e ci dovrebbe essere un modo semplice per inserire i geo-dati per geo-coordinate?
Il problema non è nel tracciare, ma in subsetting in un formato che può essere esportato come shapefile. – user702432
Hai provato a leggere il tuo shapefile, intersecandolo con un riquadro di delimitazione appropriato utilizzando gIntersection e quindi esportalo, ad esempio con maptools :: writeShapeLines? L'ho solo tracciato per mostrarti che le linee sono state ritagliate con dati fittizi, dal momento che il file di forma che hai fornito non è valido (uno shapefile consiste in più di un semplice file * .shp; http://en.wikipedia.org/ wiki/Shapefile). – johannes
Ciao jmsigner ... Mi dispiace, mio male. Ho cambiato il link alla cartella zippata che contiene i file .dbf, .lyr, .prj, .sbn, .sbx, .shp e .shx originali. Grazie. – user702432