Обрезать сетку в массиве с использованием полигональной линии среза - PullRequest
0 голосов
/ 28 ноября 2018

Как мне обрезать растр EPSG: 25832 , сохраненный в массиве numpy с полигоном wkt ?

1 Ответ

0 голосов
/ 29 ноября 2018

Вам не нужно сохранять его на диске, вы можете использовать его как временный объект.Вы можете просто использовать формат "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 ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...