Как сначала объединить, а затем обрезать растры в Python

В настоящее время мне нужно создать множество тайлов (определяемых фигурным мультиполигоном) из большого количества растров.

Каждая плитка представляет собой многоугольник, а растры - это просто файлы TIFF на моем диске.

Прямо сейчас я сначала нахожу все имена файлов растров, пересекающих плитку, и помещаю их в список.

Затем я применяю следующую процедуру

images = []
for file in files:
   images.append(rasterio.open( file)

mosaic =  merge(images)

Остающийся шаг - обрезать растр мозаики с помощью фигурного многоугольника, определяющего плитку.

Однако, выполнив этап слияния, мозаика стала массивом numpy, поэтому я не могу применить к нему метод маски.


person Daan    schedule 29.09.2018    source источник


Ответы (1)


Вы можете использовать параметр bounds функции rasterio.merge.merge () с вашим красивым многоугольником определенной плитки.

array_clipped_mosaic, out_transform = rasterio.merge.merge(datasets, bounds = *polygon.bounds)
person Christoph Rieke    schedule 30.09.2018
comment
Спасибо, что это элегантный способ сделать это! - person Daan; 01.10.2018