Страница 1 из 2

операция, обратная инструменту "видимость"

Добавлено: 20 дек 2020, 10:35
zubenko1592
Скажите, есть ли способ, который выдаст растр рельефа если в качестве исходных данных точка, отметка, с которой производится наблюдение и карта видимости?
тоесть нужен инструмент, который бы произвел операцию, обратную производимой инструментом "видимость"


Нужна операция, обратная представленной на рисунке:
GUID-D02C64B9-DFAA-4B26-BB36-F92788274429-web[1].gif
GUID-D02C64B9-DFAA-4B26-BB36-F92788274429-web[1].gif (25.34 КБ) 6903 просмотра

Re: операция, обратная инструменту "видимость"

Добавлено: 20 дек 2020, 15:25
Эдуард Казаков
Основной проблемой видится то, что вариантов такой поверхности может быть бесконечное количество... Может быть, сделать шаг назад - откуда возникла потребность в такой операции?

Re: операция, обратная инструменту "видимость"

Добавлено: 20 дек 2020, 16:51
gamm
если речь про "определить точку, откуда смотрели, если известно, что увидели", то единственный вариант - решать прямую задачу для каждого пикселя из области "что увидели", и суммировать результат. Максимум (максимумы) полученного растра дадут область, откуда скорее всего смотрели.

Re: операция, обратная инструменту "видимость"

Добавлено: 27 дек 2020, 19:36
zubenko1592
мне нужен любой из возможных вариантов, приближенный к минимальным разницам экстремальных высот.

возможен такой вариант?

Re: операция, обратная инструменту "видимость"

Добавлено: 27 дек 2020, 20:28
gamm
попробуйте сформулировать, чего вы хотите. Пока ничего понять нельзя, а Ванга умерла ...

Re: операция, обратная инструменту "видимость"

Добавлено: 28 дек 2020, 00:30
zubenko1592
у меня есть карта видимости (контур того что увидели и контур того что не увидели в виде полигонального шейпа) и точка наблюдения (где стояли в виде точечного шейпа, точка с Z), а мне нужно получить исходный растр поверхности (если их бесконечное множество, то рандомный из них), на котором из заданной точки наблюдения получится моя исходная карта видимости.

Re: операция, обратная инструменту "видимость"

Добавлено: 28 дек 2020, 05:36
gamm
zubenko1592 писал(а):
27 дек 2020, 19:36
возможен такой вариант
нет. Вот простой метод, переделанный из алгоритма определения видимости: делаем вокруг точки наблюдения бруствер (валик) и трассируем лучи да каждой точки растра, делая в них произвольный рельеф ниже линии визирования. Пока ничего не видно, кроме точки стояния. Теперь все видимые пиксели сортируем по расстоянию, и трассируем к ним луч из точки стояния. По дороге вычисляем высоту всех, кто на пути, и ставим в пикселе призвольную высоту выше линий через эти пиксели (на самом деле измеряют не высоту, а максимальный тангенс угла, а из него и расстояния получают нужную высоту). Таким образом разброс высот произвольный, особенно в невидимой части

Re: операция, обратная инструменту "видимость"

Добавлено: 28 дек 2020, 08:58
zubenko1592
gamm писал(а):
28 дек 2020, 05:36
нет. Вот простой метод, переделанный из алгоритма определения видимости: делаем вокруг точки наблюдения бруствер (валик) и трассируем лучи да каждой точки растра, делая в них произвольный рельеф ниже линии визирования. Пока ничего не видно, кроме точки стояния. Теперь все видимые пиксели сортируем по расстоянию, и трассируем к ним луч из точки стояния. По дороге вычисляем высоту всех, кто на пути, и ставим в пикселе призвольную высоту выше линий через эти пиксели (на самом деле измеряют не высоту, а максимальный тангенс угла, а из него и расстояния получают нужную высоту). Таким образом разброс высот произвольный, особенно в невидимой части
а это реализуемо без использования программирования, используя только инструменты arctoolbox`a?

просто мне не до конца понятно как реализовать очередность обработки пикселей и использовать для вычислений значение ячейки ближайшего в очереди объекта при расчетах в калькуляторе поля:
zubenko1592 писал(а):
28 дек 2020, 08:58
По дороге вычисляем высоту всех, кто на пути

Re: операция, обратная инструменту "видимость"

Добавлено: 28 дек 2020, 10:20
gamm
zubenko1592 писал(а):
28 дек 2020, 08:58
а это реализуемо без использования программирования
нет
zubenko1592 писал(а):
28 дек 2020, 08:58
просто мне не до конца понятно как реализовать очередность обработки пикселей и использовать для вычислений значение ячейки ближайшего в очереди объекта при расчетах в калькуляторе поля
никак. А алгоритм - см. алгоритм вычисления видимости, например исходники GRASS

Re: операция, обратная инструменту "видимость"

Добавлено: 28 дек 2020, 10:38
zubenko1592
спасибо. буду ковырять

Re: операция, обратная инструменту "видимость"

Добавлено: 28 дек 2020, 10:45
zubenko1592
gamm писал(а):
28 дек 2020, 10:20
исходники GRASS
Подскажите, пожалуйста, где их найти?

Re: операция, обратная инструменту "видимость"

Добавлено: 28 дек 2020, 13:22
gamm

Re: операция, обратная инструменту "видимость"

Добавлено: 28 дек 2020, 15:37
zubenko1592
gamm писал(а):
28 дек 2020, 13:22
тут
а есть вариант среди этих директорий найти конкретно код операции видимость? или нужно это дело на линукс из исходников собирать чтобы найти код?
я в этом просто не особо силен..

Re: операция, обратная инструменту "видимость"

Добавлено: 28 дек 2020, 19:07
gamm
zubenko1592 писал(а):
28 дек 2020, 15:37
я в этом просто не особо силен..
тогда лучше не начинать ... а делает это функция r.viewshed

Re: операция, обратная инструменту "видимость"

Добавлено: 28 дек 2020, 19:21
zubenko1592
gamm писал(а):
28 дек 2020, 19:07
тогда лучше не начинать ...
не, начинать как раз тогда очень нужно!))

подскажите что почитать об этом?