Mehr

Das Puffern einer PointGeometry in arcpy gibt nur eine Linie zurück?

Das Puffern einer PointGeometry in arcpy gibt nur eine Linie zurück?


Ich versuche, a zu puffernPunktGeometrieObjekt in arcpy zu aPolygonGeometrieobjekt mit ArcGis 10.2.

DasPunktGeometrieObjekt ist in lat/lon WGS84 Koordinaten und soweit ich das verstanden habe, kann ich nur verwendenPointGeometry.bufferindem Sie den Puffer in denselben Koordinaten angeben. Um den Puffer in Metern anzugeben, müsste ich Folgendes verwenden:arcpy.Buffer_analysis.

Also richte ich eine leere Geometrie ein, um den Puffer wie folgt auszuführen:

SpatialRef = u"GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]], PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]; - 450359962737.05 -450359962737.05 10000;-100000 10000;-100000 10000;0.001;0.001;0.001;IsHighPrecision" pointGeom = arcpy.PointGeometry(arcpy.Point(-27.607361, 152.768311), SpatialRef) temPol = arcpy.Geometry() pol = arcpy. Buffer_analysis(pointGeom, temPol, "50 Meter")[0]

Das resultierendePolygonObjekt ist jedoch eine lange dünne Linie und nicht das erwartete kreisförmige Polygon.

Irgendwelche Ideen, was ich falsch mache?


Hier sind zwei Dinge falsch:

  1. DasPunktKonstruktor übernimmt Argumente von X und Y, während Sie Y (Breitengrad) und X (Längengrad) angeben, was zu einem Objekt über dem Nordpol führt
  2. Die XY-Präzision, die Sie imräumlichRefObjekt hat vier Dezimalstellen (1/10000stel Grad), was für einen Kreis mit einem Radius von 50 Metern äußerst grob ist -- eine XY-Skala von 10.000 entspricht ungefähr 11 Metern (am Äquator)

Wenn Sie die Längen- und Breitenkoordinaten in lon,lat umkehren und Ihrer SpatialRef mindestens zwei Stellen hinzufügen (denken Sie daran, sie vom Ursprung zu entfernen - ändern Sie "-4503599622737.05 -4503599622737.05 10000" in "-4503599627.3705 -4503599627.3705 1000000" oder einfach " -400 -400 1000000"), sollten Sie ein entsprechendes Polygon erhalten (das nicht in einem nicht projizierten Koordinatensystem kreisförmig sein, obwohl es in der Nähe des Äquators so erscheinen mag).


Arcpy TypeError: 'Tuple'-Objekt unterstützt keine Elementzuweisung, Feld wurde als FLOAT definiert

Ich arbeite an einem Arcpy-Skript, das Abwasserkanäle für die Reparatur priorisiert. Der Abschnitt, mit dem ich gerade Probleme habe, sucht nach Abwasserkanälen im Umkreis von 50 Fuß um eine Autobahn. Zu diesem Zeitpunkt wurden im Skript mehrere ähnliche Codeabschnitte ausgeführt, bei denen keine Probleme aufgetreten sind.
Ich verstehe nicht, worum es hier geht. Ich habe dieses Skript von jemand anderem geerbt, daher verstehe ich nicht wirklich, wie die anderen Codeabschnitte funktioniert haben (obwohl sie auch als FLOAT-Felder definiert sind, die unveränderlich sein sollten.)
Straßenstandort - Wichtig zu beachten, müssen "Straßen"-Dateien im unten aufgeführten Ordner haben. Wählen Sie alle Hauptstraßen und dann die Kreuzung der Abwasserkanäle innerhalb der angegebenen Puffergrenzen aus. Der Fehler wird für row[1] = 5 zurückgegeben, wenn versucht wird, die neuen WithinInterstates zu ändern. Jeder Rat ist willkommen. Vielen Dank!

Frühere Abschnitte des unten gezeigten Codes funktionieren einwandfrei und füllen die Datenbank wie vorgesehen aus:

Soweit ich das beurteilen kann, sind diese Abschnitte funktional gleich. Kann mir jemand erklären, warum die Interstates nicht funktionieren, während diese funktionieren?


Schau das Video: ArcGIS - Editor - Explode Multipart Feature - Convert selected multipart feature to singlepart