栅格数据的四舍五入

ArcGIS的栅格计算器很奇怪,取整包括int()绝对值向下取整再加入符号,roundup()向上取整,rounddown()向下取整,唯独没有round()四舍五入这个命令,下列步骤可实现栅格数据的四舍五入:

  1. 首先载入数据,查看数据类型

2. 打开R语言

#下载栅格的工具包
install.packages("rgdal")
install.packages("raster")
#载入栅格的工具包
library(rgdal)
library(raster)
#设置工作目录
setwd("E:\\raster_k")

#######将tif进行四舍五入########
#读入栅格数据
k_float<-raster("k_float.tif")
#绘制栅格数据
plot(k_float)
#四舍五入##注round()是先对绝对值四舍五入再加入数据原本的正负号###
k_round<-round(k_float)
plot(k_round)
summary(k_round)
#将空值设为9999,数据存在空值会报错:Error in .local(.Object, ...) : 
k_round[is.na(k_round)]=9999 
summary(k_round)
#导出整数k的tiff,filename="filepath\\k_round",filepath为数据想存储的路径,没有的话会直接存到目前的工作目录
k_round<- writeRaster(k_round, filename="filepath\\k_round", format="GTiff", overwrite=TRUE)

3. 将K_round.tif加入到GIS中,发现最大值为我们设置9999,在栅格计算器setnull一下就可以了,即SetNull("k_round.tif" == 9999,"k_round.tif"),保存为k_round_setnull.tif。Identify一下检查四舍五入是否正确。

4.如果有很多tif要四舍五入,批量计算可以在R中写个循环,不会写循环没关系,可以将数据名称在word中替换,复制粘贴回R即可。

在GIS中批量setnull使用model builder

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值