Upload files to 'src/pipelines/fuentes'

main
Santiago Crespo 2 years ago
parent e8b93dbd52
commit 03fa396ce6
  1. 145
      src/pipelines/fuentes/fuentesaguapotablemadrid.sh

@ -0,0 +1,145 @@
#!/bin/bash
# Descarga y transforma fuentes de agua potable
# de los datos abiertos del Ayto de Madrid a
# formato OSM
# Santiago Crespo 2022
date
# Descarga del rdf con fecha de última actualización
wget -nv https://datos.madrid.es/egob/catalogo/300051-0-fuentes.dcat -O /tmp/fuentes.dcat
MODIFIED=`grep "dct:modified" /tmp/fuentes.dcat | awk -F '>' '{print $2}' | awk -F '<' '{print $1}'`
LASTMODIFIED=`cat lastmodified`
if [ -z "$LASTMODIFIED" ] ; then
LASTMODIFIED="1900"
fi
if [ $MODIFIED = $LASTMODIFIED ] ; then
echo "Sin cambios desde la última vez: $LASTMODIFIED"
# exit 1
fi
echo $MODIFIED > lastmodified
URLCSV=`grep csv /tmp/fuentes.dcat | head -n1 | awk -F '>' '{print $2}' | awk -F '<' '{print $1}'`
DIA=`date +%Y-%m-%d`
HORA=`date +%H-%M-%S`
DIR="$DIA-$HORA"
mkdir $DIR
rm -f current
ln -s $DIR current
cd $DIR
echo "Hay actualización, descargando datos..."
wget -nv "$URLCSV" -O fuentes.csv
echo "Procesando..."
iconv -f ISO-8859-1 -t utf8 fuentes.csv > fuentes-utf8.csv
# Arreglar coordenadas 4326, parece que la reproyección es correcta, tanto en vías públicas como zonas verdes. filtra 61 fuentes (sin coordenadas?)!!!!!!!!!!
# OLD: CODIGO;COMPLEMENTO DE DIRECCIÓN ;ESTADO;OBSERVACIONES;FECHA DATOS;Longitud;Latitud
# 202209: CODIGO;"ZONA VERDE /VIA PUBLICA";DISTRITO;DIRECCION;COMPLEMENTO DE DIRECCIÓN ;COORD, X;COORD, Y;SISTEMA DE COORDENADAS;FECHA DATOS;Longitud;Latitud
#perl -pe 's/\.//g' fuentes-utf8.csv | perl -pe 's/;-3/;-3\./g' | perl -pe 's/;40/;40\./g' | awk -F ';' '{print $1";"$5";"$9";"$10";"$11";"$12";"$13}' | grep 40 | grep '\-3' | dos2unix | perl -pe 's/Ð/Ñ/'g > fuentes-4326fix.csv
perl -pe 's/\.//g' fuentes-utf8.csv | perl -pe 's/;-3/;-3\./g' | perl -pe 's/;40/;40\./g' | awk -F ';' '{print $1";"$9";"$10";"$11}' | grep 40 | grep '\-3' | dos2unix | perl -pe 's/Ð/Ñ/'g > fuentes-4326fix.csv
# Separa las que están funcionando y fuera de servicio # 20220914: han quitado esta información :(
grep -v ';FUERA DE SERVICIO;' fuentes-4326fix.csv > fuentes-funcionando.csv
grep ';FUERA DE SERVICIO;' fuentes-4326fix.csv > fuentes-fueradeservicio.csv
echo '<?xml version="1.0"?><osm version="0.6" generator="fuentesaguapotablemadrid.sh">' > fuentes-madrid.osm
ID="100000001"
## FUENTES FUNCIONANDO
while IFS='' read -r linea || [[ -n "$linea" ]]; do
REF=`echo $linea | awk -F ';' '{print $1}'`
# COMPLEMENTO=`echo $linea | awk -F ';' '{print $2}'`
# OBSERVACIONES=`echo $linea | awk -F ';' '{print $4}'`
FECHA=`echo $linea | awk -F ';' '{print $2}'`
LONGITUD=`echo $linea | awk -F ';' '{print $3}'`
LATITUD=`echo $linea | awk -F ';' '{print $4}'`
if [ ! -z "$REF" ] && [ ! -z "$LONGITUD" ] && [ ! -z "$LATITUD" ] ; then
####### PENDIENTE! Convertir del formato del Ayto
if [[ $FECHA == "1-may-18" ]]; then
FECHA="2018-05-01"
fi
echo '<node id="'$ID'" version="1" action="modify" visible="true" lat="'$LATITUD'" lon="'$LONGITUD'">' >> fuentes-madrid.osm
# if [[ $COMPLEMENTO == FUENTE* ]]; then
# NOMBRE=$COMPLEMENTO
# echo '<tag k="name" v="'$NOMBRE'" />' >> fuentes-madrid.osm
# fi
echo '<tag k="amenity" v="drinking_water" />' >> fuentes-madrid.osm
echo '<tag k="drinking_water" v="yes" />' >> fuentes-madrid.osm
echo '<tag k="operator" v="Ayuntamiento de Madrid" />' >> fuentes-madrid.osm
echo '<tag k="source" v="Ayuntamiento de Madrid" />' >> fuentes-madrid.osm
echo '<tag k="source:date" v="'$FECHA'" />' >> fuentes-madrid.osm
echo '<tag k="ref" v="'$REF'" />' >> fuentes-madrid.osm
echo ' </node>' >> fuentes-madrid.osm
let "ID++"
fi
done < fuentes-funcionando.csv
## FUENTES FUERA DE SERVICIO
# OBSERVACIONES:
#DEFICIENCIA ESTRUCTURAL
#NO APTA CONSUMO
#SIN SUMINISTRO CYII
#VANDALISMO REITERADO
while IFS='' read -r linea || [[ -n "$linea" ]]; do
REF=`echo $linea | awk -F ';' '{print $1}'`
COMPLEMENTO=`echo $linea | awk -F ';' '{print $2}'`
OBSERVACIONES=`echo $linea | awk -F ';' '{print $4}'`
FECHA=`echo $linea | awk -F ';' '{print $5}'`
LONGITUD=`echo $linea | awk -F ';' '{print $6}'`
LATITUD=`echo $linea | awk -F ';' '{print $7}'`
if [ ! -z "$REF" ] && [ ! -z "$LONGITUD" ] && [ ! -z "$LATITUD" ] ; then
####### PENDIENTE! Convertir del formato del Ayto
if [[ $FECHA == "1-may-18" ]]; then
FECHA="2018-05-01"
fi
echo '<node id="'$ID'" version="1" action="modify" visible="true" lat="'$LATITUD'" lon="'$LONGITUD'">' >> fuentes-madrid.osm
if [[ $COMPLEMENTO == FUENTE* ]]; then
NOMBRE=$COMPLEMENTO
echo '<tag k="name" v="'$NOMBRE'" />' >> fuentes-madrid.osm
fi
echo '<tag k="drinking_water:legal" v="no" />' >> fuentes-madrid.osm
echo '<tag k="drinking_water" v="no" />' >> fuentes-madrid.osm
echo '<tag k="description" v="'$OBSERVACIONES'" />' >> fuentes-madrid.osm
echo '<tag k="disused:amenity" v="drinking_water" />' >> fuentes-madrid.osm
echo '<tag k="operator" v="Ayuntamiento de Madrid" />' >> fuentes-madrid.osm
echo '<tag k="source" v="Ayuntamiento de Madrid" />' >> fuentes-madrid.osm
echo '<tag k="source:date" v="'$FECHA'" />' >> fuentes-madrid.osm
echo '<tag k="ref" v="'$REF'" />' >> fuentes-madrid.osm
echo ' </node>' >> fuentes-madrid.osm
let "ID++"
fi
done < fuentes-fueradeservicio.csv
#perl -pe 's/visible/version/g' fuentes-madrid.osm | perl -pe 's/true/1/g' > f ; mv f fuentes-madrid.osm # Si no, falla por no tener versión
echo "</osm>" >> fuentes-madrid.osm
echo "fuentes-madrid.osm generado :)"
exit 0
Loading…
Cancel
Save