Python 无法复制gdal输出

Python 无法复制gdal输出,python,geospatial,gdal,osgeo,Python,Geospatial,Gdal,Osgeo,我有一组翻转的GRIB文件(经度范围从0到365),我使用gdal首先将数据转换为GeoTIFF,然后将网格化数据扭曲为标准WGS84经度(-180到180)。到目前为止,我一直在使用命令行中的gdal_translate和gdalwarp组合,并使用parallel快速浏览所有文件。以下是我的bash脚本中的函数: gdal\u多带\u变换(){ 文件路径=$1 存储路径=$2 NUM_BANDS=$(gdalinfo$FILEPATH | grep“Band”| wc-l) 如果[$NUM_

我有一组翻转的GRIB文件(经度范围从0到365),我使用
gdal
首先将数据转换为GeoTIFF,然后将网格化数据扭曲为标准WGS84经度(-180到180)。到目前为止,我一直在使用命令行中的
gdal_translate
gdalwarp
组合,并使用
parallel
快速浏览所有文件。以下是我的bash脚本中的函数:

gdal\u多带\u变换(){
文件路径=$1
存储路径=$2
NUM_BANDS=$(gdalinfo$FILEPATH | grep“Band”| wc-l)
如果[$NUM_波段-等式1]]
然后
echo“从$FILEPATH提取1个频带”
gdal_translate-of GTiff-b 1$FILEPATH$SAVEPATH
其他的
echo“从$FILEPATH中提取2个频带”
gdal_translate-of GTiff-b1-b2$FILEPATH$SAVEPATH
fi
}
扭曲光栅(){
echo“在$PATH\u TO\u GRIB中重写所有光栅”
查找$PATH_TO_GRIB-type f-name'*.tif'| parallel-j5--gdalwarp-t_srs WGS84{}{.}{.}u warp.tif\
-wo SOURCE\u EXTRA=1000--配置中心\u LONG 0-覆盖
}
翘曲光栅
现在,我想使用
osgeo
库在Python中复制同样的行为。我跳过了翻译部分,因为我意识到
osgeo.gdal
可以直接扭曲GRIB文件,而不必转换/翻译为GeoTIFF格式。为此,我使用了以下Python代码:

从osgeo导入gdal
OPTS=gdal.WarpOptions(dstSRS='WGS84',
warpOptions=['SOURCE\u EXTRA=1000'],
选项=['CENTER_LONG 0'])
尝试:
ds=gdal.Open(文件名)
除运行时错误外:
ds=gdal.Open(str(文件名))
如果os.path.getsize(文件名):
ds_transform=gdal.Warp(文件临时路径,
ds,
选项=选项)
#这是黑客吗?
ds_变换=无
其他:
打印(f'{filename}是一个空文件。没有GDAL转换')

其中,我使用
gdal.WarpOptions
从bash脚本中定义了相同的选项。结果在视觉上是一样的;代码实现了主要目标:在-180和180之间扭曲经度。但是,当我采用当地统计数据时,差异是巨大的。整个网格数据的平均值相差4摄氏度(即表面温度数据)。我在
osgeo
中缺少的GDAL选项会产生这些差异吗?我不想使用bash脚本,因为我正在寻找一个唯一的Python实现。

在已经发布在那里的gis.stackexchange.com上,您可能会更幸运: