Я использую gdal.Translate
, чтобы извлечь растр по маске. Обе растровые данные имеют одинаковый CRS и одинаковый размер пикселя. Вот фрагмент кода.
def by_mask(in_dir, in_fname, mask_dir, mask_fname, out_dir, out_fname):
mask_ds = gdal.Open(os.path.join(mask_dir, mask_fname), GA_ReadOnly)
mask_proj = mask_ds.GetProjection()
mask_geotrans = mask_ds.GetGeoTransform()
ulx = mask_geotrans[0]
uly = mask_geotrans[3]
lrx = ulx + mask_geotrans[1] * mask_ds.RasterXSize
lry = uly + mask_geotrans[5] * mask_ds.RasterYSize
ds = gdal.Open(os.path.join(in_dir, in_fname), GA_ReadOnly)
gdal.Translate(destName=os.path.join(out_dir, out_fname),
srcDS=ds,
options=gdal.TranslateOptions(
format='GTiff',
projWin=[ulx, uly, lrx, lry],
options=['-co', 'COMPRESS=DEFLATE'],
xRes=res_info(in_dir=mask_dir, in_fname=mask_fname)[0],
yRes=res_info(in_dir=mask_dir, in_fname=mask_fname)[1]
))
И я получил сообщение об ошибке ERROR 1: Error: Computed -srcwin 11577 6424 1236 -873 has negative width and/or height.
Есть предложения?