Реализация пространственного запроса assign by location с помощью Excel и дальнейшая визуализация в ArcGIS
Обсудить в форуме Комментариев 0
Целью настоящего сообщения является изложение процесса обработки данных по уловам гидробионтов для последующей визуализации их с помощью регулярной полигональной сети в ArcGIS. В данной статье подробно разбирается визуализация данных на примере улова тихоокеанских лососей.
Допустим, перед нами стоит задача подготовить для последующей визуализации в ArcGIS данные, отражающие плотность лососей на акватории, ограниченной координатами 30-65 с.ш. и 125-180 в.д.
Для визуализации данных, необходимы 2 программы: ArcGIS и Excel и 2 расширения для них Fishnet для ArcGIS и SeaSalmonCatch для Excel). Надстройка для ArcGIS доступна через Arcscripts , надстройку для MS Excel можно получить, прислав запрос на salmon@magniro.ru.
Следуя инструкциям, прилагающимся к надстройке Fishnet, устанавливаем ее:
Установив расширение, запускаем его. В диалоговом окне Create Fishnet (создать сетку) нужно ввести параметры, необходимые для построения регулярной полигональной сети. Особо отметим, что флажок напротив Create Spatial Index обязательно должен быть установлен, в результате будет создано индексное поле, по которому мы сможем в дальнейшем обновлять данные.
В нашем случае:
|
Результатом работы будет регулярная полигональная сеть заданного географического охвата и размеров ячейки.
В результате работы расширения Fishnet создается полигональная тема в формате shape-file. Эта тема в свою очередь состоит из 5 файлов, которые имеют одинаковое название, но разные расширения: в нашем случае все файлы с именем «1-градусный», а расширения shp, shx, dbf, sbx и sbn. Из всего этого разнообразия для дальнейшей работы нам нужен только файл, имеющий расширение dbf. В нем хранятся атрибуты каждой ячейки полигональной сети, а иными словами – информация, которая отражается на карте. Сейчас в dbf-файле находится только одно индексное поле, содержащее порядковый номер каждой ячейки.
Внести в dbf-файл данные можно в MS Excel. В случае большого количества ячеек заполнение dbf-файла трудоемко и может привести к ошибкам. Поэтому при подготовке материалов для их представления в ArcGIS предлагается воспользоваться надстройкой (Add-In) SeaSalmonCatch для Excel, специально подготовленной для визуализации данных по уловам тихоокеанских лососей в период исследования их морского периода жизни. Единственное, что требуется – установить надстройку (Надстройка в Windows XP копируется в Имя диска:\Documents and Settings\имя пользователя\Application Data\Microsoft\AddIns\, а в MS Excel она включается в меню Сервис\Надстройки…) и привести данные к единой форме (таблица) – поля с A по J должны быть заполнены.
Поле |
Наименование |
Поле |
Наименование |
---|---|---|---|
A |
подзона |
N |
кета_кг |
Унифицировав данные, приступаем к их обработке. В меню SeaSalmonCatch (оно появляется после установки одноименной надстройки и возможно для его появления придется перезапустить MS Excel) выбираем пункт "Отбор данных для полигонов". В появившемся диалоговом окне указываем параметры, по которым мы хотим отобрать данные. Пример заполения диалоговой формы SeaSalmonCatch при отборе данных по плотности лососей на акватории, ограниченной координатами 30-65 с.ш. и 125-180 в.д., приведен ниже.
Отметим, что обработка ведется на отдельных листах и исходные материалы не изменяются. Кроме того, для каждого дискретного периода времени формируется свой лист. Эти листы и будут подставляться в качестве dbf-файлов.
Для того, чтобы обеспечить правильное связывание dbf-файлов, сформированных в ходе работы Fishnet и SeaSalmonCatch, у нас есть индексное поле как в шейп-файле (для этого мы ставили флажок напротив Create Spatial Index в диалоговом окне Create Fishnet, так и эквивалентное в таблице Excel созданное по тому же географическому охвату и шагу ячейки. Алгоритм работы надстройки SeaSalmonCatch таков, что в ходе ее выполнения формируется такое же индексное поле, а для проверки правильности отбора данных создаются 2 дополнительных поля Lat и Long, в которых приводятся координаты, левой и правой границы долготы и нижней и верхней границ широты.
В том случае, если получается что для одной ячейке полигональной сети соответствует несколько значений в таблице данных (например, для района, ограниченного координатами 51-52 с.ш. и 164-165 в.д. есть несколько станций с уловами лососей), то они объединяются в одно значение как среднее арифметическое.
Для сохранения 1 листа или всех листов в формат dbf можно воспользоваться соответствующими пунктами в меню SeaSalmonCatch или стандартными средствами MS Excel (через меню Файл\Сохранить как… с последующим выбором типа файла, в который будут данные сохраняться).
Теперь скажем несколько слов о подстановке dbf-файлов. Способов это сделать много, но мы предлагаем остановиться на следующем – автоматически присвоить имена dbf-файлов, сформированных нами в MS Excel, всем 5 файлам, созданным в ArcGIS при выполнении надстройки Fishnet. Для этого инициируем в меню SeaSalmonCatch пункт "Распределение шейп-файлов" и в 2 последовательно появляющихся в диалоговых окнах указываем:
В результате работы данной процедуры в папке с dbf-файлами по их количеству и с их именами будут созданы каталоги, содержащие переименованные шейп-файлы с добавленными данными в dbf-файлы. Теперь шейп-файлы можно загружать в ArcGIS и проводить визуализацию. Пример итогового варианта распределения плотностей лососей:
Представленный выше алгоритм является альтернативной реализацией пространственной связи между двумя слоями или слоем и таблицей с данными (spatial join). Данный подход имеет свои преимущества при использовании в основном табличных данных в формате таблиц Excel.
Обсудить в форуме Комментариев 0
Последнее обновление: March 12 2024
Дата создания: 30.12.2006
Автор(ы): Сергей Марченко
© GIS-Lab и авторы, 2002-2021. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов. (подробнее).