7 votos

ArcGIS 10, Conversión de fecha a número

Estoy tratando de transformar un campo de fecha como "00:05:40" en un campo entero (es decir, 340 segundos). ¿Alguien sabe cómo puedo hacer esa conversión, por favor?

11voto

texai Puntos 178

Puedes usar arcpy ActualizarCursor para actualizar su campo.

Resumen

La función UpdateCursor crea un cursor que permite actualizar o eliminar filas en la clase de característica, archivo shape o tabla especificados. El cursor cursor coloca un bloqueo en los datos que permanecerá hasta que el script finalice o se elimine el objeto cursor de actualización.

Sintaxis

UpdateCursor (dataset, {where_clause}, {spatial_reference}, {fields}, {campos_ordenados})

import arcpy

rows = arcpy.UpdateCursor("C:/myData.gdb/times") 

for row in rows:  
    date = row.DATE # 00h05min40sec
    dat = date.split('h')
    hour = dat[0] # 00
    min = dat[1].split('min')[0] # 05
    sec =  dat[1].split('min')[1].split('sec')[0] # 40
    newDate = hour * 3600 + min * 60 + sec # 340
    row.DATE = newDate
    rows.updateRow(row) 

del row 
del rows

Espero que te ayude...

8voto

Jon M Puntos 206

Si no te sientes cómodo con arcpy, también puedes hacerlo a través de la herramienta Calculadora de campo o Calcular campo. Tienes que activar la opción Codeblock y definir una función como esta:

def int_from_date(timestamp):
    hour = int(timestamp[0:2])
    min = int(timestamp[3:5])
    sec =  int(timestamp[6:8])
    time_secs = hour * 3600 + min * 60 + sec
    return time_secs

Y luego introduzca lo siguiente como Expresión (asegúrese de que el Tipo de Expresión/Parser es Python, no VB):

int_from_date(!DATE_FIELD!)

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