Mehr

Glättung der Rasterkarte mit R?

Glättung der Rasterkarte mit R?


Ich versuche, eine Karte aus Rasterdaten zu erstellen. Die Datei stammt von einem Crop-Modell mit einer Auflösung von 0,5 Grad. Selbst wenn ich es disaggregiere (d.h. die räumliche Auflösung erhöhe), sieht die Karte wirklich pixelig aus. Ich versuche es besser aussehen zu lassen.

Mein aktueller Code erzeugt dieses Bild:

wo ich die Daten "glätten" möchte, indem ich das pixelige Aussehen unterdrücke. Einige andere Visualisierungsprogramme machen dies automatisch, daher sollte es meiner Meinung nach nicht schwer sein, mit R zu reproduzieren.

Dies ist beispielsweise dieselbe Datei, die mit Panoply geplottet wurde:

Es sieht nicht absolut glatt aus, aber zumindest hat es auch nicht den pixeligen Look. Wie erreicht man ein ähnliches Ergebnis in R?

Dies ist der Code, um mein Problem zu reproduzieren:

Bibliothek(RCurl) Bibliothek(rasterVis) # Gehen Sie zum temporären Verzeichnis und laden Sie die Datei herunter - ca. 1.7M old <- setwd(tempdir()) # download raster and shapefile download.file('https://dl.dropboxusercontent.com/u/27700634/yield.nc', 'yield.nc', method="curl ") download.file('https://dl.dropboxusercontent.com/u/27700634/southern.zip', 'southern.zip', method="curl") unzip('southern.zip', exdir=". ") # Südbrasilien-Shapefile mapaSHP laden <- shapefile('southern.shp') # brick b laden <- brick('yield.nc', level=16) # Farbschema erstellen mycols <- rasterTheme(region=colorRampPalette(brewer .pal(9,'Greens'))(100)) # zweite Ziegelschicht zum Plotten der Karte verwenden levelplot(b[[2]], margin = FALSE, main = "Reisertrag in Tonnen/ha", par.settings = mycols) + layer(sp.lines(mapaSHP, lwd=0.8, col="darkgray")) # zurück zum alten Verzeichnis setwd(old)

Hier sind ein paar Ideen.

Mit Basisplot können Sie tun

plot(x, interpolieren=TRUE)

Sie können Ihre Daten auch neu abtasten

y <- disaggregieren(x, 5, method="bilinear")

Oder glätten Sie es mit einer Fokusoperation

y <- fokal(x, w=Matrix(1, 5, 5), Mittelwert)

Oder eine Kombination

y <- disaggregieren(x, 5) y <- fokal(y, w=Matrix(1, 5, 5), Mittelwert)

Die Frage, ob dies eine gute Idee ist oder nicht, ist eine andere Frage, die ich Ihnen überlasse


Schau das Video: How to make pencil box from matchbox and colgate box. Diy pencil box from matchbox