2016-04-12 6 views
1

Ich habe zwei Karten für die gleiche Fläche (1) eine Raster Landnutzungskarte und (2) ein Shapefile mit Tausenden von Teilwassereinzugsgebieten. Ich versuche, den Landnutzungstyp aus dem Raster (Karte 1) jedem Teilwassereinzugsgebiet (Karte 2) basierend auf der Mehrheitsregel zuzuordnen. Ich habe versucht, räumliche Join, aber das Ergebnis scheint falsch zu sein. Was ist der beste Weg, um es entweder in ArcMap oder durch Arcpy zu tun?GIS/ArcPy: Landnutzungsdaten aus einem Raster extrahieren und Shigfile Polygonen zuweisen

+0

beschreiben Können Sie besser mit, was über die Ergebnisse, die Sie bekam „scheint falsch“? Ein räumlicher Join wäre die erste Methode, die ich auch versuche, also würde ich mehr Details benötigen, um bei der Fehlerbehebung zu helfen. – Erica

+0

Mein Ziel ist es, die Landnutzung mit der maximalen Fläche im Überlappungsbereich zu identifizieren und diese Landnutzung im Polygon der Formdatei zuzuweisen. Beim räumlichen Join habe ich 'INTERSECT' als Match-Option verwendet. In der "Feldzuordnung der Join-Funktionen" habe ich "Modus" als "Zusammenführungsregel" verwendet. Andere Optionen der Zusammenführungsregel sind Frist, Last, Min, Max, Anzahl, Summe, Mittelwert, StD, Median und Range. Wenn ich 'Mode' verwende, gibt es den 'land use' Typ, der meistens im überlappenden Bereich auftritt. Aber mein gewünschtes Ergebnis ist, den Landnutzungstyp zu finden, der im Überlappungsbereich die größte Fläche aufweist. –

Antwort

0

Ich würde empfehlen, Zonal Statistics as Table (Spatial Analyst) zu verwenden, um diese Aufgabe zu erfüllen. Hier ist der allgemeine Arbeitsablauf:

  1. Führen Sie Zonal Statistics as Table mithilfe der Statistik "Majority".
  2. Treten Sie der Tabelle mit dem Wendepunkt Klasse Feature Join Field (Data Management)

import arcpy, os 
from arcpy.sa import * 
arcpy.CheckOutExtension("Spatial") 

# Your watershed feature class 
watersheds = r'C:\path\to\your\geodatabase.gdb\watersheds' 

# Your land cover raster 
raster = r'C:\path\to\your\landcover_raster.tif' 

# The workspace where the output table will go 
zone_table = r'C:\path\to\your\geodatabase.gdb' 

# Perform the zonal statistics and output a table 
arcpy.sa.ZonalStatisticsAsTable (watersheds, 'watershed_id', raster, zone_table, 'DATA', 'MAJORITY') 

# Join the table to the watershed feature class by the OBJECTID field (for feature class) 
arcpy.JoinField_management(watersheds, 'watershed_id', zone_table, 'OBJECTID', 'MAJORITY') 
+0

danke! es hat super funktioniert !! –

Verwandte Themen