Bienvenido a la documentación de IECA-extractor!
Modulos
- class Actividad(configuracion_global, configuracion_actividad, plantilla_configuracion_actividad, actividad)
Una actividad es definida por una lista de consultas a través de su ID en el fichero de configuración “actividades.yaml”.
Esta clase ejecutará las consultas y se encargará de hacer las transformaciones pertinentes al grupo completo para su correcta modelización en el estandard SDMX.
- Parámetros
configuracion_global (
Diccionario
) – Configuración común a todas las ejecuciones que se realicen.configuracion_actividad (
Diccionario
) – Configuración común para toda la actividad.plantilla_configuracion_actividad (
Diccionario
) – Configuración por defecto de la actividad. Este fichero de configuración extiende aconfiguracion_actividad
con las configuraciones que no están explicitamente recogidas en este.actividad (
Cadena de Texto
) – Nombre de la actividad.
- consultas
Diccionario que contiene las consultas con los datos y metadatos, cuya clave serán los
src.consulta.Consulta.id_consulta
correspondientes.- Type
Diccionario
desrc.consulta.Consulta
- agrupar_consultas_SDMX()
Tras realizar las consultas, esta función genera un fichero de configuración en el sistema de información con respecto a la actividad completa, agrupando las consultas de la actividad por su titulo. De esta forma un grupo de consultas formaran un fichero de datos .CSV que contiene a todas. Los datos se guardarán siguiendo dos procedimientos:
EXTENSION_DISJUNTOS: Estructura de datos (DSD) común para toda la actividad donde las columnas faltantes son añadidas y rellenas con la variable _Z
ORIGINAL: Estructura de datos (DSD) por cada grupo de consulta. Si las consultas con el mismo titulo tienen dimensiones distintas, se creara una estructura común para todas las consultas y se mostrara una advertencia por consola.
- comprobar_dimensiones_grupo_actividad(columnas_grupo, grupo)
Comprueba el modelado por titulos en BADEA y muestra por pantalla advertencias sobre las dimensiones para facilitar su depuración.
- Parámetros
columnas_grupo (
Lista
deDataFrame.columns
) – Listado de columnas de cada consulta del grupo.grupo (
Cadena de Texto
) – Titulo del grupo
- ejecutar()
Aplica las funciones configuradas en el fichero de configuración “actividades.yaml” bajo la clave acciones_actividad_completa.
- class Consulta(id_consulta, configuracion_global, configuracion_actividad, actividad)
Este objeto al inicializarse consultara la API del IECA utilizando
id_consulta
. Esta clase se encargará de generar las estructuras de datos y metadatos y de ser su recipiente. Las medidas se trataran como parte de una dimensión SDMX llamada INDICATOR y se manejaran dentro de la clasesrc.datos.Datos
.- Parámetros
id_consulta (
Cadena de Texto
) – ID de la consulta que se va a procesar.configuracion_global (
Diccionario
) – Configuración común a todas las ejecuciones que se realicen.configuracion_actividad (
Diccionario
) – Configuración común para toda la actividad.actividad (
Cadena de Texto
) – Nombre de la actividad.
- id_consulta
- Type
Cadena de Texto
- metadatos
Metainformación de la consulta con los siguientes campos clave:
id
title
subtitle
activity
source
periodicity
type
notes
- Type
Diccionario
- jerarquias
Jerarquias utilizadas en los datos de la consulta
- Type
Lista
desrc.jerarquia.Jerarquia
- datos
Datos proporcionados en la consulta.
- Type
src.datos.Datos
- ejecutar()
Aplica las funciones configuradas en el fichero de configuración “actividades.yaml” bajo las claves acciones_jerarquia y **acciones_datos*.
- solicitar_informacion_api()
Utilizando
id_consulta
busca el JSON de la consulta en local, y si no, le manda la petición a la API del IECA. Si se ha alcanzado la API, se guarda el JSON para acelerar futuras consultas y no sobrecargar el sistema. Hemos de tener esto en cuenta, en caso de que las consultas de la API no sean inmutables.- Devuelve
metainfo (
Diccionario
)hierarchies (
Diccionario
)measures (
Diccionario
)data (
Diccionario
)
- class Jerarquia(jerarquia, configuracion_global, actividad)
Estructura de datos para manejar las jerarquias encontradas dentro de las consultas del IECA, es necesario hacer una petición HTTP para expandir la jerarquia y traernos los valores para generar las listas de código que usaremos en SDMX.
- Parámetros
jerarquia (
Diccionario
) – Información resumida de la jerarquia obtenida en una consulta anterior.configuracion_global (
Diccionario
) – Configuración común a todas la ejecución.actividad (
Cadena de Texto
) – Nombre de la actividad.
- id_jerarquia
concatenación del alias y el código de la jerarquia.
- Type
Cadena de Texto
- metadatos
Metainformación de la jerarquia con los siguientes campos clave:
url
cod (Codificación)
des (Descripción)
position (En desuso)
order (En desuso)
alias (Las jerarquias pueden tener distintos datos, usamos estos alias para concretizarlos)
levels (En desuso)
- Type
Diccionario
- datos
La jerarquia en un cuadro de datos que posteriormente puede ser exportada a .CSV para importarse en SDMX.
- Type
- convertir_jerarquia_a_dataframe(datos_jerarquia)
Transforma el diccionario con los datos de la jerarquia a formato tabular, borrando los valores con Código duplicado además de añadir el valor _Z.
- Devuelve
La jerarquia en un cuadro de datos.
- Tipo del valor devuelto
datos (
pandas.DataFrame
)
- guardar_datos()
Accion que guarda la jerarquia en formato .CSV de dos formas:
Con el Còdigo de BADEA (No admitido por nuestro framework de SDMX)
Sin el código de BADEA (Admitido por nuestro framework de SDMX)
La salida de la lista de código para importar en SDMX se deshará de los valores de las jerarquias que no han sido utilizados en la consulta.
- solicitar_informacion_jerarquia()
Realiza la petición HTTP a la API si la jerarquía no se encuentra en nuestro directorio local, automáticamente se convierte la jerarquia a dataframe haciendo uso de
src.jerarquia.Jerarquia.convertir_jerarquia_a_dataframe
.- Devuelve
La jerarquia en un cuadro de datos.
- Tipo del valor devuelto
datos (
pandas.DataFrame
)
- class Datos(id_consulta, configuracion_global, actividad, periodicidad, datos, jerarquias, medidas)
Estructura de datos para manejar los datos encontrados dentro de las consultas del IECA. El proceso de inicialización de esta estructura realiza los siguientes acciones de forma configurable:
Convierte de JSON a DataFrame utilizando las medidas y jerarquias para generar las dimensiones/columnas.
Desacopla las observaciones en base a las medidas utilizando la dimension INDICATOR
Añade la dimension FREQ de SDMX en base a la periodicidad de la consulta.
- Parámetros
id_consulta (
Cadena de Texto
) – ID de la consulta que se va a procesar.configuracion_global (
Diccionario
) – Configuración común a todas las ejecuciones que se realicen.actividad (
Cadena de Texto
) – Nombre de la actividad.periodicidad (
Cadena de Texto
) – Periodicidad de las observaciones.datos (
Diccionario
) – Datos de la consulta.jerarquias (
Lista
desrc.jerarquia.Jerarquia
) – Jerarquias de la consultamedidas (
src.consulta.medidas
) – Medidas de la consulta
- datos
Los datos en un cuadro de datos
- Type
- datos_por_observacion
Los datos desacoplados por medidas en columnas
- Type
- datos_por_observacion_extension_disjuntos
Los datos desacoplados pero con todas las columnas necesarias para crear un DSD para toda la actividad.
- Type
- borrar_datos_duplicados()
Accion que borra las filas duplicadas sin tener en cuenta OBS_VALUE.
- borrar_filas(dics_columna_valor_a_borrar)
Accion que elimina del cuadro de datos las filas que contengan los valores proporcionados.
- Parámetros
dics_columna_valor_a_borrar (
Lista
deCadena de Texto
) – Lista de diccionarios con cuyo par clave-valor es la columna-valor deseado para la eliminación.
- convertir_datos_a_dataframe_sdmx(datos)
Transforma el diccionario con los datos de las observaciones a formato tabular válido para SDMX de la siguiente forma:
Recorremos el diccionario accediendo de forma ordenada a las dimensiones correspondientes tomando las jerarquias y las medidas como referencia.
Los datos en el JSON están indexados por “COD” en lugar de por “ID” que sería más apropiado, aquí cruzamos la información pertinente para mapear COD -> ID.
Rellenamos la dimension FREQ de SDMX en base a la periodicidad de la consulta.
- Parámetros
datos (
Diccionario
) – Datos de la consulta.- Devuelve
Las observaciones en un cuadro de datos con la forma tabular original del modelado hecho en BADEA.
- Tipo del valor devuelto
datos (
pandas.DataFrame
)
- desacoplar_datos_por_medidas()
El formato tabular proporcionado por la API tiene una dimension para cada medida, nuestro modelado SDMX consistirá en crear una dimension INDICATOR cuyo valor será la medida en sí.
Esto quiere decir que nuestro cuadro de datos tendrá menos columnas, pero mayor número de filas (Numero de observaciones * Numero de medidas).
- Parámetros
datos (
pandas.DataFrame
) – Datos de la consulta en un cuadro de datos.- Devuelve
Las observaciones en un cuadro de datos adaptado al estandar SDMX.
- Tipo del valor devuelto
datos (
pandas.DataFrame
)
- extender_con_disjuntos(dimensiones)
Accion que añade las columnas al dataframe para que todas las dimensiones SDMX de la actividad sean contempladas en un mismo DSD, añadiendo el valor _Z a estas nuevas columnas.
- Parámetros
dimensiones (
Lista
deCadena de Texto
) – Lista de dimensiones únicas que se encuentran en el conjunto de la actividad sobre la que estamos trabajando.
- extender_mapa_nuevos_terminos()
Accion que crea/extiende el mapa para las columnas configuradas facilitando al técnico realizar la conversión y su posterior reutilización en distintas actividades.
- guardar_datos(clase)
Accion que guarda la jerarquia en formato .CSV de dos formas bifurcando en directorios a traves del argumento clase:
Con el Còdigo de BADEA (No admitido por nuestro framework de SDMX)
Sin el código de BADEA (Admitido por nuestro framework de SDMX)
- Parámetros
clase (
Cadena de Texto
) – Nombre para el directorio en el que se almacenaran los datos.
- mapear_columnas()
Accion que realiza el mapeo de las columnas del cuadro de datos configuradas bajo el parámetro observaciones utilizando el mapa previamente relleno a través del campo
mapeo_columnas
del fichero de configuracion global. Por último limpiamos las jerarquias de los prefiejos y sufijos.
- mapear_valores()
Accion que realiza el mapeo de los valores del cuadro de datos configuradas bajo el parámetro
dimensiones_a_mapear
observaciones utilizando los mapas previamente rellenos del fichero de configuracion global.
- sumar_datos_duplicados()
Accion que agrupa los datos duplicados y devuelve los datos agregados de OBS_VALUE.
- insertar_freq(df, periodicidad)
Añade los valores a la columna “FREQ” dependiendo de un mapa simple de periodicidad.
- Parámetros
df (
pandas.DataFrame
) – Cuadro de datos al que añadir la frecuencia.periodicidad (
Cadena de Texto
) – Periodicidad de la consulta.
- transformar_formato_tiempo_segun_periodicidad(serie, periodicidad)
Transforma la dimension temporal de un cuadro de datos para que se adecue al formato de tiempo utilizado en SDMX.
- Parámetros
serie (
pandas.Series
) – Serie perteneciente al cuadro de datos a transformarperiodicidad (
Cadena de Texto
) – Periodicidad de la consulta.