在 terra 中保存和重新打开栅格时丢失的单位
Units lost when saving and reopening raster in terra
当我在 terra
中保存并重新打开栅格时,我丢失了分配的单位。也许有一些文件类型可以保存它们,而另一些则不能,但我还没有找到相关文档。
library(terra)
A <- rast( nrows=10, ncols=10, xmin=0, xmax=10 )
values(A) <- 1:100
units(A) <- "Percent"
writeRaster( x=A, filename="test.tif" )
B <- rast( "test.tif" )
B
units(B) # empty
据我所知,只有 netCDF
标准支持将单位写入文件(在光栅文件格式中)。 GeoTIFF标准和读写栅格数据的GDAL库的数据模型据我所知没有单位的概念
我在 terra
版本 1.5.0 中添加了解决此问题的方法(目前开发版本可从 github 获得)
单位和时间戳现在都保存到文件中,并且根据您的示例我得到:
library(terra)
#terra version 1.5.0
A <- rast( nrows=10, ncols=10, xmin=0, xmax=10 )
values(A) <- 1:100
units(A) <- "%"
writeRaster(A, "test.tif", overwrite=TRUE)
B <- rast( "test.tif" )
B
#class : SpatRaster
#dimensions : 10, 10, 1 (nrow, ncol, nlyr)
#resolution : 1, 18 (x, y)
#extent : 0, 10, -90, 90 (xmin, xmax, ymin, ymax)
#coord. ref. : lon/lat WGS 84 (EPSG:4326)
#source : test.tif
#name : lyr.1
#min value : 1
#max value : 100
#unit : %
units(B)
#[1] "%"
当我在 terra
中保存并重新打开栅格时,我丢失了分配的单位。也许有一些文件类型可以保存它们,而另一些则不能,但我还没有找到相关文档。
library(terra)
A <- rast( nrows=10, ncols=10, xmin=0, xmax=10 )
values(A) <- 1:100
units(A) <- "Percent"
writeRaster( x=A, filename="test.tif" )
B <- rast( "test.tif" )
B
units(B) # empty
据我所知,只有 netCDF
标准支持将单位写入文件(在光栅文件格式中)。 GeoTIFF标准和读写栅格数据的GDAL库的数据模型据我所知没有单位的概念
我在 terra
版本 1.5.0 中添加了解决此问题的方法(目前开发版本可从 github 获得)
单位和时间戳现在都保存到文件中,并且根据您的示例我得到:
library(terra)
#terra version 1.5.0
A <- rast( nrows=10, ncols=10, xmin=0, xmax=10 )
values(A) <- 1:100
units(A) <- "%"
writeRaster(A, "test.tif", overwrite=TRUE)
B <- rast( "test.tif" )
B
#class : SpatRaster
#dimensions : 10, 10, 1 (nrow, ncol, nlyr)
#resolution : 1, 18 (x, y)
#extent : 0, 10, -90, 90 (xmin, xmax, ymin, ymax)
#coord. ref. : lon/lat WGS 84 (EPSG:4326)
#source : test.tif
#name : lyr.1
#min value : 1
#max value : 100
#unit : %
units(B)
#[1] "%"