【R-terra包|第二节】:栅格重分类、投影变换、分区统计

本文介绍了如何使用R语言的terra包进行栅格重分类、投影变换、区域统计以及矢量属性操作。内容涵盖重分类函数的应用、矢量数据的读取与绘图、按字段合并矢量、投影变换方法、区域统计计算以及属性表的管理和输出。
摘要由CSDN通过智能技术生成

terra|第二节:栅格重分类、投影变换、区域统计、属性融合与提取

本节将介绍基于R语言terra包的栅格重分类、矢量绘图、字段融合、投影变换、区域统计、属性表的提取、栅格矢量的输出等内容。

重分类

R-terra包|第一节中,得到处理好的NDVI,下面将对其进行栅格重分类,采用classify 函数:

# classIfy method for SpatRaster
classify(x, rcl, include.lowest=FALSE, right=TRUE, 
			others=NULL, brackets=TRUE, filename="", ...)

其中x为栅格,rcl为分类依据。具体如下:

# 重分类
m <- c( -1,   0,    1,
         0,   0.3,  2,
        0.3,  0.6,  3,
        0.6,   1,   4)
rcl <- matrix(m, ncol =3, byrow =TRUE)
rcl
re_ndvi <- classify(dx_ndvi, rcl)
# 属性表
freq(re_ndvi)
plot(re_ndvi,  main ='NDVI')

在这里插入图片描述

矢量读取与绘图

vect函数可读取矢量数据,并可使用plot函数加上属性字段进行映射出图,如下所示:

#加载县区划(该数据为编造的)
bj <- vect("E:/Data/R_save/dingxi/bjt.shp")
bj
plot(bj, col=rainbow(n))
# 采用gdp字段进行颜色映射
plot(bj, "gpd", col=rainbow(25))  

在这里插入图片描述
其中,name对应的为该矢量所包含的属性,或者通常所说的字段,以各地区gdp的属性绘图:
在这里插入图片描述

按字段合并矢量

该矢量是以县为边界,使用aggregate函数按属性中的ID_shi代码进行合并得到市行政区划,如下

#aggregate 按字段融合
shi <- aggregate(bj,  "ID_shi")   
plot(bj, col="light blue", lty=2, border="red", lwd=2)
# 叠加 县边界和市边界
lines(shi, lwd=5)
lines(shi, col="white", lwd=1)
text(bj, "name_1", cex=.8, halo=TRUE)

在这里插入图片描述

投影变换

计算得到ndvi坐标系为WGS_1984,为矢量区划坐标系为CGCS_2000 ,因此需要投影变换到同一坐标系下,采用terra::project函数,如下所示:

#获取ndvi投影
crdref <- crs(dx_ndvi)
#投影变换
bj1 <- terra::project(bj, crdref)
bj1
plot(dx_ndvi)
plot(bj1, add = TRUE, border='red', lwd=1.5 )   

在这里插入图片描述
在这里插入图片描述

区域统计

现在有区域ndvi和行政区划数据,采用extract函数提取各个县的ndvi的均值

#区域统计,结果为data.frame格式
tj <- extract(dx_ndvi1, bj1, mean, na.rm=TRUE)

在这里插入图片描述

矢量属性表操作

将提取到ndvi均值追加到行政区划bj属性里

#  添加新变量
bj1$ndvimean <- tj$b4
head(bj1)

在这里插入图片描述

提取属性

#法1
bjv <- values(bj1)
head(bjv)
#法2
bjv1 <- as.data.frame(bjv)
head(bjv1)

在这里插入图片描述

提取字段

#仅获得某个字段的值,结果为向量
bj1$gpd
#获得包含改字段的新矢量
bj1[, "gpd"]

栅格矢量输出

#输出
writeRaster(dx_ndvi, "E:/Data/R_save/dingxi/OUTPUT/dx_dnvi.tif", overwrite = FALSE)
writeVector(bj1,  "E:/Data/R_save/dingxi/OUTPUT/dx_bj.shp", overwrite = FALSE)

在这里插入图片描述

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值