1 votos

¿Cambiar el formato de la fecha mediante la calculadora de campos de ArcMap?

Estoy tratando de encontrar una función en la calculadora de campos (preferiblemente en VB script) que pueda añadir números en un campo que ya tiene datos.

Tengo datos de años que van desde la década de 1960 hasta 2014 en formato de cadena, y los únicos datos que tengo actualmente en mi campo son los dos últimos dígitos de cada año (es decir, 60, 71, 75, 00, etc. que representan 1960, 1971, 1975, 2000).

¿Existe alguna forma de añadir los 19 y 20 a los años correctos utilizando la calculadora de campos para todo el campo?

Me disculpo si esta es una pregunta repetida, pero soy nuevo en el sitio y no pude encontrar ninguna respuesta.

4voto

Tedy Puntos 46

No estoy seguro de cómo hacer esto es VB script, pero lo hago en python. En la calculadora de campo, establezca su Parser a Python. Haga clic en la casilla Mostrar bloque de código. En el cuadro de entrada (donde se ve fieldname = arriba), escriba getYear (!fieldname!) , donde fieldname es el nombre del campo con los años.

El código del bloque de código depende de si su campo es una cadena o un tipo de número (int, float, etc). Si es de tipo numérico, esto le servirá:

def getYear (val):
    if val == None:
        return
    if val > 15:
        return val + 1900
    else:
        return val + 2000

Si su campo es de tipo cadena/texto, opte por esto:

def getYear (val):
   if val == None:
       return
   year = int (val)
   if year > 15:
       return str(year + 1900)
   else:
       return str(year + 2000)

0 votos

¡Gracias por el consejo, y he podido conseguir que funcione! Curiosamente, por alguna razón, el código de bloque de código sólo funcionaría después de escribir el script en GUI primero, y luego copiar y pegar en la calculadora de campo. ¿Alguna idea de por qué podría ser?

0 votos

Genial, me alegro de que te funcione. El fallo puede ser por varios motivos. Comprueba la pestaña de geoprocesamiento -> resultados. En la ventana de resultados, busca tu intento fallido y comprueba los mensajes. Eso puede darte una pequeña pista. A menudo es un problema de sangría.

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