Finde lat lon Koordinaten von Oceanen
Verfasst: Fr Nov 15, 2019 1:56 pm
Hallo liebes Forum,
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.
In der Variable o sind die Punkte mit Ocean Null und die Landflächen NA, im nächsten Schritt habe ich die NAs gelöscht, sodass nur noch die Id der Ocean stehen bleiben. Allerdings weiß ich jetzt nicht weiter. Kann ich die übrigen ID (z.B. 124422, ...) in die entsprechenden Koordinaten umwandeln und diese bzw. die Werte an diesen Koordinaten im RasterFile auf NA oder Null setzen?
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
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