【发布时间】:2019-08-19 19:54:55
【问题描述】:
我有一个光栅文件 (GeoTiff)。我在R中将其转换为ASCII。转换后,小数点后有很多数字。我想制作一个只有整数值的 ASCII。
writeRaster(a, sigdig = 0, filename = "K:/ouput/test.asc")
【问题讨论】:
我有一个光栅文件 (GeoTiff)。我在R中将其转换为ASCII。转换后,小数点后有很多数字。我想制作一个只有整数值的 ASCII。
writeRaster(a, sigdig = 0, filename = "K:/ouput/test.asc")
【问题讨论】:
你可以在你想要四舍五入的向量上使用round() 吗?
【讨论】:
你可以的
writeRaster(round(a), filename = "K:/ouput/test.asc")
让我们尝试一些示例数据
library(raster)
a <- raster(ncol=2, nrow=2, xmn=0, xmx=1, ymn=0, ymx=1)
values(a) <- 1:4 * pi
现在读写文件
writeRaster(a, filename = "test.asc")
readLines("test.asc")
#[1] "NCOLS 2 " "NROWS 2 "
#[3] "XLLCORNER 0 " "YLLCORNER 0 "
#[5] "CELLSIZE 0.5 " "NODATA_value -9999 "
#[7] "3.141592653589790 6.28318530717959" "9.42477796076938 12.5663706143592"
第一轮,然后读写
ra <- round(a)
writeRaster(ra, filename = "test2.asc")
readLines("test2.asc")
#[1] "NCOLS 2 " "NROWS 2 " "XLLCORNER 0 "
#[4] "YLLCORNER 0 " "CELLSIZE 0.5 " "NODATA_value -9999 "
#[7] "3.000000000000000 6" "9 13"
第一个值仍然有小数(避免实际值被截断的技巧),但其他值没有。
【讨论】: