Векторные ГИС Данные линии прямой видимости? - PullRequest
2 голосов
/ 22 января 2011

У меня есть ситуация, когда меня интересуют только несколько векторных слоев и двухмерная линия прямой видимости. Я знаю, что прямая видимость обычно выполняется на растровых данных, потому что типичным применением является топография. Потому что эта формулировка расплывчата и почти бесполезна, вот моя ситуация:

У меня есть векторный шейп-файл береговой линии многоугольника, точка-источник, расположенная где-то в воде, и слой «буфера» многоугольника, который представляет круг большого радиуса вокруг точки «источника». Меня интересуют только те части буферного полигона, которые находятся «в пределах видимости» исходной точки. На изображении ниже красная точка - источник, оранжевый многоугольник - буфер, обрезанный по береговой линии, и желтый многоугольник - это то, что меня интересует. Даже это не так хорошо, как хотелось бы.

Изображение: http://i.stack.imgur.com/IKBLv.png

Я хочу автоматизировать процесс, который я использую сейчас (довольно много времени), и предпочел бы использовать python / numpy / scipy / OGR / GRASS вместо ESRI.

Есть идеи, как проследить вдоль линии и проверить на "видимость"? Я мог бы растеризовать все и использовать традиционный сценарий радиальной линии прямой видимости в GRASS, но это похоже на способ обработки слишком большого количества данных, хранящихся в памяти, и выполнения проверок на наличие пикселей, которые, как мы знаем, не вызовут столкновения для пересечения нескольких векторов. , Я хочу быть максимально легким, сохраняя при этом максимально возможную точность.

1 Ответ

0 голосов
/ 25 января 2011

Как насчет (итеративно) рассмотрения линии между вашей точкой и каждой точкой в ​​шейп-файле береговой линии? Если он пересекает полигон "суша" (пересекает сушу), то эта точка на берегу не видна. Возьмите все видимые точки и используйте их для формирования нового многоугольника видимой области.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...