3D-линии

0 голосов
спросил 03 Окт, 12 от katrina (1,580 баллов) в категории Программные продукты Esri
    Приветствую всех!
Задача:
Есть класс линейных объектов (в нрем могут храниться 3D-линии) и растр с высотной поверхностью
Сейчас линии не имеют 3-й координаты.
С помощью какого инструмента можно двумерные линии превратить в трезмерные на основе растра поверхности.
Нашла инструмент Interpolate Shape - но он делает новый класс объектов image
А хочется, чтобы одни и те же линии (без дублирования или замещения) стали трехмерными...

7 Ответы

0 голосов
ответил 04 Окт, 12 от Grigoriy (127,020 баллов)
В общем случае не получится. Т.к. исходная линия должна интерполироваться по поверхности. И у неё возможно будет больше вершин (вертексов). Выполните операцию и сравните результаты. Все атрибуты исходной линии сохраняются.
Если Вам нужен другой результат - то его можно реализовать через геообработку или скриптами, но Вы хотя бы должны понимать, чего хотите получить.
0 голосов
ответил 05 Окт, 12 от katrina (1,580 баллов)
    Да, атрибуты сохраняются - с этим проблем нет.

Понимание каким должен быть результат тоже есть:
- есть, например, 2 линии (хранятся в классе, где указана возможность хранения трехмерных объектов), но первоначально они плоские
- появляется поверхность рельефа
- в результате надо те же самые линии сделать трехмерными

т.к. работа происходит с версиями серверной БД, то, насколько я поняла этот механизм, для последующего слияния версий необходимо, чтобы у измененных объектов сохранялись ObjectID. Вот собственно это и надо реализовать.
Подскажите направление, в котором можно решить такую задачу...
0 голосов
ответил 05 Окт, 12 от Grigoriy (127,020 баллов)
в результате надо те же самые линии сделать трехмерными

Как я уже написал это будут не совсем те же самые линии.


т.к. работа происходит с версиями серверной БД, то, насколько я поняла этот механизм, для последующего слияния версий необходимо, чтобы у измененных объектов сохранялись ObjectID. Вот собственно это и надо реализовать.
Подскажите направление, в котором можно решить такую задачу...

Это зависит от того, как Вы работаете вот с этим конкретным классом объектов (линиями).
Перед манипуляциями лучше сделать бэкап базы (или хотя бы выгрузить все объекты в файловую бгд).

Правильная последовательность:
1. Согласовать (reconсile) все версии Вашей базы с версией default.
2. Выполнить "закрепление" (post) всех версий.
3. Отключить всех пользователей от базы геоданных.
4. Выполнить "сжатие" базы геоданных.
5. Дерегестрировать класс (или набор классов) как версионный.
6. Далее можете или удалить старый класс объектов и загрузить его заново с новыми данными, или удалить в нем все объекты и загрузить те, которые получены после интерполяции.
7. Зарегистрировать класс как версионный.
8. Можете пускать пользователей редактировать.

Этот путь можно значительно сократить, если никто эти линии не редактирует, кроме Вас.

ObjectID - это внутреннее поле, которое управляется ArcGIS и утверждать, что оно останется прежним у каждого объекта после этих операций я не берусь.
Но при определенной сноровке и настойчивости, и этого можно добиться, но нужно знать для чего.

    
    
0 голосов
ответил 05 Окт, 12 от katrina (1,580 баллов)
    Григорий, спасибо.
Надеялась на то, что ArcGIS умеет редактировать одни и те же объекты...
Получается, что практически все инструменты геообработки создают новые объекты - и иногда это вызывает недоумение
0 голосов
ответил 05 Окт, 12 от Grigoriy (127,020 баллов)
Редактировать-то Вы их как раз можете - и установить вертексу Z координату тоже можете руками в сеансе редактирования (или скриптом), если класс её поддерживает.
Но инструмент геообработки, как правило, выдает другой объект. И Вы должны сначала проверить результат, а уже потом принимать решение, что с ним делать.
Тем более, когда класс редактируется многими пользователями.
    
0 голосов
ответил 08 Окт, 12 от katrina (1,580 баллов)
    Интересно, Григорий, а с помощью какого скрипта можно отредактировать вертексы линий согласно существующей поверхности?
0 голосов
ответил 08 Окт, 12 от Grigoriy (127,020 баллов)
Его нужно будет ещё написать image.
Но лучше идти "нормальным" способом.
Вы просто загрузите Ваши существующие линии и линии после интерполяции в 3D (ArcScene, ArcGlobe) и посмотрите. Вас, скорее всего, не устроит просто присвоение Z-координаты вертексам.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...