Это команда r.viewshedgrass, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
r.viewshed - Вычисляет зоны види- мости точки на возвышенности растровой карты.
Формат по умолчанию: NULL (невидимый), вертикальный угол относительно точки обзора (видимый).
КЛЮЧЕВЫЕ СЛОВА
растр, вид сверху, прямая видимость
СИНТАКСИС
r.viewshed
r.viewshed --Помогите
r.viewshed [-ЦРБЕ] вход=имя выходной=имя координаты=восток, север
[Observer_elevation=ценностное ] [target_elevation=ценностное ] [максимальное_дистанция=ценностное ]
[refraction_coeff=плавать] [Память=ценностное ] [каталог=string] [-затирать] [-помощь]
[-подробный] [-тихий] [-ui]
Флаги:
-c
Рассмотрим кривизну Земли (эллипсоид тока)
-r
Учитывайте влияние атмосферной рефракции.
-b
Формат вывода невидимый = 0, видимый = 1
-e
Формат вывода невидим = NULL, иначе текущий отм - viewpoint_elev
- перезаписать
Разрешить выходным файлам перезаписывать существующие файлы
--Помогите
Распечатать сводку использования
--подробный
Подробный вывод модуля
--тихий
Тихий выход модуля
--уи
Принудительный запуск диалогового окна GUI
Параметры:
вход=имя [требуется]
Имя входной растровой карты высот
выходной=имя [требуется]
Имя выходной растровой карты
координаты=восток, север [требуется]
Координаты точки обзора
Observer_elevation=ценностное
Просмотр высоты над поверхностью земли
По умолчанию: 1.75
target_elevation=ценностное
Смещение для целевой высоты над поверхностью земли
По умолчанию: 0.0
максимальное_дистанция=ценностное
Максимальный радиус видимости. По умолчанию бесконечность (-1)
По умолчанию: -1
refraction_coeff=плавать
Коэффициент преломления
Опции: 0.0-1.0
По умолчанию: 0.14286
Память=ценностное
Объем используемой памяти в МБ
По умолчанию: 500
каталог=string
Каталог для хранения временных файлов (они могут быть большими)
ОПИСАНИЕ
r.viewshed это модуль, который вычисляет видимость точки на растровом ландшафте. То есть,
учитывая растр высот и местоположение наблюдателя, он генерирует растровые выходные данные
карта, показывающая, какие ячейки видны из данного места. Алгоритм, лежащий в основе
r.viewshed минимизирует как операции процессора, так и передачу данных между основной памятью
и диск; как результат r.viewshed быстро работает на очень больших растрах.
ПРИМЕЧАНИЯ
Бежать r.viewshed, пользователь должен указать имя входной карты высот, выходную растровую карту
название и расположение точки обзора.
А пока точка зрения (координаты параметр) предполагается расположенным внутри
рельеф местности. Расположение точки зрения дается в координатах карты.
Выходной растровые может иметь один из трех возможных форматов, на основе которых флаги
комплект.
По умолчанию, если флаг не установлен, вывод находится в угловом режиме, и каждая точка на выходе
карта помечается как NULL, если точка не видна или соответствующая точка на отметке
map имеет значение NULL. В противном случае значение в [0, 180], представляющее вертикальный угол относительно
с точки зрения, в градусах, если точка видна. Значение 0 находится непосредственно под
указано положение просмотра, 90 из-за горизонтальной. Углом к клетке, содержащей
позиция просмотра не определена и установлена на 180.
Если же линия индикатора -b установлен флаг, выходные данные находятся в логическом режиме, и каждая точка в выходной карте является
помечено как:
· 0, если точка не содержит данных / ноль или не видна
· 1, если точка видна.
Если же линия индикатора -e установлен флаг, выходные данные находятся в режиме высот, и каждая точка на выходной карте
обозначается как:
· Без данных (null), если соответствующая точка на карте высот не является данными (null)
· -1, если точка не видна
· Разница в высоте между точкой и точкой обзора, если точка
видимый.
Если вы хотите определить область карты, которая находится в пределах радиуса поиска, но не
видимый, комбинация r.буфер и r.mapcalc может быть использована для создания негатива
карта видимости.
По умолчанию отметки не корректируются с учетом кривизны земли. Пользователь может
включи это с флагом -c.
По умолчанию предполагается, что наблюдатель имеет высоту 1.75 единицы карты над ландшафтом. В
пользователь может изменить это, используя опцию Observer_elevation. Значение, введенное в том же
единиц как отметка.
По умолчанию предполагается, что цель имеет высоту 0 единиц карты над ландшафтом. В
пользователь может изменить это, используя опцию target_elevation чтобы определить, являются ли объекты данного
высота будет видна. Введенное значение указано в тех же единицах, что и отметка.
По умолчанию не существует никаких ограничений на максимальное расстояние, на которое наблюдатель может видеть.
Пользователь может установить максимальное расстояние видимости с помощью опции максимальное_дистанция, Значение
вводится в тех же единицах, что и размер ячейки растра.
Использование основной памяти: по умолчанию r.viewshed предполагает, что у него 500 МБ основной памяти, и настраивает
его внутренние структуры данных, поэтому он не требует большего количества ОЗУ.
Пользователь может установить объем памяти, используемый программой, установив использование памяти в
количество МБ памяти, которое они хотели бы использовать.
Память Режим
Алгоритм может работать в двух режимах: во внутренней памяти, что означает, что он сохраняет все
необходимые структуры данных в памяти в процессе вычислений. И во внешней памяти,
означает, что структуры данных внешние, т.е. на диске. r.viewshed решает, какой режим
для запуска с использованием объема основной памяти, указанного пользователем. Внутренний режим
(намного) быстрее, чем во внешнем режиме.
В идеале пользователь должен указать в командной строке объем физической памяти, который
бесплатно для использования программы. Недооценка памяти может привести к r.viewshed Бег
во внешнем режиме вместо внутреннего, что медленнее. Завышение количества бесплатных
память может привести к r.viewshed работает в режиме внутреннего и используя виртуальную память, которая
медленнее, чем внешний режим.
Команда алгоритм
r.viewshed использует следующую модель для определения видимости: Высота ячейки
предполагается переменной, а фактическая высота точки, попадающей в ячейку, но не
идентичен центру ячейки, интерполируется. Таким образом, местность выглядит гладкой.
поверхность. Две точки видны друг другу, если их линия прямой видимости не пересекается.
местность. Высота произвольной точки x на местности интерполируется из 4
окружающие соседи. Это означает, что эта модель выполняет билинейную интерполяцию
высоты. Эта модель подходит для растров как с низким, так и с высоким разрешением, а также
местность с пологими и крутыми спусками.
Суть алгоритма - определение для каждой ячейки прямой видимости и ее
пересечения с ячейками на местности. Для (квадратной) сетки из n ячеек, может быть
На 1 / 2) ячейки, которые пересекают LOS. Если мы протестируем каждую такую ячейку для каждой точки
в сетке это составляет О (п3 / 2) тесты. Мы сможем провести все эти тесты быстрее, если повторно будем использовать
информация от одной точки к другой (две точки сетки, которые расположены близко друг к другу, будут
пересекаться множеством одинаковых точек) и по-разному организовать вычисление.
Точнее, алгоритм использует технику, называемую линия подметание: Он считает
полуоси с центром в точке обзора и вращает ее в радиальном направлении вокруг точки обзора, 360
градусов. Во время развертки отслеживаются все ячейки, пересекающие линию развертки.
в то время; Они называются активный клетки. С ячейкой связаны 3 события: когда она
сначала встречается линией развертки и вставляется в активную структуру; когда он в последний раз встречался
по линии развертки и удаляется из активной структуры; и когда проходит линия развертки
над его центральной точкой, в это время определяется его видимость. Чтобы определить
видимость ячейки все ячейки, которые пересекают линию прямой видимости, должны быть активными, чтобы они
находятся в активной структуре. Алгоритм просматривает все активные ячейки, находящиеся между
точка и точка обзора и находит среди них максимальный градиент. Если ячейка
градиент выше, он отмечен как видимый, а если он ниже, он помечен как
невидимый.
Для (квадратного) растра n в целом стандартный алгоритм видимости использует На
sqrt (п)) = О (п3 / 2) время, в то время как алгоритм развертки линии использует На lg n) время. Этот
алгоритм эффективен с точки зрения операций ЦП, а также может быть эффективным с точки зрения
операций ввода-вывода. Для получения всех подробностей см. ССЫЛКИ ниже.
Линия развертки. Активные клетки.
ПРИМЕРЫ
Использование набора данных Северной Каролины: вычислить видимость из точки наблюдения (координаты:
638728.087167, 220609.261501) на высоте 5 метров над землей:
g.region raster = elev_lid792_1m -p
r.viewshed input = elev_lid792_1m output = elev_lid792_1m_viewshed \
координаты = 638728.087167,220609.261501 Observer_elevation = 5.0
зоны види- мости Использование набора данных Spearfish: расчет точки обзора с вершины горы:
g. растр области = отметка 10 м
r.viewshed вход = выход = elevation.10m зоны види- мости \
координаты = 598869,4916642 MEM = 800
Ссылки
· Вычисление видимости местности во внешней памяти. Герман Хаверкорт, Лаура Тома
и Yi Чжуан. В ACM журнал on Экспериментальный Алгоритмика (ЯЭА) 13 (2009).
· Вычисление видимости местности во внешней памяти. Герман Хаверкорт, Лаура Тома
и И Чжуан. в Производство of 9 Мастерская on Алгоритм Проект и и
Эксперименты / Мастерская on аналитический Алгоритмы и Комбинаторика (АЛЕНЕКС / АНАЛКО
2007).
Используйте r.viewshedgrass онлайн с помощью сервисов onworks.net