J'ai une couche vectorielle non géoréférencée dont j'ai besoin pour être géoréférencée. Avec les calques raster, la tâche est simple et directe, mais je n'ai aucune idée de ce que je dois faire avec mon calque vectoriel. J'ai quelques points de contrôle avec des coordonnées connues qui devraient fournir une base à la transformation. Donc, disons que je sais que les points avec des id-s de 1, 2 et 3 devraient avoir les coordonnées de x1, y1; x2, y2; x3, y3. Il peut y avoir une rotation et une transformation d'échelle en plus d'un simple décalage.
Des idées?
Réponses:
Pour géoréférencer une couche vectorielle, essayez le plugin qgsAffine.
Il y a plus d'informations sur Où trouver la qgsaffine dans le menu?
la source
Étant donné que vous disposez de certains points de contrôle, vous devriez pouvoir utiliser une transformation Affine pour déplacer vos données vectorielles. Jetez un œil à cette recette . Le processus est un processus en deux parties:
Si vous placez vos points de contrôle dans un fichier CSV (old_x, old_y, new_x, new_y), vous pouvez à peu près couper et coller les commandes R à partir du lien pour résoudre la partie coefficients.
la source
Je recommande le plugin Vector Bender pour QGIS. Je l'ai essayé et cela fonctionne bien et est convivial. Selon le nombre de points que vous définissez, vous pouvez soit:
Vous trouverez une courte vidéo ici et je vous conseille de lire l'aide de Vector Bender une fois le plugin installé.
la source
Avec la sortie de GDAL 1.10, c'est désormais possible.
Cela se fait en effectuant une transformation de base dans ogr2ogr et en fournissant les points de contrôle dans la balise -gcp. http://www.gdal.org/ogr2ogr.html
Pour un guide, veuillez consulter: http://gisforthought.com/georeferencing-vector-data-using-qgis-and-ogr2ogr/
la source
Je devais juste faire ça, et j'ai fini par faire ça:
gcps.points
fichierLe script suivant calcule la matrice de transformation affine à l'aide des GCP enregistrés:
la source
Voir ma réponse à la capture simultanée de deux polygones et essayez le openjump gratuit.
Je pense que sa transformation affine est beaucoup plus conviviale que le plugin affine qgis.
la source
Suite à mes commentaires sur la réponse de Rayner, GRASS v.transform, qui peut être exécuté à partir de la boîte à outils Sextante, peut être utilisé pour calculer les paramètres de transformation et les appliquer à une couche vectorielle pour effectuer une transformation affine. Un fichier texte contenant des points de contrôle est requis, au format indiqué ici .
Il est très facile à utiliser et fonctionne bien.
la source
Plusieurs des réponses fournies ici ne sont plus des options pour QGIS 3 et / ou ne permettent que des transformations linéaires du fichier vectoriel géoréférencé. Cela peut répondre à la question du PO, mais d'autres personnes qui consultent ce post peuvent souhaiter d'autres options de transformation pour le géoréférencement des fichiers vectoriels.
Problèmes avec certaines des solutions de géoréférencement des fichiers vectoriels:
Le plugin qgsAffine ne permet que des transformations linéaires. Cela signifie qu'il peut redimensionner, faire pivoter et déplacer le fichier vectoriel, mais il ne peut pas plier ou déformer le fichier vectoriel. Le géoréférenceur pour les fichiers raster offre plus d'options et permet une variété de transformations, notamment des polynômes de second ordre et des splines à plaques minces. De plus, il ne semble pas que le plugin qgsAffine soit toujours disponible dans QGIS 3.
Le module GRASS v.transform est similaire au plugin qgsAffine et ne permet que des transformations linéaires.
Le plugin Vector Bender semble être une bonne option, mais il n'a pas été entièrement porté sur QGIS 3, il n'est donc pas actuellement une option. Il ne semble plus être maintenu.
L'utilisation d'ogr2ogr, comme le suggère l'article de HeikkiVesanto, est une bonne option. Il permet d'utiliser des GCP (Ground Control Points) et de spécifier le type de transformation que vous souhaitez. Je n'ai pu trouver d'instructions nulle part sur la façon de procéder, j'ai donc inclus quelques instructions ci-dessous:
Générez un ensemble de paires GCP, un point étant l'emplacement d'origine dans le fichier vectoriel non référencé et l'autre point étant l'emplacement souhaité dans votre espace de travail géoréférencé.
Il existe différentes manières de générer des GCP. J'ai utilisé le plugin Georeferencer GDAL dans QGIS. Celui-ci est disponible dans le menu déroulant Raster, après son installation à l'aide du gestionnaire de plug-ins. Il ne fonctionne que sur les fichiers raster, vous devez donc d'abord convertir le fichier vectoriel en fichier raster. Ceci est possible avec "Boîte à outils de traitement: GDAL: conversion vectorielle: pixellisation (vecteur en raster)". Réglez la résolution sur un nombre qui vous permet toujours de voir les fonctionnalités du fichier vectoriel.
Le Georeferencer a une belle interface, qui vous permet d'ajouter de nombreux points GCP. Vous pouvez également tester différentes transformations et voir celle qui fonctionne le mieux. Et vous pouvez voir si l'un de vos points GCP est susceptible d'être erroné, en regardant leurs résidus. Une fois que vous avez ajouté tous vos points GCP et vérifié que vous aimez la sortie, vous pouvez exporter le fichier GCP à partir du géoréférenceur pour l'utiliser pour géoréférencer le fichier vectoriel d'origine.
Le fichier GCP doit être modifié pour être au format suivant. Vous pouvez ajouter autant de points GCP que vous le souhaitez, chacun est précédé d'un -gcp et séparé par un espace. J'ai couru cela avec plus de 800 points GCP, et cela a très bien fonctionné.
Il existe plusieurs façons de changer les points GCP au bon format. Je les ai importés dans Excel en tant que fichier csv et créé une colonne pour sortir le bon format pour chaque point. Ensuite, j'ai collé cette colonne dans TextEdit et remplacé les extrémités de ligne par des espaces.
Le fichier vectoriel que vous souhaitez géoréférencer doit être importé dans votre espace de travail en utilisant le même SRS que vous souhaitez pour le fichier géoréférencé final, qui doit être le même SRS que votre espace de travail. Cela pourrait être très loin de l'endroit où il devrait être, s'il utilisait à l'origine un SRS différent, mais la transformation le déplacera à l'emplacement correct.
Accédez à ogr2ogr via "Boîte à outils de traitement: GDAL: conversion vectorielle: format de conversion". Cela vous permet de sélectionner le fichier vectoriel que vous souhaitez géoréférencer et votre fichier de sortie. Dans le champ "Options de création supplémentaires", ajoutez une commande spécifiant le type de transformation souhaité, puis la ligne avec tous vos points GCP.
Les commandes pour différents types de transformation incluent:
Par exemple, le code ajouté dans le champ "Options de création supplémentaires" pourrait ressembler à:
la source