заполнить поле таблицы

0 голосов
спросил 30 Авг, 07 от AndreyL (5,420 баллов) в категории Программные продукты Esri
Есть точечный и полигональный слои. Нужно сделать так: если точка лежит на каком то полигоне, то в заданное поле таблицы точечного слоя нужно записать значение из заданного поля таблицы полигонального слоя. Если в этом поле таблицы полигонального слоя стоит определенное значение (например, оно пустое), то не записывать. Если точка не лежит на полигоне, то тоже не записывать. Это примерно пересечение, но без создания нового слоя. Сейчас приходится делать через создание дополнительного слоя пересечения, потом в Акцессе обновлять поля. А можно ли только средствами АркГИС? Например запустить SQL-запрос на обновление из ModelBuilder’а?

12 Ответы

0 голосов
ответил 30 Авг, 07 от _YBI_ (5,960 баллов)

делал такое в мап инфо через ''update column'' в аркгисе не нашел ((

0 голосов
ответил 30 Авг, 07 от dsavitskiy (10,720 баллов)
spatial join - получаем возможность проставить атрибуты для пересекающихся. Остальное через тот же Field Calculator
0 голосов
ответил 30 Авг, 07 от AndreyL (5,420 баллов)

Не понял, что такое «spatial join». Пробовал обычный join из Дата Менеджмент Тулз – Джоинз, получается, что если заполнять значениями из своей таблицы, то все нормально, а если те же значения из связанной, то затыкается, причем на каком-нибудь сотом шаге, но первые 99 все равно не заполнены. Похоже, сбрасывает виртуальную таблицу только полностью. Скопировал связанную таблицу, проверил строку, в которой идет ошибка – есть такая строка в связанной таблице, и значение в поле-источнике ненулевое.

0 голосов
ответил 30 Авг, 07 от Alexander1 (32,520 баллов)
See "Joining the attributes of features by location" in ArcGIS Desktop Help.
0 голосов
ответил 30 Авг, 07 от dsavitskiy (10,720 баллов)

Не понял, что такое «spatial join». Пробовал обычный join из Дата Менеджмент Тулз – Джоин


В 9.2 тулбоксе в закладке Index вбиваете "spatial join", нажимаете кнопку "Locate"
впредыдущих версиях только через правую кнопку на слое, Joins and Relate -> Join...
В типе соединиения указываете "...based on spatial location"
получаете объединение по пространственному положения объектов, а не по атрибуту.
0 голосов
ответил 30 Авг, 07 от AndreyL (5,420 баллов)

Да, спасибо, понял. А теперь как это загнать в модель? Есть ли такой инструмент в ТулБоксе? Хотя количество действий сократилось до двух, может и модель уже не нужна.

0 голосов
ответил 30 Авг, 07 от Alexander1 (32,520 баллов)
...Есть ли такой инструмент в ТулБоксе? ..
    
Analysis Tools -> Overlay -> Spatial Join
    
    
    
    
0 голосов
ответил 31 Авг, 07 от AndreyL (5,420 баллов)

Нет, там нету. В Analysis Tools -> Overlay только Erase, Identity, Intersect, Symmetrical Difference, Union и Update. У меня АркГИС 9.0. Может быть, в это есть только в поздних версиях?

0 голосов
ответил 31 Авг, 07 от AndreyL (5,420 баллов)

Блин, понял! Это и есть Identity. Только за топологией полигонального слоя нужно следить – если полигоны пересекаются, то для каждого полигона будет создана отдельная точка.

0 голосов
ответил 17 Сен, 07 от geologic (39,860 баллов)
Spatial Join убрали за ненадобностью. Вернули назад в 9.2 по просьбам трудящихся... :)
    
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...