raster包是基于rgdal底层库编写的地理数据处理包,包括图像的创建,图像的读取,图像的运算,图像的可视化,图像的输出。
由于我刚接触,只是浅浅的了解了一下。
一下是关键的函数:
函数功能 | 函数名以及描述 |
---|---|
增加一个栅格图层 | addLayer(增加到的目标图层,增加图层1,增加图层2) |
删除一个栅格图层 | dropLayer(删除的目标图层,c(1,2,3)哪些层) |
栅格栈 | stack(图层1,图层2,图层3) |
创建单个图层 | raster(目标文件路径) |
图层数 | nlayers(目标) |
找到目标位置周围的值 | adjacent(目标图层, cells=哪些位置, directions=4周围邻域4 8 16, pairs=TRUE矩阵或者向量, target=NULL, sorted=F,include=F,id=F) |
栅格合并 聚合函数 | aggregate(x,fact=2,fun=mean) |
一个限制对象(边界对象) | extent(xmin,xmax,ymin,ymax) |
边界对齐,获得相同的原点和分辨率 | alignExtent(e边界,r图层) |
在不同图层之间切换,获得电影效果 | amimate(X,pause=0.25,min,zlim,maxpixels=50000,n=10...) |
产生n个随机数0-1 | runif(n) |
对图层中的NA进行插值liner constant | (X,filename='',method="liner",rule=1 or 2 描述如何处理第一个和最后一个) |
计算 栅格面积 投影或者未投影 | area() |
栅格对象的算术方法 | + - * %% %/% 各图层直接运算。 |
转化为字符 | as.character() |
转化为数据框和矩阵 | as.data.frame(X,row.names = 给行取名字,optional=T 以图层名字为列名,xy=T or F 坐标要不要) |
建立一个图层列表对象 | as.list(图层1,图层2) |
转换逻辑矩阵 0为false 其他为true | as.logical(目标图层) |
转换为矩阵或者向量,或者数组 | as.matrix() |
波段数,以及波段序数 | r = raster(f,layer=2) nbands(r) bandnr(r) |
栅格统计柱形图 | barplot() |
边缘检测 | boundaries() |
箱型图 | boxplot() |
创建栅格砖 | brick() 可以由多种对象转化 extract(b,870)提取目标数据 |
对图层进行计算 | calc(目标图层,fun 运算函数) |
查找栅格值 | cellFrom 很多种方法 |
通过边界查找 | cellFromExtent(r,bb) bb边界 |
对小元胞数组统计 | cellStats(x,stat='mean') |
限制值的范围(任何高于上分位低于下分位都变成NA) | clamp(x,lower=,upper=) |
清除内存中的栅格值 | clearValues(r) |
点击图层获得值 | click(r) |
增加等高线 | contour(r,add=T) |
暂时只是看了这些函数,以后再补充。
一个简单的处理过程
数据是遥感影像
library(raster)
s = stack('data/tm.dat')#也可以使用 brick('data/tm.dat')
s #如果对单个波段处理可以变成列表
list <- as.list(s)
for (var in list){
fun(var)
}
转化矩阵、数组、数据框
as.matrix(0 as.array() as.data.frame()
处理缺失值
...
导入算法
可视化
plotRGB(data,3,2,1,maxpiexls)
导出数据