我正在尝试将此文件(无符号字符,pixel = 1440和lines = 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)
答案 0 :(得分:6)
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
现在我们将此RasterLayer
定义为ratify
的因素。您
应使用您的信息而不是LETTERS
更改其级别:
r <- ratify(r)
rat <- levels(r)[[1]]
rat$soil <- LETTERS[1:15]
levels(r) <- rat
最后,可以显示此分类RasterLayer
levelplot
package的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)
已编辑: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))
包中绘制它。
{{1}}
答案 1 :(得分:1)
首先,没有代码可以使用“连续”配色方案,因为所有数据都是数字和量化的
现在,R
中有许多内置颜色模式。有关用于地图等的一些常见调色板的讨论,请参阅?image
。如果您的地图数据具有不同土壤类型的离散数值范围,则可以使用一点缩放数学运算为每个类别应用不同的颜色。
答案 2 :(得分:0)
或者您可以使用优秀的ggplot2包。这具有geom_raster
几何,它应该可以很好地处理您的数据。请注意,ggplot2
要求其数据格式与矩阵不同,您可以使用melt
包中的reshape2
来执行此转换。另请参阅我对an earlier question的回答,该回答与您拥有许多相似之处。