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

如何在Jupyter Notebook中使用GDAL/OGR对EPSG:4326坐标系的矢量文件进行栅格化并调整像素大小

解决GDAL栅格化时坐标系丢失与分辨率调整问题

你遇到的两个核心问题——坐标系丢失、栅格分辨率过大,都可以通过给gdal.Grid添加关键参数来解决,下面一步步给你说明:

1. 恢复坐标系与地理范围

你的矢量数据是EPSG:4326,栅格化后坐标变成0-250,本质是因为GDAL默认没有继承矢量的空间参考和地理范围,转而使用像素的行列索引作为坐标了。要修复这个,需要显式指定两个参数:

  • outputSRS:设置输出栅格的坐标系,直接沿用你的矢量坐标系"EPSG:4326"即可
  • outputBounds:定义输出栅格的地理范围,对应你矢量的X(74-78)和Y(35-38)区间,格式为[minX, minY, maxX, maxY],也就是(74, 35, 78, 38)

2. 调整像素分辨率

你觉得当前分辨率(0.015625°、0.01171875°)过大,想要更精细的栅格,有两种灵活的控制方式:

方式一:直接指定像素分辨率(推荐)

用tr参数设置目标分辨率,格式为(x_resolution, y_resolution)。比如想要0.001°的精细分辨率,就设tr=(0.001, 0.001);如果需要和原矢量匹配的特定分辨率,直接替换数值即可。

方式二:指定输出栅格的宽高

通过width和height参数设定像素总数量,GDAL会自动计算对应分辨率。比如基于你的范围(X跨度4°,Y跨度3°),如果想要0.001°分辨率,宽度就是4 / 0.001 = 4000,高度是3 / 0.001 = 3000,即width=4000, height=3000。

调整后的完整代码

把这些参数整合后,代码会变成这样:

gdal.Grid(
    "trial2.tif",
    "merged2018-19.gpkg",
    zfield="h_li",
    algorithm="nearest",
    outputSRS="EPSG:4326",
    outputBounds=(74, 35, 78, 38),
    tr=(0.001, 0.001)  # 这里替换成你实际需要的分辨率数值
)

运行这段代码后,生成的栅格就会保留EPSG:4326坐标系,坐标显示也会回到74-78(经度)和35-38(纬度)区间,同时分辨率也会符合你的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 22:28:10