Вам не нужно сохранять его на диске, вы можете использовать его как временный объект.Вы можете просто использовать формат "Mem":
from osgeo import gdal, gdal_array as gdarr
input_raster = "path/to/rgb.tif"
# or if the input is already a gdal raster object you can use that gdal object
input_raster=gdal.Open("path/to/rgb.tif")
input_kml = "path/to/cropline.kml" # or any other format
ds = gdal.Warp('',
input_raster,
format = 'Mem',
cutlineDSName = input_kml, # or any other file format
cutlineLayer = 'extent', # if cutline is a shapefile no need for this cutlineLayer
dstNodata = -9999) # select your no data value
#do stuff with ds object, it is your cropped dataset
#for example convert it to numpy array
npDs=ds.gdarr.DatasetReadAsArray(ds, 0, 0, ds.RasterXSize, ds.RasterYSize)
print(npDs.shape)
Если у вас есть массив numpy, это более сложно, потому что вам нужно знать параметры геотрансформации этого массива numpy.Мой совет - отправить этот массив numpy объекту gdal, а затем вы можете сделать это, используя gdal.warp ()