Работа с атрибутами

0 голосов
спросил 07 Дек, 06 от ASDA (2,020 баллов) в категории Программные продукты Esri

Подскажите.

Имеются два векторных слоя (shp), 1-й содержит полигоны ввиде квадртов, 2-й полигоны ввиде треугольников. Как сделать запрос чтобы атрибуты всех треугольников входящих в полигон квадрата записывались в атрибутику 1-ого слоя со средними значениями? При этом для каждого треугольника имеется атрибут квадрата ввиде B2, F7 AB34 и т.д.
 
image
 
 

2 Ответы

0 голосов
ответил 07 Дек, 06 от Vadim (28,120 баллов)
Если, я правильно понял, то речь идет об агрегировании записей. Т.е. делаем group by таблицы 2-го слоя по полю ID квадрат с расчетом средних значений в остальных полях. Здесь существует несколько способов.
1. Насколько мне известно в ArcGIS отсутствует прямая функция агрегирования классов пространственных объектов и объектных классов на основе их атрибутов, если это не так, то поправьте меня, было бы интересно узнать. Но есть специальня функция связывания, которая позволяет производить пространственную выборку объектов одного слоя на основе другого с группированием атрибутов:
 
image
Но эта функция не очень удобна, так как при выборке одни и те же объекты 1-го слоя могут попадать в разные объекты 2-го слоя. Поэтому если у нас в первом слое имеется ID_KEY к второму слою, то правильнее работать с атрибутами с последующим связыванием. Вначале мы агрегируем таблицу слоя 1 по полю ID_KEY, а далее полученную таблицу связываем по этому полю с таблицей слоя 2.
 
2. Для этого, на мой взгляд, удобнее всего использовать XTools Pro - extension for ArcGIS (очередная реклама коммерческого продукта, в связи с отсутствием необходимого функционала у разработчиков ESRI , или моим незнанием). Эта примочка имеет тулзу aggregate features/records.
 
3. Также для агрегации можно выгрузить табличку 1-го слоя в MS Access или MS SQL, или еще во что-нибудь, и сделать агрегирование там.
0 голосов
ответил 08 Дек, 06 от lalex (4,420 баллов)

Если атрибуты уже записаны в таблице треугольников, то задача не-гисовская, чисто для базы данных. Элементарный запрос SELECT AVG(VALUE1), AVG(VALUE2) ... FROM TRIANGLES GROUP BY ID_KVADRATA.  Конструкция типовая, даже я бы сказал школьно-учебная, так что, возможно, даже ArcMap поддерживает необходимые SQL-операторы. Зайдите в построитель и рискните.

Если нет, то аксес сделает это с ходу. Если притом ваша геометрия в геоБД, то ничего конвертировать не надо, зайдите в mdb Аксесом и запустите запрос. 
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...