User:Guillaume Audirac

From OpenStreetMap Wiki
Jump to: navigation, search
Guillaume Audirac
osm traces carte
Pays France
Département Calvados
Ville Caen
J’utilise un GPS Holux M-241
J’édite avec JOSM

Liens utiles (internes au wiki)

Liens utiles (externes)

Outils

Développement perso

Récupérer la liste des communes par département et convertir les données Wikipedia en fichiers .osm. Le fichier .osm inclut les principaux tags (name, ref:INSEE, population, census, source...) et la relation pour la limite administrative.

  • fix pour le script rcc-list.sh des outils d'extraction de Frédéric Rodrigo:

Note: fix sur les articles placés postérieurement et entre parenthèses (exemple: DEZERT (LE)) et sur les noms avec apostrophes.

# 033, 020, ... sur 3 chiffres
departement=$1

curl -c tmp/cookies-1 "http://www.cadastre.gouv.fr/scpc/rechercherPlan.do" > tmp/page-1.html
curl -b tmp/cookies-1 -c tmp/cookies-2  "http://www.cadastre.gouv.fr/scpc/listerCommune.do?codeDepartement=${departement}&libelle=&keepVolatileSession=&offset=5000" > tmp/page-2.html

[ -f "${departement}-liste.csv" ] && mv "${departement}-liste.csv" "${departement}-liste-$$.csv"

cat tmp/page-2.html | \
sed "s/<table/\n<table/g" | grep 'class="resultat"' | sed 's/.*<strong>\(.*\) <\/strong>.*ajoutArticle\(.*\)title="Ajouter.*/\1\2/' | \
sed 's/ *)(/,/g' | sed 's/ *(\([0-9][0-9AB*]\)/,\1/' | cut -d, -f1,2,3,4 | sed "s/'//g" | sed "s/'/'/" > ${departement}-liste.csv
  • conversion des statistiques de User:Sletuffe des limites communales en tableau au format MediaWiki

Statistiques: http://beta.letuffe.org/cron/etat-communes/communes.csv.txt
Page contenant le tableau: WikiProject_France/Cadastre

Top cool ton petit prog ! A noter, que j'ai déplacé le résultat vers WikiProject_France/Limites_administratives/Etat_d'avancement pour ranger tout ça sletuffe 17:47, 18 March 2010 (UTC)

Script Python pour l'extraction des données utiles du fichiers communes.csv.txt:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

"""
Author: Guillaume Audirac
Description: script to convert to the MediaWiki format
"""

import sys

INPUT_FILE="communes.csv.txt"
OUTPUT_FILE1="table_for_wikimedia_cadastre.txt"
OUTPUT_FILE2="table_for_wikimedia_limites_admin.txt"

# Open the text file downloaded
# from http://beta.letuffe.org/cron/etat-communes/communes.csv.txt
try:
    f_csv = file(INPUT_FILE,'r')
except IOError:
    sys.exit("The file " + INPUT_FILE + " does not exist.")

# Create the output file
f1 = file(OUTPUT_FILE1,'w')
f2 = file(OUTPUT_FILE2,'w')

is_in_header = True
# Read each line of the file
for line in f_csv:
    param = line.rsplit(";")
    if is_in_header: # skip the csv file header
	if param[0] == "ref": is_in_header = False
	continue
    if param[0] == "tous": departement = "total"
    else: departement = param[0] + " - " + param[1]
    departement = unicode(departement, 'utf-8').upper().encode('utf-8')
    nb_osm_done = int(param[3])
    nb_cadastre_total = int(param[4])
    nb_cadastre_vecto = int(param[5])
    ratio_cadastre_vecto = 100 * nb_cadastre_vecto / nb_cadastre_total
    nb_cadastre_image = nb_cadastre_total - nb_cadastre_vecto
    ratio_osm_vs_cadastre_vecto = 100 * nb_osm_done / nb_cadastre_vecto
    ratio_osm_vs_cadastre = 100 * nb_osm_done / nb_cadastre_total
    if (ratio_osm_vs_cadastre < 10): colour="red"
    elif (ratio_osm_vs_cadastre < 50): colour="orange"
    elif (ratio_osm_vs_cadastre < 100): colour="yellow"
    elif (ratio_osm_vs_cadastre == 100): colour="green"
    else: colour="pink"

    # for the page http://wiki.openstreetmap.org/wiki/WikiProject_France/Cadastre
    if param[0] == "tous": f1.write("\n\n")
    f1.write("| " + departement + " || " + str(nb_cadastre_total) + " || " + str(nb_cadastre_image))
    f1.write(" || " + str(nb_cadastre_vecto) + " || " + str(ratio_cadastre_vecto) + "%")
    f1.write("\n|-\n")

    # for the page http://wiki.openstreetmap.org/wiki/WikiProject_France/Limites_administratives/Etat_d%27avancement
    if param[0] == "tous": f2.write("\n\n")
    f2.write("| " + departement + " || " + str(nb_cadastre_total) + " || " + str(nb_cadastre_image))
    f2.write(" || " + str(nb_cadastre_vecto) + " || " + str(ratio_cadastre_vecto) + "%")
    f2.write(" || " + str(nb_osm_done) + " || " + str(ratio_osm_vs_cadastre_vecto) + "%")
    f2.write(" || " + "style=\"background-color:" + colour + "\" | " + str(ratio_osm_vs_cadastre) + "%")
    f2.write("\n|-\n")

    if param[0] == "tous": break # skip the rest of the file

f_csv.close()
f1.close()
f2.close()

Trucs et astuces

Matériel

Exemples d'applications

Liens