Geoskill: GeoTIFF Info

🗺️ 零依赖 GeoTIFF 元数据解析器

纯 Python 标准库实现的 GeoTIFF 元数据读取工具,无需 GIS 软件即可快速获取坐标系统、分辨率、仿射变换等核心地理信息。

收藏
272
安装
132
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

geotiff-info 是一款零依赖的 Python 命令行工具,专用于快速读取 GeoTIFF 文件的元数据信息。该工具完全基于 Python 标准库实现,通过手动解析 TIFF IFD(Image File Directory)结构,无需安装 GDAL、Rasterio 等外部依赖即可提取完整的地理空间元数据。

主要功能模块包括

1. 单文件解析:支持文本表格和 JSON 两种输出格式,一键获取文件大小、图像尺寸、数据类型、波段数量等基础信息
2. 地理空间元数据:提取 EPSG 编码、CRS 名称、WKT 坐标系统定义、像素分辨率(Scale X/Y)、6 参数仿射变换矩阵

3. 角点坐标计算:自动推算左上、右上、左下、右下四个角点的地理/投影坐标

4. 批量目录扫描:递归扫描整个目录,批量处理大量 GeoTIFF 文件并导出统一格式的元数据报告

该工具兼容 Classic TIFF 和 BigTIFF 格式,支持大小端字节序,覆盖所有标准 TIFF 数据类型,适用于遥感影像、数字高程模型(DEM)、卫星影像等 GeoTIFF 标准文件的快速质检与编目。

显著优点

零依赖部署:仅使用 Python 标准库(struct、json、os、pathlib 等),无需 pip install 任何包,在离线环境、容器镜像、边缘设备上均可直接运行,极大降低部署复杂度。

轻量高效:避开 GDAL 等重型库的初始化开销,冷启动速度快,内存占用低,适合嵌入自动化工作流或作为 CI/CD 中的元数据校验环节。

输出友好:同时提供人类可读的格式化文本和机器可解析的 JSON,既满足日常查看需求,也方便对接下游数据处理管道。

标准兼容:完整实现 TIFF 6.0 和 GeoTIFF 规范的 IFD 解析逻辑,对 GeoKeyDirectoryTag、ModelPixelScaleTag、ModelTiepointTag 等核心标签提供原生支持。

潜在缺点与局限性

功能边界清晰:该工具定位为"元数据查看器",不读取实际像素数据,无法进行影像裁剪、重投影、波段运算等操作,需配合 GDAL、rasterio 等工具完成深度处理。

统计信息受限:对于大文件,波段统计量(min/max/mean/std)采用占位实现,实际统计需读取完整像素矩阵,当前版本未实现。

CRS 解析依赖 GeoKeys:WKT 坐标系统描述依赖 GeoTIFF 规范中的 GeoKey 机制,对于某些非标准或自定义 CRS 的解析可能不够完整。

GeoTIFF 1.1 新模型待更新:暂不支持 GeoTIFF 1.1 规范中引入的新型模型变换机制,主流应用无碍,但前瞻性场景需注意。

适合的目标群体

  • 遥感/GIS 开发者:快速验证影像元数据正确性,调试坐标系统配置
  • 数据工程师:构建数据资产管理流水线,批量提取归档影像的空间属性
  • 科研人员:在服务器集群、HPC 环境中轻量级获取 DEM、卫星影像的基本信息
  • DevOps/运维人员:在 Docker 容器或受限环境中进行 GeoTIFF 文件的入库前检查
  • 教学场景:理解 GeoTIFF 二进制结构与 TIFF IFD 解析原理的学习工具

使用风险

性能风险:纯 Python 实现的二进制解析在超大文件(数十 GB 级 BigTIFF)场景下,遍历 IFD 条目的速度可能低于 C 语言优化的 GDAL,建议用于元数据读取而非高频批量处理。

维护风险:项目由 OpenCode AI Assistant 生成,MIT-0 无归属许可证,社区贡献与长期维护机制尚不明确,关键业务场景建议 fork 后自行维护或作为过渡方案。

兼容性风险:对于非标准 TIFF 扩展、厂商私有标签(如某些卫星传感器的自定义元数据块),解析可能不完整或跳过,复杂业务建议以 GDAL 作为兜底验证。

误用风险:该工具不验证像素数据的完整性,仅解析文件头元数据,无法检测影像数据本身的损坏或异常值。

Geoskill: GeoTIFF Info 内容

手动下载zip · 5.8 kB
LICENSEtext/plain
请选择文件