Разрезать объекты одного слоя объектами другого

0 голосов
спросил 31 Июль, 09 от TDenis (42,620 баллов) в категории Программные продукты Esri
В очередной раз обращаюсь к вам за помощью)
Есть слой с не пересекающимися между собой полигонами, каждому из которых приписан уникальный код.
И есть другой слой с множеством объектов.
Задача: разрезать объекты второго слоя полигонами первого. При этом каждому получившемуся объекту нужно приписать соответствующий код из первого слоя. И на выходе надо получить один слой, а не кучу (как, к примеру, делает инструмент Split).

Т.е. по сути, мне сначала надо сделать Split. Затем Merge всех получившихся файлов. И как-то приписать каждому объекту название шейп-файла, в котором он лежал (либо же прогнать еще раз все новые разрезанные объекты и приписать код полигона, с которым получившийся объект пересекается). Или есть варианты попроще?

Разрезать этими полигонами придётся несколько разных слоёв. И запускать это всё хозяйство мне было бы удобно по ночам, поэтому, наверное, надо делать скрипт (да и вроде кроме скрипта в этом случае никаких других вариантов нет?).
    
    

2 Ответы

0 голосов
ответил 01 Авг, 09 от aleonov (7,720 баллов)
А Union не подойдет? http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=Union_(Analysis)

Что касается скрипта, то можно воспользоваться визуальной средой моделирования Model Builder http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=An_overview_of_ModelBuilder или запустить инструмент в режиме Batch http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=An_overview_of_batch_processing
0 голосов
ответил 01 Авг, 09 от TDenis (42,620 баллов)
LAL77, спасибо за ответ!
А Union не подойдет?

Подойдёт. Если из результата научиться выкидывать полигоны, которыми режем (их легко определить - у них значение "-1" в поле бывшего OBJECTID слоя с объектами). И почистить таблицу атрибутов, в ней много лишних полей. Наверняка есть какие-то инструменты для этого, поищу.

А я тот свой вариант попробовал сделать. Сначала Split, потом Merge, и в конце Spatial Join, чтобы приписать объекту номер полигона, в который он попадает. Работает всё это, конечно, гораздо медленнее чем ваш вариант с Union. Да и не понимаю пока, как в ModelBuilder соединить результат Split (Workspace) со входом Merge (набор слоёв).

---------
Чтобы было понятнее о чем идет речь, попробую пояснить на примере. Есть некоторый набор объектов, пусть это будут здания. И есть другой слой - планшеты, полигоны с названиями (номенклатурой). Планшеты не пересекаются, идут стык в стык. Надо разрезать домики границами планшетов и каждому получившемуся кусочку домика приписать номер планшета, в который он входит.
    
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...