4 votos

Añadir, Insertar o cargar los Datos en la geodatabase de campo de tabla

Estoy intentando calcular el punto de estacionamiento (material de archivo) a lo largo de una tubería en un intervalo de tiempo establecido a través de la secuencia de comandos de python, la cosa es que ahora yo estoy aprendiendo a programar en Python, yo vengo de una programación de VBA de fondo. En lo que respecta a este ejercicio voy a ser la creación de un vacío de la geodatabase de archivos, dentro de esta base de datos voy a ser la creación de una característica de vacío de la clase de la tabla. Esta característica de la clase tabla contiene un campo vacío/columna denominada, "Calculado de material de archivo". Mi resultado deseado es para rellenar el contenido de mi función clas tabla a través de secuencia de comandos de Python, tales como los de abajo.

He tenido éxito en la obtención de los resultados deseados dentro de una lista de python, como se muestra a continuación, pero al intentar hacerlo en una geodatabase de archivos, me parece estar en un perdido. Simplemente poner ¿cómo ir sobre la aplicación de la lógica a continuación a la "Calculado de material de archivo" en mi clase de entidad de la tabla? En otras palabras ¿cómo puedo rellenar el "Calculado de material de archivo" con el resultado de mi bucle while? Simplemente estoy tratando de anexar, de carga o de inserción de datos en el campo en cuestión

B_Measure = 0; E_Measure = 5280
Curr_Measure = 0; Interval = 1000
My_List=[]

C_Measure = 0

# Body of the Main program
while abs(E_Measure-C_Measure)>Interval:
    if My_List==[]:
        My_List.append(C_Measure)
        print C_Measure
    else:
        C_Measure=C_Measure + Interval
        My_List.append(C_Measure)
        print C_Measure[/CODE]

He hecho este ejercicio en Excel, utilizando el siguiente Código VBA.

Sub Calculate_Footage()
'Declaring variables
Dim X, Y, Beginning_Point, Ending_Point, Interval, Current_Point As Integer

'Assigning initial value to variables
 X = 2
 Y = 1
 Beginning_Point = 0
 Ending_Point = 5280
 Interval = 1000
 Current_Point = 0

'Assign Field/Column Name
Cells(1, 1).Value = "Calculated Footage"

'This While Loop will populate my "Calculated Footage" field
Do While (Ending_Point - Current_Point) > Interval
Current_Point = Current_Point + Interval
Cells(X, Y).Value = Current_Point

'Move to the next row but same column
X = X + 1
Loop

End Sub

Actual Código De Python # Importación de los módulos del sistema importación de arcpy de arcpy importación de env

# Set workspace in which to create geodatabase
env.workspace = "C:/data"

# Set local variables
out_folder_path = "C:/data" 
out_name = "fGDB.gdb"

# Execute CreateFileGDB
arcpy.CreateFileGDB_management(out_folder_path, out_name)

# Set environment settings for Table in geodatabase
in_database = out_folder_path+"/"+out_name
table_Name = "Custom_Stationing"
arcpy.CreateFeatureclass_management(in_database, table_Name)

# Set workspace for Add Field
in_Table = in_database+"/"+table_Name

Field_Names=["Route_Id","Route_Code","Series","Measure","Calculated_Field"]
for n in Field_Names:
    arcpy.AddField_management(in_Table, n)

Me gustaría aplicar el siguiente ejemplo de código para insertar filas encuentra aquíInserte el Cursor

2voto

Markus Olsson Puntos 12651

Es mejor que use el Calcular el Campo de la herramienta de ArcGIS para lograr los resultados que usted está buscando, ya que se puede especificar mejor los vínculos entre cada fila de la tabla y el valor resultante de "Calculado de material de archivo".

El método (lista/bucle) están por encima no es la mejor práctica de programación para este trabajo. Algo de información sobre el cálculo de campos de fundamentos están disponibles aquí. Del mismo modo, aquí están algunos ejemplos. Su mejor apuesta, si es posible, será para romper el cálculo en un formato que pueda ser llevado a cabo a través de cada fila, por ejemplo: column4 + columna 6 = "Calcula de material de archivo".

Donde sea posible, las listas/bucle debe ser evitado al rellenar las tablas, ya que hay un montón de espacio para los errores a la fluencia (por ejemplo, perdidos/borrados FIDs). La herramienta Calcular Campo, que puede ser escrito usando Python es más fiable.

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