Для решения задачи был написан модуль GRASS r.split.line в виде шелл-скрипта (работает в GRASS 6.4.*).
Опции:
Код: Выделить всё
GRASS 6.4.2svn (spearfish60):~ > ./r.split.line -help
Description:
Split raster into parts with vector line(s). Lines MUST intersect the whole raster map.
Keywords:
raster,vector
Usage:
r.split.line raster=name line=name [--verbose] [--quiet]
Flags:
--v Verbose module output
--q Quiet module output
Parameters:
raster Name of input raster map
line Name of vector map with line(s)
На входе скрипту задаётся исходный растр для "нарезки" и векторная карта с линиями (нужны именно линии, границы не обрабатываются). Главное условие -- чтобы линии пересекали ВЕСЬ растр, немного выходя за его границы. На выходе -- растры с именами типа имя_исходного_растра.part{номер}.
Пример разбиения растра (набор данных "Spearfish", растр <elevation.10m>) с анимацией в GIF.