Skip to content

Instantly share code, notes, and snippets.

@cquest
Last active November 30, 2016 13:46
Show Gist options
  • Save cquest/0a7eb4f4a721e1c7f050 to your computer and use it in GitHub Desktop.
Save cquest/0a7eb4f4a721e1c7f050 to your computer and use it in GitHub Desktop.
Extraction en CSV des données de https://www.referidf.com/
# récupération des données sur https://www.referidf.com/
mkdir kml -f
for p in {1..4}; do
for m in "meuble" "non-meuble"; do
for d in "inf1946" "1946-1970" "1971-1990" "sup1990"; do
curl -q "https://www.referidf.com/kml/drihl_medianes_$p%5f$d%5f$m.kml?t=20150327" > kml/drihl_$p_$d_$m.kml
done
done
done
# extraction des données des fichiers KML en CSV (via ogr2ogr, fournit par gdal/ogr)
TMP=/tmp
echo "Name,description,timestamp,begin,end,altitudeMode,tessellate,extrude,visibility,drawOrder,icon,idQuartier,nameZone,idZone,meuble,piece,epoque,ref,refmaj,refmin" > $TMP/loyers
for f in kml/*.kml; do
rm -f $TMP/loyerstemp.csv
ogr2ogr -f csv $TMP/loyerstemp.csv $f
tail -n +2 $TMP/loyerstemp.csv >> $TMP/loyers
done
# remise en forme du CSV
# - csvcut pour suppression des premières colonnes inutiles provenant du KML
# - sed pour conversion des virgules décimale en points
# - sed pour remise en forme des plages de date (début/fin)
# - sed pour passer la colonne "piece" en numérique
# - sed pour passer la colonne "type " en booléen (meublé TRUE/FALSE)
csvcut -C 1,2,3,4,5,6,7,8,9,10,11 $TMP/loyers \
| sed 's/"\([0-9]*\),\([0-9]*\)"/\1.\2/g' \
| sed 's/avant 1946/0000,1945/g;s/après 1990/1991,9999/g;s/1946-1970/1946,1970/g;s/1971-1990/1971,1990/g;s/epoque/debut,fin/' \
| sed 's/ pièces et plus//g;s/ pièces//g;s/ pièce//g' \
| sed 's/Non meublée/FALSE/g;s/Meublée/TRUE/g' \
> loyers.csv
@cquest
Copy link
Author

cquest commented Jun 29, 2015

Ce script dépend de:

  • ogr2ogr (fournit par gdal/ogr)
  • csvcut (fournit par csvkit)
  • curl
  • sed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment