Skip to content

Anzahl der Attribute für eindeutige Feldwerte in ArcGIS for Desktop zählen?

Lösung:

Es gibt ein paar Möglichkeiten, dies anzugehen, aber hier ist eine ziemlich einfache. Ich gehe davon aus, dass Sie ArcGIS verwenden. Dies ist ohne Python problemlos möglich. Hast du dir das angeschaut? Zusammengefasste Statistiken Werkzeug? Sie können dies auf Ihrem Polling Station-Layer ausführen und die resultierende Tabelle wieder mit der State-Feature-Class verbinden.

Setzen Sie das Feld Statistik auf Zustand und den Statistiktyp auf Anzahl. Verbinden Sie die Ergebnisse mit der State-Feature-Class und aktualisieren Sie das Feld "Anzahl" in diesem Layer.

Wenn Sie ArcGIS verwenden, wäre dies meiner Meinung nach eine einfache Möglichkeit, ohne Zwischenprodukte zu erstellen, indem Sie jeden Bundesstaat in Ihrem Bundesstaat-Polygon auswählen (vorausgesetzt, Sie verfügen über Multipart-Features) und dann die Wahllokal-Features nach Standort auswählen. Sie können dann zählen, wie viele Features ausgewählt sind, und diesen Wert in Ihr Bundesstaatspolygon schreiben. Das würde ungefähr so ​​aussehen:

import arcpy

# Define some variables
#
polling_stations = r'c:pathtogeodatabase.gdbpolling_stations'
states = r'c:pathtogeodatabase.gdbstates'

# Make feature layers for processing
#
polling_stations_lyr = arcpy.MakeFeatureLayer_management(polling_stations,r'in_memorypolling_stations_lyr')
states_lyr = arcpy.MakeFeatureLayer_management(states,r'in_memorystates_lyr')

# Create an update cursor to access and update states features
#
fields = ['field_containing_state_names','field_which_will_be_updated_with_#_of_polls']
with arcpy.da.UpdateCursor(states_lyr,fields) as cur:
    for row in cur:

        # Make a query to select this feature to be used in a selection of polling places
        #
        state = row[0]
        where=""field_containing_state_names" = "{}''.format(state)
        arcpy.SelectLayerByAttribute_management(states_lyr,'NEW_SELECTION',where)

        # Now select the polling stations by location using the selected state feature
        #
        arcpy.SelectLayerByLocation_management(polling_stations_lyr,'INTERSECT',states_lyr)

        # Count the number of polling stations selected
        #
        number_of_polling_stations = int(arcpy.GetCount_management(polling_stations_lyr).getOutput(0))

        # Update the state feature with this value
        #
        row[1] = number_of_polling_stations
        cur.updateRow(row)

print('Operation complete.')

Dieser Code erfordert ArcGIS 10.x, kann jedoch mit früheren Versionen kompatibel gemacht werden, indem der Cursor im älteren Stil anstelle des hier verwendeten Cursors des Datenzugriffsmoduls verwendet wird.

Angenommen, Sie verwenden ArcGIS, können Sie dafür ein Python-Skript schreiben, aber Sie können auch einfach Folgendes tun:

  1. Schneiden Sie die Punkte mit den Staatspolygonen. Dadurch wird ein neuer Punktdatensatz erstellt.
  2. Führen Sie ein Frequenz -Tool, um die Anzahl der Punkte pro Statusfeld zu ermitteln.
  3. Verbinden Sie dieses mit dem ursprünglichen Zustandspolygon FC und berechnen Sie Ihre Spalte.
Click to rate this post!
[Total: 0 Average: 0]



Anderer Beitrag

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.