Для решения задачи был написан модуль для GRASS (shell-скрипт) v.to.averline. Он использует простой алгоритм, описанный здесь.
Параметры модуля:
Код: Выделить всё
GRASS 6.4.2svn (arrows_test):~ > v.to.averline -help
Description:
Find "average" line(s) of input vector map. Results differ depending on vector type: lines/boundaries or polygons. NOTE: Lines/boundaries must have the same direction.
Keywords:
vector
Usage:
v.to.averline input=name output=name [ave_dist=value] [ave_segm=value]
[--overwrite] [--verbose] [--quiet]
Flags:
--o Allow output files to overwrite existing files
--v Verbose module output
--q Quiet module output
Parameters:
input Name of input vector map
output Name of output vector map
ave_dist Average distance to vectors sampling. Affects the shape of output "average" line.
ave_segm Average number of vectors segments. Affects the shape of output "average" line.
На заметку: линии/границы должны иметь одинаковое направление.
Примеры: