Ошибка при использовании RColorBrewer для печати

Я пытаюсь построить график карты из растровых данных. Я использую этот код:

library(raster)
library(rgdal)
library(classInt)
library(RColorBrewer)

NDII = raster("G:\\Sheyenne\\image_differencing\\NDII\\differenced.tif")
value.vector = values(NDII)
breaks.qt = classIntervals(value.vector, n = 6, style = "jenks", intervalClosure = "right")
print (plot(NDII, breaks=breaks.qt$brks, col = brewer.pal(6, "Set1")))

но это возвращает:

Error in print(plot(NDII, breaks = breaks.qt$brks, col = brewer.pal(6, : error in evaluating the argument 'x' in selecting a method for function 'print': Error in .asRaster(x, col, breaks, zrange, colNA, alpha = alpha) : could not find function "brewer.pal"


person Stefano Potter    schedule 20.02.2017    source источник


Ответы (1)


Вы не приводите воспроизводимого примера, и я не могу воспроизвести вашу ошибку. Следующий код, который совпадает с вашим, с использованием воспроизводимого примера логотипа R в виде растра (и с сокращением использования NDII[] вместо хранения values(NDII) в переменной) отлично подходит для меня ...

library(raster)
library(rgdal)
library(classInt)
library(RColorBrewer)

NDII = raster(system.file("external/rlogo.grd", package="raster"))
# next line is really slow, I'd advise to run crop(NDII, extent(0,20,0,20)) 
# before to make quick tests
breaks.qt = classIntervals(NDII[], n = 6, style = "jenks", 
                           intervalClosure = "right")
plot(NDII, breaks=breaks.qt$brks, col = brewer.pal(6, "Set1"))

Вы воспроизводите свою ошибку с помощью этого кода? Может быть, вы можете начать с нового, свежего сеанса?

введите здесь описание изображения

person ztl    schedule 20.02.2017
comment
Возможно, вы захотите прояснить разницу между вашим кодом и OP, чтобы сделать его более полным ответом ... - person Benjamin; 20.02.2017
comment
Ну, на самом деле нет никакой разницы ... о которой я сейчас упомянул в своем ответе. - person ztl; 20.02.2017
comment
Ваш пример воспроизводим для меня. До сих пор не уверен, почему мой код не работает, новые сеансы не исправляют это, но, по-видимому, это что-то на моей стороне. - person Stefano Potter; 20.02.2017