Это команда r.costgrass, которую можно запустить в провайдере бесплатного хостинга OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
р.стоимость - Создает растровую карту, показывающую совокупную стоимость перемещения между разными
географические местоположения на входной растровой карте, значения категорий ячеек которых представляют стоимость.
КЛЮЧЕВЫЕ СЛОВА
растр, поверхность затрат, совокупные затраты, распределение затрат
СИНТАКСИС
р.стоимость
р.стоимость --Помогите
р.стоимость [-Knri] вход=имя выходной=имя [ближайший=имя] [превзойти=имя]
[начальные_точки=имя] [стоп_точки=имя] [start_raster=имя]
[начальные_координаты=восток, север[,восток, север, ...]]
[стоп_координаты=восток, север[,восток, север, ...]] [максимальная_стоимость=ценностное ] [null_cost=ценностное ]
[Память=ценностное ] [-затирать] [-помощь] [-подробный] [-тихий] [-ui]
Флаги:
-k
Используйте «Ход коня»; медленнее, но точнее
-n
Сохранять нулевые значения на выходной растровой карте
-r
Начните со значений на растровой карте
-i
Распечатать информацию о дисковом пространстве и требованиях к памяти и выйти
- перезаписать
Разрешить выходным файлам перезаписывать существующие файлы
--Помогите
Распечатать сводку использования
--подробный
Подробный вывод модуля
--тихий
Тихий выход модуля
--уи
Принудительный запуск диалогового окна GUI
Параметры:
вход=имя [требуется]
Имя входной растровой карты, содержащей информацию о стоимости ячейки сетки
выходной=имя [требуется]
Имя выходной растровой карты
ближайший=имя
Имя выходной растровой карты с ближайшей начальной точкой
превзойти=имя
Имя выходной растровой карты, содержащей направления движения
начальные_точки=имя
Название карты начальных векторных точек
Или источник данных для прямого доступа к OGR
стоп_точки=имя
Название карты векторных точек остановки
Или источник данных для прямого доступа к OGR
start_raster=имя
Название карты точек начального растра
начальные_координаты=восток, север [, восток, север, ...]
Координаты отправной точки (ов) (E, N)
стоп_координаты=восток, север [, восток, север, ...]
Координаты точек остановки (E, N)
максимальная_стоимость=ценностное
Максимальная совокупная стоимость
По умолчанию: 0
null_cost=ценностное
Стоимость присвоена пустым ячейкам. По умолчанию пустые ячейки исключаются
Память=ценностное
Максимальный объем используемой памяти в МБ
По умолчанию: 300
ОПИСАНИЕ
р.стоимость определяет совокупную стоимость перехода к каждой ячейке на стоят поверхность ( вход
растровая карта) из других заданных пользователем ячеек, расположение которых указано их
географические координаты. Каждая ячейка на исходной карте поверхности затрат будет содержать
значение категории, которое представляет собой стоимость прохождения этой ячейки. р.стоимость произведет 1)
an выходной растровая карта, в которой каждая ячейка содержит наименьшую общую стоимость пересечения
пространство между каждой ячейкой и указанными пользователем точками (диагональные затраты умножаются на
фактор, который зависит от размеров ячейки) и 2) второй слой растровой карты
показывает направление движения к следующей ячейке на пути обратно к начальной точке (см.
Направление движения). Этот модуль использует текущие настройки географического региона. В выходной
карта будет иметь тот же формат данных, что и вход карта, целое число или число с плавающей запятой.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
Команда вход имя это имя растровой карты, значения категорий которой представляют поверхность
Стоимость. В выходной имя - имя результирующей растровой карты совокупной стоимости. В
превзойти имя - имя результирующей растровой карты направлений движения (см. Движение
Направление).
р.стоимость можно запустить с помощью трех различных методов определения отправной точки (точек). Один
или несколько точек (пары географических координат) могут быть предоставлены, как указано
начальные_координаты в командной строке, из файла векторных точек или из растровой карты.
Все ячейки, отличные от NULL, считаются отправными точками.
Каждый x, y начальные_координаты пара дает географическое положение точки, из которой
Стоимость перевозки должна быть оценена. Любое количество баллов можно ввести с помощью
Пользователь. Эти начальные точки также могут быть прочитаны из файла векторных точек через
начальные_точки вариант или с растровой карты через start_raster опцию.
р.стоимость перестанет накапливать затраты, когда либо максимальная_стоимость достигнут, или одна из остановок
баллы даны с стоп_координаты достигается. В качестве альтернативы можно прочитать точки останова.
из файла векторных точек с стоп_точки вариант. Во время исполнения однажды
совокупная стоимость до всех точек остановки определена, обработка прекращается.
Оба сайта читают из файла векторных точек, а те, что указаны в командной строке, будут
обработанный.
Нулевые ячейки в вход карте может быть присвоена стоимость (положительная с плавающей запятой) с помощью
null_cost опцию.
Когда входная карта пустых ячеек получает стоимость с null_cost вариант, соответствующий
ячейки в выходной карте больше не являются пустыми ячейками. Используя -n флаг, нулевые ячейки
входная карта сохраняется как пустые ячейки в выходной карте.
As р.стоимость может работать очень долго, может быть полезно использовать --v подробный флаг
отслеживать прогресс.
Ход коня (-k flag) можно использовать для повышения точности вывода. в
На диаграмме ниже центральное положение (O) представляет ячейку сетки, из которой
расстояния рассчитываются. Соседи, отмеченные знаком X, всегда считаются
совокупные обновления стоимости. С -k вариант, соседи, отмеченные буквой K, также
считается.
. . . . . . . . . . . . . . .
. . . К. . К. . .
. . . . . . . . . . . . . . .
. . К. ИКС . ИКС . ИКС . К. .
. . . . . . . . . . . . . . .
. . . ИКС . О. ИКС . . .
. . . . . . . . . . . . . . .
. . К. ИКС . ИКС . ИКС . К. .
. . . . . . . . . . . . . . .
. . . К. . К. . .
. . . . . . . . . . . . . . .
Пример хода коня:
Плоский (XNUMXD) стоят поверхность без (оставил панель) и рыцарский
двигаться (правильно панель). Команда по умолчанию is в расти стоят наружу
in 8 направления. . рыцарский двигаться растет it наружу
in 16 направления.
Если же линия индикатора ближайший выходной параметр указан, модуль будет рассчитывать для каждой ячейки свой
ближайшая отправная точка на основе минимальной совокупной стоимости при переходе к стоимости
карта.
NULL, КЛЕТКИ
По умолчанию пустые ячейки на входной растровой карте исключаются из алгоритма, и поэтому
сохраняется в выходной карте.
Если кто-то хочет р.стоимость чтобы прозрачно пересечь любую область нулевых ячеек, null_cost= 0.0
вариант следует использовать. Тогда пустые ячейки просто распространяют соседние затраты. Эти клетки могут
сохраняться как пустые ячейки в выходной карте с помощью -n флаг.
ПРИМЕЧАНИЯ
Иногда, когда различия между значениями категорий целочисленных ячеек в р.стоимость
совокупные затраты на поверхностный выпуск невелики, эти совокупные затраты не могут быть точно определены.
используется как вход для р. дренаж (р. дренаж выдаст плохие результаты). Эта проблема может быть
можно обойти, сделав различия между значениями категорий ячеек в совокупной стоимости
вывод побольше. Рекомендуется, если на выходе из р.стоимость должен использоваться в качестве входных данных для
р. дренаж, пользователь умножает карту поверхности входных затрат на р.стоимость по стоимости карты
разрешение ячейки, перед запуском р.стоимость. Это можно сделать с помощью r.mapcalc, Карта
разрешение можно найти с помощью г. регион. Эта проблема не возникает с плавающей запятой
карты.
Алгоритм ноты
Принципиальный подход к расчету минимальной стоимости проезда заключается в следующем:
Пользователь создает растровую карту с указанием стоимости обхода каждой ячейки в
направления север-юг и восток-запад. Эта карта вместе с набором начальных точек являются
представлен р.стоимость. Отправные точки помещаются в ячейки списка, от которых зависит
соседние ячейки подлежат расчету. Ячейка в списке с наименьшей совокупной стоимостью
выбирается для вычисления затрат на соседние соты. Затраты рассчитываются и те
ячейки помещаются в список, и исходная ячейка завершается. Этот процесс выбора
ячейка с наименьшей совокупной стоимостью, вычислительные затраты для соседей, размещение соседей
в списке и удаление исходной ячейки из списка продолжается до тех пор, пока список не будет
пустой.
Наиболее трудоемким аспектом этого алгоритма является управление списком ячеек.
для которых, по крайней мере, первоначально были рассчитаны совокупные затраты. р.стоимость использует двоичный
дерево со связанным списком в каждом узле дерева для эффективного хранения ячеек с
идентичные совокупные затраты.
р.стоимость, как и большинство всех растровых программ GRASS, также предназначен для работы на картах большего размера, чем
может поместиться в доступной памяти компьютера. Как алгоритм работает через динамический список
ячеек он может перемещаться практически беспорядочно по всей площади. р.стоимость делит всю площадь
на несколько частей и меняет местами эти части в памяти и из памяти (на диск и с диска) как
нужный. Это обеспечивает подход виртуальной памяти, оптимально разработанный для двумерных растровых карт.
Объем памяти, который будет использовать р.стоимость можно контролировать с помощью Память вариант,
по умолчанию 300 МБ. Для систем с меньшим объемом памяти необходимо установить меньшее значение.
значения.
ПРИМЕРЫ
Рассмотрим следующий пример:
Входной сигнал:
СТОИМОСТЬ ПОВЕРХНОСТИ
. . . . . . . . . . . . . . .
. 2. 2. 1. 1. 5. 5. 5.
. . . . . . . . . . . . . . .
. 2. 2. 8. 8. 5. 2. 1.
. . . . . . . . . . . . . . .
. 7. 1. 1. 8. 2. 2. 2.
. . . . . . . . . . . . . . .
. 8. 7. 8. 8. 8. 8. 5.
. . . . . . . . . . _____. .
. 8. 8. 1. 1. 5 | 3 | 9.
. . . . . . . . . . | ___ | . .
. 8. 1. 1. 2. 5. 3. 9.
. . . . . . . . . . . . . . .
Вывод (с использованием -k): Вывод (без использования -k):
НАКОПИТЕЛЬНАЯ СТОИМОСТЬ ПОВЕРХНОСТИ НАКОПИТЕЛЬНАЯ СТОИМОСТЬ ПОВЕРХНОСТИ
, , , , , , , , , , , , , , , , , , , * * * * * . . . . . .
. 21. 21. 20. 19. 17. 15. 14.. 22. 21* 21 * 20 * 17. 15. 14.
, , , , , , , , , , , , , , , , , , , * * * * * . . . . . .
. 20. 19. 22. 19. 15. 12. 11.. 20. 19. 22* 20 * 15. 12. 11.
. . . . . . . . . . . . . . . . . . . . . * * * * * . . . .
. 22. 18. 17. 17. 12. 11. 9.. 22. 18. 17* 18 * 13 * 11. 9.
. . . . . . . . . . . . . . . . . . . . . * * * * * . . . .
. 21. 14. 13. 12. 8. 6. 6.. 21. 14. 13. 12. 8. 6. 6.
. . . . . . . . . . _____. . . . . . . . . . . . . . . . .
. 16. 13. 8. 7. 4 | 0 | 6.. 16. 13. 8. 7. 4. 0. 6.
. . . . . . . . . . | ___ |. . . . . . . . . . . . . . . . .
. 14. 9. 8. 9. 6. 3. 8.. 14. 9. 8. 9. 6. 3. 8.
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
Указанное пользователем начальное местоположение в приведенном выше примере отмечено рамкой. 3 в приведенном выше вводе
карта. Стоимость на выходной карте представляет собой общую стоимость перемещения из каждого ящика («ячейки»).
в одно или несколько (здесь только одно) начальное место (а). Ячейки, обведенные звездочками,
те, которые различаются между операциями, использующими и не использующими ход коня (-k)
опцию.
Результат анализ
Выходную карту можно рассматривать, например, как модель высот, в которой начальная
местоположение (а) - это самая низкая точка (а). Выходы из р.стоимость может использоваться в качестве входных данных для
р. дренаж с указателем направления -d, чтобы отследить путь с наименьшими затратами, заданный этим
модель между любой данной ячейкой и р.стоимость начальная точка (а). Две программы, когда
используются вместе, генерируют наименее затратные пути или коридоры между любыми двумя местоположениями на карте
(клетки).
самый короткий расстояние поверхности
Команда р.стоимость модуль позволяет вычислять кратчайшее расстояние каждого пикселя от растра
линии, например, определение кратчайшего расстояния домовладений до ближайшей дороги. Для
используются эти стоимостные поверхности со стоимостным значением 1. Расчет производится с помощью р.стоимость as
следующим образом (пример для региона Spearfish):
g. растр области = дороги -p
r.mapcalc "area.one = 1"
r.cost -k input = area.one output = расстояние start_raster = дороги
d.rast расстояние
d.rast.num расстояние
# преобразовать в метрическое расстояние от расстояния до ячейки с использованием растрового разрешения:
r.mapcalc "dist_meters = distance * (ewres () + nsres ()) / 2."
д.раст dist_meters
Механизм Руководство
Поверхность направления движения создается для записи последовательности движений, которые создали
поверхность накопления стоимости. Без этого р. дренаж не будет правильно создавать путь из
конечная точка обратно в начальную точку. Направление каждой ячейки указывает на следующую
клетка. Направления записываются в градусах против часовой стрелки с востока:
112.5 67.5 т.е. ячейка со значением 135
157.5 135 90 45 22.5 означает, что следующая ячейка находится на северо-западе
180 х 360
202.5 225 270 315 337.5
247.5 292.5
Цена распределение
Пример: расчет карты распределения затрат «costalloc» и карты накопленных затрат.
"costurf" для заданных начальных точек (карта "источники") и заданной стоимости растровой карты "cost":
r.cost input = затраты start_raster = источники output = costurf ближайший = costalloc
Найти минимальный стоят путь
Как только р.стоимость вычисляет карту совокупной стоимости, р. дренаж можно использовать для определения минимальной стоимости
дорожка. Обязательно используйте -d флаг и растровая карта направления движения при запуске
r.drain, чтобы обеспечить расчет пути в соответствии с правильными направлениями движения.
Используйте r.costgrass онлайн с помощью сервисов onworks.net