Version 26 (modified by http://emmanuel.raviart.myopenid.com/, 9 years ago) (diff) |
---|
Territoria
Territoria est à la fois :
- une base de données hiérarchique des territoires, construite à partir de différentes sources publiques.
- un ensemble d'outils permettant de mettre à jour, exporter et manipuler cette base de données
- une application web? permettant de se déplacer dans la hiérarchie des territoires et de la visualiser
Actuellement la base Territoria contient les collectivités territoriales suivantes :
- régions
- départements
- arrondissements départementaux
- cantons
- parcs naturels régionaux
- pays (de France)
- intercommunalités (ie EPCI)
- communes
- arrondissements communaux
- communes rattachées
ainsi que diverses informations sur les communes :
- code postal
- population
- aire urbaine
- périmètre de transports urbains
- littoral
- massif montagneux
Territoria est en développement depuis le 25 décembre 2008.
Objectifs
Territoria est surtout conçue comme un composant destiné à être intégré dans d'autres applications (Cosmetic, Metanol, etc).
La structure de la base Territoria est suffisamment générique pour pouvoir être étendue à d'autres pays que la France ou à d'autres informations sur les territoires.
Licence et copyright
L'application Territoria est un logiciel libre sous licence GNU Affero General Public License version 3 ou supérieure.
La base de données Territoria est sous licence Creative Commons paternité partage à l’identique.
Copyright © 2008, 2009 Easter-eggs & Emmanuel Raviart
Technique
Territoria utilise les outils suivants :
- langage de programmation Python
- mapper objet-relationnel SQLAlchemy
Territoria a été testée sur les bases de données : PostgreSQL et SQLite.
Pour connaître la liste précise des dépendances, ainsi que les versions nécessaires, consulter le fichier setup.py (variable install_requires notamment).
Téléchargement
Téléchargement de l'application
Vous pouvez récupérer les sources de la dernière version :
- soit en utilisant Mercurial : hg clone http://hg.infos-pratiques.org/territoria
- soit en naviguant dans l'interface web du dépôt Mercurial
- soit en récupérant une archive ("snapshot") depuis cette même interface web.
Téléchargement de la base de données
Vous pouvez récupérer un dump SQL de la base de données généré à partir de SQLite :
- soit en utilisant Mercurial : hg clone http://hg.infos-pratiques.org/territoria-database-sqlite
- soit en naviguant dans l'interface web du dépôt Mercurial
- soit en récupérant une archive ("snapshot") depuis cette même interface web.
Note : Nous ne fournissons pas actuellement de dump PostgreSQL de Territoria. Si vous souhaitez utiliser Territoria avec PostgreSQL (par exemple pour Comarquage ou Cosmetic), vous devez construire la base SQL à partir des données. Cf ci-dessous.
Téléchargement des données permettant la constitution initiale de la base de données
Ces données se présentent sous formes de fichiers textes (CSV) provenant de différentes sources (cf ci-dessous).
Ces fichiers peuvent-être utilisés pour le remplissage initial de la base de données, lorsqu'on souhaite la reconstruire à partir de zéro.
Vous pouvez les récupérer :
- soit en utilisant Mercurial : hg clone http://hg.infos-pratiques.org/territoria-source-data
- soit en naviguant dans l'interface web du dépôt Mercurial
- soit en récupérant une archive ("snapshot") depuis cette même interface web.
Installation et configuration
Installation et configuration de l'application
cd territoria sudo python setup.py install cd ..
Modifier le fichier de configuration development.ini en fonction de votre choix de base de données. Pour utiliser SQLite, s'assurer que les lignes suivantes y figurent :
[Territoria] sqlalchemy.url = sqlite:///chemin/de/la/future/base/territoria.db
Note : Dans la dernière ligne ci-dessus, sqlite: doit être suivi de 3 / si le chemin vers le fichier est relatif ou de 4 / s'il est absolu.
Création et initialisation de la base de données
La base de données des territoires peut être créée :
- soit à partir d'un dump existant,
- soit en important l'ensemble des fichiers sources ayant servi à la constituer.
Ces 2 méthodes sont détaillées ci-dessous.
Création de la base à partir d'un dump existant
Après avoir téléchargé le dump SQL de la base de données territoria-database-sqlite (cf ci-dessus), faire :
cd territoria-database-sqlite export TERRITORIA_DUMP=`pwd` cd -
Puis, créer la base de données SQLite à partir du dump SQL.
cd territoria sqlite3 -init ${TERRITORIA_DUMP}/territoria.sql development.db .quit
Création de la base en important l'ensemble des fichiers sources ayant servi à la constituer
Après avoir téléchargé les données territoria-source-data (cf ci-dessus), faire :
cd territoria-source-data export TERRITORIA_SOURCE_DATA=`pwd` cd -
Puis, créer la base de données :
cd territoria territoria/scripts/create_database.py development.ini
À partir de maintenant, on peut soit importer la totalité des données, soit importer les données manuellement une par une.
Import total :
territoria/scripts/populate_database.sh development.ini ${TERRITORIA_SOURCE_DATA}
Import manuel : exécuter les étapes suivantes.
Initialisation des territoires de base :
territoria/scripts/init_database.py development.ini
Importation des données territoriales provenant de l'INSEE (communes, cantons, arrondissements, départements et régions) :
territoria/scripts/import_insee_code_officiel_geographique.py development.ini ${TERRITORIA_SOURCE_DATA}/insee/code-officiel-geographique/
Importation des données de l'INSEE sur la population des communes :
territoria/scripts/import_insee_population.py development.ini ${TERRITORIA_SOURCE_DATA}/insee/population-et-logements-par-commune/
Importation des données territoriales provenant de l'Observatoire des territoires (aires urbaines, intercommunalités, communes littorales, communes de massifs montagneux, pays, parcs naturels régionaux et périmètres de transports urbains) :
territoria/scripts/import_observatoire_des_territoires_aires_urbaines.py development.ini ${TERRITORIA_SOURCE_DATA}/observatoire-des-territoires/data_aire_urbaine.csv territoria/scripts/import_observatoire_des_territoires_epci.py development.ini ${TERRITORIA_SOURCE_DATA}/observatoire-des-territoires/data_epci.csv territoria/scripts/import_observatoire_des_territoires_littoraux.py development.ini ${TERRITORIA_SOURCE_DATA}/observatoire-des-territoires/data_loi_littoral.csv territoria/scripts/import_observatoire_des_territoires_massifs.py development.ini ${TERRITORIA_SOURCE_DATA}/observatoire-des-territoires/data_perimetre_massif.csv territoria/scripts/import_observatoire_des_territoires_pays.py development.ini ${TERRITORIA_SOURCE_DATA}/observatoire-des-territoires/data_pays.csv territoria/scripts/import_observatoire_des_territoires_parcs_naturels_regionaux.py development.ini ${TERRITORIA_SOURCE_DATA}/observatoire-des-territoires/data_pnr.csv territoria/scripts/import_observatoire_des_territoires_perimetres_transports_urbains.py development.ini ${TERRITORIA_SOURCE_DATA}/observatoire-des-territoires/data_ptu.csv
Calcul de la population cumulée des différents territoires français à partir de la population des communes :
territoria/scripts/compute_aggregated_population.py development.ini
Importation du fichier des codes postaux provenant de Jérôme Galichon :
territoria/scripts/import_galichon_codes_postaux.py development.ini ${TERRITORIA_SOURCE_DATA}/galichon/codes-postaux/insee.csv
Génération de la table des collectivités françaises (utilisée pour accélérer certaines recherches) :
territoria/scripts/generate_french_collectivities_associations.py development.ini
Importation des données d'OpenStreetMap sur les communes (population, coordonnées et rectangle englobant (bounding box)) :
wget http://hexagone.openstreetmap.fr/hexagone-latest.osm.bz2 bunzip2 hexagone-latest.osm.bz2 territoria/scripts/import_openstreetmap_towns.py development.ini hexagone-latest.osm YYYY-MM-DD territoria/scripts/extract_openstreetmap_town_boundaries.py development.ini hexagone-latest.osm boundaries.dat territoria/scripts/import_openstreetmap_town_bounding_boxes.py development.ini boundaries.dat YYYY-MM-DD
Note: YYYY-MM-DD est la date des données, pas de l'import. Cela est significatif si les données sont plus anciennes que la date de l'import.
Sources de données sur les territoires
- Code officiel géographique de l'INSEE
- Zonages de l'Observatoire des territoires
- Codes postaux de Jérôme Galichon
Plus d'informations
Pour plus d'informations, vous pouvez consulter et/ou participer à la liste de diffusion Infos-Pratiques.