User:Pieren

From OpenStreetMap Wiki
Jump to navigation Jump to search

I participate to this project since Nov 2007. I'm software engineer. I use a Garmin 60CSx with a 1GB microSD card. I'm mapping areas in French region Alsace and Paris (and a bit everywhere sporadically). I'm also involved in the wiki editions and translations (e.g. the drawings and examples in [Bicycle]). I created the Map Features wiki templates for i18n. I developed the Josm plugin cadastre-fr for the French cadastre WMS, implemented the Lambert Zone projections and various DOM-TOM projections and fixed related issues in JOSM core. I was also involved in the contacts with the French administration for the permissions requests of the cadastre and the Corine Land Cover France 2006. I also participated to the import of this land cover datasource for France end of 2009. I'm also involved in edit reverts requested by other contributors.

I'm also the local contact for announcements translations (see Local contacts).

I'm also the real owner of the account User:PierenBot created for automated editions.
http://yosmhm.neis-one.org/?zoom=6&lat=46.91789&lon=3.69862&layers=BT&u=PierenBot "Where did you contribute", OSM heatmap

Some personnal statistics: http://hdyc.neis-one.org/?Pieren

Contributeurs à mettre sous surveillance (vandalisme)

En cours d'édition

A surveiller/refaire/traduire

Traffic lights

Mapping

Tools

Links

Intern:

Extern:

Video, tutorial, screencast

Creation de survey, qcm, multiple choice tools

Blogs, posts

Imports

Citations

Build plugin cadastre-fr

Faire un "svn update" dans le répertoire /cadastre-fr/ depuis un command shell sinon 'ant' ne voit pas la bonne révision si l'update est fait depuis turtoise (ant exécute 'ant info')

Stats

FranceXXL-090513.osm.bz2: Node(24467k) Way(2510k) Relation(28k)
FranceLarge-090518.osm.bz2: Node(10129k) Way(739k) Relation(13k)
FranceSmall-090518.osm.bz2: Node(9153k) Way(647k) Relation(12k)

Projections/géoréférencement

Lambert93:

Reprojeter un shapefile RGF93 en WGS84(OSM) :
ogr2ogr -s_srs EPSG:2154 -t_srs EPSG:4326 CLC06_4326.shp CLC06_D67_RGF.shp

Reprojeter une image :
gdalwarp -s_srs ... -t_srs ... (voir doc)

Tutoriel java geotools (geotiff dans Piclayer plugin) : http://docs.geotools.org/latest/userguide/tutorial/raster/image.html

Autre exemple de reprojection raster avec geotools java :

JOSM plugin faisant déjà de la reprojection d'images geotiff:

Ubuntu

  • rebooter : "sudo shutdown -r now " ou "sudo reboot -f" si ça ne suffit pas
  • configurer ip dans /etc/network/interfaces, par exemple
    • iface eth0 inet static (au lieu de dhcp)
    • address 192.168.10.2
    • netmask 255.255.255.0
    • gateway 192.168.10.1
    • Charger la nouvelle config avec sudo /etc/init.d/networking restart
  • creation partition avec "sudo cfdisk /dev/sdb"
  • format partition primaire (tout le disque) en reiserfs : "mkfs -t reiserfs -f /dev/sdb"
    • ou "sudo mkfs.ext4 /dev/sdb1"
  • montage : "mount /dev/sdb /map"
  • montage permanent : "nano /etc/fstab" ajouter "/dev/sdb /map reiserfs defaults 0 0"
    • /dev/sdb1 /database ext4 auto 0 0
    • /dev/sdc1 /tiles ext4 auto 0 0
  • gestion du firewall avec 'ufw' : 'sudo ufw enable', 'sudo ufw allow OpenSSH', 'sudo ufw allow "Apache Full"'
  • pour installer le paquet sun-java6-jre à Ubuntu 10.04: 'sudo nano /etc/apt/sources.list' et uncomment la ligne 'deb http://archive.canonical.com/ubuntu lucid partner' puis 'sudo apt-get update' et 'sudo apt-get install sun-java6-jdk'
  • pour voir les paquets installés 'dpkg --get-selections'

Mapnik/pgsql

  • pour installer postgres : 'sudo apt-get install postgresql-8.3 postgresql-client-8.3 postgresql-contrib-8.3' et 'sudo apt-get install postgresql-8.3-postgis'
    • avec lucid (10.04), c'est postgres8.4 qui est dispo uniquement. Pour installer la v8.3, télécharger les distributions 'libreadline5_5.2-6_amd64.deb, postgresql-client-common, postgresql-common_101_all.deb, postgresql-client-8.3_8.3.8-1_amd64.deb, postgresql-8.3_8.3.8-1_amd64.deb, postgis_1.4.0-2_amd64.deb, postgresql-8.3-postgis_1.3.6-2_amd64.deb, libossp-uuid15_1.6.2-0ubuntu1_amd64.deb, libxslt1.1_1.1.24-2ubuntu2_amd64.deb, postgresql-contrib-8.3_8.3.8-1_amd64.deb' ([4]) puis les installer avec (dpkg -i et les paquets dans le même ordre)
  • après l'installation de postgresql, modifier l'autentification "ident sameuser" par "trust" dans la ligne "local all all" dans le fichier /etc/postgresql/8.4/main/pg_hba.conf puis redémarrer (ou "pg_ctl reload")
    • pour utiliser les commandes postgres, changer d'utilisateur "sudo -s -u postgres"
    • augmenter kernel SHMMAX : "sudo sysctl -w kernel.shmmax=536870912" (l'ajouter dans /etc/sysctl.conf pour être permanent)
    • optimisation /etc/postgresql/8.4/main/postgresql.conf (shared_buffers=448MB; checkpoint_segments=20; autovacuum=off; maintenance_work_mem=512MB); commenter la ligne "#ssl = true"
  • puis "cd /usr/lib/postgresql/8.3/bin/" & './initdb --pgdata /database/xxx'
  • pour compiler mapnik:
    • il manque un paquet "boost python" qui doit être parmis un de ceux-là:"apt-get install libfreetype6-dev libxml2-dev libtiff4-dev libboost-regex-dev libboost-filesystem-dev libboost-python-dev"
    • lorsqu'on lance mapnik, il ne trouve pas la librarie (en 64bits), on voit : "ImportError: libmapnik.so.0.6: cannot open shared object file: No such file or directory". Faire (user root): "#> echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf" puis "#> ldconfig"
  • Restart pgsql (user autre que postgres) : "sudo /etc/init.d/postgresql-8.4 restart"
  • Connect as postgres : "sudo -s -u postgres"
  • fixer pbl de locale au moment de createdb "ERROR: encoding UTF8 does not match server's locale en_GB"
    • Changer de locale par defaut: "sudo nano /etc/default/locale", mettre "LANG=en_GB.UTF-8" (éventuellement après un "sudo dpkg-reconfigure locales")
    • la base se trouve par défaut ici sur Ubuntu : "/var/lib/postgresql/8.4/main"
    • lancer stoper la base (user autre que postgres) "sudo /etc/init.d/postgresql-8.4 stop"
    • créer un nouvel espace pour la db (user autre que postgres) : "sudo mv /var/lib/postgresql/8.4/main /var/lib/postgresql/8.4/main_bck"
    • (user autre que postgres) "sudo mkdir /var/lib/postgresql/8.4/main" + "sudo chown postgres:postgres /var/lib/postgresql/8.4/main"
    • puis lancer initdb "cd /usr/lib/postgresql/8.4/bin/" + "sudo chmod 700 /var/lib/postgresql/8.4/main" (pour la sécurité)
    • puis "./initdb -D /var/lib/postgresql/8.4/main"
    • puis démarrer la base avec "./pg_ctl -D /var/lib/postgresql/8.4/main -l /var/lib/postgresql/8.4/main/logfile start"
    • redémarrer le serveur : "sudo /etc/init.d/postgresql-8.4 restart"
    • continuer avec la creation du user "createuser osm" et "createdb ..."
  • list users : "select * from pg_user;"
  • ajouter un password pour que mod_tile puisse se loger : "psql gis xxxxxx" et "ALTER USER xxxxxx WITH PASSWORD 'xxxxxx';"
  • modifier osm.xml :
    • supprimer tous les prefix de fichiers : supprimer tous les "c:/mapnik/" et "c:/boundaries/"
    • remplacer tous les "<Parameter name="password">xxxx</Parameter>" par le password du compte postgresql
    • remplacer tous les "<Parameter name="user">xxxxxx</Parameter>" par le user du compte postresql
    • remplacer tous les "<Parameter name="dbname">gis</Parameter>"
  • ou utiliser './generate_xml.py osm.xml --user mapnik --dbname gis --accept-none > osm-local.xml'

Osm2pgsql

  • rien de particulier pour l'installation et la compilation. Voir Osm2pgsql
  • pour créer les polygones des limites administratives, il faut modifier le fichier output-pgsql.c ([5]) à la ligne "else if( strcmp( type, "boundary" ) == 0 )", remplacer "make_polygon = 0;" par "make_polygon = 1;"
  • pour importer les noms en name:fr=*:
    • modifier default.style et ajouter "node,way name:fr text linear" après la ligne utilisée pour name (pas besoin de recompiler)
    • copier les noms français lorsqu'ils existent:
 UPDATE planet_osm_line SET name = "name:fr" where "name:fr" is not null;
 UPDATE planet_osm_point SET name = "name:fr" where "name:fr" is not null;
 UPDATE planet_osm_polygon SET name = "name:fr" where "name:fr" is not null;
 UPDATE planet_osm_roads SET name = "name:fr" where "name:fr" is not null;
  • pour supporter 'wall=no', modifier /usr/local/share/osm2pgsql/default.style et ajouter une ligne 'way wall text polygon' puis ajouter dans le style mapnik/inc/layer-buildings.xml.inc:
   <Rule>
     <Filter>[wall] = 'no'</Filter>
     &maxscale_zoom10;
     <PolygonSymbolizer>
        <CssParameter name="fill">#d7cbcb</CssParameter>
     </PolygonSymbolizer>
   </Rule>
 :
   <Rule>
     <Filter>[building] <> 'station' and [building] <> 'supermarket' and [building] <> '' and (not([wall] = 'no')) ../..
 :
 <Layer name="buildings" status="on" srs="&osm2pgsql_projection;">
     (select way,../..wall from &prefix;_p$
  • avant de faire un import du planet, désactiver l'autovacuum :
    • "sudo nano /etc/postgresql/8.3/main/postgresql.conf" et "autovacuum = off" et redémarrer
    • update /etc/cron.d/postgresql-common et commenter "2 0,5,10,15,20 * * 1-6 root if [ -x /usr/sbin/pg_maintenance ]; then /usr/sbin/pg_maintenance --analyze >/dev/null; fi"
    • réactiver lorsque l'import est terminé
  • quelques trucs pour voir ce qui se passe si la osm2pgsql 'rame':
    • ouvrir une session db et taper "select * from pg_stat_activity;"
    • utiliser strace
  • index non dropés par osm2pgsql :
    • geometry_columns_pk, PRIMARY KEY, btree (f_table_catalog, f_table_schema, f_table_name, f_geometry_column) sur geometry_columns
    • spatial_ref_sys_pkey, PRIMARY KEY, btree (srid) sur spatial_ref_sys

Mod_tile

  • installer les paquets : "sudo apt-get install apache2-prefork-dev libagg-dev apache2-mpm-prefork"
  • extraire les sources : "cd ~/src/" puis "svn co http://svn.openstreetmap.org/applications/utils/mod_tile"
  • modifier render_config.h avec "#define HASH_PATH "/var/www/tiles""
  • vérifier que le fichier de config sera lu à la bonne place dans le binaire par la définition dans render_config.h: #define RENDERD_CONFIG "/etc/renderd.conf"
  • modifier le fichier de configuration /etc/renderd.conf avec: font_dir=/usr/share/fonts/truetype/ttf-dejavu/ et font_dir_recurse=1
  • modifier renderd.conf avec "URI=/tiles/" et "XML=/map/mapnik/osm.xml"
  • modifier Makefile pour utiliser apxs2 au lieu de apx: "top_dir:=$(shell /usr/bin/apxs2 -q exp_installbuilddir)" et "APXS = apxs2"
  • compiler/installer avec "make" et "sudo make install"
  • démarrage deamon : "cd mod_tile" et "./renderd" (pour debugger, démarrer avec ./renderd -f)
  • pour avoir le deamon au démarrage:
    • comme root: "cd /etc/init.d" puis "nano mod_tile" et "chmod +x mod_tile".
    • éditer /etc/init.d/mod_tile avec "#!/bin/sh" et "/<path>/mod_tile/renderd &"
    • puis "update-rc.d mod_tile multiuser"
  • ne pas oublier "touch /var/lib/mod_tile/planet-import-complete" lorsque de nouvelles données sont dans la base (après osm2pqsl)

Apache2

  • créer repertoire "/var/www/tiles" et "chmod 775 tiles" (pour l'accès du user group)
  • ajouter dans /etc/apache2/sites-available/default : "LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so" et "LoadTileConfigFile /etc/renderd.conf"
  • redémarrer apache : "sudo /etc/init.d/apache2 reload"

Configuration du path des tuiles

Pour un schéma de sauvegarde du type /tiles/france/default/0/0/0/0/0/0.meta (mode hash tiles activé) pour une URL http://localhost/france/0/0/0.png, il faut

  • dans render_config.h: #define HASH_PATH "/tiles/france"
  • dans /etc/renderd.conf: URI=/france/
  • dans /etc/apache2/sites-available/default: "DocumentRoot /tiles/france" et "<Directory /tiles/france/>"

cleanplanet.sh

 #!/bin/bash -xe
 
 #
 # Remove all planet files older than 30 days
 #
 find /var/www/planet/ -type f -name "*.osm.bz2" -mtime +30 -exec rm -f {} \;
 find /var/www/planet/ -type f -name "*.osc.gz" -mtime +30 -exec rm -f {} \;
 find /var/www/planet/ -type f -name "*.osm.bz2.md5" -mtime +30 -exec rm -f {} \;

munin

  • tuto http://gorgonite.developpez.com/tutoriels/systemes/munin/
  • installer l'appli serveur et le node : "apt-get install munin" et "apt-get install munin-node"
  • ne pas éditer /etc/munin/munin.conf (suffisant pour un localhost)
  • ajouter le crontab toutes les 5mn : "crontab -e" puis "*/5 * * * * /usr/bin/munin-cron"

bulk_upload.py

Ce script a besoin du module python httplib2:

  • sudo apt-get install python-httplib2

Openlayers

Géoréférencement

Fondation

OpenStreetMap Foundation 16 Oakfield Glade Weybridge KT13 9DP United Kingdom

Cadastre(s)

GR, FFRP, rando

Examples for an howto

List of crazy tags

JOSM plugin

After updating any JOSM plugin in SVN, be sure to compile it*, and commit the resulting .jar file to SVN as well. Afterwards update the version number on the JOSM plugins Wiki page to reflect your newly commited version number so that the update mechanism will find it. (F.Ramm)

Current Validator rev. is 11974

Trucs, astuces

  • Osmosis ne supporte pas la compression du planet en multithread. Utiliser "bzcat planet | osmosis --read-xml-0.6 file=-".

En français dans le texte

J'ai commencé à m'intéresser à ce projet depuis Novembre 2007. Je suis informaticien. J'utilise un Garmin 60CSx pour cartographier l'Alsace (Bas-Rhin, Haut-Rhin). Parce que je crois que le manque de participants en France est en partie due au fait que l'essentiel était en anglais et que cela peut rebuter certains, je participe aussi à la traduction des pages wiki en français.