GIS-LAB

Географические информационные системы и дистанционное зондирование

Визуализация данных уловов на базе табличных данных и регулярной полигональной сети

Реализация пространственного запроса 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, устанавливаем ее:

  • распаковываем загруженный из интернета файл в папку, из которой будет работать надстройка;
  • запускаем ArcGIS (ArcMap или ArcCatalog (надстройка работает в обеих программах));
  • выбираем меню Tools, в нем выбираем Customize…;
  • в появившемся диалоговом окне Customize выбираем Add from file…;
  • выбираем папку, в которой расположен Fishnet.dll;
  • выбираем Fishnet.dll и нажимаем Open.
  • выбираем закладку Commands диалогового окна Customize.
  • в окне Categories диалогового окна Customize выбираем запись Developer Samples;
  • в окне Commands диалогового окна Customize выбираем Fishnet;
  • перетаскиваем Fishnet в любую панель ArcGIS;
  • закрываем диалоговое окно Customize.

Установив расширение, запускаем его. В диалоговом окне Create Fishnet (создать сетку) нужно ввести параметры, необходимые для построения регулярной полигональной сети. Особо отметим, что флажок напротив Create Spatial Index обязательно должен быть установлен, в результате будет создано индексное поле, по которому мы сможем в дальнейшем обновлять данные.

В нашем случае:

  • Параметр Lover Left Corner (Нижний Левый Угол) указываем для Х (долгота) 125, для Y (широта) 30;
  • Параметр Number Of (Количество) указываем Rows (Строк) 35 (т.е. 65-30=35 строк), а в Columns (Столбцы) 55 (т.е. 180-125=55 столбцов);
  • Параметр Size of each Cells (Размер ячеек) указываем для Width (Ширина) и для Height (Высота) по 1;
  • Параметр Specify Output Shapefile выбираем месторасположение шейп-файла и указываем его имя (в нашем случае - 1-градусный);
  • При необходимости в рамке Coordinat System (optional) выбираем Систему координат для создаваемого шейп-файла;
  • Параметр Make (Сделать) отмечаем Polygons (Полигоны).
fishnet

Результатом работы будет регулярная полигональная сеть заданного географического охвата и размеров ячейки.

фрагмент полигональной сети

В результате работы расширения 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
B
C
D
E
F
G
H
I
J
K
L
M

подзона
институт
судно
Дата
Широта
Долгота
Сетей_шт.
Сетей_м
Ячея
застой_мин.
нерка_экз.
нерка_кг
кета_экз

N
O
P
Q
R
S
T
U
V
W
X
Y
Z

кета_кг
горбуша_экз.
горбуша_кг
чавыча_экз.
чавыча_кг
кижуч_экз.
кижуч_кг
сима_экз.
сима_кг
микижа_экз.
микижа_кг
вылов_экз.
вылов_кг

Унифицировав данные, приступаем к их обработке. В меню 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 последовательно появляющихся в диалоговых окнах указываем:

  1. полный путь к папке (каталогу), в которой располагаются dbf-файлы;
  2. полный путь к папке (каталогу), в которой располагаются шейп-файлы.

В результате работы данной процедуры в папке с dbf-файлами по их количеству и с их именами будут созданы каталоги, содержащие переименованные шейп-файлы с добавленными данными в dbf-файлы. Теперь шейп-файлы можно загружать в ArcGIS и проводить визуализацию. Пример итогового варианта распределения плотностей лососей:

результирующая карта

Представленный выше алгоритм является альтернативной реализацией пространственной связи между двумя слоями или слоем и таблицей с данными (spatial join). Данный подход имеет свои преимущества при использовании в основном табличных данных в формате таблиц Excel.

Обсудить в форуме Комментариев — 0

Последнее обновление: March 12 2024

Дата создания: 30.12.2006
Автор(ы): Сергей Марченко