Visualización de Fechas fuera de CartoDroid

Cuando trabajamos con bases de datos sqlite, nos enfrentamos al problema de que no existe el tipo Date, lo que nos obliga a trabajar con otro tipo de datos para la recogida de fechas.

CartoDroid para ello lo que utiliza son campos de tipo Integer que guarda lo que se denomina Tiempo Unix (Unixepoch), el cual se define como la cantidad de segundos transcurridos desde la medianoche UTC del 1 de enero de 1970. Dada la forma de guardar los datos, que es un estándar en determinados ámbitos, suele ser sencillo una transformación a un formato legible de fecha. Sin embargo en algún otro programa no es algo inmediato.

Vamos a fijarnos en QGis como software que no soporta este tipo de datos y que solemos tomar como referencia para explotar los datos recogidos con CartoDroid.

Para poder ver en QGis los datos recogidos en Cartodroid, vamos a utilizar la “calculadora de campos” que provee dentro de la “tabla de atributos”.

Dado que no tenemos una fucnión dentro de QGis que realice la transformación de forma directa, tenemos que contruirla nosotros mismos. Para ello debemos entrar en la pestaña “Editor de funciones” de la calculadora de campos y seguimos los siguientes pasos:

    • Pinchamos Sobre “Archivo nuevo” y escribimos el nombre que le queremos dar.
    • Pegamos las siguientes lineas de código Python
"""
Define new functions using @qgsfunction. feature and parent must always be the
last args. Use args=-1 to pass a list of values as arguments
"""

from qgis.core import *
from qgis.gui import *
import time

@qgsfunction(args='auto', group='Custom')
def fromSecToDate(value1, feature, parent):
    outtime = time.gmtime(value1)
    outtime = time.strftime("%d-%m-%Y", outtime)
    return outtime
  • Pinchamos sobre el botón “Cargar”

Una vez creada la función, podemos utilizarla dentro de la calculadora. Para ello vamos a la pestaña “Expresión” y seleccionamos de la lista de funciones, dentro de la sección “Custom” la función fromSecToDate y escribimos la expresión  fromSecToDate(f_insp)

Por otra parte seleccionamos la creación de un campo nuevo y le damos nombre. Cuando “Aceptemos” se creará un campo nuevo con el nombre seleccionado con el valor de fecha legible.