ds-organizacion-administrativa/scripts/municipios/process.sh

126 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
BASE_PATH="`dirname \"$0\"`" # relative
BASE_PATH="`( cd \"$BASE_PATH\"/../.. && pwd )`" # absolute
# Ruta de los archivos fuente
ARCHIVE=$BASE_PATH/archive
# Ruta donde se almacenan los datos procesados
DATA=$BASE_PATH/data
# Ruta donde se almacenan los datos procesados historicos
HISTORICAL_DATA=$BASE_PATH/data/historical
export PYTHONWARNINGS="ignore"
_VERBOSE=0
FORCE_DOWNLOAD=0
# verbose mode
function log () {
if [[ $_VERBOSE -eq 1 ]]; then
echo -e "$@"
fi
}
# Usage
function show_help() {
cat << EOF
Uso: ${0##*/} [-hvd]
Procesa los archivos fuente de municipios que publica el INE todos los años, y que están alojados en ../archive.
Si no los encuentra, los descarga.
-h muestra esta ayuda y termina
-d fuerza la descarga de los ficheros fuente aunque ya existan
-v modo verbose
EOF
}
# A POSIX variable
OPTIND=1 # Reset
# Initialize our own variables:
while getopts "dh?vf:" opt; do
case "$opt" in
h|\?)
show_help
exit 0
;;
v)
_VERBOSE=1
export PYTHONWARNINGS=
;;
d)
FORCE_DOWNLOAD=1
;;
esac
done
# Creamos los directorios si no existen
mkdir -p $ARCHIVE
mkdir -p $DATA
mkdir -p $HISTORICAL_DATA
CURRYEAR=`date +%y`
log Año actual: $CURRYEAR
log "----------------------------".
EXT=xls
for i in $( seq 4 $CURRYEAR); do
if [ "$i" -gt "15" ]; then
EXT=xlsx
fi
if [ "$i" -eq "4" ]; then
LINES_TO_STRIP=1
else
LINES_TO_STRIP=2
fi
YEAR=`printf %02d $i`
SOURCEFILE="$YEAR"codmun.$EXT
CSVFILE=municipios-20$YEAR.csv
JSONFILE=municipios-20$YEAR.json
log Procesando año 20$YEAR
cd $ARCHIVE
if [ ! -f $SOURCEFILE ] || [ $FORCE_DOWNLOAD -eq 1 ]; then
log No existe copia local del archivo $SOURCEFILE. DESCARGAMOS \\n
log
curl -O http://www.ine.es/daco/daco42/codmun/codmun"$YEAR"/$SOURCEFILE
log \\n
fi
log Generamos $CSVFILE
in2csv $SOURCEFILE |tail -n +$LINES_TO_STRIP >$HISTORICAL_DATA/$CSVFILE
log Generamos $JSONFILE
csvjson $HISTORICAL_DATA/$CSVFILE > $HISTORICAL_DATA/$JSONFILE
log "\\n----------------------------"\\n
done
log Creamos symlinks \(último procesado\)\\n
echo ln -rfs $HISTORICAL_DATA/$CSVFILE $DATA/municipios.csv
echo ln -rfs $HISTORICAL_DATA/$JSONFILE $DATA/municipios.json
ln -rfs $HISTORICAL_DATA/$CSVFILE $DATA/municipios.csv
ln -rfs $HISTORICAL_DATA/$JSONFILE $DATA/municipios.json
log Nota: Se puede ignorar el warning \"Discarded range with reserved name\" en caso de que se produzca