GDAL创建栅格写入坐标系无效的解决办法

文章讲述了作者在使用Python和GDAL进行图片重采样时遇到的bug,原因在于PROJ库的坐标系数据库版本过旧,不包含CGCS2000。通过在Python环境中设置PROJ_LIB环境变量指向包含新坐标系的库,问题得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个问题其实是CGCS2000坐标系数据处理的通病了,是PROJ库的坐标系数据库版本太旧不包含CSCG2000坐标系造成的。


今天写脚本时遇到一个bug一直解决不了,我只是想实现一个简单的图片重采样功能,将原栅格缩放至指定大小并保留坐标信息(CGCS2000的投影坐标系),但遇到的问题是生成的图像用arcgis打开后显示未知坐标系。脚本代码如下(GPT生成的,我一开始还以为是代码有问题)

from osgeo import gdal,osr
def resample_image(input_path, output_path, new_width, new_height):
    # 打开输入图像
    input_ds = gdal.Open(input_path)
    if input_ds is None:
        print("无法打开输入图像。")
        return

    # 获取输入图像的原始大小和投影信息
    input_width = input_ds.RasterXSize
    input_height = input_ds.RasterYSize
    input_projection = input_ds.GetProjection()
    input_geo_transform = input_ds.GetGeoTransform()

    # 创建输出图像
    driver = gdal.GetDriverByName('GTiff')
    output_ds = driver.Create(output_path, new_width, new_height, input_ds.RasterCount, input_ds.GetRasterBand(1).DataType)
    output_ds.SetProjection(input_projection)

    # 计算新的地理变换信息
    x_res = input_geo_transform[1] * (input_width / new_width)
    y_res = input_geo_tr
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值