1 votos

Arcpy: Clase de característica de lista a punto

Tengo una lista de listas que contiene:

[vala, valb, valc, vald, (pntx, pnty)]
[vala, valb, valc, vald, (pntx, pnty)]
[vala, valb, valc, vald, (pntx, pnty)]

También tengo una lista de los nombres de los campos que corresponden a vala, valb, etc.

Estoy tratando de usar arcpy para crear una clase de característica con toda la información de la lista, con los nombres de campo adecuados de la lista de nombres de campo.

Como quiero que la FC sea una capa de puntos, he pensado en utilizar la capa de eventos XY, sin embargo parece que no hay opción para añadir una lista de campos y mis coordenadas x,y están en una tupla en lugar de posiciones individuales de la lista para la indexación. Probablemente podría crear una clase de característica vacía y utilizar un cursor de inserción, pero entonces ¿cómo puedo lidiar con la geometría?

Estoy utilizando ArcMap 10.0.

3voto

xenny Puntos 670

Con 10.1, tendrás que usar arcpy.da.insertcursor con el token SHAPE@XY

c = arcpy.da.InsertCursor(emptyshapefil, 
                          ("NAMEa", "NAMEb", "NAMEc", "NAMEd", "SHAPE@XY"))

for row in yourlist:
    c.insertRow(row)

con 10.0 es más complicado. necesitarás arcpy.insertCursor y geometría de puntos

c = arcpy.InsertCursor(emptyshapefile)

for row in yourlist:
    feat = c.newRow()   
#attributes
    feat.NAMEa = row[0]
    feat.NAMEb = row[1]
    feat.NAMEc = row[2]
    feat.NAMEd = row[3]
#geometry 
    pnt = arcpy.Point()
    pnt.X = row[4][0]
    pnt.Y = row[4][1]
    feat.shape = pnt
    c.insertRow(feat)
del feat, c

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X