A terra SpatRaster object与Formal Class Rasterlayer都是表示栅格数据的对象,但是它们有以下两点区别:
数据结构: A terra SpatRaster object使用的数据结构是rgdal包中的GDALDataset对象,它是基于GDAL库的RasterIO API,支持大量的栅格数据格式,包括常见的GeoTIFF、NetCDF等。而Formal Class Rasterlayer使用的是raster包中的RasterLayer对象,它比SpatRaster object更加抽象、封装度更高,支持更多的属性和函数。
功能扩展: 在功能上,Formal Class Rasterlayer比SpatRaster object更加丰富,支持更多的操作,如拼接、剪裁、融合、填充等。同时,Formal Class Rasterlayer还可以转换为其他格式的栅格数据,如asc、grd等。
下面提供一个示例代码,演示如何将SpatRaster object转换为Formal Class Rasterlayer对象:
library(terra) library(raster)
r <- rast(system.file("ex/logo.tif", package="terra")) class(r) # 获得类名 "SpatRaster"
r2 <- raster(r) class(r2) # 获得类名 "RasterLayer"