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