levelplot отображает неправильные категориальные цвета

Я получил файл .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 «полагает», что категории землепользования (лес, затопленный рис и т. д.) расположены в обратном алфавитном порядке, как и цвета. Таким образом, цвета относятся к неправильной категории. Например, последние три цвета («#000000», «#000000», «#008000») присвоены воде, поселению, растительности сцены.

Благодарен за любые предложения о том, как это исправить (кроме отображения цветов в обратном алфавитном порядке, что утомительно, потому что файл .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)

person pdx    schedule 15.10.2017    source источник
comment
См. также: github.com/oscarperpinan/rastervis/issues/   -  person Matifou    schedule 17.10.2017


Ответы (1)


Я внес изменения в код. Пожалуйста, попробуйте девелоперскую версию пакета:

## install.packages('remotes')
remotes::install_github('oscarperpinan/rasterVis')
person Oscar Perpiñán    schedule 15.10.2017
comment
Спасибо, стало намного лучше. Последнее наблюдение: легенда графика такова, что первые значения легенды являются последними значениями, присвоенными в ` rat_sm$landcover` (т.е. их отображение по-прежнему перевернуто относительно вектора rat_sm$landcover) - person pdx; 16.10.2017