Интересно, как можно написать GTiff на основе матрицы конкретных цветов? Это может быть, когда цвета не представляют собой количественную переменную, а скорее качественные пространственные явления, такие как демографические кластеры. Если у меня есть, например, матрица 1000x1000 значений цвета (символьные строки типа «# FF0000»), я могу легко построить их с помощью grid.raster(mtrx, interpolate=FALSE)
, но это сложно наложить на другие шейп-файлы. Я также могу преобразовать их в SpatialPixelsDataFrame с именами полей 'x', 'y', 'col'. Но я в тупик, как писать любой из этих объектов в GTiff. Например:Запись файла GeoTiff на основе цветовой матрицы
writeGDAL(SPDF, 'test.tif', drivername = "GTiff", colorTables=x$col)
дает
Error in function (classes, fdef, mtable) :
unable to find an inherited method for function ‘gridded’ for signature ‘"data.frame"’
Очень благодарен за любые указатели.
Пример:
require(sp)
require(rgdal)
mtrx = matrix(rgb(runif(10000), runif(10000), runif(10000)), ncol=100)
spdf = data.frame(x=rep(1:100,100), y=rep(1:100,each=100), col=as.vector(mtrx))
plot(spdf[,1:2], col=spdf$col, pch=15)
spdf = SpatialPixelsDataFrame(points=spdf[,1:2], data=spdf)
writeGDAL(spdf, 'test.tif', drivername = "GTiff", colorTables=spdf$col)
Пожалуйста, помогите нам помочь вам, предоставив нам воспроизводимый пример (то есть код и примеры данных), см Http: //stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example для деталей. –
Несомненно @Paul Hiemstra, добавил к вопросу. – geotheory