#1 Sun 25 April 2010 14:24
- Xiahouai
- Juste Inscrit !
- Date d'inscription: 25 Apr 2010
- Messages: 6
Ingéoréférencable ?!?
Ingéoréférencable ?!?
Bonjour,
Je cherche actuellement à géoréférencer des fichiers raster (cadastre en TIF) très hétérogènes. En fait, je souhaiterai regrouper les sections entre elles pour reformer ma commune mais là je bloque totalement !
Les problèmes : ces feuilles ne sont pas toutes de la même échelle ( ! ), le nord n’est pas orienté sur toutes les feuilles de la même façon ( !! ), ces feuilles présentent des informations à tronquer (bordures, titres, légende…) et pour compliquer le tout il n’y a pas de systèmes de coordonnées ( !!! ). Bref le bordel !
Voici les manipulations déjà testées pour tenter d’assembler ces sections : j’ai détouré les sections (pour supprimer toutes les informations inutiles) avec un logiciel de retouche d’image, j’ai été chercher des coordonnées sur le cadastre du GéoPortail et j’ai tenté de géoréférencer une par une mes sections avec les coordonnées trouvées sous Qgis. Mais le résultat est affreux !! Les rasters sont déformés, totalement illisibles…
J’ai aussi pensé à reconstituer ma commune avec un logiciel de retouche d’image (en supprimant les infos inutiles, en faisant une mise à échelle et une rotation pour raccommoder proprement les sections entre elles) mais une seule feuille de section mesurant plus de 10000 pixels de côtés, assembler le tout est impossible.
J’avais également eu l’idée de vectoriser automatiquement le TIF (avec un logiciel de retouche d’image) et de l’exporter en DXF ou DWG. Mais le problème est qu’il n’y a toujours aucune coordonnée ? Le DXF ou DWG crée est-il lisible par un SIG ? Est-il possible de géoréférencer un fichier CAO ?
Je viens donc vers vous pour des idées sur la méthodologie que je devrais mettre en place pour parvenir à représenter correctement ma commune. Comment le GéoPortail est-il par exemple arrivé à reproduire le cadastre aussi proprement ?
Merci par avance pour vos idées !
Reason : sometimes you forget something...
Hors ligne
#2 Sun 25 April 2010 15:46
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: Ingéoréférencable ?!?
Salut,
Il m'arrive parfois de faire cette opération pour deux ou trois sections, par contre je travail sur Arcgis qui à l'avantage de bien gérer les reprojection tordues.
En gros la procédure:
-un peu de nettoyage avec GIMP
-calage avec l'aide de Geoportail
-rectification (en choisissant l'algo cubic c'est plus propre)
-reclassification pour rendre le fond blanc transparent
-création d'une mosaïque
Je ne connais pas bien QGIS mais je sais qu'ouvrir des rasters non rectifiés donne parfois des résultats foireux. Je pense que l'idéal serait de pouvoir déjà remettre le nord dans le bon sens avec GIMP ou autre. Si ta planche possède les accroches d'un quadrillage ça peut te donner une idée de l'angle à appliquer sinon en partant du postulat qu'il s'agit d'un nombre entier il y a peut être moyen de le déduire de façon empirique.
A mon avis laisse tomber l'assemblage manuellement c'est trop foireux.
Pour le système de projection, s'il y en a un c'est forcément du Lambert Zone, le mieux est donc de travailler dans ce système quitte à faire une reprojection par la suite. Quand toute les dalles seront calées tu pourras envisager la mosaïque avec GDAL par exemple.
Pour ce qui est de la vectorisation auto, tu peux t'orienter vers cette excellent soft pour avoir un aperçu du résultat. Il existe effectivement des outils pour géoréférencer des données vectorielles, j'imagine que QGIS a un petit plugin pour ça, mais je craint (surtout avec ces veilles planches) que le travail de correction/nettoyage soit pratiquement aussi important que de tout vectoriser manuellement.
C'est une méthode bien adaptée quand on ne recherche pas la précision. Par exemple, je le fais pour me donner une idée du morcellement parcellaire d'un territoire mais si je veux un beau cadastre topologiquement correct et avec une table attributaire alors j'utilise plutôt ma mimine.
Est-il possible d'avoir le nom de la commune pour se faire une idée?
Hors ligne
#3 Sun 25 April 2010 23:02
- Xiahouai
- Juste Inscrit !
- Date d'inscription: 25 Apr 2010
- Messages: 6
Re: Ingéoréférencable ?!?
Que d'informations, donc si je résume :
En gros la procédure:
-un peu de nettoyage avec GIMP
- traitement avec GIMP : nettoyage (gommage) et réorientation au nord (possible de recalculer un angle en partant de l'angle formé par la flèche d'orientation !)
calage avec l'aide de Geoportail
- se servir du GéoPortail pour chercher des lieux d'intérêts pour caler mon TIF sous QGIS
rectification (en choisissant l'algo cubic c'est plus propre)
- je ne connais / comprends pas mais serait ravi d'en savoir plus
reclassification pour rendre le fond blanc transparent
- qu'est ce qui s'adapterait le mieux ? Détourer l'image directement sous le GIMP ou créer un masque vectoriel et découper le raster par rapport à ce masque sous QGIS ?
création d'une mosaïque
- si tout ce passe bien, création des tuiles avec GDAL !
Je laisse tomber l'assemblage manuel, trop lourd à supporter (pour moi et pour l'ordi !)
Pour ce qui est de la vectorisation auto, tu peux t'orienter vers cette excellent soft pour avoir un aperçu du résultat. Il existe effectivement des outils pour géoréférencer des données vectorielles, j'imagine que QGIS a un petit plugin pour ça, mais je craint (surtout avec ces veilles planches) que le travail de correction/nettoyage soit pratiquement aussi important que de tout vectoriser manuellement.
C'est une méthode bien adaptée quand on ne recherche pas la précision. Par exemple, je le fais pour me donner une idée du morcellement parcellaire d'un territoire mais si je veux un beau cadastre topologiquement correct et avec une table attributaire alors j'utilise plutôt ma mimine.
En ce qui concerne la vectorisation, c'était pour tenter d'autres manipulations pour parvenir à mes fins mais tant qu'on y ait pourquoi pas se lancer là dedans aussi. Découverte de WinTopo : plutôt surpris au début, même sur mon TIF non nettoyé c'est vraiment pas mal ! Mais la version gratuite ne permet pas de recréer les polygones (d'ailleurs est-ce légal ?) et je ne peux acquérir de licence.
La/les communes se trouvent au centre de la France, départements 03 ; 23 ; 42 ; 63... Pour reconstituer une commune, il y a en moyenne 5 sections. dominique.lys si vous voulez que je vous envoie un extrait des TIF, n'hésitez pas à me contacter.
Merci par avance pour la suite,
Reason : sometimes you forget something...
Hors ligne
#4 Mon 26 April 2010 10:30
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: Ingéoréférencable ?!?
En effet, je pense que ça pourrait être un premier flux opératoire à tester.
La rectification, c'est un peu comme la reprojection. Quand on reprojete on transforme un raster de son système de projection initial vers un autre, ce qui revient grosso modo à recalculer la nouvelle position de chaque pixel dans l'image.
Ce que j'appelle la rectification c'est quand le fichier de calage d'un raster indique qu'une rotation sera nécessaire et/ou que les résolutions en x et y sont différentes. Comme pour la reprojection, il faut recalculer la position des pixels pour obtenir une image droite et fixer la résolution, mais cette fois il n'y a pas de changement de projection.
Il y plusieurs algorithmes applicables pour ces opérations par défaut il s'agit généralement du "plus proche voisin". Le problème est que cette algo donne des effets de décrochage pas très beau d'où l'intérêt d'utiliser le cubic. On en parle un peu ici et ici.
Le reclassification c'est le fait par exemple de regrouper des intervalles de valeur pixel en leur attribuant une nouvelle radiomètrie. Dans notre cas, il faudrait indiquer que la valeur 255 (blanc) sera NoData (transparent). Je crois que GRASS permet de faire de la reclassification raster mais tu auras aussi vite fait avec GIMP --> menu calque/transparence/couleur vers alpha.
Ce que je ne sais pas, c'est si GDAL prendra bien en compte la transparence pour créer la mosaïque. C'est primordiale car tes images ne seront pas parfaitement jointives et donc, comme il y aura des recouvrements, la transparence permettra d'éviter que le fond blanc de l'image du dessus recouvre celle du dessous.
Mais la version gratuite ne permet pas de recréer les polygones
La version pro non plus je pense. Quel que soit l'outil utilisé tu obtiendras forcement des polylignes dans un premier temps. Recréer les polygones c'est une tout autre histoire et il y a du fil à retordre.
Au passage, ce qui est bien pratique avec Wintopo c'est que si le raster est géoréférencé alors on peut directement sortir un shapefile aux bonnes coordonnées.
Mais, le problème de la vectorisation auto c'est qu'on se retrouve avec une topologie en spaghettis : il n'y a pas forcement un nœud à chaque intersection, des régions qui semblent en apparence fermées ne le sont pas, certains objets seront de longueur nulle... Sans compter les portions où la détection des lignes est incorrecte (si le trait est trop fin on a une coupure, s'il est trop épais le vecteur prend une mauvaise orientation, au niveau d'un angle aigu l'amas de pixels en nuance de gris est nuisible...)
C'est ce nettoyage là qui prend beaucoup de temps, surtout qu'il n'y a pas de recette miracle, seulement de la bidouille :
-le thinning pour réduire les traits épais
-l'outil seuil dans GIMP qui permet d'éliminer une partie des nuance de gris pour affiner un peu les pâtés de pixel
-scinder les polylignes à chaque intersection
-snaper les nœuds libres...
Il y a beaucoup d'axes à explorer et tester, à toi de déterminer l'enchainement le plus adapté à ce que tu attends. Tu peux t'orienter vers les outils de correction topologique et de nettoyage de GRASS. Pour la création des polygones j'avais eu de bons résulats avec QGIS+GRASS (module v.type.lb) et OpenJump.
Mais saches qu'à la fin on se retrouve souvent à devoir corriger la couche à la main...
Tiens nous au courant de l'avancée de tes travaux !
Dernière modification par dominique.lys (Mon 26 April 2010 10:36)
Hors ligne
#5 Mon 26 April 2010 12:21
Re: Ingéoréférencable ?!?
Hello,
Par expérience, le plus rapide et le plus sûr à long terme (si c'est possible en terme de boulot) est de faire une digit propre en vecteur de chaque planche et de les caler ensuite entre elles. Le format raster est une plaie si on a pas le bon outil, par contre, le format vecteur est beaucoup plus souple et mieux géré par plus de logiciels.
Bon courage en tout cas
Robin.
Hors ligne
#6 Mon 26 April 2010 22:36
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: Ingéoréférencable ?!?
Comme le sujet m'intéresse j'ai fait quelques tests avec QGIS et GDAL. Je joins un petit topo en annexe.
En espérant que ça aide.
Dernière modification par dominique.lys (Mon 26 April 2010 23:49)
Hors ligne
#8 Tue 27 April 2010 13:08
Re: Ingéoréférencable ?!?
pour info un outil a été développé sous TopoCad pour réaliser ce genre de manipulation (avec fichiers de géoréférencement ou à partir des orthophotos) cf http://www.youtube.com/user/TopoCadFrance#p/u
Hors ligne
#9 Tue 27 April 2010 13:46
Re: Ingéoréférencable ?!?
Bonjour,
Attention à la publicité
L'outil étant gratuit à priori je laisse pour le moment.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#10 Wed 28 April 2010 10:29
- Xiahouai
- Juste Inscrit !
- Date d'inscription: 25 Apr 2010
- Messages: 6
Re: Ingéoréférencable ?!?
Merci beaucoup, sympa le petit tuto illustré...
Par contre, je rencontre quelques divergances avec mes TIF : il n'y a aucun calque transparent sous GIMP, le fond est déjà "blanc".
Sinon je rencontre quelques problèmes avec FwTools
Code:
Traceback <most recent call last>: File "C:\PROGRA1\FWTOOL1.7\bin\gdal_merge.py", line 463, in ? sys.exit<main<>> File "C:\PROGRA1\FWTOOL1.7\bin\gdal_merge.py", line 433, in main if quiet == 0 and verbose == 0; UnboundLocalError: local variable 'quiet' referenced before assignment
-> un petit tour rapide sur le web et voici ce qui est proposé pour résoudre ces problèmes :
- "You can workaround this by specifying the -q or -v flags. " : je connais pas !?!
- mettre à jour gdal_merge.py avec un nouveau fichier (<a href="http://trac.osgeo.org/gdal/browser/branches/1.7/gdal/swig/python/scripts/gdal_merge.py?format=raw">Ici</a>) : lorsque je lance ma commande un 0 apparaît, FwTools semble bloqué...
Le résultat pour l'instant : un TIF d'environ 515mo entièrement blanc (ou noir avec la seconde manip).
Je suis sur windows, peut être est un problème de configuration ? Je parcours Osgeo4w mais rien ne semble manquer...
Reason : sometimes you forget something...
Hors ligne
#11 Wed 28 April 2010 11:43
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: Ingéoréférencable ?!?
Après vérification, mes TIFF de départ possède affectivement une couche alpha ce qui explique pourquoi les bordures crées suite au calage sont transparentes. Si je supprime la couche alpha, les bordure sont cette fois noires. Je les ai supprimées avec GIMP --> outil de sélection contiguë puis remplir toute la sélection en blanc.
Pour FWtools, la version que tu utilise semble assez ancienne (1.7), il faut le mettre à jour (la version actuelle sous Windows est la 2.4.7)
Hors ligne
#12 Wed 28 April 2010 23:09
- Xiahouai
- Juste Inscrit !
- Date d'inscription: 25 Apr 2010
- Messages: 6
Re: Ingéoréférencable ?!?
Pour FWtools, la version que tu utilise semble assez ancienne (1.7), il faut le mettre à jour (la version actuelle sous Windows est la 2.4.7)
Effectivement, certainement un problème de compatibilité de versions.. Demain on teste gdal_merge sous ubuntu !
Pour revenir à l'assemblage avec gdal_merge : mes TIFF initiaux pèsent en moyenne 1mo (pour 12000 / 8000 pixels) ; 5 sections sont à assembler pour obtenir la mosaïque finale ; lorsque je lance l'opération le poids du fichier crée augmente encore et encore (il a atteint 60go au bout de 45 minutes et semblait vouloir encore augmenter, mais plus de place dans l'ordi !!) C'est embêtant ! J'ai donc aussi testé d'assembler seulement 2 sections mais même problème le fichier crée atteint le même volume. Et pis d'abord, comment ca fonctionne gdal_merge ?
Je me demande si digitaliser une section une par une pour rassembler le tout sous une même couche vecteur ne serait pas une solution échappatoire (les tif sont désormais caler, mon travail final consistera de toute façon à vectoriser les parcelles d'intérêts), mais, étant grand débutant, je n'ai jamais réaliser ce genre de manipulation (difficultés, temps, moyen techniquement avec les sig libre...). Je reste donc ouvert à toutes propositions et tout apport d'informations à ce sujet !
Reason : sometimes you forget something...
Hors ligne
#13 Thu 29 April 2010 10:08
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: Ingéoréférencable ?!?
Étrange en effet cette histoire de poids de fichier, dans mon exemple en partant de 2 raster à 5-6mo j'arrive à un résultat de 75mo.
gdalmerge est un simple script Python qui utilise l'interface de programmation (binding) Python pour la librairie GDAL. Tu peux l'ouvrir dans un éditeur de texte pour visualiser le code.
Cela dis, tu peux aussi arriver à tes fins avec le module gdalwarp :
Code:
gdalwarp -dstnodata 255 -dstalpha C:\TestMerge\Image1.bmp C:\TestMerge\Image2.bmp C:\TestMerge\Mosaic.tif
Il y differents paramètres intéressants :
-srcnodata : quelle valeur du raster source ne sera pas traitée
-dstnodata : quelle valeur du raster de destination sera convertie en NoData
-dstalpha : le raster de destination aura t-il une bande Alpha?
A toi de tester.
Hors ligne
#14 Tue 04 May 2010 10:40
- Xiahouai
- Juste Inscrit !
- Date d'inscription: 25 Apr 2010
- Messages: 6
Re: Ingéoréférencable ?!?
Merci à tous (et à Thomas !) pour vos réponses !
Voilà la méthode finalement employée : d'abord un gdalbuildvrt avec -srcdata 0 (0 étant mon blanc à "gommer")... puis un gdal_translate pour réassembler le tout avec un -op "compress=lzw" pour comprimer l'assemblage (environ 25mo au lieu d'1go). Puis découpe automatique de l'assemblage avec création d'un shapefile "tuile" avec gdal_retile (possible de garder la compression en lzw).
Reason : sometimes you forget something...
Hors ligne