Конвертация текстовых данных в числовые

Видео

Этот урок также доступен в виде видео.

Вычисление нового числового поля

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

Сначала вы переформатируете значения оценки.

  1. Загрузите пакет проекта Neepawa.

    Файл с именем Neepawa.ppkx загружен на ваш компьютер. Файл .ppkx является пакетом проекта ArcGIS Pro, и может содержать карты, данные и другие файлы, которые вы можете открыть в ArcGIS Pro.

  2. Найдите загруженный файл на вашем компьютере. Дважды щелкните Neepawa.ppkx, чтобы открыть его в ArcGIS Pro. При появлении запроса войдите в свою учетную запись ArcGIS.
    Примечание:

    Если у вас нет доступа к ArcGIS Pro или учетной записи организации ArcGIS, см. варианты доступа к программному обеспечению.

    Откроется карта с земельными участками города Нипава.

    Карта участков Нипавы

    Примечание:

    Данные этой карты являются поднабором слоя Manitoba Property Assessment Information, предоставленном правительством Манитобы.

  3. На панели Содержание щелкните правой кнопкой слой NeepawaPropertyAssessment и выберите Таблица атрибутов.

    Опция Таблица атрибутов в контекстном меню слоя

  4. Посмотрите на таблицу атрибутов.

    Поле Total Value содержит значения оценки. Однако оно выглядит как текстовое поле, а не числовое, поскольку в каждой ячейке имеется символ $.

  5. В таблице атрибутов наведите курсор на заголовок поля Total Value.

    Тип поля Total Value

    Появится всплывающее окно с указанием типа поля как Text (20). Число 20 означает допустимое количество символов.

    Подсказка:

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

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

  6. На панели инструментов таблицы атрибутов щелкните Вычислить.

    Кнопка Вычислить

    Появится окно Вычислить поле. Этот инструмент вычисляет значения существующего или нового поля.

  7. Для Имя поля (существующего или нового), введите Assessed Value и нажмите Tab.

    Поскольку вы выбрали имя поля, которое еще не существует, необходимо выбрать его тип. Тип поля определяет тип данных, которые могут храниться в этом поле.

  8. Наведите курсор на параметр Тип поля, затем на кнопку информации.

    Кнопка информации у параметра Тип поля

    Откроется окно с описанием типов полей. Есть пять типов числовых полей: Короткое, Длинное, Большое целое, С плавающей точкой и Двойной точности.

    Типы числовых полей

    Чтобы выбрать наилучший, ответьте на два вопроса:

    • Вам необходимо хранить десятичные значения? Нет. Числа в поле Total Value не имеют десятичных знаков, поэтому можно использовать один из целочисленных типов данных: Короткое, Длинное или Большое целое.
    • Каков диапазон значений? Самый дорогой участок стоит 34 миллиона долларов. Это слишком большое число для типа поля Короткое, хотя недостаточно большое, чтобы требовалось использование типа поля Большое целое, так что вы выберете Длинное.

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

    Примечание:

    Подробнее о числовых типах данных в полях ArcGIS.

  9. Для Типа поля выберите Длинное (32-разрядное целое число).

    В этом примере не имеет значения, какой Тип выражения вы выберете.

    Параметры инструмента Вычислить поле

  10. Прокрутите список Поля и дважды щелкните Total Value.

    Поле Assessed Value заполняется текстом !Total_Value!.

    Поле Выражение заполненное значением поля Total Value

    Примечание:

    Если вы изменили Тип выражения на Arcade, поле Assessed Value считает $feature.Total_Value. Работать будут обе опции.

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

    var numberOnly=Replace($feature.Total_Value, '$', '') // Remove dollar signs.
    Replace(numberOnly, ',', '') // Remove commas.

    Будет вычислено новое поле Assessed Value со значениями поля Total Value, но тип поля станет Long, вместо текстового.

  11. Нажмите OK.

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

  12. Закрывает окно сообщения.
  13. В таблице атрибутов просмотрите новое поле Assessed Value и убедитесь, что в нем содержатся ожидаемые значения.

    Поля Total Value и Assessed Value в таблице атрибутов

    Значения в поле Assessed Value будут соответствовать значениям поля Total Value, но без символов $ или точек.

Вычисление нового поля с помощью выражения Arcade

Далее вы переформатируете значения площади. Вы создадите другое числовое поле и заполните его значениями из поля Frontage/Area. В этот раз вам потребуется написать выражение Arcade для корректного копирования данных.

  1. Найдите в таблице атрибутов поле со значениями площадей.

    Поле Frontage/Area содержит нужную вам информацию. Однако в нем содержится смесь слов и чисел, т.е. тип поля текстовой. Вы создадите числовое поле для хранения только чисел.

  2. На панели инструментов таблицы атрибутов щелкните Вычислить.
  3. В окне Вычислить поле, в поле Имя поля (существующего или нового), введите Area Acres и нажмите Tab.

    Далее необходимо выбрать тип поля.

    • Вам необходимо хранить десятичные значения? Да. Значения поля Frontage/Area содержат два десятичных знака, поэтому необходимо выбрать тип, поддерживающий дробные значения: Float или Double.
    • Каков диапазон значений? Самый большой участок составляет 185 акров, поэтому меньшего типа данных Float будет достаточно.
  4. В Тип поля выберите Float (32-bit floating point).

    Параметры инструмента Вычислить поле

  5. В Тип выражения выберите Arcade.

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

  6. В поле Area Acres = удалите весь текст.

    Вам необходимо скопировать числовые данные из поля Frontage/Area и отбросить текстовую информацию. Есть несколько способов сделать это, но в этом уроке вы воспользуетесь функцией Разбиение.

  7. Щелкните кнопку Тип помощника. В появившемся меню щелкните Текст.

    Опция Текст в меню Тип помощника

    В списке Помощники отфильтрованы те функции, которые подходят к текстовым данным.

  8. В списке Помощник дважды щелкните Split().

    Функция Split() в списке Помощники

  9. В поле Area Acres = поместите курсор внутрь скобок. В списке Поля дважды щелкните Frontage/Area.

    Поле Frontage/Area в списке Поля

    Выражение примет вид Split($feature.Frontage_or_Area).

    Функция Разбить разделяет текстовые значения у заданного символа и возвращает массив текстовых значений. Значения в поле Frontage/Area содержат число, пробел и слово (например, 0.15 ACRES). Вы можете разбить эти значения по пробелу, чтобы отделить числа от слов.

  10. В поле Area Acres = разместите курсор перед закрывающей скобкой и введите ,' '.

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

    Выражение

  11. В конце выражения введите [0].

    Готовое выражение

    В этой части выражения показано, какой элемент массива должен быть возвращен. Например, если вы хотите вернуть текст после разбиения, следует написать [1].

    Готовое выражение выглядит так Split($feature.Frontage_or_Area,' ')[0]. Оно передает функции Разбить поле Frontage/Area всегда, когда в нем обнаруживается пробел. Возвращается текст перед первым разбиением.

    Примечание:

    У функции Разбить имеются дополнительные параметры. Прочитать о них можно на странице Справочник по функциям ArcGIS Arcade.

    Чтобы написать такое же выражение с помощью Python 3, введите !Frontage_or_Area!.split( )[0].

    Если на вашем компьютере используется локаль с десятичными разделителями - запятыми, воспользуйтесь следующим выражением:

    var frontageArea=Replace($feature.Frontage_or_Area, '.', ',')
    Split(frontageArea,' ')[0]
  12. Нажмите OK.

    Откроется окно сообщений с тем же предупреждением, что и раньше.

  13. Закрывает окно сообщения.
  14. В таблице атрибутов просмотрите новое поле Area Acres и убедитесь, что в нем содержатся ожидаемые значения.

    Поле Area Acres в таблице атрибутов

    Значения поля Area Acres должны соответствовать числам из поля Frontage/Area.

Вычислить геометрию

Вы можете заметить, что в поле Frontage/Area хранятся два типа значений. Строки со словом ACRES содержат площадь, а строки со словом FEET протяженность земельного участка вдоль дороги.

Примечание:

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

Это означает, что многие значения в поле Area Acres неправильны: они не отображают площадь и не измеряются в акрах. Вы не можете конвертировать значения футов в акры, поскольку одни измеряют расстояние, а другие - площадь. Однако можно вычислить площадь для этих отсутствующих значений, исходя из геометрии объектов.

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

  1. На панели инструментов таблицы атрибутов щелкните Выбрать по атрибуту.

    Кнопка Выбрать по атрибуту

  2. В окне Выбрать по атрибуту используйте меню, чтобы построить выражение Where Frontage/Area contains the text FEET.
    Подсказка:

    В третьем меню введите слово FEET.

    Выражение Выбрать по атрибуту

  3. Нажмите OK.
  4. Просмотрите таблицу атрибутов и убедитесь, что выбраны все значения FEET, но не значения ACRES.

    В таблице атрибутов выбраны значения FEET

    Теперь вы выполните вычисления поля Area Acres. Поскольку выборка активна, вычисления будут применены только к выбранным строкам.

  5. Щелкните правой кнопкой мыши заголовок поля Area Acres и выберите Вычислить геометрию.

    Вычислить геометрию в контекстном меню поля

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

  6. Для Параметр выберите Площадь (геодезическая).

    Геодезические измерения учитывают кривизну Земли.

  7. В Единицы измерения площадей выберите Международные акры.

    Параметры инструмента Вычислить геометрию

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

  8. Нажмите OK.

    В таблице атрибутов просмотрите новое поле Area Acres и убедитесь, что выбранные значения отредактированы.

    Обновленные значения поля Area Acres в таблице атрибутов

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

  9. На панели инструментов таблицы атрибутов щелкните кнопку Очистить, чтобы очистить выборку.

    Кнопка Очистить

  10. Закройте таблицу атрибутов.

Назначение символов с помощью новых полей

Наконец вы присвоите символы, используя новые поля, которые только что создали.

  1. На панели Содержание щёлкните правой кнопкой слой NeepawaPropertyAssessment и выберите Условные обозначения.

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

  2. Под Основные символы выберите Градуированные цвета.

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

  3. Для Поля выберите Assessed Value. Для Нормализации выберите Area Acres.

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

  4. Измените Цветовую схему на Желто-красная.

    Настройки Градуированных цветов

    Участки, обозначенные на карте красным цветом, имеют самую высокую стоимость акра.

    Карта с символами

  5. На Панели инструментов быстрого доступа щелкните кнопку Сохранить проект.

    Кнопка Сохранить проект на панели инструментов быстрого доступа

  6. Закройте панель Символы и закройте ArcGIS Pro.

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

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