#!/bin/bash
################################################################################
# Script escrito para descargas las medias mensuales de ciertas estaciones
# de España.
#
# Marcos Molina Cano <marcosmolina.tiempo@gmail.com>
# 22/01/2018
################################################################################

# API Key proveída por AEMET. Caducará a los 90 días por lo que habrá
# que actualizarla asiduamente.
api_key="eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJtYXJjb3NAdGllbXBvLmNvbSIsImp0aSI6IjM0Y2QxODcwLWZiOGMtNDUzMC1iMTJkLWU1ZTg1MjJkNDc2OCIsImlzcyI6IkFFTUVUIiwiaWF0IjoxNTE2NjIyNTU3LCJ1c2VySWQiOiIzNGNkMTg3MC1mYjhjLTQ1MzAtYjEyZC1lNWU4NTIyZDQ3NjgiLCJyb2xlIjoiIn0.xTxZPufAlnS14PlTeFjk0z56ujSSSmgTTtWgkB_2-zQ"

# Creamos fichero donde se guardará la información.
WORK_DIR="/home/marcos/OpenData"

# Definición de año inicial y final.
anoInicial=1959
anoFinal=2017

# Listado de indicativos de cada estación meteorológica y su localidad asociada.
indicativo=(1387 0076 3195 5783 B278 2539 C449C 9434)
localidad=(ACoruna Barcelona Madrid Sevilla PalmaDeMallorca Valladolid SantaCruzDeTenerife Zaragoza)

# Bucle que recorre las estaciones.
for ((i=0; i<${#indicativo[@]}; i++)) ; do

  # Directorio de trabajo de cada localidad.
  mkdir -p ${WORK_DIR}/${localidad[$i]}

  # Bucle que recorre todos los años.
  for ((j=${anoInicial}; j<=${anoFinal}; j++)) ; do

    peticion=${WORK_DIR}/${localidad[$i]}/${indicativo[$i]}_${j}.json
    datos=${WORK_DIR}/${localidad[$i]}/${localidad[$i]}_${j}.json
    if test -s ${datos} ; then
      continue
    fi

    curl -k -X GET --header Accept:application/json --header api_key:${api_key} \
    https://opendata.aemet.es/opendata/api/valores/climatologicos/mensualesanuales/datos/anioini/${j}/aniofin/${j}/estacion/${indicativo[$i]} \
    > ${peticion}
    sleep 1

    # Extraemos la url con el json de datos y guardamos.
    url=$(cat ${peticion} | grep '"datos"' | cut -c 14- | cut -c -46)
    curl -k -X GET --header Accept:application/json ${url} > ${datos}
    sleep 1

    # Borramos la peticion.
    rm -f ${peticion}

  done

  # Se crea el fichero CSV.
  php /home/marcos/wrf_model/varios/OpenData.php ${WORK_DIR}/${localidad[$i]}/${localidad[$i]} \
  > /home/marcos/OpenData/1959-2017_${localidad[$i]}.csv
  sleep 1

done
