You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rasterio写入GeoTIFF时报TIFF目录缺失StripOffsets字段错误如何解决?

报错解决方案:TIFF directory is missing required "StripOffsets" field

核心报错根因

报错栈显示错误触发在_delete_dataset_if_exists阶段,即rasterio写入新文件前,尝试校验、删除同路径下已有旧文件时,发现旧文件损坏缺失必要字段,尚未进入新文件写入逻辑。

解决步骤

  • 第一步:手动删除工作目录下已存在的损坏文件vaesto1960.tif,即可跳过旧文件校验报错。
  • 第二步:修正代码冗余逻辑,with上下文管理器会自动处理资源的打开与关闭,不需要手动调用close()方法,提前手动释放资源可能导致读取的profile元数据不完整。
  • 第三步:清理从NetCDF文件继承的冲突配置项,NetCDF驱动的profile包含大量GTiff不兼容的元数据、块设置参数,直接使用会导致写入逻辑异常,需先清理冲突参数再更新GTiff配置。

修正后参考代码

import rasterio

# 读取NetCDF数据
with rasterio.open('data/total_pop_05dgr.nc') as pop:
    vaesto = pop.read()
    profile = pop.profile.copy()

vaesto1960 = vaesto[4]

# 清理NetCDF专属的冲突参数
exclude_keys = ['blockxsize', 'blockysize', 'tiled', 'compress', 'NC_GLOBAL']
for k in exclude_keys:
    if k in profile:
        del profile[k]

# 更新GTiff写入配置
profile.update(
    nodata = 0,
    driver = 'GTiff',
    tiled = False,
    height = vaesto1960.shape[0],
    width = vaesto1960.shape[1],
    count = 1
)

# 写入GeoTIFF文件
with rasterio.open("vaesto1960.tif", 'w', **profile) as out:
    out.write(vaesto1960, 1)

内容的提问来源于stack exchange,提问作者mja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:09:04