Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 编写分类光栅及其符号_R_Raster - Fatal编程技术网

R 编写分类光栅及其符号

R 编写分类光栅及其符号,r,raster,R,Raster,我已经对很多光栅进行了分类,我想用我定义的符号来编写它们 以下是我正在处理的光栅类型: library(raster) library(rasterVis) r <- raster(nrow=10, ncol=10) r[] = 1 r[51:100] = 3 r[3:6, 1:5] = 5 r <- ratify(r) rat <- levels(r)[[1]] rat$landcover <- c('Pine', 'Oak', 'Meadow') rat$class

我已经对很多光栅进行了分类,我想用我定义的符号来编写它们

以下是我正在处理的光栅类型:

library(raster)
library(rasterVis)
r <- raster(nrow=10, ncol=10)
r[] = 1
r[51:100] = 3
r[3:6, 1:5] = 5
r <- ratify(r)

rat <- levels(r)[[1]]
rat$landcover <- c('Pine', 'Oak', 'Meadow')
rat$class <- c('A1', 'B2', 'C3')
levels(r) <- rat
levelplot(r, col.regions=c('palegreen', 'midnightblue', 'indianred1'))
库(光栅)
图书馆(拉斯特维斯)

r我找到了解决这个问题的方法


addColorTable您可以使用光栅版本2.3-40或更高版本执行此操作。请注意,这些类应该是从0,1,2

library(raster)
library(rasterVis)
r <- raster(nrow=10, ncol=10)
r[] = 0
r[51:100] = 1
r[3:6, 1:5] = 2
r <- ratify(r)

rat <- levels(r)[[1]]
rat$landcover <- c('Pine', 'Oak', 'Meadow')
rat$class <- c('A1', 'B2', 'C3')
levels(r) <- rat

x <- writeRaster(r, 'test.tif', overwrite=TRUE)
levelplot(x, col.regions=c('palegreen', 'midnightblue', 'indianred1'))
库(光栅)
图书馆(拉斯特维斯)

你的意思是“写入文件”?此外,您还需要为光栅采集器的
levelplot
函数添加
library(rasterVis)
。是的,如果可能,您希望将它们写入geotiff。有没有一种方法可以实现这一点,而无需写入和重新读取虚拟光栅dummy_raster.tif?似乎只因为writeGDAL需要readGDAL创建的SpatialGridDataFrame才需要它。有没有办法保存rat对象中的颜色,以便它们与每个类关联并自动打印(类似于下面接受的答案)?
library(raster)
library(rasterVis)
r <- raster(nrow=10, ncol=10)
r[] = 0
r[51:100] = 1
r[3:6, 1:5] = 2
r <- ratify(r)

rat <- levels(r)[[1]]
rat$landcover <- c('Pine', 'Oak', 'Meadow')
rat$class <- c('A1', 'B2', 'C3')
levels(r) <- rat

x <- writeRaster(r, 'test.tif', overwrite=TRUE)
levelplot(x, col.regions=c('palegreen', 'midnightblue', 'indianred1'))