levelplot绘制错误的分类颜色

时间:2017-10-15 07:55:53

标签: r qml r-raster levelplot rastervis

我收到一个.tif文件和一个.qml文件,其中包含有关每个值的颜色的信息(例如,森林是绿色,云是黑色)。

library(raster)
library(rasterVis)

sm <- raster("UT_classification_coded.tif")

########## Classify raster / build attribute table
    sm <- ratify(sm)
    rat_sm <-levels(sm)[[1]]
    # Create categories
    rat_sm$landcover <- c('Forest', 'Active vegetation', 'Senescent vegetation', 'Disturbed', 'Rice flooded', 'Rice growing', 'Settlement', 'Water', 'Cloud', 'Cloud shadow', 'Forest') 
    levels(sm) <- rat_sm




##### plot the colours using the .qml file
     levelplot(sm, col.regions=c("#00b144", "#00ff00", "#ffc0a0", "#00ebeb", "#86b1ec", "#de57ff", "#ffff00", "#0000ff", "#000000", "#000000", "#008000"), xlab=NULL, ylab=NULL, scales=list(draw=FALSE), maxpixels=6e6)

问题是levelplot&#34;相信&#34;土地利用类别(森林,水稻等)按字母顺序排列,颜色也是如此。因此,颜色被分配到错误的类别。例如,最后三种颜色(&#34;#000000&#34;,&#34;#000000&#34;,&#34;#008000&#34;)被分配给Water,Settlement,Scenecent植被。< / p>

感谢任何关于修复此问题的方法的建议(除了以反向字母顺序绘制颜色,这很乏味,因为.qml文件不是如何呈现信息)。

编辑:这里是.tif文件的描述

class       : RasterLayer 
dimensions  : 10981, 10981, 120582361  (nrow, ncol, ncell)
resolution  : 10, 10  (x, y)
extent      : 299993, 409803, 9190235, 9300045  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=18 +south +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0 
data source : C:\Users\Documents\UT_classification_coded.tif 
names       : UT_classification_coded 
values      : 1, 15  (min, max)

1 个答案:

答案 0 :(得分:3)

我已承诺changes in the code来解决此问题。请尝试该软件包的开发版本:

## install.packages('remotes')
remotes::install_github('oscarperpinan/rasterVis')