Saltar a contenido

Publicar series en la API de Series de Tiempo

Para publicar series en la API de Series de Tiempo, tenés que:

  1. Crear una distribución de series de tiempo (puede ser a partir de cambiar el formato de un recurso publicado en un dataset ya existente)
  2. Documentar la distribución en un catálogo
  3. Dar aviso a Datos Argentina

El punto 2 de esta sección te explica cómo documentar una distribución de series de tiempo armando un catálogo de datos abiertos en Excel. Si tenés un Portal Andino, lee cómo documentar series de tiempo en un Portal Andino.

Indice

1. Crear una distribución de series de tiempo

Una distribución de series de tiempo es un archivo CSV donde la primer columna contiene las fechas y cada una de las otras columnas es una serie de tiempo.

Así se ve una tabla de series de tiempo en una planilla de cálculo como Excel, Libre Office o Google Spreadsheet:

indice_tiempo oferta_global_pib oferta_global_importacion demanda_global_exportacion demanda_global_ibif demanda_global_consumo_priv
1993-01-01 236520.0336 22027.59999 16340.95975 45069.41348 31952.717
1994-01-01 250307.886 26682.25975 18840.403 51231.4255 32094.804
1995-01-01 243186.1018 24065.62925 23084.79625 44528.27725 32338.89925
1996-01-01 256626.244 28284.11475 24850.043 48483.8615 33040.55475
1997-01-01 277441.3173 35884.496 27876.14225 57047.5 34104.32325
1998-01-01 288123.3068 38903.79175 30837.53425 60780.6695 35249.1645
1999-01-01 278369.0138 34520.59125 30448.89575 53116.3155 36173.34075

La tabla puede ser generada con un software de planilla de cálculo, una rutina programada o incluso a mano con un editor de texto! Pero en cualquier caso tenés que guardarla como un archivo CSV:

indice_tiempo,oferta_global_pib,oferta_global_importacion,demanda_global_exportacion,demanda_global_ibif,demanda_global_consumo_priv
1993-01-01,236520.033577,22027.5999938,16340.9597519,45069.4134803,31952.717001
1994-01-01,250307.886,26682.25975,18840.403,51231.4255,32094.804
1995-01-01,243186.10175,24065.62925,23084.79625,44528.27725,32338.89925
1996-01-01,256626.244,28284.11475,24850.043,48483.8615,33040.55475
1997-01-01,277441.31725,35884.496,27876.14225,57047.5,34104.32325
1998-01-01,288123.30675,38903.79175,30837.53425,60780.6695,35249.1645
1999-01-01,278369.01375,34520.59125,30448.89575,53116.3155,36173.34075

Es muy importante que el archivo CSV cumpla con estas condiciones:

Fechas en formato YYYY-MM-DD

El índice de tiempo debe tener las fechas en formato YYYY-MM-DD. Este es el estándar ISO 8601.

Por ejemplo: 12/03/2001 no está soportado, debe escribirse 2001-03-12.

Fechas estandarizadas en planillas de cálculo

Las planillas de cálculo suelen leer de distintas maneras las fechas y a veces es difícil controlar en qué formato se guardan cuando "exportás a CSV" o "guardás como CSV".

El mejor consejo:

  • Seleccioná la columna completa que va a ser el índice de tiempo, asignale un formato de "Texto" y escribí las fechas después, como cadenas de texto (así evitás que la planilla de cálculo las lea como fechas).
  • Cambiá (ya sea en el sistema o en tu Excel) los caracteres separadores de decimales y miles, por (".") y (",") respectivamente.

Fecha más antigua primero a la más reciente al final

El indice de tiempo debe comenzar por la fecha más antigua y terminar por la más reciente. Menor a mayor, orden ascendente.

indice_tiempo_correcto indice_tiempo_incorrecto
1993-01-01 1999-01-01
1994-01-01 1998-01-01
1995-01-01 1997-01-01
1996-01-01 1996-01-01
1997-01-01 1995-01-01

Fechas continuas

Al índice de tiempo no le pueden faltar valores intermedios. Si no hay datos de una serie para determinado período, debe estar la celda en blanco.

indice_tiempo_correcto indice_tiempo_incorrecto
1993-01-01 1993-01-01
1994-01-01 1994-01-01
1995-01-01 1997-01-01
1996-01-01 1998-01-01
1997-01-01 1999-01-01

Fecha inicial del período

Para representar períodos más largos que una fecha (el caso de todas las frecuencias de tiempo más bajas que la diaria) debe usarse siempre la fecha completa del comienzo del período.

Mensual

indice_tiempo_correcto indice_tiempo_incorrecto
1980-01-01 1980-01-31
1980-02-01 1980-02-28
1980-03-01 1980-03-31

Trimestral

indice_tiempo_correcto indice_tiempo_incorrecto
1980-01-01 1980-02-01
1980-04-01 1980-05-01
1980-07-01 1980-08-01
1980-10-01 1980-11-01

Semestral

indice_tiempo_correcto indice_tiempo_incorrecto indice_tiempo_incorrecto
1980-01-01 1980-01-01 1980-01-31
1980-07-01 1980-08-01 1980-07-31
1981-01-01 1981-01-01 1981-01-31

Usar "," como separador de columnas

Las columnas del CSV deben estar separadas con ",". No con ";", "|" ni ningún otro caracter.

Correcto

indice_tiempo,oferta_global_pib,oferta_global_importacion,demanda_global_exportacion,demanda_global_ibif,demanda_global_consumo_priv
1993-01-01,236520.033577,22027.5999938,16340.9597519,45069.4134803,31952.717001
1994-01-01,250307.886,26682.25975,18840.403,51231.4255,32094.804
1995-01-01,243186.10175,24065.62925,23084.79625,44528.27725,32338.89925

Incorrecto

indice_tiempo;oferta_global_pib;oferta_global_importacion;demanda_global_exportacion;demanda_global_ibif;demanda_global_consumo_priv
1993-01-01;236520.033577;22027.5999938;16340.9597519;45069.4134803;31952.717001
1994-01-01;250307.886;26682.25975;18840.403;51231.4255;32094.804
1995-01-01;243186.10175;24065.62925;23084.79625;44528.27725;32338.89925

Usar "." como separador decimal

Los números decimales deben usar "." como separador decimal. No usar ",".

Correcto

indice_tiempo,oferta_global_pib,oferta_global_importacion,demanda_global_exportacion,demanda_global_ibif,demanda_global_consumo_priv
1993-01-01,236520.033577,22027.5999938,16340.9597519,45069.4134803,31952.717001
1994-01-01,250307.886,26682.25975,18840.403,51231.4255,32094.804
1995-01-01,243186.10175,24065.62925,23084.79625,44528.27725,32338.89925

Incorrecto

indice_tiempo,oferta_global_pib,oferta_global_importacion,demanda_global_exportacion,demanda_global_ibif,demanda_global_consumo_priv
1993-01-01,"236520,033577","22027,5999938","16340,9597519","45069,4134803","31952,717001"
1994-01-01,"250307,886","26682,25975","18840,403","51231,4255","32094,804"
1995-01-01,"243186,10175","24065,62925","23084,79625","44528,27725","32338,89925"

No usar separador de miles

Los números decimales no deben usar separador de miles.

Correcto

indice_tiempo,oferta_global_pib,oferta_global_importacion,demanda_global_exportacion,demanda_global_ibif,demanda_global_consumo_priv
1993-01-01,236520.033577,22027.5999938,16340.9597519,45069.4134803,31952.717001
1994-01-01,250307.886,26682.25975,18840.403,51231.4255,32094.804
1995-01-01,243186.10175,24065.62925,23084.79625,44528.27725,32338.89925

Incorrecto

indice_tiempo,oferta_global_pib,oferta_global_importacion,demanda_global_exportacion,demanda_global_ibif,demanda_global_consumo_priv
1993-01-01,"236,520.033577","22,027.5999938","16,340.9597519","45,069.4134803","31,952.717001"
1994-01-01,"250,307.886","26,682.25975","18,840.403","51,231.4255","32,094.804"
1995-01-01,"243,186.10175","24,065.62925","23,084.79625","44,528.27725","32,338.89925"

Separador de miles al exportar planilla de cálculo a CSV

Algunas planillas de cálculo (como Excel en algunas versiones) exportan a CSV agregando el separador de miles si el usuario eligió un formato de visualización de número que lo incluye. Para evitarlo, seleccionar las columnas que contienen las series y elegir un formato de visualización de número sin separador de miles.

Una vez que creaste el CSV, es hora de subirlo a alguna URL pública y documentarlo en el Excel.

A. Crear o editar el dataset que contendrá al recurso

Si no creaste el Dataset que contendrá el nuevo recurso/distribución de series de tiempo, tenés que crear un nuevo Dataset. Si el Dataset ya existe, sólo tenés que agregar un nuevo recurso.

catalog_xlsx_nuevo_dataset.png

B. Agregar un nuevo recurso y documentar sus metadatos usuales

Documentar un recurso de series de tiempo es igual que documentar cualquier otro recurso, hasta que llegues a la hoja field.

C. Documentar el índice de tiempo

Una vez que llegás a la hoja field tenés que documentar la primer columna del CSV: el índice de tiempo.

catalog_xlsx_indice_tiempo.png

  • Título de la columna (field_title): debe ser exactamente el mismo título que tiene en el CSV. Ej.: indice_tiempo.
  • Tipo de dato (field_type): debe ser date. Indica a la aplicación que los valores del campo son fechas estandarizadas.
  • Tipo de dato especial (field_specialType): debe ser time_index. Indica a la aplicación que el campo cumple con todas las propiedades de un índice de tiempo, tal como se explicó en la sección anterior.
  • Detalle del tipo de datos especial (field_specialTypeDetail): debe declararse la frecuencia del índice de tiempo en ISO 8601 para intervalos repetidos:
    • R/P1Y: anual
    • R/P6M: semestral
    • R/P3M: trimestral
    • R/P1M: mensual
    • R/P1D: diario

D. Documentar las series de tiempo

El resto de las columnas a documentar son las series de tiempo.

catalog_xlsx_series.png

  • Título de la columna (field_title): debe ser exactamente el mismo título que tiene en el CSV. Ej.: pib_precios_corrientes. No puede superar los 60 caracteres en ningún caso.
  • Tipo de dato: puede ser "Número decimal (number)" o "Número entero (integer)". Las series sólo pueden tener números enteros o decimales como valores.
  • Descripción de la columna (field_description): es el metadato más importante por el cual los usuarios van a buscar esa serie. La descripción no debe dejar lugar a dudas de qué serie se trata y conviene que siga una estructura común. Ej.: "Indice de Precios al Consumidor. Nivel General Nacional. Base diciembre 2016.".
  • Unidad (field_units): es la unidad de medida en que están expresados los valores numéricos de la serie. Ej.: "Millones de pesos de 2004", "Kilogramos" o "Millones de USD corrientes".
  • Identificador (field_id): es el código que identifica unívocamente a la serie dentro de toda la base de series de tiempo de la Administración Pública Nacional. Debe pensarse de forma que no sea muy largo pero no pueda pisarse con otras series: "ipc" es un mal código, mientras que "ipc_0001" es mejor. Conviene decidir una estructura o convención para generar los códigos de las series del organismo y ceñirse a ella. Ver cómo generar buenos identificadores.

Validador de distribuciones de series de tiempo

Una vez publicada la distribución en el catálogo chequeá que no tenga errores en https://datosgobar.github.io/series-tiempo-ar-validation/

3. Dar aviso a Datos Argentina

Una vez que documentaste un nuevo recurso de series de tiempo, escribinos a datos@modernizacion.gob.ar para que lo federemos en la API y te ayudemos a resolver cualquier problema!

A partir de que se federa por primera vez, la API revisará automáticamente 4 veces por día el archivo CSV y los metadatos para reflejar cualquier cambio que hagas.