Mer

Utjevning av rasterkart med R?

Utjevning av rasterkart med R?


Jeg prøver å lage et kart fra rasterdata. Filen kom fra en beskjæringsmodell, med en oppløsning på 0,5 grader. Selv når jeg deler det opp (dvs. øker den romlige oppløsningen), ser kartet veldig pixelert ut. Jeg prøver å få det til å se bedre ut.

Min nåværende kode gir dette bildet:

hvor jeg vil "jevne" ut dataene, ved å undertrykke det pixelerte utseendet. Noen andre visualiseringsprogrammer gjør dette automatisk, så jeg antar at det ikke burde være vanskelig å reprodusere ved hjelp av R.

For eksempel er dette den samme filen plottet med Panoply:

Det ser ikke helt glatt ut, men det har i hvert fall ikke det pikselerte utseendet. Hvordan oppnå et lignende resultat i R?

Dette er koden for å gjengi problemet mitt:

library (RCurl) library (rasterVis) # Gå til temp dir og last ned fil - ca. 1.7M gammel <- setwd (tempdir ()) # nedlasting raster og shapefile download.file ('https://dl.dropboxusercontent.com/u/27700634/yield.nc', 'yield.nc', method = "curl ") download.file ('https://dl.dropboxusercontent.com/u/27700634/souther.zip', 'southern.zip', method =" curl ") unzip ('southern.zip', exdir =". ") # last sørlige Brasil shapefile mapaSHP <- shapefile ('south.shp') # last murstein b <- murstein ('yield.nc', nivå = 16) # lag fargeskjema mycols <- rasterTheme (region = colorRampPalette (brygger) .pal (9, 'Greens')) (100)) # bruk andre murstein for å plotte kartplan (b [[2]], margin = FALSE, main = "Risutbytte i tonn/ha", par.settings = mycols) + lag (sp.lines (mapaSHP, lwd = 0,8, col = "darkgray")) # gå tilbake til din gamle dir setwd (gammel)

Her er noen ideer.

Med grunnplott kan du gjøre

plot (x, interpolere = TRUE)

Du kan også prøve dataene dine på nytt

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

Eller faktisk jevne det ut ved hjelp av en fokusoperasjon

y <- fokal (x, w = matrise (1, 5, 5), gjennomsnitt)

Eller en kombinasjon

y <- oppdel (x, 5) y <- fokal (y, w = matrise (1, 5, 5), gjennomsnitt)

Spørsmålet om å gjøre dette er en god idé eller ikke, er en annen sak, som jeg overlater til deg å bestemme