Сводка
Заменяет пропущенные (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.
| String |
conceptualization_of_spatial_relationships (Дополнительный) | Определяет, как заданы пространственные отношения между объектами.
| 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 |
Пример кода
В следующем скрипте окна 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)
Следующий автономный скрипт 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())
Environments
Информация о лицензиях
- Basic: Да
- Standard: Да
- Advanced: Да