2017-10-15 67 views
0

我已經收到一個.tif文件,其中包含有關每個值的顏色信息(例如,森林是綠色的,雲是黑色的).qml文件。levelplot繪製錯誤的分類顏色

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) 
+0

參見:https://github.com/oscarperpinan/rastervis/issues/26#issuecomment-335011814 – Matifou

回答

2

我犯了changes in the code來解決這個問題的描述。請嘗試包的開發版:

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

謝謝你,它的工作要好得多。最後的觀察:圖的圖例是這樣的,圖例的第一個值是在'rat_sm $ landcover'中分配的最後一個值(即它們的顯示仍然與'rat_sm $ landcover'矢量相反) – pdx