¿Crear shapefile a partir de valores lat / long usando ArcPy? [cerrado]

10

¿Cómo puedo crear un shapefile usando Python en ArcGIS 10?

Tengo lat y largo.

A partir de esto, necesito el código Python que creará un archivo de forma en ArcGIS Desktop 10.

Mehul
fuente

Respuestas:

15

Para crear puntos:

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")

Devolverá un mensaje como este:

<Result 'C:\\Temp\\test.shp'>
Aragón
fuente
6

Otra opción sería usar las herramientas de geoprocesamiento arcpy existentes, consulte el código a continuación.

   # 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")
artwork21
fuente
6

Puede crear un shapefile en Python usando la herramienta Crear clase de entidad. Hay un ejemplo al final de la página.

Para llenar el archivo de forma con sus datos largos y largos, puede usar un cursor de inserción .

Tal vez pueda cargar sus datos de lat & long como una lista en Python, luego iterar a través de la matriz que llena las filas de su nuevo archivo de forma con el cursor de inserción.

Una lista de coordenadas de Python se puede construir así:

latLonList = [[40.000,-75.000],[39.998,-75.432],[39.981,-75.343]]

Luego, para recorrer las coordenadas en la lista (e imprimirlas, por ejemplo), haga esto:

for coord in latLonList:
    print "lat: " + str(coord[0])
    print "lon: " + str(coord[1])

Para agregar una capa a un archivo mxd, consulte ¿ Agregar archivo de forma o clase de entidad como capa en ArcGIS Desktop usando Python / ArcPy?

Casey
fuente