parent
e8b93dbd52
commit
03fa396ce6
@ -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…
Reference in new issue