2016-07-14 53 views
0

Ich möchte die Werte eines Rasters extrahieren, wo ein spatialLines-Objekt seine Zellen kreuzt und einen Fehler verursacht. Dies zeigt:Fehler "IDs stimmen nicht überein" beim Extrahieren von Rasterwerten in SpatialLines

> require(maptools); require(raster) 
> data(wrld_simpl) 
> nepal = as(wrld_simpl[wrld_simpl$NAME == 'Nepal',], 'SpatialLines') 
> r = raster(volcano) 
> extent(r) = c(79,90,26,31) 
> plot(r); plot(nepal, col='red', add=T) 

enter image description here

Die Extraktion:

> border_values = extract(r, nepal, sp=T, fun=median) 
Error in SpatialLinesDataFrame(y, res[, -1, drop = FALSE]) : 
    row.names of data and Lines IDs do not match 

Jede Idee, was dies verursacht? Mein Rasterpaket ist v2.5-8.

Antwort

1

Das ist ein Fehler, die in dem Raster-Paket behoben werden muss, aber hier ist eine Arbeit um:

row.names(nepal) <- '1' 
border_values <- extract(r, nepal, sp=TRUE, fun=median, match.ID=FALSE) 

oder allgemeiner

row.names(nepal) <- as.character(1:length(nepal)) 
+0

Dank (wenn Sie mehrere Funktionen haben) Robert :) – geotheory