4 votos

¿Cómo puedo usar una variable para especificar qué campo actualizar con arcpy.UpdateCursor?

Estoy escribiendo un script que recorre varios shapefiles de puntos diferentes, encuentra cuántos se encuentran dentro de un área determinada y escribe el resultado en una tabla de una base de datos de Access. He utilizado un cursor de búsqueda para buscar los nombres de los archivos de puntos, que luego se guardan en una variable. A continuación, me gustaría utilizar esta variable para especificar qué campo actualizar en otra tabla. Este es mi código:

selection = 1
while selection < 3:
        rows = arcpy.SearchCursor("C:\\MyDB.mdb\\Source_Class_combinations") #opens search cursor on the info table
        for row in rows:
            if row.Order == selection:  
                destfield = row.DestField # extracts the name of the destination field
        del row  
        del rows 
        print "Defining variables..."
        ptfile = str(destfield)+"_lyr"
        rowtoud = "row."+str(destfield) #create the variable with the field to update

        # Process: Select Layer By Location
        print "select by location"
        arcpy.SelectLayerByLocation_management(ptfile, "INTERSECT", neighfile, "", "NEW_SELECTION")
        count = int(arcpy.GetCount_management(ptfile).getOutput(0))
        print "count = " + str(count)

        #Update the number of points selected in the neighbourhoods table
        print "updating count..."
        rows = arcpy.UpdateCursor("C:\\MyDB.mdb\\neighbourhoods") 
        for row in rows:
            if row.StudyID == str(neigh):
                rowtoud = count
                rows.updateRow(row)
        del rows
        del row
        selection +=1

La selección parece funcionar bien, pero la tabla no se actualiza y no se devuelve ningún mensaje de error. ¿Puedo utilizar una variable como esta?

Estoy usando ArcGIS 10, python 2.6, y Access 2007

Gracias, Flo

3voto

Roy Puntos 2884

Pruebe a utilizar el setValue(fieldName, object) método con su variable de nombre de campo.

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