Тема: Data Elevation Model проекция

Надеюсь вопрос я задаю правильно, ибо не спец абсолютно. Надеюсь, кто-нибудь поможет.
Есть гео-координаты (WGS84)прямоугольника. Предположительно имеется Data Elevation Model (DEM) - точки с координатами x, y и высотой с разрешением в 100 м. Необходимо вычислить полигон проекции плоской модели на DEM. Наибольшое искажение, я так понимаю, будет в горных районах на участках с большим перепадом высот.
Заранее благодарен.

Re: Data Elevation Model проекция

Наверное, необходимо уточнение. Вопрос, наверное, к специалистам по GIS и 3D-графике. Может кто-нибудь уже сталкивался с подобным.
Попробую просто описать задачу. Возможно, так станет понятнее. Мы пишем систему планирования миссия для аэрофотосъемки. Попросту говоря, создается план, на котором определяются координаты точек, где необходимо произвести снимки. В основном точки съемки планируются линейно, т.е. снимки группируются в линии. Точки съемки на линии планируются таким образом, чтобы при определенной высоте обеспечивалось необходимое перекрытие снимков (обычно 60% для перекрытия по концам снимков одной линии, и 30% для перекрытия по сторонам снимков для соседних линий). Так вот, планирование сейчас производится плоское, т.е. считается, что высота полета постоянна, т.е. поверхность съемки плоская. Проекция снимков в данном случае прямоугольная (четырехугольная, если быть точным). В реальности же поверхность, естественно, не всегда плоская. Так вот, требуется, имея DTM с разрешением ~100 м, вычислить проекцию (я так понимаю, в результате получится полигон) границ снимка на поверхность съемки. Т.е., в результате вместо прямоугольника получится какой-то полигон. Вот его-то мне и надо определить, чтобы определить реальное перекрытие снимков на заданной местности. Наибольшее искажение будет в районах с большим перепадом высот, т.е. в горах.
Возможно, задача может формулироваться более общо, а именно в определении проекции прямоугольника на 3D - поверхность при заданных координатах прямоугольника и высоте над поверхностью.

Re: Data Elevation Model проекция

> R&D
В нашей системе САМАРА есть модуль моделирования и анализа пространственных сетей Fata Morgana. В нем твоя задача решается.
См. http://www.cad.dp.ua/SamSite/Page_main.html (там по ссылочке перейди на Fata Morgana).
Будут вопросы - давай.

Re: Data Elevation Model проекция

Lis, спасибо за информацию! Один принципиальный вопрос. Я так понимаю, вы используете Triangular Irregular Network (TIN) для определения пересечений?

Re: Data Elevation Model проекция

> R&D
Да, но это особого значения не имеет. TIN может быть получен и из GRIDа.... или продолжите вопрос. Что смущает?

Re: Data Elevation Model проекция

> Lis
Не то, чтобы смущает, но реалии таковы, что мои знания в этой области нулевые. :) Вчера только начал изучать теорию по вопросу. Моя идея была такова: имея TIN и координаты прямоугольника, определить пересечения сторон прямоугольника с треугольниками. Получаем полигон с множеством вершин разной высоты, т.е. фактически 3D-полигон. Высоты вершин полигона должны быть рассчитаны на основе крутизны/склона точек сторон пересекаемых треугольников. Далее, имея 3D-полигон, проецируем его на плоскость.
Правильный ли это подход или есть решение попроще?

Re: Data Elevation Model проекция

> R&D
В общем-то все верно. Только непонятно, куда проецируем полученный трехмерный полигон? Ведь его ПЛАНОВУЮ проекцию мы имели изначально, когда проецировали ее на TIN!(помнишь, ты писал:...имея TIN и координаты прямоугольника...).
Может, я чего-то не понял?

Re: Data Elevation Model проекция

> R&D
мой ICQ 314465653

Re: Data Elevation Model проекция

> Lis
У меня ICQ на работе не работает.
Полученный полигон надо проецировать на виртуальную плоскость нулевой высоты. Я так понимаю.

Re: Data Elevation Model проекция

> R&D
Дай какое-нить е-мыло, куда я мог-бы скинуть акадовский файлик с примером (2.5 Мб). Лучше всего брось письмо на мой адрес.

Re: Data Elevation Model проекция

> Lis
У меня AutoCAD-а нет. :) А есть что-нибудь в виде алгоритма или на C++ или любом другом языке?
Мой мэйл: haydes [at] front.ru

Re: Data Elevation Model проекция

> R&D
Файлик послал.. Акад займи у соседа :)... или поставь какой-нить, только не древнее 2000-го.
А вообще-то начинаю подозревать, что постановка задачи не корректна. Если реч идет о аэрофотосъемке, возможно, имеется ввиду задача о пересечении TIN с некой призмой, имеющей в вершине определенный угол раствора? Тогда становится понятным вопрос об обратном проецировании полученного полигона. Это так?

Re: Data Elevation Model проекция

> Lis
Спасибо! Ты прав, именно так задача и стоит. :)

Re: Data Elevation Model проекция

> R&D
Ну, тогда это тоже не сложно. Есть в FM функция вычисления линии пересечения двух сетей. То есть: в дополнение к TIN рельефа строишь еще один TIN из четырех тригов (призму с нужным углом) и таскаешь его туда-сюда (возможно, меняя высоты вершины),находишь интересующие полигоны и проецируешь их на "нулевую" плоскость. Только в чем ты это делать будешь? В чем работаешь-то?
Насчет алгоритмов - извини :(. FM - большая и многофункциональная система, где все взаимосвязано. И вычленить оттуда кусок сложно. А целиком - это большая коммерческая тайна :).

Re: Data Elevation Model проекция

> Lis
Работаю в C++. :) Поэтому и интересуют алгоритмы или хотя бы общие принципы. Насчет Know-How все понятно. Готовых решений я не ищу, просто мне хочется понять общие решения.
В любом случае, у меня сейчас есть хоть что-то, от чего можно отталкиваться. :) Спасибо.

Re: Data Elevation Model проекция

> R&D
Привет! Общяя идея проста, как двери: имеем два TINa - рельеф и призма. Берешь один триг призмы и ищешь линии его пересечения со всеми тригами рельефа. Потом второй, третий и четвертый. Из кучи полученных отрезков собираешь контур. Проекция контура получается простым обнулением Z всех вершин.
Ну а вопросы получения TINов, манипуляций с ними, ну и всякие там ускорения и оптимизации - на твоей совести.
Удачи!