Заполнить пропущенные значения (Углубленный анализ пространственно-временных закономерностей)

Сводка

Заменяет пропущенные (null) значения на вычисленные на основе значений пространственных, пространственно-временных и временных соседей.

Более подробно о работе инструмента Заполнение пропущенных значений

Иллюстрация

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

Использование

  • Входными объектами могут быть точки или полигоны.

  • В выходном результате будет три поля для каждого из Полей для заполнения. В первом содержатся исходное и заполненное значения полей, а во втором – индикатор, что было вычислено оценочное значение. Вычисленное поле сохранит исходное имя поля, но псевдонимы полей будут созданы с использованием следующего правила формирования имен: <field>_FILLED и <field>_ESTIMATED. Третее добавленное поле содержит число соседей <field>_ N_NEIGHBORS, использованных для вычислений каждого установленного значения.

  • Выходные данные также содержат дополнительные поля, содержащие значения, которые могут помочь вам понять количество соседей и диапазон значений соседей, используемых в вычислениях для целевого пропущенного значения. Если для Метода заполнения выбрано Среднее, в вычислениях используется стандартное отклонение соседних объектов (<field>_STD). Максимальное соседнее значение показывается для Минимума, а минимальное - для Максимума. Если Метод заполнения - Медиана, показывается абсолютное среднее отклонение. Если отсутствующие значения были заполнены с помощью Временного тренда, в поле будет содержаться сумма квадратов отклонений сплайна. Поле NNBRS содержит количество соседей, которые учитывались для вычисления значений.

  • Можно включить поля без пустых значений. Эти поля будут копироваться в выходных данных, но у них не будет дополнительных полей, связанных с ними в выходном результате (например, <field>_FILLED или <field>_ESTIMATED). Либо вы можете предоставить Уникальный ID, который будет добавлен к выходному результату и затем булет использоваться к присоединению ваших полученных данных обратно к Входному классу пространственных объектов.

  • Поле NUM_EST (TOT_EST если вы работаете со связанной таблицей) является общим числом вычисленных переменных для связанной записи. Это поле применяется при прорисовке выходной карты.

  • Инструмент может быть применен с многомерными данными, которые хранятся в отдельных геометриях или в связанной таблице. Если задан ID местоположения, инструмент распознает, что входными являются многомерные данные и что необходимо Поле времени.

  • Location ID ­ целочисленное поле, которое должно представлять уникальные и стационарные местоположения. У них не должно быть разных X,Y-координат в разные моменты времени.

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

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

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

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

  • Метод заполнения Временной тренд использует метод одномерного интерполированного сплина из пакета интерполяции SciPy.

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

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

  • Если ваши данные являются многомерными, для фильтрации по времени нужно воспользоваться параметром Временное соседство. Либо, задав значение параметра Временное соседство, равное 0, вы будете работать только с пространственными соседями.

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

  • Поле N_NEIGHBORS содержит число соседей, использованных для вычисления для объекта. Если Метод заполнения является Временным трендом, это число – количество значений, которые существуют во временном ряде для определенного ID местоположения (например, если вы пропустили только одно значение в вашем временном ряду, будет выдаваться число временных шагов в вашем наборе данных минус 1). Если вы используете Определение пространственных взаимоотношений, заданное как K ближайших соседей и также Временная окрестность, число соседей, которое выдается, будет включать k соседей для объекта, которые попадают в указанное временное окно.

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

Синтаксис

arcpy.stpm.FillMissingValues(in_features, out_features, fields_to_fill, fill_method, {conceptualization_of_spatial_relationships}, {distance_band}, {temporal_neighborhood}, {time_field}, {number_of_spatial_neighbors}, {location_id}, {related_table}, {related_location_id}, {weights_matrix_file}, {unique_id}, {null_value}, {out_table})
ParameterОбъяснениеТип данных
in_features

Класс объектов с заполняемыми пустыми значениями.

Feature Layer
out_features

Выходные данные с заполненными (вычисленными) значениями.

Если указана related_table, out_features будут содержать число вычисленных значений в каждом местоположении, а out_table будет включать заполненные (установленные) значения.

Feature Class
fields_to_fill
[fields_to_fill,...]

Числовые поля с отсутствующими значениями (null).

Field
fill_method

Тип применяемого вычисления. TEMPORAL_TREND доступен, если указаны location_id и time_field.

  • AVERAGEЗаменяет пустые значения средним (арифметическим) значением соседних объектов.
  • MINIMUMЗаменяет пустые значения минимальным (наименьшим) значением соседних объектов.
  • MAXIMUMЗаменяет пустые значения максимальным (наибольшим) значением соседних объектов.
  • MEDIANЗаменяет пустые значения медианным (серединным) значением соседних объектов.
  • TEMPORAL_TRENDЗаменяет пустые значения, основываясь на тренде в этом конкретном местоположении.
String
conceptualization_of_spatial_relationships
(Дополнительный)

Определяет, как заданы пространственные отношения между объектами.

  • FIXED_DISTANCEСоседние объекты в пределах указанного критического расстояния (distance_band) от каждого объекта включаются в вычисления; все объекты вне критического расстояния – исключаются.
  • K_NEAREST_NEIGHBORS Ближайшие k объектов включаются в вычисления, где k – определенный числовой параметр.
  • CONTIGUITY_EDGES_ONLY Только соседние полигональные объекты, которые имеют смежную границу или перекрываются, повлияют на расчеты для целевого полигонального объекта.
  • CONTIGUITY_EDGES_CORNERS Полигональные объекты, которые имеют общую границу, общий узел или перекрываются, повлияют на расчеты для целевого полигонального объекта.
  • GET_SPATIAL_WEIGHTS_FROM_FILEПространственные отношения определены в файле пространственных весов. Путь к файлу пространственных весов указан в параметре Weights_Matrix_File.
String
distance_band
(Дополнительный)

Задает расстояние отсечения для параметра FIXED_DISTANCE. Объекты, расположенные за пределами указанного предельного расстояния, игнорируются в вычислениях для данного объекта. Параметр не используется для CONTIGUITY_EDGES_ONLY и CONTIGUITY_EDGES_CORNERS.

Linear Unit
temporal_neighborhood
(Дополнительный)

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

Time Unit
time_field
(Дополнительный)

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

Это обязательно, если предоставляется location_id.

Field
number_of_spatial_neighbors
(Дополнительный)

Число включаемых в вычисления ближайших соседей.

Если выбрана опция FIXED_DISTANCE, CONTIGUITY_EDGES_ONLY или CONTIGUITY_EDGES_CORNERS, это число будет являться минимальным используемым в вычислениях количеством соседей.

Long
location_id
(Дополнительный)

Целочисленное поле, содержащие уникальные ID каждого местоположения.

location_id применяется для сопоставления объектов из in_features со строками из related_table или для указания уникального ID местоположения, чтобы определить временных соседей.

Field
related_table
(Дополнительный)

Таблица или представление таблицы с временными данными для каждого in_features.

Table View
related_location_id
(Дополнительный)

Целочисленное поле в related_table, которое содержит location_id, на базе которого будет основываться связь.

Field
weights_matrix_file
(Дополнительный)

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

File
unique_id
(Дополнительный)

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

Если у вас нет поля unique_id, вы можете создать его путем добавления нового целого поля в вашу таблицу классов объектов и вычислив значения полей, которые были бы равны полю FID или OBJECTID.

Field
null_value
(Дополнительный)

Значение для пустых (пропущенных) значений. Если значение не задано, для классов пространственных объектов базы геоданных применяется <Null>. Для шейп-файлов требуется числовое значение пробела.

Double
out_table
(Дополнительный)

В выходной таблице содержатся заполненные (вычисленные) значения.

Если задана связанная таблица, требуется выходная таблица.

Table

Пример кода

FillMissingValues, пример 1 (окно Python)

В следующем скрипте окна Python показано, как используется инструмент FillMissingValues.

import arcpy
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"
arcpy.FillMissingValues_stpm("Chicago_Data", "Chicago_Filled", "COUNT", "AVERAGE",
                             "K_NEAREST_NEIGHBORS", "", "", "", 8)
FillMissingValues, пример 2 (автономный скрипт)

Следующий автономный скрипт Python демонстрирует, как использовать инструмент FillMissingValues.

# Fill missing values using a feature set and related table
# Use the results to create a space-time cube from defined locations
# Run Emerging Hot Spot Analysis on the data
# Visualize the results in 3d
#Import system modules
import arcpy
# Set geoprocessor object property to overwrite existing output, by default
arcpy.env.overwriteOutput = True
# Local variables ...
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"
try:
    # Fill missing values in a feature class containing block group polygon shapes and a related table containing the incidents
    # Since some of the values are missing we will fill them using the temporal trend method.
    arcpy.FillMissingValues_stpm("Chicago_Feature", "Chicago_FilledFeature", "COUNT", "TEMPORAL_TREND", "", "", NoneNone,
                                 "TIME", "", "MYID", "Chicago_Table", "MYID", "", "", "", "Chicago_FilledTable")
    # Create a defined location space time cube using a related table
    # Using a reference time at the start of the month to force binning fall on month breaks
    # Using temporal aggregation to sum multiple entries into one month
    # Using the method drop location if missing values since we already filled using Fill Missing Values
    arcpy.CreateSpaceTimeCubeDefinedLocations_stpm("Chicago_FilledFeature", r"C:\STPM\Chicago_Cube.nc", "MYID",
                                                   "APPLY_TEMPORAL_AGGREGATION", "TIME", "1 Months", "REFERENCE_TIME",
                                                   "10/1/2015", "", "COUNT SUM DROP_LOCATIONS", "Chicago_FilledTable",
                                                   "MYID")
    # Run an emerging hot spot analysis on the defined locations cube
    # Using contiguity edges so only block groups which bound each other are considered neighbours
    arcpy.EmergingHotSpotAnalysis_stpm(r"C:\STPM\Chicago_Cube.nc", "COUNT_SUM_NONE",
                                       "Chicago_Cube_EmergingHotSpot", "", 1, "",
                                       "CONTIGUITY_EDGES_ONLY")
    # Use Visualize Cube in 3d to see the hot spot results for each time slice
    arcpy.VisualizeSpaceTimeCube3D_stpm(r"C:\STPM\Chicago_Cube.nc", "COUNT_SUM_NONE", "HOT_AND_COLD_SPOT_RESULTS",
                                        "Chicago_Cube_Visualize3d")
except arcpy.ExecuteError:
    # If any error occurred when running the tool, print the messages
    print(arcpy.GetMessages())

Информация о лицензиях

  • Basic: Да
  • Standard: Да
  • Advanced: Да

Связанные разделы