我试图将此文件(无符号字符,像素= 1440和行= 720)视为地图.我尝试了下面给出的代码片段.首先,我下载的问题可能是这个代码使用了连续的配色方案,即使我有离散数据(这是一种分类方案).如何将数字映射到颜色?请将需要的比例示例如下所示:
conne <- file("C:\\landcover.bin", "rb")
dfr<- readBin(conne, integer(), size=1, n=720*1440, signed=F)
y<-matrix((data=dfr), ncol=1440, nrow=720)
image(y)
Run Code Online (Sandbox Code Playgroud)
该raster包提供了使用分类数据的方法.ratify有关详细信息,请阅读帮助页面.
首先让我们RasterLayer用你的数据创建一个:
library(raster)
dfr <- readBin('biome1440s.bin', integer(), size=1, n=720*1440, signed=F)
r <- raster(nrow=720, ncol=1440)
r[] <- dfr
Run Code Online (Sandbox Code Playgroud)
现在我们将其定义RasterLayer为一个因素ratify.您应该使用您的信息而不是更改其级别LETTERS:
r <- ratify(r)
rat <- levels(r)[[1]]
rat$soil <- LETTERS[1:15]
levels(r) <- rat
Run Code Online (Sandbox Code Playgroud)
最后,这个分类RasterLayer可以用包的levelplot方法显示.rasterVis
library(rasterVis)
myPal <- c('lightblue', terrain.colors(14))
## using par.settings
levelplot(r, par.settings=rasterTheme(region=myPal))
## or with col.regions
levelplot(r, col.regions=myPal)
Run Code Online (Sandbox Code Playgroud)

编辑:levelplot使用lattice图形,同时plot使用
base图形.它们不能一起使用(除非您使用该
gridBase包).但是,您可以使用包中的+.trellis和layer函数
轻松覆盖其他信息latticeExtra.既然wrld_simpl是
SpatialPolygonsDataFrame你可以使用包中的sp.polygons函数sp来绘制它.
library(maptools) ## needed for wrld_simpl
data(wrld_simpl) ## a SpatialPolygonsDataFrame
levelplot(r, col.regions=myPal) +
layer(sp.polygons(wrld_simpl, lwd=0.5))
Run Code Online (Sandbox Code Playgroud)
