Je veux créer une petite application Web pour visualiser les résultats des élections par site de vote pour ma ville. Le résultat sera très similaire à ce qui a été fait pour Berlin ici . J'espère que cela aide à comprendre ce que je veux.
Les données brutes électorales à l'échelle dont j'ai besoin sont publiées et je sais comment les visualiser sur la base d'un fichier de formes avec des polygones séparés délimitant les circonscriptions électorales. Mon problème est - comme vous pouvez probablement le deviner - que quelque chose comme ça n'existe pas déjà.
Ce qui est réellement publié cependant, c'est un fichier PDF qui délimite les frontières des quartiers qui m'intéressent: http://muenster.de/stadt/stadtplanung/pdf/a3_stimmbezirk.pdf
Je n'ai pas envie de redessiner le dessin moi-même, donc je cherche un moyen d'en faire un fichier de formes. Heureusement, le PDf inclut le dessin au trait en tant qu'objets vectoriels séparés, je les ai extraits dans un fichier SVG: https://www.dropbox.com/s/bn7698yrdh5tdqj/a3_stimmbezirk_ungrouped.svg
J'ai déjà essayé de convertir le SVG en DXF et de l'importer dans qgis 2.0.1. Cela fonctionne réellement, mais (comme prévu) place les vecteurs dans l'océan Atlantique et je ne peux pas trouver un moyen de le modifier et de résoudre ce problème.
Que puis-je faire maintenant pour géoréférencer ces vecteurs avec des outils open source et enfin produire un fichier de formes?
Réponses:
Je suis tombé sur votre question en essayant de faire la même chose, voici comment je l'ai fait:
Logiciels utilisés:
Extraire des données vectorielles du PDF
C'est ce que vous avez déjà fait, il vous suffit d'ouvrir le PDF dans Inkscape, de trouver les formes souhaitées et de supprimer tous les arrière-plans et le texte environnant. Enregistrez en tant que fichier .dxf .
Géoréférencement du fichier vectoriel
Pour travailler avec le fichier vectoriel, nous devons le convertir en fichier Shape ESRI avec QGIS.
Ouvrez QGIS et ajoutez le fichier dxf en tant que couche raster, sélectionnez DHDN / Gauss-Kruger zone 3 (EPSG: 31467) comme système de coordonnées. Cliquez avec le bouton droit sur le calque, enregistrez-le sous forme de fichier ESRI. Ouvrez ce fichier de formes en tant que calque raster et supprimez l'autre.
Vous avez maintenant Münsters Wahlbezirke quelque part aux coordonnées 0, 0.
Pour traduire (déplacer) et redimensionner le vecteur au bon endroit, nous devons trouver les coordonnées et la taille cibles. Pour faire court, j'avais un autre GeoJSON de Wahlbezirke qui était géoréférencé mais pas aussi détaillé, donc je l'ai utilisé pour calculer les données suivantes:
Dans mon cas, ceux-ci se révèlent être à peu près:
Activez le mode Édition (icône crayon) sur votre calque et mettez ces nombres dans le plugin Affine Transformation (Menu Vector, Outils de géotraitement, Affine), sélectionnez "Calque entier":
Cliquez sur Transformer, désactivez le mode d'édition (et enregistrez) et vous vous retrouvez avec un calque tout jaune à peu près sur votre cible. Je n'ai jamais compris comment supprimer la couleur jaune, donc je supprime et rajoute le calque pour une meilleure visibilité.
Vous pourriez vous retrouver avec une vue qui ressemble à ceci, où votre couche raster est super petite (entourée de rouge), zoomez ici: (Peut-être que j'ai négligé un paramètre ici, je ne suis pas sûr de ce qui cause ce comportement. "Zoom à l'étendue de la couche "n'aide pas.)
Ajoutez une couche déjà géoréférencée, vous pouvez utiliser une couche OpenStreetMap (via l'extension OpenLayers), un NRW WMS ou similaire. Votre vecteur n'est pas encore à la bonne position, alors déplacez-le en activant le mode Édition, puis utilisez l'outil Déplacer entité (s).
Maintenant que nous avons créé une couche de polylignes, la dernière étape consiste à créer des polygones à partir de ces lignes. Je ne vais pas expliquer cela ici, lisez ici pour plus d'informations:
Voir le résultat ici .
la source
Voici un autre workflow, utilisant ogr2ogr avec des points GCP:
Exécutez le lot et chargez le fichier de formes résultant dans QGIS:
la source