Fehlende Werte ausfüllen (Space Time Pattern Mining)

Zusammenfassung

Ersetzt fehlende Werte (NULL-Werte) durch Schätzwerte, die auf räumlichen Nachbarn, Raum-Zeit-Nachbarn oder Zeitserienwerten basieren.

Weitere Informationen zur Funktionsweise des Werkzeugs Fehlende Werte ausfüllen

Abbildung

Abbildung zum Werkzeug "Fehlende Werte ausfüllen"

Verwendung

  • Bei den Eingabe-Features kann es sich um Punkte oder Polygone handeln.

  • Die resultierende Ausgabe enthält drei Felder pro auszufüllendem Feld. Das erste enthält die ursprünglichen und die ausgefüllten Werte und das zweite enthält einen Indikator dafür, dass der Wert geschätzt wurde. Das geschätzte Feld behält den ursprünglichen Feldnamen, es werden jedoch Feld-Aliasnamen mit der folgenden Namenskonvention erstellt: <field>_FILLED und <field>_ESTIMATED. Das dritte hinzugefügte Feld ist die Anzahl der Nachbarn <field>_ N_NEIGHBORS, die in Berechnungen für jeden geschätzten Wert verwendet wird.

  • Die Ausgabe enthält außerdem zusätzliche Felder mit Werten, die Ihnen ein besseres Verständnis der Anzahl der Nachbarn und des Bereichs der Nachbarschaftswerte vermitteln, die in den Berechnungen für den fehlenden Zielwert herangezogen werden. Wenn die Füllmethode auf Durchschnitt gesetzt ist, wird die in Berechnungen verwendete Standardabweichung (<field>_STD) der Nachbarn aufgezeichnet. Der maximale Nachbarschaftswert wird für Minimum und der minimale Nachbarschaftswert wird für Maximum erfasst. Wenn die Füllmethode auf Mittelwert gesetzt ist, wird die mittlere absolute Abweichung der Nachbarn erfasst. Wenn fehlende Werte mit Zeitlicher Trend gefüllt werden, enthält das Feld die Summe der Spline-Residuen im Quadrat. Das Feld NNBRS enthält die Anzahl der Nachbarn, die zum Berechnen der geschätzten Werte herangezogen werden.

  • Sie können Felder einbeziehen, die keine NULL-Werte enthalten. Diese Felder werden in die Ausgabe kopiert, weisen jedoch keine zusätzlichen Felder auf, die mit ihnen in der Ausgabe verknüpft sind (z. B. <field>_FILLED oder <field>_ESTIMATED). Sie können auch eine eindeutige ID angeben, die der Ausgabe hinzugefügt wird. Anschließend können Sie damit die Ergebnisse wieder der Eingabe-Feature-Class hinzufügen.

  • Das Feld NUM_EST (TOT_EST, falls Sie eine zugehörige Tabelle verwenden) ist die Gesamtzahl der geschätzten Variablen für den verknüpften Datensatz. Dieses Feld wird zum Rendern der Ausgabekarte verwendet.

  • Dieses Werkzeug kann mit Bereichsdaten verwendet werden, die als wiederholte Shapes oder mit einer zugehörigen Tabelle gespeichert werden. Bei Angabe einer Positions-ID erkennt das Werkzeug, dass es sich bei der Eingabe um Bereichsdaten handelt und ein Zeitfeld erforderlich ist.

  • Die angegebene Positions-ID ist ein ganzzahliges Feld und sollte eine eindeutige und stationäre Position darstellen. Sie sollte keine unterschiedlichen XY-Koordinaten im Zeitverlauf aufweisen.

  • Wenn Feste Entfernung, Nur benachbarte Kanten oder Benachbarte Kanten/Ecken als Konzeptualisierung von räumlichen Beziehungen ausgewählt wird, kann ein Raum-Zeit-Fenster simuliert werden, indem ein Entfernungsband und eine Zeitliche Nachbarschaft ausgewählt werden.

  • Wenn Feste Entfernung, Nur benachbarte Kanten oder Benachbarte Kanten/Ecken als Konzeptualisierung von räumlichen Beziehungen ausgewählt wird, kann eine Anzahl von räumlichen Nachbarn zum Festlegen einer Mindestanzahl von Nachbarn eingestellt werden.

  • Die Option zum Füllen fehlender Werte entsprechend dem zeitlichen Trend ist nur verfügbar, wenn eine Positions-ID angegeben wird. Außerdem ist ein Zeitfeld erforderlich.

  • Wenn Werte mit Zeitlicher Trend gefüllt werden, muss der NULL-Wert mindestens zwei Zeiträume mit vorangestellten und mindestens zwei Zeiträume mit nachgestellten Werten aufweisen, um ausgefüllt zu werden. Aufgrund dieser Anforderung können NULL-Werte, die in den beiden ersten oder in den beiden letzten Zeitschritten vorhanden sind, nicht mit Zeitlicher Trend gefüllt werden.

  • Die Füllmethode Zeitlicher Trend verwendet die Methode "Interpolated Univariate Spline" im Interpolationspaket von SciPy.

  • Fehlende Werte, die weder geschätzt noch gefüllt werden konnten, werden in der Ausgabe im ursprünglichen Format der NULL-Werte erfasst.

  • Wenn die fehlenden Werte von Bereichsdaten ausschließlich mit räumlichen Nachbarn gefüllt werden, sollte Zeitliche Nachbarschaft auf 0 gesetzt werden.

  • Wenn es sich bei Ihren Daten um Bereichsdaten handelt, kann der Parameter Zeitliche Nachbarschaft zum Filtern nach Zeit genutzt werden. Alternativ können Sie mit einer zeitlichen Nachbarschaft von 0 lediglich räumliche Nachbarn anzeigen.

  • Es ist wichtig, die resultierenden Füllwerte zu überprüfen, um sicherzustellen, dass sie für Ihre Analyse sinnvoll sind. Wenn das ursprüngliche Feld beispielsweise eine ganze Zahl enthielt und das Werkzeug so eingestellt war, dass es zum Füllen den Durchschnitt räumlicher Nachbarn verwendet, erhalten Sie Dezimalstellen in den Ergebnissen. Dies ist nicht sinnvoll, wenn es sich beim Eingabefeld um eine Anzahl handelt. Außerdem kann das Ergebnis aufgrund der Methode, die beim Verwenden von Zeitlicher Trend angewendet wurde, eine negative Zahl sein, auch wenn keiner der vorhandenen Werte negativ war. Dies wäre nicht sinnvoll, wenn es sich bei dem ausgefüllten Feld um das Feld "Bevölkerung" handelt.

  • Das Feld N_NEIGHBORS gibt die Anzahl der Nachbarn aus, die in die Berechnungen für dieses Feature eingeschlossen wird. Wenn Ihre Füllmethode Zeitlicher Trend lautet, gibt diese Zahl die Anzahl der Werte an, die in Ihrer Zeitserie für diese Positions-ID vorhanden ist (wenn in Ihrer Zeitserie beispielsweise nur ein Wert fehlt, wird die Anzahl der Zeitschritte in Ihrem Dataset minus 1 gemeldet). Wenn Sie eine Konzeptualisierung von räumlichen Beziehungen der k nächsten Nachbarn sowie eine Zeitliche Nachbarschaft verwenden, enthält die Anzahl der gemeldeten Nachbarn die k Nachbarn für das Feature, die im festgelegten Zeitfenster liegen.

  • Meldungen, die die Details der Analyse und Eigenschaften der gefüllten Felder beschreiben, werden während der Ausführung des Werkzeugs am unteren Rand des Bereichs Geoverarbeitung angezeigt. Sie können auf diese Meldungen zugreifen, indem Sie mit der Maus auf die Fortschrittsleiste zeigen, auf die Pop-out-Schaltfläche Pop-out klicken oder den Abschnitt "Meldungen" im Bereich Geoverarbeitung erweitern. Sie können ebenfalls über den Geoverarbeitungsverlauf auf die Meldungen für eine vorherige Ausführung des Werkzeugs Fehlende Werte ausfüllen zugreifen.

Syntax

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})
ParameterErklärungDatentyp
in_features

Die Feature-Class, die die auszufüllenden NULL-Werte enthält.

Feature Layer
out_features

Die Ausgabe, die die ausgefüllten (geschätzten) Werte enthält.

Wenn related_table angegeben wird, enthalten die out_features die Anzahl der geschätzten Werte an jeder Position, und die out_table enthält die ausgefüllten (geschätzten) Werte.

Feature Class
fields_to_fill
[fields_to_fill,...]

Die numerischen Felder, die die fehlenden Daten (NULL-Werte) enthalten.

Field
fill_method

Der Berechnungstyp, der angewendet wird. TEMPORAL_TREND ist nur verfügbar, wenn location_id und time_field angegeben sind.

  • AVERAGEErsetzt NULL-Werte durch den Durchschnittswert (Mittelwert) der Nachbarn des Features.
  • MINIMUMErsetzt NULL-Werte durch den Minimalwert (kleinsten Wert) der Nachbarn des Features.
  • MAXIMUMErsetzt NULL-Werte durch den Maximalwert (größten Wert) der Nachbarn des Features.
  • MEDIANErsetzt NULL-Werte durch den Mittelwert (sortierter Mittelwert) der Nachbarn des Features.
  • TEMPORAL_TRENDErsetzt NULL-Werte basierend auf dem Trend an dieser eindeutigen Position.
String
conceptualization_of_spatial_relationships
(optional)

Gibt an, wie räumliche Beziehungen zwischen Features definiert werden.

  • FIXED_DISTANCEBenachbarte Features innerhalb einer angegebenen kritischen Entfernung (distance_band) von jedem Feature werden in die Berechnungen einbezogen; alle außerhalb der kritischen Entfernung liegenden Features werden ausgeschlossen.
  • K_NEAREST_NEIGHBORS Die nächstgelegenen k Features werden in die Berechnungen einbezogen; k ist dabei ein festgelegter numerischer Parameter.
  • CONTIGUITY_EDGES_ONLY Nur benachbarte Polygon-Features mit einer gemeinsamen Grenze oder mit einer Überlappung beeinflussen Berechnungen für das Ziel-Polygon-Feature.
  • CONTIGUITY_EDGES_CORNERS Polygon-Features mit einer gemeinsamen Grenze, einem gemeinsamen Knoten oder mit einer Überlappung beeinflussen Berechnungen für das Zielpolygon-Feature.
  • GET_SPATIAL_WEIGHTS_FROM_FILERäumliche Beziehungen werden durch eine Datei mit räumlichen Gewichtungen definiert. Der Pfad zur Datei mit räumlichen Gewichtungen wird durch den Parameter Weights_Matrix_File angegeben.
String
distance_band
(optional)

Gibt einen Entfernungsgrenzwert für die Option FIXED_DISTANCE an. Features außerhalb des angegebenen Grenzwerts für ein Ziel-Feature werden in Analysen für dieses Feature ignoriert. Dieser Parameter ist nur für CONTIGUITY_EDGES_ONLY oder CONTIGUITY_EDGES_CORNERS verfügbar.

Linear Unit
temporal_neighborhood
(optional)

Gibt ein Intervall vorwärts oder rückwärts in der Zeit an, um Features zu ermitteln, die in Berechnungen für das Ziel-Feature verwendet werden. Features, die nicht in diesem Intervall des Ziel-Features liegen, werden in Berechnungen für dieses Feature ignoriert.

Time Unit
time_field
(optional)

Das Feld, das den Zeitstempel für den jeweiligen Datensatz des Datasets enthält. Dieses Feld muss vom Typ "Datum" sein.

Dies ist erforderlich, wenn location_id angegeben wurde.

Field
number_of_spatial_neighbors
(optional)

Die Anzahl der nächstgelegenen Nachbarn, die in Berechnungen einbezogen werden sollen.

Bei Auswahl von FIXED_DISTANCE, CONTIGUITY_EDGES_ONLY oder CONTIGUITY_EDGES_CORNERS entspricht diese Zahl der Mindestanzahl von Nachbarn, die in Berechnungen einbezogen werden sollen.

Long
location_id
(optional)

Ein ganzzahliges Feld, das eine eindeutige ID-Nummer für jede Position enthält.

Die location_id wird verwendet, um Features aus den in_features mit Zeilen in der related_table abzugleichen oder um eine eindeutige Positions-ID zum Ermitteln zeitlicher Nachbarn festzulegen.

Field
related_table
(optional)

Die Tabelle bzw. Tabellensicht, die die Zeitdaten für die jeweiligen in_features enthält.

Table View
related_location_id
(optional)

Ein ganzzahliges Feld in related_table, das die location_id enthält, auf der die Beziehung basiert.

Field
weights_matrix_file
(optional)

Der Pfad zu einer Datei mit Gewichtungen, die räumliche und potenziell zeitliche Beziehungen unter Features definieren.

File
unique_id
(optional)

Ein ganzzahliges Feld, das für jeden Daten der in_features einen anderen Wert enthält. Dieses Feld kann verwendet werden, um Ihre Ergebnisse wieder mit dem jeweiligen ursprünglichen Datensatz zu verbinden.

Wenn Sie nicht über das Feld unique_id verfügen, können Sie eines erstellen, indem Sie der Tabelle Ihrer Feature-Class ein ganzzahliges Feld hinzufügen und die Feldwerte berechnen, die dem Feld FID oder OBJECTID entsprechen.

Field
null_value
(optional)

Der Wert, der NULL-Werte (fehlende Werte) enthält. Wenn kein Wert angegeben ist, wird für Geodatabase-Feature-Classes <NULL> vorausgesetzt. Für die Shapefile-Eingabe ist ein numerischer Wert des NULL-Platzhalters erforderlich.

Double
out_table
(optional)

Die Ausgabetabelle die die ausgefüllten (geschätzten) Werte enthält.

Die Ausgabetabelle ist erforderlich, wenn eine zugehörige Tabelle eingegeben wird.

Table

Codebeispiel

FillMissingValues – Beispiel 1 (Python-Fenster)

Das folgende Skript veranschaulicht die Verwendung des Werkzeugs FillMissingValues im Python-Fenster.

import arcpy
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"
arcpy.FillMissingValues_stpm("Chicago_Data", "Chicago_Filled", "COUNT", "AVERAGE",
                             "K_NEAREST_NEIGHBORS", "", "", "", 8)
FillMissingValues – Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Python-Skript veranschaulicht, wie Sie das Werkzeug FillMissingValues verwenden.

# 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())

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen