【发布时间】:2019-06-28 21:51:27
【问题描述】:
在进行栅格数学运算时,例如 raster1-raster2,输出栅格的数据类型是“FLT4S”,即使 raster1 和 raster 2 的数据类型都是“INT2S”。如何在不写入磁盘的情况下强制输出为“INT2S”?是否有一种全球性的方式来表示所有栅格处理都将产生 INT2S 数据?
使用“INT2S”而不是“FLT4S”的原因是为了在较大的栅格数据集上使用 for 循环时节省内存空间并加快处理速度。
在 rasterOptions() 中可以指定 dataType,但据我了解,这仅适用于写入磁盘,对吧?
#load package raster
require (raster)
#create sample rasters
r1<-raster::raster(ext=extent(c(0,10,0,10)), res=1, vals=1:100)
r2<-raster::raster(ext=extent(c(0,10,0,10)), res=1, vals=100:1)
#set dataType of sample rasters to 'INT2S'
dataType(r1)<-'INT2S'
dataType(r2)<-'INT2S'
#check dataType of sample rasters
dataType(r1)
dataType(r2)
#do some simple arithmetics
r3<-r2-r1
#check the dataType of the output raster
dataType(r3)
我希望 dataType(r3) 也为 'INT2S'
【问题讨论】:
标签: r floating-point integer raster dataformat