2017-01-22 1 views
-2

Meine Anweisungen:Nachdem einige Probleme Auswahlschicht unter Verwendung von Standort Syntax

Create a Python script that selects parcels from "coa_parcels.shp" that intersect with the shapefile "floodplains.shp" and creates a new shapefile that only contains the selected parcels.

The location of the workspace and the three shapefiles (coa_parcels, floodplains, and the output) should be treated as user-defined inputs using "raw_input" statements.

Unten Beispiel Pseudo-Code für das Skript für diesen Teil ist:

  • Begin
  • Get Benutzereingabe für den Arbeitsbereich
  • Benutzereingaben für den Namen der Eingabe-Feature-Class abrufen (z. B. coa_parcels.shp)
  • Verwenden r Eingabe für den ausgewählten Merkmalklassennamen (z. floodplains.shp)
  • Get Benutzereingabe für ein Ausgabe-Feature Klassennamen (zB selected_parcels.shp)
  • den Arbeitsbereich einstellen und überschreiben Ausgabeeinstellungen
  • Erstellen Sie ein temporäres Feature-Layer
  • Wählen Sie aus der Schicht nach Standort basierend auf die Auswahl Feature-Class
  • Kopieren Sie die ausgewählten Funktionen zu einem neuen Feature-Class
  • drucken Sie eine Nachricht, die die Benutzer wissen zu lassen, dass ein neuer Feature-Class
  • End
  • erstellt wurde

Mein Skript:

import arcpy 

workSpace = raw_input("What is the workspace location? ") 
inFeature = raw_input("What is the input feature class name? ") 
selFeature = raw_input("What is the select feature class name? ") 
outFeature = raw_input("What is the output feature class name? ") 

arcpy.env.workspace = workSpace 
arcpy.env.overwriteOutput = True 
arcpy.MakeFeatureLayer_management("coa_parcels.shp", "lyr") 
arcpy.SelectLayerByLocation_management(coa_parcels.shp,"INTERSECT",floodplains.shp, "NEW_SELECTION") 
arcpy.CopyFeatures_management("lyr", "selected_parcels") 
print "A new feature class",outFeature,"has been created!"here 

Mein Fehler ist dies: Nameerror: name 'coa_parcels' ist nicht

+1

"Name 'coa_parcels' ist nicht definiert" ist selbsterklärend. Betrachtet man seine anderen Vorkommen, sollte es wahrscheinlich eine Zeichenkette und nicht ein Bezeichner sein (= Sie haben die Anführungszeichen vergessen). –

Antwort

-1

Schauen Sie genau auf der Linie definiert, die den Fehler wirft:

arcpy.SelectLayerByLocation_management(coa_parcels.shp, 

Wenn Sie den Layernamen nicht in Anführungszeichen einschließen, geben Sie Python an, dass er die Variable coa_parcels als Parametereingabe für das ausgewählte Layer nach Speicherort-Tool verwenden soll.


Unsolicited, und in keinem Zusammenhang mit Ihrem Fehler, das Feature-Layer-Tool erstellt keine Shape-Dateien. Nichts hindert Sie daran, .shp in einen Layernamen zu integrieren (klar, da dies nicht der Punkt ist, an dem Ihr Fehler auftritt!), Aber für "Best Practices" empfehle ich Ebenen besser zu benennen, damit Sie nicht versehentlich eine Ebene an eine übergeben Werkzeug, das nur eine Formdatei akzeptiert.

+0

Schreiben Sie keine vollwertigen Antworten auf Probleme mit typografischen Fehlern - sie haben keinen Wiederverwendungswert. –

Verwandte Themen