torchgeo/torchgeo

TorchGeo: datasets, samplers, transforms, and pre-trained models for geospatial data

TorchGeo – 用于 PyTorch 的地理空间深度学习工具包

功能简介 – TorchGeo 是一个兼容 PyTorch 的库,它打包了现成的地理空间数据集、采样器、转换和预训练模型。可以将其视为卫星和航空图像领域的 torchvision

重要性 – 遥感数据具有额外的复杂性:许多光谱波段、变化的空分辨率以及不同的坐标参考系统 (CRS)。TorchGeo 隐藏了这些底层细节,使机器学习研究人员可以专注于模型,遥感专家可以在不编写底层数据处理代码的情况下试验深度学习流水线。

核心特性(如 README 中所述)

  • 数据集与元数据处理 – 为常用数据源(Landsat 7/8, Sentinel, Cropland Data Layer, VHR-10 等)提供 GeoDataset 子类。数据集可以通过集合运算符(| 表示并集,& 表示交集)进行组合,这些运算符会自动对齐 CRS 和分辨率。
  • 采样器RandomPatchSampler 等允许您从海量图像中提取固定大小的补丁(例如 256 × 256),并返回每个 epoch 可配置数量的样本。
  • 基准测试集合 – 提供用于分类、回归、语义分割、目标检测、变化检测等的即用型标记数据集,镜像了 torchvision 的 API 风格。
  • 预训练权重 – 通过 torchvision 多权重 API 和 timm 模型库支持多光谱权重(例如 Sentinel-2-pre-trained ResNet-18)。
  • Lightning 集成 – 提供带有内置增强 (kornia) 和通道统计信息的 Lightning DataModuleTask 对象(例如 SemanticSegmentation),从而实现几行代码的训练脚本或通过 torchgeo/LightningCLI 进行完整的 CLI 使用。
  • 安装 – 可通过 PyPI、conda-forge 和 spack 获取;也可以使用 uv 安装。
  • 社区与文档 – 包括 Slack、OSGeo、Radiant Earth、Hugging Face、YouTube 频道以及包含教程和 API 参考的完整 ReadTheDocs 网站。

典型工作流程

  1. 导入数据集(例如 Landsat8)并可选地将其与其他数据集(例如 CDL)合并。
  2. 创建一个采样器来提取补丁。
  3. 将数据集封装在 DataLoader 中(或使用提供的 Lightning DataModule)。
  4. 使用 PyTorch Lightning 训练模型——无论是自定义架构还是预训练模型。

引用 – 如果您使用 TorchGeo 发表研究成果,请引用 ACM Transactions on Spatial Algorithms and Systems 论文 (2025)。


以上所有细节均直接取自项目的 README;未添加任何外部假设。

相关

  • 项目
  • 项目
  • Dispatch
  • 项目
  • 项目