gdalraster 
概述
gdalraster 是 R 对栅格和矢量 API 的接口,属于地理空间数据 抽象库(GDAL)。
API 绑定在暴露的 C++ 类
GDALRaster
和
[GDALVector 中实现,
以及若干独立
函数。
为 GDAL 3.11 中新增的 gdal 命令行接口(CLI)
算法提供了初始绑定。还包含对 GDAL 虚拟系统
接口(VSI)的绑定,
以支持对 URL、云存储
服务、Zip/GZip/7z/RAR 以及内存文件的文件系统操作,同时也支持常规文件
系统。调用签名类似于 GDAL 项目提供的原生 C、C++ 和 Python API。
该包支持:
- 使用 GDAL 的新 CLI 算法 在 R 中,当针对 GDAL >= 3.11.3 构建时
- 手动创建未初始化的栅格和矢量数据集
- 矢量图层创建和模式管理
- 读取/设置栅格波段和矢量图层的参数和元数据
- 低级 I/O
- 构建/读取/设置颜色表和栅格属性表
- 虚拟栅格 (VRT) 用于虚拟裁剪、重采样、核 滤波、镶嵌
- 栅格 实用工具
- GDAL 多维栅格
(
mdim_as_classic(),mdim_info(),mdim_translate()) - 坐标转换
- 空间参考系统
- 几何 API 操作原始 WKB 或 WKT 字符串向量
- 矢量 实用工具
- GDAL 用于 矢量 地理处理 的功能
- 数据集 管理 (检查/复制文件/重命名/删除)
- 创建/追加到 Seek-Optimized ZIP (SOZip)
- 对 URL、云存储、内存文件等的 文件系统 操作 的抽象
- 通过 VSI 进行标准 C 二进制文件 I/O (类
VSIFile)
附加功能包括:
- class
RunningStats在一次遍历中计算均值和方差,并跟踪最小值、最大值、 总和和计数(即数据流上的摘要统计量)。输入 数据值不会存储在内存中,因此该类可用于 计算非常大的数据流的统计量。 - class
CmbTable使用哈希表识别并统计整数值的唯一组合。 combine()叠加多个栅格,以便为每个 输入值的唯一组合分配一个唯一 ID。获取每个唯一 组合的像元计数,并可选择将组合 ID 写入 输出栅格。calc()对栅格图层或图层堆栈中的每个像元评估 R 表达式。 单个像元坐标可作为变量在 R 表达式中使用,可以是栅格投影坐标系中的 x/y 或反投影的经度/纬度。- 绘制栅格数据、矢量图层和 WKB/WKT 几何体
gdalraster 在需要可扩展的、 低级别 I/O 或偏好直接使用 GDAL API 的应用中可能很有用。全面的 文档 在包中和在线提供。
安装
从 CRAN
使用以下命令从 CRAN 安装发布版本:
install.packages("gdalraster")
CRAN 为 Windows 和 macOS 提供预编译的二进制包。这些 包无需单独安装 GDAL 的外部库。
来自 conda-forge
Conda-forge 提供跟踪 CRAN 发布的预编译二进制包,适用于 以下平台:
要将 gdalraster 安装到特定的 conda 环境中, 使用 conda,在 已激活的环境中:
conda install --channel conda-forge r-gdalraster
来自 R-universe
R-universe 提供
针对 Windows 和 macOS 的预编译二进制包,这些包跟踪
gdalraster 的开发版本。新包通常在分支 main 中最近一次提交后的
约 1 小时内构建完成。
# Install the development version from r-universe
install.packages("gdalraster", repos = c("https://firelab.r-universe.dev", "https://cran.r-project.org"))
从源代码
Linux
需要 GDAL >= 3.1.0 且使用 GEOS 构建,但建议使用更新的版本。
在 Ubuntu 上,可以通过 ubuntugis-unstable PPA 使用以下命令安装较新版本的地理空间库。请注意,R 包 xml2 是一个依赖项,它需要 libxml2,因此我们在此处也一并安装它:
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt update
sudo apt install libgdal-dev libgeos-dev libxml2-dev
ubuntugis-unstable 中的版本通常运行良好且更新,但也可以使用 ubuntugis-stable PPA 中较旧版本的 替代。
包 sf 提供了在其他 Linux 发行版上安装 地理空间库的说明。
当系统上可用的依赖库就绪后,从 CRAN 安装:
install.packages("gdalraster")
或者使用 package 从 GitHub 安装开发版本 remotes:
remotes::install_github("firelab/gdalraster")
Windows
RTools 是 在 Windows 上从源码安装所必需的。自 4.2 版本起,RTools 包含了 GDAL 以及编译 gdalraster 所需的所有其他依赖库。请注意,CRAN 会定期发布 RTools 的修订版本, 这些版本通常会随着新版本的可用而更新相关库。 RTools 4.5 的 6768 版本包含 GDAL 3.12.1、GEOS 3.14.1 和 PROJ 9.7.1。
安装 RTools 后:
# Install the development version from GitHub
remotes::install_github("firelab/gdalraster")
macOS
GDAL 可以通过 Homebrew 安装:
brew install gdal
然后
# Install the development version from GitHub
remotes::install_github("firelab/gdalraster")
不建议混合使用源码安装和从 CRAN 安装的 macOS 二进制文件。 请考虑改为从 R-universe 安装开发版本。
Docker
参见 https://github.com/hypertidy/gdal-r-ci(感谢 Michael Sumner):
docker pull ghcr.io/hypertidy/gdal-r-full:latest