这个问题其实是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