如何调整空间栅格绘图y轴尺度以移除多余空白区域
全球土地覆盖栅格Y轴空白裁剪方案
现有全球土地覆盖栅格数据,Y轴方向大陆上下区域存在多余空白,可通过以下几种方法调整栅格尺寸,去除无效空白区域:
方法1:GDAL命令行快速处理
适合批量、无桌面端环境的场景,效率最高:
- 如果栅格设置了正确的NoData值,可直接自动裁剪四周空白:
# 把<你的无数据值>替换成栅格实际的空白像元值,比如常见的0、255 gdal_translate -a_nodata <你的无数据值> -co COMPRESS=LZW 原始土地覆盖.tif 裁剪后结果.tif
- 自动识别不准时可手动指定范围裁剪,WGS84坐标系下的全球陆地常规有效纬度范围为南纬60°到北纬85°,用以下命令即可裁掉上下极地空白:
# -projwin 参数顺序为:最左经度 最下纬度 最右经度 最上纬度 gdal_translate -projwin -180 -60 180 85 -co COMPRESS=LZW 原始土地覆盖.tif 裁剪后结果.tif
方法2:Python+rasterio自定义裁剪
适合需要嵌入批量处理脚本、自定义裁剪逻辑的场景:
import rasterio from rasterio.windows import from_bounds # 读取原始栅格 with rasterio.open("原始土地覆盖.tif") as src: # 替换为你需要保留的实际边界:左、下、右、上,坐标系与栅格保持一致 # WGS84坐标系下可直接用全球陆地常规范围 crop_window = from_bounds(-180, -60, 180, 85, src.transform) # 读取裁剪窗口内的栅格数据 cropped_arr = src.read(window=crop_window) # 更新输出栅格的元信息 out_meta = src.meta.copy() out_meta.update({ "height": cropped_arr.shape[1], "width": cropped_arr.shape[2], "transform": src.window_transform(crop_window) }) # 写出结果 with rasterio.open("裁剪后结果.tif", "w", **out_meta) as dst: dst.write(cropped_arr)
方法3:桌面端可视化操作
适合少量数据、需要目视确认裁剪范围的场景:
- QGIS:导入栅格后依次点击菜单栏「栅格」→「提取」→「按范围裁剪栅格」,在画布上拖动选框框住所有有效陆地区域,排除上下空白后导出即可
- ArcGIS:找到「数据管理工具」→「栅格」→「栅格处理」→「裁剪」工具,输入栅格后手动调整Y轴方向的上下边界值,确认范围覆盖所有陆地、排除多余空白后运行导出
注意:如果你的栅格不是WGS84经纬度坐标系,要先把保留范围的坐标转换成栅格对应坐标系的数值,再执行裁剪,避免范围错位。
内容的提问来源于stack exchange,提问作者Alex White
相关产品推荐
相关产品推荐

