Исследование распространения кораллов и губок

В этом разделе вы изучите некоторые факторы, контролирующие распространение кораллов и губок в водах вокруг острова Каталина. Сначала вы загрузите данные из Национального управления океанических и атмосферных исследований (NOAA), выберите область интереса и подготовите данные для исследования.

Загрузка данных о глубоководных кораллах и губках

Данные NOAA показывают известные местоположения кораллов и губок по всему миру. Изучение возможностей загрузки общедоступных данных и работы с ними является важным аспектом обучения использованию ГИС. Вы начнете с загрузки двух наборов данных из NOAA’s Deep Sea Coral Research and Technology Program. Сначала вы отправитесь на портал Deep-Sea Coral and Sponge Map. Этот сайт содержит данные, которые обновляются ежеквартально и полезны для изучения океанических видов. Шаги, описанные в этом разделе, покажут вам, как загружать данные по видам для определенного региона мира. Поскольку область вашего исследования находится вокруг острова Каталина, недалеко от побережья Калифорнии, вы загрузите данные для северной части Тихого океана.

  1. На своем компьютере откройте File Explorer. В легкодоступном месте на вашем компьютере создайте папку и назовите ее DeepSeaCoralSponge.

    В этом руководстве данные находятся в папке C:\Lessons\DeepSeaCoralSponge\. Вы можете использовать другую папку, но вам нужно будет изменить пути в следующих инструкциях.

  2. Перейдите к https://www.ncei.noaa.gov/maps/deep-sea-corals/mapSites.htm.

    Портал NOAA Deep-Sea Coral & Sponge Map Portal содержит карту, созданную и управляемую NOAA Deep Sea Coral Research and Technology Program. Данные для этой карты обновляются ежеквартально.

    Страница портала NOAA Deep-Sea Coral and Sponge Map

  3. Вверху страницы щелкните Запрос данных.

    Запрос данных на ленте на странице портала

  4. На панели Запроса данных в разделе Region щелкните ниспадающее меню и щелкните North Pacific.

    North Pacific выбрано для Region на панели Запроса данных

  5. Щелкните Search.

    Кнопка поиска на панели Запроса данных

    Поиск может занять несколько минут.

  6. Когда данные загрузятся, в верхней части страницы щелкните Скачать данные.

    Кнопка Скачать данные на ленте на странице портала

    Появится панель загрузки данных.

  7. Примите значения по умолчанию и щелкните Настраиваемая загрузка.

    Кнопка Настраиваемая загрузка

    Откроется настроенная страница загрузки с данными для Северо-Тихоокеанского региона.

  8. Прокрутите вниз и щелкните Тип файла.
  9. Для Типа файла выберите вариант, начинающийся с .csv.

    Тип файла установлен на .csv

  10. Щелкните Подтвердить.

    Для загрузки данных может потребоваться несколько минут.

  11. Найдите загруженный файл .csv на компьютере.
    Подсказка:

    Имя файла начинается с deep_sea_corals_, за которыми следует строка символов, например deep_sea_corals_f6a2_cb18_f6f1.csv.

  12. Перетащите файл .csv в папку DeepSeaCoralSponge, которую вы создали ранее.

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

Загрузка моделей NOAA прибрежного рельефа

NOAA Coastal Relief Models - это общедоступные наборы растровых данных, которые объединяют батиметрию и прибрежный рельеф. Вы скачаете модель для Южной Калифорнии.

  1. Перейдите на страницу NCEI Geoportal.

    Поскольку областью вашего исследования является остров Каталина, вы загрузите данные для региона Южная Калифорния.

  2. В поисковом окне введите U.S. Coastal Relief Model - Southern California Version 2 и нажмите Enter.

    U.S. Coastal Relief Model for Southern California найдена на веб-сайте NCEI Geoportal

  3. В результатах поиска щелкните U.S. Coastal Relief Model - Southern California Version 2.

    Результаты поиска для U.S. Coastal Relief Model - Southern California Version 2

  4. Прокрутите до раздела Download Data и щелкните вторую ссылку Download NetCDF File.

    Ссылка на загрузку NetCDF

    Загружается файл crm_socal_3as_vers2.nc, представляющий собой версию данных с разрешением 3 угловых секунды (90 метров). Другая ссылка Download NetCDF File указывает на версию данных с разрешением 1 угловая секунда (30 метров). Для целей этого руководства достаточно данных с разрешением 90 метров.

    Подсказка:

    Это файл размером 512 МБ. В зависимости от скорости вашего соединения, загрузка на компьютер может занять несколько минут.

  5. Когда загрузка будет завершена, найдите файл crm_socal_3as_vers2.nc на своем компьютере и перетащите его в папку проекта.
  6. Щелкните правой кнопкой мыши файл crm_socal_3as_vers2.nc и переименуйте его в SouthernCABathymetry.nc.

    Файл deep_sea_corals_ .csv содержит строку, в которой приводятся сведения о единицах измерения широты, долготы и столбцов глубины. Хотя это полезно для исследователя, рассматривающего таблицу как электронную таблицу, это вызовет проблемы при преобразовании таблицы в точечные объекты. Вы откроете файл .csv в редакторе электронных таблиц и удалите эту строку.

  7. Откройте файл deep_sea_corals_ .csv в Microsoft Excel (или в любом редакторе электронных таблиц).

    Вторая строка содержит текстовое описание единиц измерения для столбцов K, L, M и T. Значения данных, которые вам нужно импортировать, находятся в строках после строки 2.

    Вторая строка в файле csv

  8. Щелкните номер строки для строки 2, чтобы выбрать строку.

    Номер строки выбран для строки 2

  9. Щелкните строку правой кнопкой мыши и щелкните Удалить.

    Удалить в контекстном меню для выбранной строки

    Строка удалена. Теперь таблица данных имеет правильный формат и может быть импортирована в базу геоданных.

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

  10. Щелкните кнопку Сохранить и закройте файл.

Вы загрузили и настроили формат общедоступных данных из NOAA, чтобы их можно было импортировать в базу геоданных. Далее вы добавите данные в ArcGIS Pro, подготовите данные NetCDF для анализа и создадите точки из таблицы базы геоданных.


Импорт модели прибрежного рельефа

Загруженные вами наборы данных - это лишь малая часть данных, которые публикует NOAA. В этом разделе вы узнаете, как использовать модели прибрежного рельефа для создания производных растров окружающей среды вокруг острова Санта-Каталина. Затем полученная информация будет включена в базу данных о местонахождении кораллов и губок.

Добавление данных и изменение символов

Далее вы начнете новый проект в ArcGIS Pro и добавите в него данные.

  1. Откройте ArcGIS Pro.
  2. В разделе Новый проект щелкните Карта.
  3. Назовите проект Deep Sea Coral and Sponge Database.

    Новый проект с именем Deep Sea Coral and Sponge Database

  4. Нажмите OK.
    Примечание:

    Если панель Каталог закрыта, щелкните вкладку Вид и щелкните Панель Каталог.

  5. На панели Каталог раскройте папку Базы данных.

    Развернутая стрелка для Баз данных на панели Каталог

    При создании проекта ArcGIS Pro создает новую базу геоданных для хранения данных проекта. Вы импортируете таблицу CSV в эту базу геоданных.

  6. Щелкните правой кнопкой мыши Deep Sea Coral and Sponge Database, укажите Импорт и щелкните Таблицы.

    Импорт таблиц для базы данных Deep Sea Coral and Sponges

  7. Для Входной таблицы найдите и выберите файл .csv, который вы загрузили и отредактировали ранее в этом руководстве.

    Файл CSV, загруженный и отредактированный ранее в руководстве, добавлен во Входную таблицу на панели инструментов Таблица в базу геоданных.

  8. Щелкните Запустить.

    Инструмент будет работать минуту или две, пока таблица CSV импортируется в базу геоданных.

  9. На панели Каталог разверните базу геоданных и перетащите таблицу на карту.

    Перетащите таблицу на карту.

    Таблица добавлена в раздел Автономные таблицы на панели Содержание.

  10. На панели Содержание щелкните правой кнопкой мыши таблицу deep_sea_corals и щелкните Отобразить данные XY.

    Отобразить данные XY для deep_sea_corals в разделе Автономные таблицы

  11. На панели Отобразить данные XY для Входного класса объектов введите CoralandSpongeLocations.

    Инструмент определяет, что таблица содержит поля долготы и широты, и назначает их входным параметрам Поле X и Поле Y.

  12. Нажмите OK.

    Панель Отобразить данные XY

    Инструмент работает около минуты. По завершении на карту добавляется новый класс пространственных объектов CoralandSpongeLocations.

    Класс объектов CoralandSpongeLocations добавлен на панель Содержание и на карту

    Таблица deep_sea_corals больше не нужна.

  13. В разделе Автономные таблицы щёлкните правой кнопкой мыши таблицу deep_sea_corals и щелкните Удалить.

    Удалить для таблицы deep_sea_corals

    Далее вы отредактируете символы для слоя CoralandSpongeLocations.

  14. Щелкните правой кнопкой мыши слой CoralandSpongeLocations и щелкните Символы.

    Символы для слоя CoralandSpongeLocations

    Появится панель Символы.

  15. На панели Символы щелкните ниспадающий список Основные символы и щелкните Уникальные значения.

    Уникальные значения для Основных символов на панели Символы для векторного слоя CoralandSpongeLocations

  16. Щелкните ниспадающий список Поле 1 и щелкните VernacularNameCategory.

    Поле 1 установлено на VernacularNameCategory

  17. Закройте панель Символы.
  18. На панели быстрого доступа щелкните кнопку Сохранить, чтобы сохранить проект.

    Сохранить на Панели быстрого доступа

Задать систему координат для своей карты

Вас интересует изучение факторов, контролирующих распространение кораллов и губок в водах вокруг острова Каталина у берегов Калифорнии. Вы зададите систему координат карты как систему координат проекции, разработанную для Калифорнии, чтобы обеспечить точность.

  1. На панели Содержание дважды щелкните Map.

    Откроется окно Свойства карты.

  2. В окне Свойства карты щелкните вкладку Системы координат.

    Вкладка Системы координат в окне Свойства карты

  3. В окне Системы координат XY доступны введите NAD 1983 California (Teale) Albers и нажмите Enter.
  4. Разверните Система координат проекции, разверните State Systems и щелкните NAD 1983 California (Teale) Albers (Meters).

    Найдена и выбрана система координат NAD 1983 California (Teale) Albers (Meters)

  5. Нажмите OK.

    Система координат карты изменяется на систему координат NAD 1983 California (Teale) Albers, а единицы измерения XY карты устанавливаются в метрах.

    Система координат карты изменена на NAD 1983 California (Teale) Albers

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

Выбор данных для проекта

Теперь, когда вы загрузили данные для всей северной части Тихого океана, вы установите область интереса (AOI) для своего проекта, а затем вырежете данные по этой области. Это позволяет работать с более управляемым поднабором данных.

  1. На панели Каталог щелкните Портал и щелкните ArcGIS Online. В строке поиска введите California_Detail_Learn_ArcGIS.
    Примечание:

    Чтобы открыть панель Каталог, на ленте щелкните вкладку Вид и в группе Окна щёлкните Панель Каталог.

    Вкладки Портал и ArcGIS Online на панели Каталог

  2. В результатах поиска перетащите на карту слой California_Detail_Learn_ArcGIS, принадлежащий Learn_ArcGIS.
  3. На панели Содержание щелкните правой кнопкой мыши dtl_st_trim, щелкните Переименовать и назовите слой California.
  4. На ленте щелкните вкладку Карта и в группе Запрос щелкните Найти.

    Инструмент Найти в группе Запрос на вкладке Карта.

  5. На панели Найти в строке поиска введите Catalina Island и щелкните Catalina Island, CA, USA.

    Результаты поиска для Catalina Island на панели Найти

    Карта приблизится к острову Каталина

  6. В нижнем углу окна карты щелкните ниспадающий индикатор масштаба и выберите 1:500 000.

    Индикатор масштаба установлен на 1:500 000

  7. На ленте щелкните вкладку Карта и в разделе Навигация щелкните Исследовать.

    Инструмент Исследовать в группе Навигация на вкладке Карта

  8. Щелкните карту и переместите карту так, чтобы остров Каталина оказался в центре.
  9. В группе Выборка щелкните Выбрать.

    Инструмент Выбрать в группе Выборка на вкладке Карта

    Чтобы выбрать только точки кораллов и губок, вы сделаете слой CoralandSpongeLocations единственным доступным для выбора слоем.

  10. На панели Содержание щелкните правой кнопкой мыши слой CoralandSpongeLocations, укажите Выборка и щелкните Сделать только этот слой доступным для выборки.
  11. Активировав инструмент Выбрать, обведите рамкой точки кораллов и губок в водах, окружающих остров Каталина.

    Рамка, перетаскиваемая вокруг точек кораллов и губок, окружающих остров Каталина, с активированным инструментом Выбрать

    Выбранные точки выделяются голубым цветом, указывающим на то, что точки выбраны.

    Выбранные точки подсвечиваются на карте.

  12. На панели Содержание щелкните правой кнопкой мыши CoralandSpongeLocations, наведите курсор на Данные и щелкните Экспорт объектов.

    Экспорт объектов для опций Данные слоя CoralandSpongeLocations

  13. В окне Экспорт объектов для Выходного класса объектов введите CoralandSpongeCatalina.

    Выходной класс объектов установлен в окне Экспорт объектов.

    Инструмент имеет сообщение, указывающее, что входные данные имеют выборку. В зависимости от выбранной области у вас может быть выбрано больше или меньше точек. Точное количество не важно, но примерно 6000 - хорошее число.

    Перед запуском инструмента вы установите проекцию выходного класса пространственных объектов.

  14. В инструменте Экспорт объектов щелкните вкладку Параметры среды.
  15. В разделе Выходные координаты щелкните ниспадающий список Выходная система координат и щелкните Текущая карта [Map].

    Выходная система координат установлена на Текущую карту [Map] в окне Экспорт объектов.

  16. Нажмите OK.

    Инструмент экспортирует выбранные объекты для области интереса вокруг острова Каталина. Если у вас есть более одной изучаемой области, вы можете использовать тот же метод установки системы координат на подходящую для анализа в этом месте, масштабирования местоположения, выбора объектов и их экспорта с использованием системы координат карты для создания других наборов данных для анализа и сравнения.

  17. На панели Содержание отключите слой CoralandSpongeLocations.

    Теперь отображаются только выбранные вами объекты вокруг острова Каталина.

    Калифорнийские кораллы

  18. Сохраните проект.
    Подсказка:

    Вы также можете сохранить проект, нажав Ctrl+S.

Создание ограничивающего прямоугольника

Далее, вы создадите ограничивающий прямоугольник для своей области интереса и импортируете модель прибрежного рельефа в виде растра.

  1. Если необходимо, откройте ваш проект в ArcGIS Pro.
  2. Щелкните вкладку Анализ на ленте и выберите Инструменты.

    Инструменты в группе Геообработка на вкладке Анализ

    Откроется панель Геообработка.

  3. На панели Геообработка в строке поиска введите Минимальная ограничивающая геометрия. В списке результатов щелкните инструмент Минимальная ограничивающая геометрия.

    Инструмент Минимальная ограничивающая геометрия

  4. На панели инструмента Минимальная ограничивающая геометрия задайте следующие параметры:
    • Для Входных объектов выберите CoralandSpongeCatalina.
    • Для Выходных объектов введите CatalinaBoundary.
    • В качестве Типа геометрии выберите Конверт.

    Параметры, заданные на панели инструмента Минимальная ограничивающая геометрия

  5. Щелкните Запустить.
  6. На панели Содержание щелкните символ слоя CatalinaBoundary.

    Символ для CatalinaBoundary на панели Содержание

  7. На панели Символы щелкните вкладку Галерея и выберите Черный контур 2 тчк.

    Черный контур 2 тчк. на вкладке Галерея панели Символы

    Теперь у вас есть полигон, представляющий изучаемую область, и набор точек для наблюдений за кораллами и губками внутри него.

    Полигональный объект границ острова Каталина

Добавление батиметрических данных

Модель прибрежного рельефа представлена в формате NetCDF. NetCDF - это формат данных, который используется для доступа к массивным научным данных и обычно используется в океанологии. Вы создадите набор растровых данных из файла NetCDF для анализа.

  1. На панели геообработки щелкните стрелку назад. Наберите на клавиатуре Make NetCDF Raster Layer и нажмите Создать растровый слой NetCDF, чтобы открыть этот инструмент.

    Найдите и откройте инструмент Создать растровый слой NetCDF

  2. На панели инструмента Создать растровый слой NetCDF для Входного файла netCDF, щелкните кнопку Обзор.
  3. В окне Входного файла netCDF перейдите к папке C:\DeepSeaCoralSponge (или к тому месту, где вы сохранили файл crm_socal_3as_vers2.nc).

    Файл SouthernCABathymetry.nc выбран в окне Входной файл netCDF

  4. Щелкните SouthernCABathymetry.nc и щелкните OK.

    Параметр Переменная установлен на Band1, а значения X и Y измерений установлены на долготу и широту.

    Параметры инструмента Создать растровый слой NetCDF заполнены.

  5. Щелкните Запустить.
    Подсказка:

    Этот шаг может занять несколько минут.

    Слой батиметрии Bathymetry

    Растровый слой отображается для всей территории Южной Калифорнии.

  6. Сохраните проект.

Подготовка слоев для анализа

Чтобы точно проанализировать загруженные данные, вы спроецируете и вырежете слой батиметрии. Лучше всего выполнять анализ растров рельефа или батиметрии, которые были спроецированы в системы координат проекции с единицами, соответствующими их единицам высоты или глубины. В данном случае глубины указаны в метрах. Вы спроецируете растр в проекции системы координат Калифорнии, которую вы установили для фрейма данных и слоя CoralSpongeCatalina. В этой системе координат в качестве линейных единиц используются метры, которые совпадают с единицами измерения глубины.

  1. На панели Геообработка найдите и откройте инструмент Проецировать растр.
  2. На панели Проецировать растр для Входного растра выберите Band1_Layer, а для Выходного набора растровых данных введите CatalinaBathymetry.
  3. Для Выходной системы координат щёлкните ниспадающее меню и щелкните Текущая карта [Map].

    Выходная система координат установлена как Текущая карта [Map]

    Система координат обновляется в соответствии с системой координат фрейма данных.

    Система координат обновляется

    Также автоматически применяется географическое преобразование. Преобразование используется, когда входная и выходная географические системы координат имеют разные географические системы координат (ГСК), чтобы обеспечить правильное выравнивание данных. В этом случае преобразование учитывает разницу между GCS WGS 1984, используемой данными NetCDF, и GCS NAD 1983, используемой системой координат California Teale Albers.

  4. Выберите вкладку Параметры среды.
  5. На вкладке Параметры среды в разделе Экстент обработки щелкните ниспадающее меню Экстент и щелкните CatalinaBoundary.

    Экстент установлен на CatalinaBoundary в разделе Экстент обработки на панели инструмента Проецировать растр

    При этом будут проецироваться только данные батиметрии в области интереса, в результате чего растр меньшего размера будет охватывать только изучаемую область. Ограничение объема обработки областью интереса экономит место на диске и сокращает время обработки.

  6. Щелкните Запустить.

    Батиметрические данные ограничены областью интереса

    Проецирование всего растра батиметрии может занять пару минут; это намного быстрее.

  7. На панели Содержание щелкните правой кнопкой мыши CatalinaBathymetry и щелкните Символы.
  8. На панели Символы щелкните кнопку опций и щелкните Импорт из слоя.

    Импорт из слоя в меню опций на панели Символы

    Появится инструмент Применить символы слоя.

  9. Для Символов слоя выберите Band1_Layer и щелкните Запустить.

    Теперь, когда у вас есть батиметрические данные, привязанные к области Каталина, спроецированные на плоскую систему координат и обозначенные символами, вам больше не нужен на карте более крупный слой Band1_Layer.

  10. На панели Содержание щелкните правой кнопкой мыши Band1_Layer и щелкните Удалить.

    Обновленные символы слоя CatalinaBathymetry

  11. Сохраните проект.

Выполнение анализа растров

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

  1. На панели Геообработка в поисковом окне введите Уклон (Spatial Analyst). Щелкните инструмент Уклон.
  2. На панели инструмента Уклон для Входного растра выберите CatalinaBathymetry. Для Выходного растра введите CatalinaSlope.

    Параметры, заданные на панели инструмента Уклон

  3. Щелкните Запустить.

    Уклон вычисляется для каждой ячейки в области интереса. Уклон определяет крутизну каждой ячейки растровой поверхности. Чем меньше значение уклона, тем более плоской является земная поверхность; чем больше значение уклона, тем более крутые склоны расположены на поверхности.

    Слой Slope

  4. На панели Геообработка щелкните кнопку назад. Найдите и щелкните инструмент Экспозиция (Spatial Analyst).
  5. На панели инструмента Экспозиция для Входного растра выберите CatalinaBathymetry. Для Выходного растра введите CatalinaAspect.

    Параметры, заданные на панели инструмента Экспозиция

  6. Щелкните Запустить.

    Экспозиция вычисляется для каждой ячейки в области интереса. Инструмент Экспозиция определяет направление уклона склонов. Значения всех ячеек выходного растра указывают компасное направление, к которому обращена поверхность в этом местоположении.

    Слой Aspect

  7. Сохраните проект.

Обогащение базы данных

Теперь, когда растры батиметрии, уклона и экспозиции для области интереса острова Санта-Каталина созданы, вы возьмете значения и включите их в базу данных кораллов и губок. Вы будете использовать инструмент Извлечь мультизначения в точки, чтобы добавить значения из этих трех растров в каждую из точек расположения кораллов и губок. Это позволит вам построить графики, чтобы понять, как эти параметры окружающей среды изменяются в местах, где наблюдались кораллы и губки.

  1. Откройте панель Геообработка. Найдите и откройте инструмент Извлечь мультизначения в точки.
  2. На панели инструмента Извлечь мультизначения в точки для Входного объекта выберите CoralandSpongeCatalina.
  3. В качестве Входных растров выберите следующие:
    • CatalinaBathymetry
    • CatalinaSlope
    • CatalinaAspect
  4. Для соответствующего Выходного имени поля введите следующее:
    • Bathymetry
    • Уклон
    • Экспозиция

    Заданные параметры инструмента Извлечь мультизначения в точки

  5. Щелкните Запустить.
  6. На панели Содержание щелкните правой кнопкой мыши слой CoralandSpongeCatalina и щелкните Таблица атрибутов.
  7. В таблице атрибутов прокрутите, чтобы убедиться, что значения Bathymetry, Slope и Aspect добавлены для каждого объекта.

    Значения Bathymetry, Slope и Aspect добавлены в таблицу атрибутов CoralandSpongeCatalina

  8. Закройте таблицу и сохраните проект.

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


Изучение данных с помощью Python

ArcGIS Pro включает ArcGIS Notebooks, используемый сообществом специалистов по данным для изучения данных. Вы будете использовать код Python в Notebooks для изучения отношений между тремя переменными окружающей среды и различными видами кораллов и губок. Это поможет вам понять места обитания, которые они предпочитают.

Создание диаграммы с помощью Notebooks

Вы импортировали батиметрию, получили растры уклонов и экспозиций и добавили полученные данные к наблюдениям за кораллами и губками. Хотя вы можете визуально проверять слои, чтобы получить представление, иногда проще понять ваши данные, создав диаграммы. Далее вы создадите диаграммы для изучения данных.

  1. Щелкните вкладку Анализ на ленте. В группе Геообработка щелкните ниспадающую стрелку рядом с Python и щелкните Python Notebook.

    Python Notebook в меню Python

    Появляется окно Notebook, и новый блокнот будет указан в новой группе, Notebooks на панели Каталог.

    Блокноты Python и окно Python - два способа запуска кода Python.

    Код в окне Python запускается сразу после нажатия Enter. Notebooks позволяют вводить несколько строк кода в разные ячейки, запускать код, редактировать его и повторно запускать. Notebooks полезны для прототипирования кода и анализа данных.

  2. На панели Каталог разверните Notebooks.
  3. Щелкните правой New Notebook.ipynb и выберите Переименовать.
  4. Введите CoralSponge и нажмите Enter.
  5. Щелкните пустую ячейку в блокноте.

    Пустая первая ячейка

  6. Скопируйте и вставьте или наберите на клавиатуре следующую строку кода для импорта модуля arcpy в ячейку:
    import arcpy

    Python чувствителен к регистру, поэтому заглавные буквы должны совпадать.

  7. На панели инструментов над первой ячейкой щелкните Запустить.

    Запустить на панели инструментов

    Пока ячейка выполняется, звездочка * появляется в скобках [*]. По окончании работы звездочка заменяется цифрой 1, а под первой ячейкой появляется новая пустая ячейка.

    Новая ячейка появляется ниже.

    Модуль arcpy содержит код Python для поддержки многих задач отображения и анализа рабочего стола.

    Иногда при вводе кода в ячейку может возникнуть ошибка, например, опечатка. В этом случае вы можете увидеть сообщение об ошибке после ячейки.

  8. Щелкните вторую ячейку, введите import ARCPY и щелкните кнопку Запустить.

    Запуск import ARCPY возвращает ошибку

    Эта строка кода вызывает ошибку, потому что в Python не установлен модуль с именем ARCPY. Исходная первая строка, import arcpy, выполняется правильно. Попытка импортировать ARCPY (или arcPy, или ArcPy, или любой другой вариант, кроме arcpy) не удастся. Это пример того, как чувствительность к регистру может повлиять на ваш код в Python. Незначительные опечатки, которые человек может пролистать и понять, вызовут ошибки в коде Python.

    Далее вы напишете код для создания диаграммы из ваших данных. Вы будете использовать класс Chart из arcpy.

  9. Во второй ячейке удалите строку import ARCPY.

    Вы замените код во второй ячейке кодом, который делает то же самое, что и для создания диаграммы с использованием графического пользовательского интерфейса ArcGIS Pro. Однако, когда вы создаете диаграмму с помощью класса arcpy.Chart, вы используете набор команд Python для указания сведений о диаграмме, а не щелкаете элементы пользовательского интерфейса.

  10. Скопируйте и вставьте следующий код во вторую ячейку:
    my_chart = arcpy.Chart('my_chart')
    my_chart.type = 'bar'
    my_chart.title = 'CoralandSpongeCatalina'  
    my_chart.description = 'This chart shows the mean Slope values that correspond with the taxa in the CoralandSpongeCatalina layer.'

    Первая строка (my_chart = arcpy.Chart('my_chart')) создает переменную и устанавливает ее равной новому объекту, принадлежащему классу Chart. Этот объект называется my_chart. Вы можете воспринимать класс Chart как шаблон для диаграмм. Теперь, когда вы создали диаграмму, вы должны указать, что это за диаграмма и какими свойствами она обладает. Оставшиеся строки кода делают это.

    Следующая строка (my_chart.type = 'bar') указывает, что диаграмма будет гистограммой. Она задает свойство типа диаграммы как гистограмму. Обозначение my_chart.type обращается к свойству тип my_chart, и знак равенства используется для присвоения значения 'bar' этому свойству. Класс объектов Chart поддерживает различные типы диаграмм, и они идентифицируются по именам, таким как столбчатая, линейная и точечная. Эти имена указываются в виде строк Python в кавычках.

    Следующие строки, начинающиеся с my_chart.title и my_chart.description, определяют заголовок и описание диаграммы. Код делает это так же, как задает тип - обращаясь к свойствам объекта my_chart и устанавливая для них определенные строковые значения. В этом случае вместо ввода описания в текстовом поле вы добавили строку Python в строку кода.

  11. Скопируйте и вставьте следующий код в нижнюю часть ячейки:
    my_chart.xAxis.field = 'VernacularNameCategory'
    my_chart.xAxis.aggregation = 'VernacularNameCategory'
    my_chart.xAxis.title = 'Name'
    my_chart.yAxis.field = 'Slope'
    my_chart.yAxis.title = 'Mean Slope'
    my_chart.bar.aggregation = 'MEAN'

    Следующие три строки (начинающиеся с my_chart.xAxis) определяют поле слоя, которое будет использоваться для оси X, и способ агрегирования значений в этом столбце. Для этих двух строк VernacularNameCategory является полем в таблице атрибутов слоя CoralandSpongeCatalina, которое содержит названия различных кораллов и губок. Указание VernacularNameCategory для агрегации означает, что значения будут сгруппированы по уникальным значениям в этом поле. Далее устанавливается заголовок для оси X на Имя, чтобы пометить эту ось как имена кораллов и губок.

    Две строки, начинающиеся с my_chart.yAxis и my_chart.bar.aggregation, определяют поле, заголовок и метод агрегирования для оси Y. Они будут использовать поле Slope из таблицы данных и агрегировать его, используя среднее значение. Ось Y будет надписана как Средний уклон, поскольку она будет отображать среднее значение уклона для каждой группы кораллов и губок.

    Примечание:

    Если при запуске инструмента Извлечь мультизначения в точки вы приняли имена выходных полей по умолчанию, вы должны проверить таблицу атрибутов слоя CoralandSpongeCatalina и определить имя поля, которое содержит значения уклона. Вы должны отредактировать строку my_chart.yAxis.field = 'Slope', включив в нее правильное имя поля, если это не Slope.

  12. Скопируйте и вставьте следующий код в нижнюю часть ячейки:
    my_chart.dataSource = 'CoralandSpongeCatalina'
    my_chart.addToLayer = 'CoralandSpongeCatalina'

    Наконец, эти последние две строки определяют слой на карте, который является источником данных, и добавляют диаграмму к слою.

    Примечание:

    Если вы назвали слой иначе, чем CoralandSpongeCatalina, вы должны отредактировать эту строку, чтобы она соответствовала имени слоя.

    Ячейка готова.

    Полный код для создания диаграммы.

  13. Щелкните Запустить.

    Диаграмма создается, но ничего не происходит. Чтобы увидеть диаграмму, вы должны запустить код Python, чтобы показать ее.

  14. В следующую новую ячейку скопируйте и вставьте следующий код и щелкните Запустить:

    my_chart

    Диаграмма отображается под ячейкой.

    Первая выходная диаграмма

  15. Скопируйте и вставьте следующий код в следующую ячейку:
    outChartName = "CoralandSpongeCatalinaSlope.svg"
    outSVGPath = "C:/Lessons/DeepSeaCoralSponge/" + outChartName
    my_chart.exportToSVG(outSVGPath, width=1500, height=800)

    Экспорт кода в ячейку

    Примечание:

    Если вы создали папку проекта DeepSeaCoralSponge не в C:/Lessons/DeepSeaCoralSponge/, измените путь в ячейке, чтобы он соответствовал пути на вашем компьютере. Путь может выглядеть странно с косой чертой в качестве разделителя. Python использует символ \ в качестве escape-символа, который в сочетании с другими символами может сигнализировать о разрыве строки или табуляции, поэтому для этого пути лучше использовать косую черту.

    Первая строка кода (начинающаяся с outChartName =) определяет имя файла, включая расширение, для файла диаграммы. Имя файла представляет собой строку в кавычках.

    Вторая строка (outSVGPath =) определяет строку, указывающую путь, по которому следует сохранить этот файл. К нему добавляется имя файла с помощью знака +, который можно использовать для объединения текстовых строк (это называется конкатенацией) и для добавления чисел в Python.

    Третья строка (my_chart.exportToSVG) вызывает метод exportToSVG объекта диаграммы и предоставляет полный путь с именем файла, шириной в пикселах и высотой в пикселах в скобках в качестве параметров метода.

  16. Запустите ячейку.

    Файл диаграммы будет создан в папке.

  17. На вашем компьютере в Microsoft File Explorer перейдите в папку и откройте изображение диаграммы.

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

  18. Закройте диаграмму после того, как вы проверили ее.

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

Создание функции построения диаграмм

Вы видели, как сделать одну диаграмму с помощью кода Python. Теперь вы адаптируете этот код, чтобы сделать его более пригодным для повторного использования. Вы создадите функцию Python, позволяющую создавать несколько диаграмм.

  1. Скопируйте и вставьте следующий код в следующую ячейку:
    def coral_and_sponge_chart(layer, field):

    Эта строка начинается с def. Это говорит Python о том, что вы определяете новую функцию. Следующая часть - это имя функции, coral_and_sponge_chart. Имена функций - это то, как вы обращаетесь к блоку кода внутри функции, когда хотите запустить этот код. Следующая часть в скобках. Это параметры, которые будет принимать функция. Параметры - это входные данные для функции, которые обрабатываются функцией для создания некоторого результата. Эта функция примет слой и имя поля в качестве входных данных. Это сделает гистограмму для этого поля. Строка заканчивается двоеточием. Это указывает на то, что следующие строки будут блоком кода для функции.

  2. Нажмите Enter.

    Когда вы нажимаете Enter после строки, с которой начинается определение функции, следующая строка имеет отступ в четыре пробела.

  3. Скопируйте и вставьте следующий код в ячейку:
    my_chart = arcpy.Chart('MyChart')
        my_chart.type = 'bar'

    Каждая из этих двух строк совпадает с кодом, который вы использовали для создания предыдущей диаграммы, но с отступом в четыре пробела. Python использует отступы для группировки разделов кода. Все строки блока кода внутри этой функции должны иметь отступ в четыре пробела.

    Три строки кода, введенные в одну и ту же ячейку

    Эти строки создают диаграмму из класса Chart и указывают, что это должна быть гистограмма.

  4. Нажмите Enter, скопируйте и вставьте следующий код в ячейку после строки chart.type:
    my_chart.title = layer

    Эта строка начинается так же, как и следующая строка исходного кода диаграммы, но вместо того, чтобы указывать заголовок диаграммы в виде конкретной строки, она указывает, что заголовок должен быть равен параметру входного слоя. Это означает, что заголовок выходных диаграмм будет соответствовать имени слоя, независимо от того, что это за слой.

  5. Скопируйте и вставьте следующий код в ячейку после строки my_chart.title:
    my_chart.description = f'This chart shows the mean {field} values that correspond with the taxa in the {layer} layer.'

    Эта строка похожа на строку в исходном коде диаграммы, но с некоторыми отличиями. Первое отличие заключается в том, что вместо того, чтобы устанавливать описание равным определенной строке, эта строка устанавливает его равным f-строке или форматированной строке. Форматированные строки - это строки, в которые можно подставлять значения. Они начинаются с f, а затем следуют кавычки. f указывает Python на то, что это форматированная строка.

    Следующее отличие состоит в том, что вместо включения в описание текста the mean Slope values код записывается как the mean {field} values. Как выдумаете, что это значит?

    Так как это f-строка, код {field} будет заменен именем поля из входных параметров функции. То же самое будет верно и для конца кода, включающего in the {layer} layer. {layer} будет заменено именем слоя. Таким образом, описание выходной диаграммы будет соответствовать входному слою и именам полей.

  6. В той же ячейке начните новую строку и скопируйте и вставьте следующий код:
    my_chart.xAxis.field = 'VernacularNameCategory'
        my_chart.xAxis.aggregation = 'VernacularNameCategory'
        my_chart.xAxis.title = 'Name'

    Эти три строки идентичны строкам исходного кода диаграммы, но с отступом в четыре пробела, чтобы быть частью блока кода. Функция построит столбцы для каждого значения поля VernacularNameCategory входного слоя и назовет ось X диаграммы Name.

    Эта строка завершится ошибкой и вызовет ошибку, если вы запустите функцию на слое, в котором отсутствует поле VernacularNameCategory. Однако это поле есть во всех точках CoralandSpongeLocations, поэтому оно будет работать независимо от того, какую область исследования вы выберете.

  7. В той же ячейке начните новую строку и скопируйте и вставьте следующий код:
    my_chart.yAxis.field = field
        my_chart.yAxis.title = 'Name'

    Здесь этот код задает свойства для оси Y.

  8. В той же ячейке начните новую строку и скопируйте и вставьте следующий код:
    my_chart.bar.aggregation = 'MEAN'

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

  9. В той же ячейке начните новую строку и скопируйте и вставьте следующий код:
    my_chart.dataSource = layer 
        my_chart.addToLayer = layer

    Эти строки аналогичны строкам исходного кода диаграммы, но вместо установки источника данных и добавления диаграммы к определенному именованному слою (CoralandSpongeCatalina в оригинале) это делается для входного слоя функции. Если вы создали другой поднабор точек кораллов и губок для другой области исследования (например, вокруг Гавайев или у побережья Аляски); добавили к нему значения уклона, экспозиции и батиметрии; и назвали его как-то иначе, функция все равно будет работать, чтобы создать диаграмму и связать ее с входным слоем.

  10. В той же ячейке начните новую строку и скопируйте и вставьте следующий код:
    outChartName =  layer + field + ".svg"
        outSVGPath = "C:/Lessons/DeepSeaCoralSponge/" + outChartName
        my_chart.exportToSVG(outSVGPath, width=1500, height=800)

    Эти строки аналогичны строкам в исходном коде. Строка outChartName создает имя для диаграммы путем объединения имени слоя и имени поля, которые передаются функции. Если вы создали слой для области изучения Аляски, имена выходных карт будут отражать имя этого слоя.

    Примечание:

    Если вы создали папку проекта DeepSeaCoralSponge в месте, отличном от C:/Lessons/DeepSeaCoralSponge/, отредактируйте путь, чтобы он совпадал с путем на вашем компьютере.

  11. В той же ячейке начните новую строку и скопируйте и вставьте следующий код:
    return my_chart

    Оператор return заставляет функцию возвращать объект диаграммы коду, вызывающему функцию.

    Блок кода для создания следующей диаграммы готов.

    Завершенный блок кода для следующей диаграммы

    Первая строка, определяющая функцию, должна начинаться с крайнего левого столбца, а каждая следующая строка должна иметь отступ в четыре пробела.

    
    def coral_and_sponge_chart(layer, field):
        my_chart = arcpy.Chart('MyChart')
        my_chart.type = 'bar'
        my_chart.title = layer
        my_chart.description = f'This chart shows the mean {field} values that correspond with the taxa in the {layer} layer.'
        my_chart.xAxis.field = 'VernacularNameCategory'
        my_chart.xAxis.aggregation = 'VernacularNameCategory'
        my_chart.yAxis.field = field
        my_chart.xAxis.title = 'Name'
        my_chart.yAxis.title = field
        my_chart.bar.aggregation = 'MEAN'
        my_chart.dataSource = layer 
        my_chart.addToLayer = layer
        outChartName = layer + field + ".svg"
        outSVGPath = "C:/Lessons/DeepSeaCoralSponge/" + outChartName
        my_chart.exportToSVG(outSVGPath, width=1500, height=800)
        return my_chart
  12. Щелкните Запустить.

    Ячейка должна работать, но ничего не возвращать.

    Примечание:

    Если вы видите сообщения об ошибках, скопируйте и вставьте весь блок кода отсюда в ячейку и запустите его. Обязательно обновите путь для переменной outSVGPath до реального пути на вашем компьютере, используя косую черту.

    Почему этот код ничего не возвращает при запуске ячейки?

    Он определяет функцию, но функция должна быть запущена или вызвана другим кодом Python.

  13. В следующую ячейку скопируйте и вставьте следующий код:
    coral_and_sponge_chart()
  14. Запустите ячейку.

    Появляется сообщение об ошибке.

    Сообщение об ошибке

    Ошибка говорит вам, что в функции отсутствуют два обязательных позиционных аргумента: слой и поле. Эти значения необходимы для корректной работы функции.

  15. Замените содержимое ячейки следующим кодом и щелкните Запустить:
    coral_and_sponge_chart('CoralandSpongeCatalina', 'Slope')

    Диаграмма отображается в блокноте, а графический файл .svg диаграммы создается в указанной вами папке. Он имеет то же имя файла, что и выход первого кода, но если вы посмотрите на файл сейчас, вы увидите, что он имеет обновленное значение Даты изменения.

    Появляется диаграмма, показывающая средние значения уклона, соответствующие таксонам в слое CoralandSpongeCatalina

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

  16. В следующую ячейку скопируйте и вставьте следующий код и щелкните Запустить:
    myList = ['Slope', 'Aspect', 'Bathymetry']
  17. В следующую ячейку скопируйте и вставьте следующий код и щелкните Запустить:
    print(myList)

    Запуск кода для печати myList

    В Python, списки заключены в квадратные скобки, и они представляют собой способ хранения группы вещей, разделенных запятыми. В этом случае список myList содержит три строки с именами полей Slope, Aspect и Bathymetry.

    Если при запуске инструмента Извлечь мультизначения в точки вы приняли имена выходных полей по умолчанию, вы должны проверить таблицу атрибутов слоя CoralandSpongeCatalina, определить имена полей, отредактировать значения в myListсоответственно с ними и запустить эту ячейку.еще раз, чтобы сбросить значения myList.

  18. В следующую ячейку скопируйте и вставьте следующий код и щелкните Запустить:
    
    for envField in myList:
        outChart = coral_and_sponge_chart('CoralandSpongeCatalina', envField)

    Эта ячейка содержит новую конструкцию кода Python - цикл for. Цикл for позволяет вам зацикливаться или повторять последовательность элементов. Первая строка указывает, что цикл будет проходить через каждый элемент в myList и назначать его временной переменной envField. Двоеточие указывает, что следующий раздел будет кодовым блоком цикла for. Следующая строка имеет отступ в четыре пробела, как строки в определении функции. Строки с отступом в блоке цикла for выполняются для каждого цикла или итерации цикла.

    В этом случае в кодовом блоке есть только одна строка. Она очень похожа на строку, которую вы запускали для проверки функции coral_and_sponge_chart ранее. Она создает переменную и присваивает ей значение, равное запуску функции coral_and_sponge_chart на слое CoralandSpongeCatalina, но вместо того, чтобы также указывать поле Slope, запускает его с именем поля, полученным из переменной envField. Поскольку в списке три элемента, цикл запустится три раза и создаст диаграмму для каждого из трех полей.

  19. На своем компьютере File Explorer перейдите к папке, которую вы указали в определении функции.

    Вывод диаграмм в папку, которую вы создали в начале урока

    Вы должны увидеть диаграмму для каждого из атрибутов. Эти выходные файлы можно использовать в презентациях, добавлять в историю с помощью ArcGIS StoryMaps или размещать в компоновке карты в ArcGIS Pro.

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

    Предположим, у вас есть пять изучаемых областей, и вы хотите составить диаграммы со всеми значениями для каждой изучаемой области. Поскольку функция также принимает имя слоя в качестве параметра, вы можете составить список всех имен слоев, создать цикл for, проходящий через них, а затем внутри этого цикла for вызвать только что созданный цикл.

    Код для этого выглядит следующим образом:

    
    myLayersList = ['CoralandSpongeCatalina']
    # You would add comma separated layer names in
    # quotation marks to the myLayersList, such as:
    # ['CoralandSpongeCatalina', 'CoralandSpongeAlaska', 'CoralandSpongeHawaii']
    
    myList = ['Slope', 'Aspect', 'Bathymetry']
    # You could add comma separated field names to the list
    
    for lyrName in myLayersList:     # outer loop, iterate over the layer names in the list
        for envField in myList:     # inner loop, iterate over the field names for that layer
            outChart = coral_and_sponge_chart(lyrName, envField)

    С 6 переменными и 5 слоями изучаемой области вы можете создать 30 диаграмм примерно за то же время, что и три.

  20. В следующую ячейку скопируйте и вставьте следующий код и щелкните Запустить:
    outChart

    Возвращенная диаграмма, показывающая средние значения Батиметрии

    Вы видели, что цикл создал три диаграммы. Почему при запуске этой ячейки отображается только одна?

    Переменная outChart сбрасывается на новую диаграмму в каждом цикле цикла. Когда цикл завершается, переменная присваивается диаграмме, созданной в последнем цикле. Распространенная проблема при записи выходных файлов из циклов состоит в том, что вы ожидаете несколько выходных данных, а получаете только один. Часто это связано с тем, что имя выходного файла одинаково в каждом цикле цикла. Результат создается для каждого цикла, но поскольку имя одинаковое, один и тот же файл перезаписывается каждый цикл. Ваша функция coral_and_sponge_chart позволяет избежать этой проблемы, создавая имя файла из входных переменных.

    outChartName = layer + field + ".svg"

    Есть и другие способы справиться с этой проблемой. Один из них - включить в цикл переменную-счетчик и соединить ее с именем выходного файла, в результате чего получится outfile_1, outfile_2, outfile_3 и т.д. Другой способ - добавить текущее время к имени файла, что хорошо работает, если только время обработки каждого цикла не очень короткое. Еще один способ - создать уникальный идентификатор и добавить его к имени файла, хотя это приводит к длинным и потенциально запутанным именам файлов.

  21. Сохраните проект.
Подсказка:

В качестве дополнительной задачи попробуйте выбрать другую область интереса и составить набор диаграмм, используя шаги, описанные в этом уроке.

Из этого урока вы узнали, как загрузить батиметрические данные и данные о кораллах и губках с сайта NOAA. Вы узнали, как спроецировать данные в подходящую плоскую систему координат для растрового анализа. Вы узнали, как создать область интереса, получить слои уклона и экспозиции для области интереса и добавить эту информацию к атрибутам кораллов и губок. Вы узнали, как использовать Python для создания диаграммы и как определить функцию для автоматизации создания нескольких диаграмм. Вы можете использовать эти методы для анализа данных о кораллах и губках в различных регионах мира.

Вы можете найти больше учебных пособий в галерее учебных пособий.