Допустим, у нас есть растр
raster.tif, вектор в формате mapinfo
vector.tab и полигон, по которому их надо резать -
polygon.tab.
Надо создать набор GRASS c этими данными. Проще всего это сделать из любого уже существующего набора. Например, можно скачать набор Геосэмпл
http://gis-lab.info/data/geosample/geosample-grass.7z (20 Мб).
-- Запускаем GRASS с регионом
geosample-grass и набором
PERMANENT. Далее я пишу в командной строке, но то же самое и в граф. интерфейсе (просто мне скриншоты лень делать
):
Код: Выделить всё
r.in.gdal -e input=raster.tif output=raster location=raster_vector_cut
Т.о. мы создали регион с охватом, проекцией и разрешением нашего растра. Кстати, регион можно было создать и из векторного слоя
vector.tab.
-- Выходим из GRASS, входим снова, но уже в новый регион
raster_vector_cut, набор
PERMANENT
-- Импортируем
vector.tab (он должен быть в той же проекции, что и растр):
, где опция "-o" меняет проекцию слоя на проекцию региона
-- Тем же способом импортируем слой
polygon.tab (если он есть).
-- Если полигон, по которому резать, еще не создан -- это отдельный вопрос. Тогда надо будет создать полигон модулем
v.digit или через граф. интерфейс wxPython.
---------------------------------------------------------------------------------------------------------------------------
Вырезаем растр по полигону:
-- Конвертируем векторный полигон в растр:
Код: Выделить всё
v.to.rast input=polygon output=polygon use=cat type=area
-- Делаем из этого растра "маску":
. Теперь (почти) все действия с растрами ограничены этой маской.
-- Пересчитываем растр
raster с учетом маски (методом "ближайшего соседа"):
. Растр
raster_cut будет вырезан по форме маски.
---------------------------------------------------------------------------------------------------------------------------
Вырезаем вектор по полигону:
Код: Выделить всё
v.select ainput=vector binput=polygon output=vector_cut
. Должен получиться новый слой
vector_cut.
Потом "урезанные" растр и вектор можно экспортировать в нужный формат.
----------------------------
Будут вопросы -- спрашивайте.