Присоединение табличных данных к пространственному слою
Видео
Этот урок также доступен в виде видео.
Поиск сопоставленных полей
Чтобы соединить два слоя, в них должно быть найдено общее поле. Вы будете искать общее поле между пространственным слоем стран и непространственным слоем затопления.
- Загрузите файл .zip RiverFloods и распакуйте его в папку на вашем компьютере, например, на диск C.
- Откройте распакованную папку RiverFloods и дважды щелкните RiverFloods.aprx, чтобы открыть проект в ArcGIS Pro.
- Если будет предложено, войдите под учетной записью ArcGIS.
Примечание:
Если у вас нет доступа к ArcGIS Pro или учетной записи организации ArcGIS, см. варианты доступа к программному обеспечению.
Появится Карта мира.
На карте есть один слой базовой карты (Charted Territory), один векторный слой (Countries) и один слой автономной таблицы (global_flood_risk.csv).
Файл .csv считается автономной таблицей, поскольку содержит только табличные данные. Она отличается от векторных слоев, таких как Countries, которые содержат как пространственную (форму и расположение стран, отображаемых на карте), так и табличную информацию (таблицу атрибутов).
Примечание:
Слой Countries взят из общедоступного набора данных Natural Earth. Файл Global_flood_risk.csv предоставлен World Resources Institute. Набор данных называется Aqueduct Global Flood Risk Country Rankings и был создан Хесселем Винсемиусом, старшим научным сотрудником Deltares, и Филиппом Уордом - старший научным сотрудником Института экологических исследований Амстердамского свободного университета.
- На панели Содержание щелкните правой кнопкой Countries и выберите Таблица атрибутов.
Ниже карты откроется атрибутивная таблица.
- Пролистайте таблицу, чтобы увидеть все ее поля.
В таблице есть много полей для хранения названий стран, включая SUBUNIT, NAME и NAME_LONG.
Несколько полей с именами объясняются несколькими способами написания названий некоторых стран. Отсутствие общепринятых стандартов означает, что названия стран - не самый лучший выбор в качестве общих полей. К счастью, таблица также содержит множество полей с разными версиями кодов стран, например, FIPS_10_, ISO_A2 и ISO_A3. Поле кода хорошо подходит для поля соединения, поскольку его значения уникальны и стандартизированы.
Вы просмотрите таблицу global_flood_risk.csv, чтобы увидеть, содержит ли она те же поля с кодами, что и слой Countries.
- На панели Содержание щелкните правой кнопкой global_flood_risk.cs и выберите Открыть.
В этой таблице всего три поля: Rank, Country и Current annual average population affected by river floods. К сожалению, полей кодов стран здесь нет, поэтому вам придется использовать Country в качестве поля соединения. Вполне вероятно, что вам не удастся с использованием этого поля добиться полного совпадения, но вы должны максимально приблизиться к нему.
- Прокрутите таблицу global_flood_risk.csv и обратите внимание на формат написания названий стран.
Примерами форматирования являются названия Egypt, Arab Rep., Congo, Dem. Rep. и Russian Federation.
- Щелкните Египет на карте. Прокрутите всплывающее окно, чтобы сравните поля с названиями.
NAME_SORT - единственное поле, название государства Египет в котором совпадает с содержащимся в слое global_flood_risk.csv.
- На карте щелкайте по другим странам, чтобы сравнить имя в поле NAME_SORT с содержанием столбца Country в файле .csv.
Большинство имен совпадают. Вы попытаетесь соединить две таблицы, используя совпадающие значения в полях Country и NAME_SORT.
- Закройте всплывающее окно.
Присоединение автономной таблицы к векторному слою
Вы будете использовать инструмент Добавить соединение, чтобы присоединить поля из таблицы global_flood_risk.csv к таблице атрибутов слоя Countries.
- На панели Содержание щелкните правой кнопкой Countries, наведите курсор на Соединения и связи и выберите Добавить соединение.
Появится окно Добавить соединение.
- Убедитесь, что в окне Добавить соединение для Входной таблицы выбран слой Countries.
Это слой, к которому будут присоединены поля.
- Для Входного поля присоединения введите NAME_SORT.
Имя поля будет автоматически заполняться по мере входа.
- Для Присоединяемой таблицы выберите global_flood_risk.csv.
Это слой, содержащий присоединяемые поля.
- Для Поля присоединяемой таблицы выберите Country.
Операция объединения сможет присоединить только те записи, в которых совпадают значения в полях NAME_SORT и Country. Для этой первой попытки вы сохраните только те страны, которые удалось сопоставить. Это облегчит поиск стран, которые не совпали.
- Отключите Сохранить все целевые объекты.
- Нажмите OK.
Просмотр результатов
Внешний вид карты изменился. Некоторые регионы, в том числе США и Гренландия, в настоящий момент отсутствуют в золотом слое Countries. Гренландия отсутствует, поскольку отсутствует в слое global_flood_risk.csv. Соединенных Штатов же нет, потому что их название было по-разному отформатировано в полях Country и NAME_SORT.
Вы изучите присоединенные поля, чтобы найти другие страны, названия которых не совпадают.
- Под таблицей атрибутов global_flood_risk.csv найдите число записей.
Число записей говорит о том, что в таблице содержится 163 строки (страны).
- Щелкните Countries над таблицей для переключения на таблицу атрибутов Countries.
В этой таблице 159 строк.
Это значит, что в процессе выполнения соединения были сопоставлены 159 из 163 стран. Остались четыре страны.
Примечание:
Если оставить отмеченной опцию Сохранить все целевые объекты, всего будет 255 записей - это общее число записей слоя Countries.
Вы определите, какие страны остались.
- Прокрутите таблицу Countries до конца.
Три поля, присоединенные из файла .csv, находятся в конце таблицы. Удобно, что одним из полей является поле Rank, которое поможет вам найти недостающие объекты.
- Щелкните правой кнопкой название столбца Rank и выберите Сортировать по возрастанию.
- Прокрутите таблицу до поля Rank, чтобы найти пропуски в числах.
В поле Rank отсутствуют следующие числа: 18, 94, 141 и 158. В таблице .csv эти числа соответствуют следующим странам:
Ранг Страна 18
США
94
Чешская Республика
141
Свазиленд
158
Бруней Дар-эс-Салам
Это четыре страны, которые отсутствуют в соединении.
Удаление соединения и редактирование таблицы
Часто первая попытка соединения таблиц оказывается не идеальной. Вы удалите связь, отредактируете названия этих четырех стран и попробуете выполнить соединение еще раз.
- На панели Содержание щелкните правой кнопкой Countries, наведите курсор на Соединения и связи и выберите Удалить все соединения.
- В диалоговом окне Удалить соединения щелкните Да.
Три дополнительных поля таблицы атрибутов Countries исчезнут. На карте снова будут показаны все страны.
- Щелкните США на карте. Найдите во всплывающем окне поле NAME_SORT - для этого нужно прокрутить примерно треть списка.
Значение NAME_SORT - United States of America. В таблице global_flood_risk.csv значение атрибута Country - United States. Для соединения атрибуты должны полностью совпадать. Вы отредактируете одну из таблиц для обеспечения соответствия.
- Закройте всплывающее окно.
Проще всего отредактировать пространственный слой Countries, поскольку это можно сделать прямо в ArcGIS Pro. Но в данном случае пространственный слой является более авторитетным источником названий стран. Поэтому вы отредактируете файл .csv вне ArcGIS Pro.
- На панели Каталог щелкните вкладку Проект, а затем стрелку рядом с элементом Папки, чтобы раскрыть его.
- Раскройте также папку RiverFloods.
- Щелкните правой кнопкой global_flood_risk.csv и выберите Показать в проводнике файлов.
Папка RiverFloods, которую вы загрузили и распаковали в начале урока, появится в проводнике на вашем компьютере.
- Щелкните правой кнопкой файл global_flood_risk.csv и откройте файл Блокнотом или другим текстовым редактором.
- Найдите строку 18 в файле .csv.
- Отредактируйте текст этой строки, заменив United States на United States of America.
- В строке 94 замените Czech Republic на Czechia.
Правительство Чешской республики утвердило Czechia в качестве официального краткого английского названия в 2016 году.
- В строке 141 замените Swaziland на eSwatini.
Свазиленд в 2018 году поменял свое название на "Эсватини". Альтернативное написание eSwatini используется в слое Countries.
- В строке 158 замените Brunei Darussalam на Brunei.
Бруней-Даруссалам — официальное название Брунея.
- Сохраните и закройте файл .csv.
Повторение соединения
Вы обновите таблицу .csv в ArcGIS Pro, чтобы отобразились отредактированные названия стран, и повторите попытку присоединения.
- В представлении таблицы ArcGIS Pro переключитесь на таблицу global_flood_risk.csv.
- Внизу, под таблицей, щелкните кнопку Обновить.
Таблица обновится, и в ней появятся отредактированные значения.
- На панели Содержание щелкните правой кнопкой Countries, наведите курсор на Соединения и связи и выберите Добавить соединение.
- В окне Добавить соединение задайте следующие параметры:
- Для Входной таблицы выберите Countries.
- Для Входного поля соединения выберите NAME_SORT.
- Для Присоединяемой таблицы выберите global_flood_risk.csv.
- Для Поля присоединяемой таблицы выберите Country.
На этот раз вы более уверены в своем соединении и в полученном результате. Вы собираетесь сохранить все 255 стран из пространственного слоя, хотя только 163 из них будут содержать информацию о наводнениях.
- Оставьте отметку Сохранить все целевые объекты.
- Щелкните Проверить соединение.
Откроется окно Сообщение.
- Переместитесь в нижнюю часть окна Сообщение.
Во второй с конца строке указано Соединение один-к-одному содержит 163 совпадающих записей.
Это число говорит вам о том, что ваше присоединение является успешным.
- Щелкните Закрыть.
- Щёлкните OK в окне Добавить соединение.
- Закройте таблицу global_flood_risk.csv.
- В таблице атрибутов Countries прокрутите до конца и убедитесь, что присутствуют три новых поля.
У некоторых стран, например, Бермудских островов, Гренландии и Сингапура, в присоединенных полях содержатся пустые значения (null), поскольку эти страны отсутствуют в файле global_flood_risk.csv.
- Закройте таблицу атрибутов Countries.
Примечание:
Присоединения, выполняемые инструментом Добавить соединение, не являются постоянными, поэтому вы и смогли удалить первое соединение. Чтобы сделать соединение постоянным, вы можете экспортировать слой Countries с помощью инструмента Экспорт объектов или Копировать объекты или выполнить соединение инструментом Соединение полей вместо инструмента Добавить соединение.
Визуализация результатов
Наконец вы отобразите одно из присоединенных полей на карте.
- На панели Содержание щелкните правой кнопкой Countries и выберите Символы.
Появится панель Символы.
- На панели Символы в разделе Основные символы выберите Неклассифицированные цвета.
- В качестве Поля выберите Current annual average population affected by river floods.
Поскольку это поле содержит количество, а не относительную величину, символы должны быть нормализованы. Вы разделите число пострадавших на численность населения, чтобы нормализовать значения.
- В опции Нормирование выберите POP_EST.
На карте показан самый высокий риск наводнения на душу населения - в Бангладеш.
- На Панели инструментов быстрого доступа щелкните кнопку Сохранить проект.
В этом упражнении вы узнали:
- Как находить поля с совпадающими значениями в двух таблицах
- Как использовать поле Добавить соединение, для добавления полей одной таблицы к другой
- Как оценить качество соединения
- Как удалить соединение
- Как редактировать файл .csv и обновить его отображение в ArcGIS Pro
- Как отображать векторный слой с использованием присоединенного поля
Вы можете найти больше учебных пособий в галерее учебных пособий.