Фигурная обрезка растра по заданной форме
Как обрезать растр и сделать его не прямоугольным, с помощью ArcGIS и Arcview GIS Image Analysis
502 Bad Gateway
502 Bad Gateway
nginx/1.18.0 (Ubuntu)
Растровые данные в принципе не могут быть непрямоугольными, так как всегда представляют собой прямоугольную матрицу размером X на Y. Однако, переведя лишнее в класс NODATA можно добится того, чтобы визуально и статистически растр принял визуально любую форму (при этом физически он останется прямоугольным).
Для начала работы необходимо иметь привязанный многоканальный RGB или CMYK растр (лучше в формате GeoTIFF) и маску обрезки в виде векторного полигонального shape-файла. Системы координат обоих наборов данных должны совпадать.
В статье приведено решение задачи в ArcGIS, с помощью Spatial Analyst и Arcview GIS с помощью Image Analysis.
1. Решение задачи с помощью ArcGIS
Этот вариант иллюстрирует пошаговое решение задачи с помощью ArcGIS. Необходимо отметить, что описываемое здесь решение является, возможно, излишне подробным (обсуждение). Операции 1 - 7 из данного описания могут быть заменены инструментом Extract by Mask (ArcToolbox\Spatial Analyst Tools\Extraction).

- Добавить растровый слой, если растр - многоканальный, то необходимо загрузить каждый слой отдельно.
- Влючить расширение Spatial Analyst Tools\Extensions\Spatial Analyst и добавить его панель в ArcGIS - View\Toolbars\Spatial Analyst
- Добавить векторный слой, которым будет обрезаться растровый, векторный слой должен содержать полигональный объект - маску.
- Вызвать меню настройки Spatial Analyst - Панель Spatial Analyst\Options и установить маску анализа (Analysis mask) и географических охват (Extent) равные названию темы, которой осуществляется обрезка.
- Для каждого канала выполнить операцию Spatial Analyst\Raster Calculator, в окне формулы должно стоять название канала, его можно получить дважды щелкнув в списке каналов. Суть операции - простое копирование растрового слоя в самого себя, но уже с учетом обрезающего векторного слоя.
- Результатом операции должно стать добавление в вид новой темы с названием - Calculate, после N операций (где N - количество каналов исходного растра) появится N тем Calculate.
- Включить ArcToolbox и выбрать инструмент Data Management Tools\Raster\Composite bands и по очереди добавить темы Calculate в том же порядке, в каком они создавались.
- После создания нового растра нужно его пересохранить, для этого необходимо правой кнопкой щелкнуть на новой теме (по умолчанию - Compos) и выбрать Data\Export Data... и выбрать папку, название и тип нового файла.

Имейте в виду, что ArcGIS по умолчанию применяет растяжку гистрограммы, поэтому исходный растр и его фрагмент будут выглядеть по разному из-за разной статистики, но по сути останутся одним и тем же.
Пример:

Исходный растр |

Результирующий (обрезанный) растр |
Для того, чтобы увидеть исходный, не модифицированный растяжкой гистограммы растр. В окне Свойств слоя (Layer properties) на закладке Легенда (Symbology) в пункте Растяжка (Stretch) выберите - None.
Из папки указанной в пункте Рабочая директория (Working directory)
окна свойств Spatial Analyst, после выполнения операций необходимо удалить временные файлы.
2. Решение задачи с помощью Arcview GIS Image Analysis
Для того, чтобы обрезать по заданному контуру растр с помощью Arcview GIS, понадобится модуль Image Analysis. В этом случае операцию обрезки можно выполнить быстрее и удобнее, чем в ArcGIS.
- Создать Вид (View) в Arcview GIS
- Добавить тему обрезаемого растра (View\Add theme..., тип данных должен быть равен Image Analysis data source)
- Добавить полигональную тему по которой будет производиться обрезка (маску) (View\Add theme..., тип данных должен быть равен Feature data source)
- Задать географический охват и маску обрезки, Image Analysis\Properties, Analysis extent: Same as название растровой темы, Analysis mask: название векторной маски.

- Выполнить операцию subset, оставив все каналы, как есть (Image Analysis\Subset...).
- Сохранить полученный новый растр под новым именем (Theme\Save image as...)
502 Bad Gateway
502 Bad Gateway
nginx/1.18.0 (Ubuntu)
502 Bad Gateway
502 Bad Gateway
nginx/1.18.0 (Ubuntu)
Дата создания: 27.07.2005
Автор(ы): Максим Дубинин
502 Bad Gateway
502 Bad Gateway
nginx/1.18.0 (Ubuntu)