简述:torchgeo

简述:torchgeo

一、TorchGeo 是什么

TorchGeo 是微软研究院推出、基于 PyTorch 的地理空间深度学习库,专门处理卫星 / 遥感图像、多光谱数据、GIS 栅格矢量等地理空间数据。

核心定位:把遥感影像 + 深度学习标准化,解决多光谱、坐标投影、空间采样、大图像切片等痛点TorchGeo。

核心能力:

内置 Sentinel、Landsat、NAIP、CDL、Inria 等数十种遥感数据集

支持 GeoTIFF、多光谱、时序、空间坐标(CRS) 自动处理TorchGeo

提供 NDVI、归一化、空间采样器等专用变换

提供语义分割 / 变化检测 / 分类预训练模型与任务接口TorchGeo

用途:土地覆盖分类、变化检测、建筑物提取、农业监测、灾害评估等。

二、简单使用示例(3 个)

1)加载 Sentinel-2 并计算 NDVI(植被指数)

python 复制代码
import matplotlib.pyplot as plt
from torchgeo.datasets import Sentinel2
from torchgeo.transforms import AppendNDVI

# 1. 加载哨兵2数据(自动处理多波段、坐标)
dataset = Sentinel2(root="./data/sentinel2", bands=["B2", "B3", "B4", "B8"])  # RGB+NIR
sample = dataset[0]  # 取一个瓦片

# 2. 绘图(RGB真彩色)
fig = dataset.plot(sample)
plt.title("Sentinel-2 RGB")
plt.show()

# 3. 自动计算NDVI(植被指数)并追加为新通道
transform = AppendNDVI(index_red=2, index_nir=3)  # B4=红, B8=近红外
sample = transform(sample)

# 4. 显示NDVI
ndvi = sample["image"][-1]
ndvi = (ndvi + 1) / 2  # 归一化到0-1
plt.imshow(ndvi, cmap="RdYlGn_r")
plt.title("NDVI (植被)")
plt.colorbar()
plt.show()

2)土地覆盖分类(Chesapeake 数据集)

python 复制代码
from torchgeo.datamodules import ChesapeakeDataModule
from torchgeo.trainers import SemanticSegmentationTask
from lightning.pytorch import Trainer

# 1. 数据模块(自动下载、切图、加载)
dm = ChesapeakeDataModule(
    root="./data/chesapeake",
    splits=["train", "val"],
    batch_size=8,
    num_workers=4,
)

# 2. 语义分割任务(U-Net+预训练权重)
task = SemanticSegmentationTask(
    model="unet",
    backbone="resnet18",
    weights=True,
    in_channels=4,    # 多光谱波段数
    num_classes=7,    # 土地覆盖类别数
    loss="ce",
    lr=1e-4,
)

# 3. 训练
trainer = Trainer(max_epochs=10, accelerator="gpu", devices=1)
trainer.fit(task, datamodule=dm)

3)变化检测(2 期影像对比)

python 复制代码
from torchgeo.datasets import CDL
from torchgeo.datamodules import ChangeDetectionDataModule
from torchgeo.trainers import ChangeDetectionTask

# 1. 变化检测数据(2期+标签)
dm = ChangeDetectionDataModule(
    root="./data/change",
    dataset_class=CDL,  # 作物数据/土地覆盖
    batch_size=4,
)

# 2. 变化检测模型
task = ChangeDetectionTask(
    model="cdnet",
    backbone="resnet18",
    weights=True,
    lr=1e-4,
)

# 3. 训练
trainer = Trainer(max_epochs=10, accelerator="gpu")
trainer.fit(task, datamodule=dm)


三、一句话总结

TorchGeo 让遥感图像深度学习像普通图像一样简单:自动处理多光谱 / 坐标 / 大瓦片,内置数据集与模型,快速落地分类、分割、变化检测。

本blog地址:https://blog.csdn.net/hsg77

相关推荐
云烟成雨TD1 天前
Spring AI Alibaba 1.x 系列【22】Agent 并行工具执行与超时 / 协作式取消实战
java·人工智能·spring
阿里云大数据AI技术1 天前
让 AI 帮你写大数据AI开发代码:MaxFrame Coding Skill 正式发布
人工智能·agent
麦哲思科技任甲林1 天前
大懒人AI结对工作模式——驾驭AI编程的进阶指南
人工智能·ai编程·结对编程·工作模式·ai赋能
Raink老师1 天前
【AI面试临阵磨枪】什么是 MCP(Model Control Protocol)、A2A(Agent-to-Agent)协议?
人工智能·面试·职场和发展·ai 面试
明月照山海-1 天前
机器学习周报四十一
人工智能·机器学习
Daydream.V1 天前
LSTM项目实战——情感分析项目
人工智能·rnn·lstm
byte轻骑兵1 天前
从收音机到蓝牙:LE Audio核心BASS服务解析与实战
人工智能·音视频·语音识别·le audio·低功耗音频
jr-create(•̀⌄•́)1 天前
正则化和优化算法区别
pytorch·深度学习·神经网络·算法
饭后一颗花生米1 天前
2026 AI加持下前端学习路线:从入门到进阶,高效突破核心竞争力
前端·人工智能·学习
默 语1 天前
“我跑不过我的代码“:今天北京半马,程序员追机器人追到开电瓶车
人工智能·机器人·openclaw