基于R语言进行栅格数据统计及Raster包简介
写在前面:日常数据处理中常需要对单个栅格图层进行统计,包括计算其均值、最值和总和等等。使用R语言可方面快速地实现该需求,主要借助的package为Raster包。
library(raster)
x = raster('data/data.tif')
cellStats(x,stat='mean')
x表示待计算的栅格;
stat表示需要统计的内容,包括sum, mean, min, max, sd(标准差), skew(偏度) 和 rms(均方根);
英文解释:
Compute statistics for the cells of each layer of a Raster* object. In the raster package, functions such as max, min, and mean, when used with Raster* objects as argument, return a new Raster* object (with a value computed for each cell). In contrast, cellStats returns a single value, computed from the all the values of a layer. Also see layerStats
来自 http://search.r-project.org/library/raster/html/cellStats.html
cellStats will fail (gracefully) for very large Raster* objects except for a number of known functions: sum, mean, min, max, sd, ’skew’ and ’rms’. ’skew’ (skewness) and ’rms’ (Root Mean Square) must be supplied as a character value (with quotes), the other known functions may be supplied with or without quotes. For other functions you could perhaps use a sample of the RasterLayer that can be held in memory
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® bandnr® |
栅格统计柱形图 | barplot() |
边缘检测 | boundaries() |
箱型图 | boxplot() |
创建栅格砖 | brick() 可以由多种对象转化 extract(b,870)提取目标数据 |
对图层进行计算 | calc(目标图层,fun 运算函数) |
查找栅格值 | cellFrom 很多种方法 |
通过边界查找 | cellFromExtent(r,bb) bb边界 |
限制值的范围(任何高于上分位低于下分位都变成NA) | clamp(x,lower=,upper=) |
清除内存中的栅格值 | clearValues® |
点击图层获得值 | click® |
增加等高线 | contour(r,add=T) |