ich habe ein RasterFile (durch Interpolation) von Europa und und würde nun gerne die Koordinaten der Wasserflächen herausfinden und die Werte (Temperaturwerte) an diesen Koordinaten Null oder NA setzen.
Gibt es eine Möglichkeit, dies in R zu machen?
Ich habe versucht mit den Natural Earth oceans shapefile die Landflächen zu bestimmen und mich so an die Lösung heranzutasten.
Code: Alles auswählen
library(rgdal)
library(rgeos)
URL <- "http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/physical/ne_110m_ocean.zip"
fil <- basename(URL)
if (!file.exists(fil)) download.file(URL, fil)
fils <- unzip(fil)
oceans <- readOGR(grep("shp$", fils, value=TRUE), "ne_110m_ocean",
stringsAsFactors=FALSE, verbose=FALSE)
tt <- rasterToPoints(r_interp) # r_interp ist mein Rasterfile; daraus habe ich die Koordinaten gelesen
lon <- tt[,1]
lat <- tt[,2]
poi <- data.frame(lon, lat)
coordinates(poi) <- ~lon+lat
proj4string(poi) <- CRS(proj4string(oceans))
o <- over(poi, oceans) #hier sind die NAs Landflächen
## 124422 NA NA NA
## 124423 NA NA NA
## 124424 0 Ocean 0
## 124425 0 Ocean 0
## 124426 0 Ocean 0
## 124427 0 Ocean 0
## 124428 0 Ocean 0
## 124429 0 Ocean 0
o <- o[ -c(which(is.na(o$min_zoom))), ] # NA löschen
Ich möchte die MEssdaten über Europa, die ich interpoliert und in ein RasterFile gespeichert habe, graphisch darstellen. Allerdings wird auch über den Atlantik interpoliert (hier liegen keine Messwerte vor). Deshalb möchte ich in einem neuen Raster bzw. in der Graphik die Werte über den Meeresoberflächen Null/NA setzen.
Vielen Dank für eure Hilfe.
Jessi