Resumen
Reemplaza valores que faltan (nulos) por valores estimados según los vecinos espaciales, los vecinos del espacio-tiempo o valores de serie temporal.
Más información sobre cómo funciona Rellenar valores que faltan
Ilustración
Uso
Las Entidades de entrada pueden ser puntos o polígonos.
La salida resultante contendrá tres campos para cada uno de los Campos para rellenar. El primero contiene los valores originales y rellenados y el segundo contiene un indicador que señala que el valor se ha estimado. El campo estimado mantendrá su nombre de campo original, pero los alias de campo se crearán con la siguiente convención de nomenclatura: <field>_FILLED y <field>_ESTIMATED. El tercer campo que se agrega es el número de vecinos <field>_ N_NEIGHBORS que se usan en los cálculos de cada valor estimado.
La salida también incluirá campos adicionales con valores que pueden ayudarle a comprender el número de vecinos y el rango de valores vecinos utilizados para calcular el valor objetivo que falta. Si el Método de relleno es Promedio, se notificará la desviación estándar (<field>_STD) de los vecinos utilizada en los cálculos. Se notificará el valor máximo de vecinos para Mínimo y el valor mínimo de vecinos para Máximo. Si el Método de relleno es Media, se notificará la desviación absoluta media de los vecinos. Si los valores que faltan se van a rellenar utilizando la Tendencia temporal, el campo incluirá la suma de los valores residuales cuadrados de la spline. El campo NNBRS contiene el recuento de vecinos utilizado para calcular los valores estimados.
Puede incluir campos que no contengan valores nulos. Estos campos se copiarán en la salida, pero no tendrán asociados campos adicionales en la salida (por ejemplo, <field>_FILLED o <field>_ESTIMATED). También puede proporcionar un Id. único que se agregará a la salida y que se podrá utilizar después para volver a unir sus resultados a la Clase de entidad de entrada.
El campo NUM_EST (TOT_EST si utiliza una tabla relacionada) es el número total de variables estimadas para el registro asociado. Este campo se utiliza para representar el mapa de salida.
Esta herramienta se puede utilizar con los datos del panel almacenados como formas repetidas o con una tabla relacionada. Si se especifica un Id. de ubicación, la herramienta reconocerá que la entrada corresponde a datos del panel y se necesitará un Campo de tiempo.
El Id. de ubicación es un campo de entero y debe representar una ubicación única y estática. No debe tener coordenadas X,Y diferentes con el tiempo.
Si se elige Distancia fija, Solo bordes de contigüidad o Bordes o esquinas de contigüidad como Conceptualización de relaciones espaciales, se puede simular una ventana de tiempo-espacio eligiendo una Banda de distancia y una Vecindad temporal.
Si se elige Distancia fija, Solo bordes de contigüidad o Bordes o esquinas de contigüidad como Conceptualización de relaciones espaciales, se puede definir un Número de vecinos espaciales para especificar una cantidad mínima de vecinos.
La opción para rellenar valores que faltan según la Tendencia temporal solo está disponible si se especifica un Id. de ubicación. También se necesita un Campo de tiempo.
Cuando se utiliza la Tendencia temporal para rellenar valores, el valor nulo que se rellena debe tener al menos dos períodos de tiempo con valores delante y al menos dos períodos de tiempo con valores después. Debido a este requisito, los valores nulos que existan en los dos primeros o dos últimos períodos de tiempo nunca se podrán rellenar utilizando la Tendencia temporal.
El Método de relleno de Tendencia temporal utiliza el método Spline univariante interpolada del paquete de interpolación de SciPy.
Los valores que faltan que no se pudieron estimar ni rellenar se notificarán en la salida con el formato con que los valores nulos existían originalmente.
Al rellenar los valores que faltan de los datos del panel solo con vecinos espaciales, la Vecindad temporal debe establecerse en 0.
Si sus datos son del panel, se puede utilizar el parámetro Vecindad temporal como filtro por tiempo. Asimismo, una Vecindad temporal de 0 le permite consultar solamente vecinos espaciales.
Es importante inspeccionar los valores rellenados resultantes para asegurarse de que sean significativos para su análisis. Por ejemplo, si su campo original era un entero y la herramienta se definió para rellenar con la media de los vecinos espaciales, los resultados acabarán teniendo decimales que puede que no tengan sentido si el campo de entrada era un recuento. Además, debido al método empleado al utilizar la Tendencia temporal, puede ser posible obtener un resultado con un número negativo aunque ninguno de los valores existentes sea negativo. Esto no tendría sentido si el campo que estaba rellenado era de población.
El campo N_NEIGHBORS informa sobre el número de vecinos incluidos en los cálculos de esa entidad. Si su Método de relleno es Tendencia temporal, el número representa los valores que existen en su serie temporal para ese Id. de ubicación (por ejemplo, si solo faltase un valor en su serie temporal, informaría del número de intervalos de tiempo de su dataset menos 1). Si utiliza una Conceptualización de relaciones espaciales de Vecinos K más cercanos además de una Vecindad temporal, el número de vecinos sobre los que se informa incluirá los vecinos K de la entidad dentro de la ventana de tiempo especificada.
Durante la ejecución de la herramienta, en la parte inferior del panel Geoprocesamiento se escriben los mensajes que describen detalles del análisis y las características de los campos rellenados. Puede acceder a los mensajes desplazándose por la barra de progreso, haciendo clic en el botón emergente o ampliando la sección de mensajes en el panel Geoprocesamiento. También puede acceder a los mensajes de la herramienta Rellenar valores que faltan ejecutada anteriormente a través del Historial de geoprocesamiento.
Sintaxis
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})
Parámetro | Explicación | Tipo de datos |
in_features | La clase de entidad que contiene los valores nulos que se van a rellenar. | Feature Layer |
out_features | La salida que incluirá los valores rellenados (estimados). Si se especifica related_table, out_features contendrá el número de valores estimados en cada ubicación y out_table contendrá los valores rellenados (estimados). | Feature Class |
fields_to_fill [fields_to_fill,...] | Los campos numéricos que contienen los datos que faltan (valores nulos). | Field |
fill_method | El tipo de cálculo que se aplicará. TEMPORAL_TREND solo está disponible si se especifican location_id y time_field.
| String |
conceptualization_of_spatial_relationships (Opcional) | Especifica cómo se definen las relaciones espaciales entre las entidades.
| String |
distance_band (Opcional) | Especifica una distancia de valor límite para la opción FIXED_DISTANCE. Las entidades que están fuera del valor límite especificado para una entidad de destino se ignoran en los cálculos de esa entidad. Este parámetro solo está disponible para CONTIGUITY_EDGES_ONLY o CONTIGUITY_EDGES_CORNERS. | Linear Unit |
temporal_neighborhood (Opcional) | Especifica un intervalo hacia delante y hacia atrás en el tiempo para determinar las entidades que se utilizaron en los cálculos para la entidad de destino. Las entidades que no están dentro de este intervalo de la entidad de destino se ignoran en los cálculos para esa entidad. | Time Unit |
time_field (Opcional) | El campo que contiene el registro de tiempo para cada registro del dataset. Este campo de tiempo debe ser de tipo Fecha. Es necesario si se ha indicado location_id. | Field |
number_of_spatial_neighbors (Opcional) | El número de vecinos más cercanos que se incluirá en los cálculos. Si se elige FIXED_DISTANCE, CONTIGUITY_EDGES_ONLY o CONTIGUITY_EDGES_CORNERS, este número será la cantidad mínima de vecinos que se incluirá en los cálculos. | Long |
location_id (Opcional) | Un campo de tipo entero que contiene un número Id. único para cada ubicación. location_id se utiliza para cotejar las entidades de in_features con las filas de related_table o para especificar un Id. de ubicación único para determinar los vecinos temporales. | Field |
related_table (Opcional) | La tabla o vista de tabla que contiene los datos temporales para cada una de las in_features. | Table View |
related_location_id (Opcional) | Un campo de tipo entero de la related_table que contiene el location_id sobre el que se basará la relación. | Field |
weights_matrix_file (Opcional) | La ruta a un archivo que contenga los pesos que definen las relaciones espaciales, y potencialmente temporales entre las entidades. | File |
unique_id (Opcional) | Un campo de entero que contiene un valor diferente para cada registro en las in_features. Este campo se puede utilizar para unir sus resultados de nuevo a su dataset original. Si no tiene un campo unique_id, puede crear uno agregando un campo de tipo entero a la tabla de clases de entidad y calculando los valores de campo iguales que el campo FID o OBJECTID. | Field |
null_value (Opcional) | El valor que representa valores nulos (que faltan). Si no se especifica ningún valor, se asumirá el valor <Null> para las clases de entidad de la geodatabase. Para una entrada de shapefile, se necesita un valor numérico del marcador de posición nulo. | Double |
out_table (Opcional) | La tabla de salida que incluirá los valores rellenados (estimados). La tabla de salida es necesaria si se ha introducido una tabla relacionada. | Table |
Muestra de código
El siguiente script de la ventana de Python muestra cómo utilizar la herramienta FillMissingValues.
import arcpy
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"
arcpy.FillMissingValues_stpm("Chicago_Data", "Chicago_Filled", "COUNT", "AVERAGE",
"K_NEAREST_NEIGHBORS", "", "", "", 8)
El siguiente script de Phython independiente muestra cómo utilizar la herramienta 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())
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí