Comment puis-je créer un fichier de formes à l'aide de Python dans ArcGIS 10?
J'ai lat & long.
À partir de cela, j'ai besoin de code Python qui créera un fichier de formes dans ArcGIS Desktop 10.
la source
Comment puis-je créer un fichier de formes à l'aide de Python dans ArcGIS 10?
J'ai lat & long.
À partir de cela, j'ai besoin de code Python qui créera un fichier de formes dans ArcGIS Desktop 10.
Pour créer des points:
ptList =[[20.000,43.000],[25.500, 45.085],[26.574, 46.025], [28.131, 48.124]]
pt = arcpy.Point()
ptGeoms = []
for p in ptList:
pt.X = p[0]
pt.Y = p[1]
ptGeoms.append(arcpy.PointGeometry(pt))
arcpy.CopyFeatures_management(ptGeoms, r"C:\Temp\test.shp")
Il renverra un message comme celui-ci:
<Result 'C:\\Temp\\test.shp'>
Une autre option serait d'utiliser simplement les outils de géotraitement arcpy existants, voir le code ci-dessous.
# Import arcpy module
import arcpy
# Local variables:
table_dbf = "C:\\temp\\table.dbf"
table_Layer2 = "table_Layer2"
point3_shp = "C:\\temp\\point3.shp"
# Process: Make XY Event Layer
arcpy.MakeXYEventLayer_management(table_dbf, "x_coord", "y_coord", table_Layer2, "", "")
# Process: Copy Features
arcpy.CopyFeatures_management(table_Layer2, point3_shp, "", "0", "0", "0")
mxd = arcpy.mapping.MapDocument(r"C:\temp\Untitled.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
addLayer = arcpy.mapping.Layer(point3_shp)
arcpy.mapping.AddLayer(df, addLayer, "BOTTOM")
mxd.saveACopy(r"C:\temp\Untitled1.mxd")
Vous pouvez créer un fichier de formes en Python à l'aide de l' outil Créer une classe d' entités. Il y a un exemple au bas de la page.
Pour remplir le fichier de formes avec vos données lat & long, vous pouvez utiliser un curseur d'insertion .
Vous pouvez peut-être charger vos données lat & long sous forme de liste dans Python, puis parcourir le tableau remplissant les lignes de votre nouveau fichier de formes avec le curseur d'insertion.
Une liste de coordonnées python peut être construite comme ceci:
latLonList = [[40.000,-75.000],[39.998,-75.432],[39.981,-75.343]]
Ensuite, pour parcourir les coordonnées de la liste (et les imprimer, par exemple), procédez comme suit:
for coord in latLonList:
print "lat: " + str(coord[0])
print "lon: " + str(coord[1])
Pour ajouter une couche à un fichier mxd, voir Ajout d'un fichier de formes ou d'une classe d'entités en tant que couche dans ArcGIS Desktop à l'aide de Python / ArcPy?