Страница 1 из 1
Объявлен конкурс на лучшую идею
Добавлено: 23 дек 2003, 17:42
Ведьмак
Дано:
Линейные горизонтали рельефа, оцифрованные без учета направления оцифровки.
Требуется:
Обработать их таким образом, дабы, двигаясь вдоль гоизонтали справа всегда иметь бОльшую высоту, а слева - меньшую.
Т.е. выборочно изменить направление оцифровки.
Жду ваших соображений по поводу разработки алгоритма.
Тема закрыта
Добавлено: 29 дек 2003, 11:26
Ведьмак
Жаль, что ни у кого не возникло дельных мыслей по этому поводу. Задача решена, но, буде возникнут идеи - интересно ознакомится будет.
Если кого-либо заинтересует методика - готов поделиться соображениями.
Добавлено: 19 янв 2004, 03:20
диЧь
Если кого-либо заинтересует методика - готов поделиться соображениями.
Ведьмак, у меня постоянно возникает такая проблема при редактировании. Поделитесь методикой, пожалуйста

Если удобнее на мыло - то вот сюда
collibry@hotbox.ru
Добавлено: 21 янв 2004, 09:30
Eugene
Есть анологичная проблема при построении ЦМР в Арке. Если при построении используешь гидросеть (линейную). Все линии должны быть отцифрованы от истока к устью, т.е. по течению. Иначе ЦМР строиться некоректно. Многие векторные карты изначально цифровались только для печати, понятно что напревление при этом не учитывалось. И теперь мы имеем что имеем.
Ведьмак, а твои соображения можно применить для такого рода задачи?
Жека.
Не, все понятно, но что конкретно? Чё ты имела в виду?
Добавлено: 23 янв 2004, 14:05
Ведьмак
Я не совсем понял, чем интересуетесь? Самой методикой, или ее реализацией? Реализована она средствами Avenue в виде совокупности скриптов(3 или 4 - точно не помню). Методику опишу, если есть необходимость прямо здесь, но чуть позже.
Добавлено: 23 янв 2004, 23:26
Максим Дубинин
Может давай уж сразу в вопросы\ответы. Честно говоря я как не силился, так и не понял, что имеется в виду, тем более интереснее будет.
Добавлено: 25 янв 2004, 09:11
Eugene
Может не совсем все правильно расказал. Попытаюсь исправиться...
Всем известно что при построении грдов в акринфо можно использовать гидросеть. Обычно это линейная тема. А вся фишка в том что аркинфо при построении дема учитывает не только наличие или отсутствие реки, но и направление течения. Значит все линейные объекты реки должны иметь направление от истока к устью. Иначе если какой-либо отрезок реки имеет обратное направление, то в гриде будут косяки, типа этот отрезок течет в бугор. Вот и стоит вопрос: не использовать линейные обекты реки если они не соответствуют этим требованиям или все-таки это можно автоматически поравить. Представления не имею как это можно сделать вот и поинтересовался. Может как-то нужно указать устья речек, которые примыкают к полигональным объектам реки (это как раз последняя вершинка) и все стыкующиеся отрезки направить к ним????
Добавлено: 26 янв 2004, 08:05
диЧь
Eugene, от та же самая фигня..
правда, с авеню я не особо.. но это не большая проблема, научусь)
Добавлено: 26 янв 2004, 11:41
Ведьмак
C реками на самом деле все гораздо проще. Надо представить линию, которая пересекается с полигональным объектом реки в виде совокупности ее узлов. Затем взять первый узел и проверить - не лежит ли он внутри полигона реки (место устья). Если лежит (т.е. река оцифрована от устья к истоку) - "перевернуть" линию реки.
А представьте себе методику из исходной постановки задачи. В каждом узле надо проверить выполнение условия. Но ведь бывают случаи, когда в одном узле - справа - выше, а в соседнем - ниже изолинии. Т.е. линия ни при каких условиях не может удовлетворять предъявленному требованию. Такие линии хочешь, не хочешь пришлось ручками обрабатывать - смотреть че не так и исправлять.
Добавлено: 26 янв 2004, 11:44
Ведьмак
Реализацию "переворачивания" лини на авеню завтра выложу. Дискету дома оставил

Добавлено: 26 янв 2004, 12:20
Максим Дубинин
Может как-то нужно указать устья речек, которые примыкают к полигональным объектам реки (это как раз последняя вершинка) и все стыкующиеся отрезки направить к ним????
Река то может разрываться по тысяче разных причин, не только из-за ошибок цифровщика, но и например небольшой полигональный участок обычно тоже ее разрывает (хотя это зависит от того как цифровали).
Почитай в AIHelp Topogrid\Preprocessing stream data там пара выходов из положения указана, но оба, это интерактивный процесс.
Добавлено: 27 янв 2004, 09:52
Ведьмак
Примерный код скрипта. Скрипт вызывается через av.Run. В качестве аргумента требует собственно линию, которую надо перевернуть. Возвращает перевернутую линию.
Код: Выделить всё
thePolyLine = SELF
newList = {}
for each pnt in thePolyLine.AsMultipoint.AsList newList.Insert(pnt) end
newPolyLine = PolyLine.Make({newList})
return(newPolyLine)
Хочу сразу предостеречь - скрипт корректно работает только для полилиний без разрывов (см. последний пост от SIM). Он писался именно для изолиний рельефа, которые таких разрывов не имеют.
Добавлено: 30 апр 2004, 17:37
LAS
Я нельзя ли в Вопросы и ответы да ешо с примерчиками, а то ...плохо усваимость.