Susannalsy 1.用rgdal::readGDAL()读取这个数据,128个波段都可以读入,但如何只用RGB三个波段画出图像呢?
虽然我之前也试过gdal
包读取影像数据,但我更喜欢raster
包,使用这个包读取tif文件后,你可以把它转化为image data.frame(我喜欢叫imdf
),这是一个前两个表示xy(坐标)、后面的columns表示波段值。所以你可以试试
library(raster)
p11 <- brick("F:/profileclassify/p11/2几何校正/p11correctcliptif.tif")
imdf <- as.data.frame(p11, na.rm=TRUE, xy=TRUE)
这个时候,你就可以用ggplot2
之类的做图包去绘制地图了,即把xy(经纬度)作为图形的xy轴,波段值作为图形中的fill
。
画RGB图需要先挑选用于RGB通道的波段(当然你也可以做波段运算),然后用stretch
拉伸到0-255的rgb值,最后绘图。具体操作我建议你参考我之前写的一个包。
Susannalsy 2.如何用高光谱所有波段做k-means,好像也不可以直接把这个对象p11放进来,R提示只用了一列,但这个具体怎么写我不太清楚
还是imdf
的问题,你想,如果你能够把它变成data.frame
格式,不管你做K-means还是Fuzzy C-means,都可以很方便的实现。显示K-means结果方法同样参考RGB显示。