Rellenar los valores que faltan (Minería de patrones en espacio-tiempo)

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

Gráfico de la herramienta Rellenar valores que faltan

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 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ámetroExplicaciónTipo 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.

  • AVERAGEReemplaza los valores nulos con el valor medio (promedio) de los vecinos de la entidad.
  • MINIMUMReemplaza los valores nulos con el valor mínimo (más pequeño) de los vecinos de la entidad.
  • MAXIMUMReemplaza los valores nulos con el valor máximo (más grande) de los vecinos de la entidad.
  • MEDIANReemplaza los valores nulos con la media (valor medio ordenado) de los vecinos de la entidad.
  • TEMPORAL_TRENDReemplaza los valores nulos según la tendencia en esa ubicación única.
String
conceptualization_of_spatial_relationships
(Opcional)

Especifica cómo se definen las relaciones espaciales entre las entidades.

  • FIXED_DISTANCEEn los cálculos se incluyen las entidades vecinas que están dentro de una distancia crítica especificada (distance_band) de cada entidad y se excluye todo lo que está fuera de la distancia crítica.
  • K_NEAREST_NEIGHBORS Las entidades k más cercanas se incluyen en los cálculos; k es un parámetro numérico especificado.
  • CONTIGUITY_EDGES_ONLY Solo las entidades de polígono vecinas que comparten un límite o que se superponen tendrán influencia sobre los cálculos de la entidad poligonal de destino.
  • CONTIGUITY_EDGES_CORNERS Las entidades poligonales que comparten un límite, comparten un nodo o se superponen tendrán influencia sobre los cálculos de la entidad poligonal de destino.
  • GET_SPATIAL_WEIGHTS_FROM_FILELas relaciones espaciales vienen definidas por un archivo especificado de ponderaciones espaciales. La ruta del archivo de ponderaciones espaciales se especifica mediante el parámetro Weights_Matrix_File.
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

Ejemplo 1 de FillMissingValues (ventana de Python)

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)
Ejemplo 2 de FillMissingValues (script independiente)

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í

Temas relacionados