Paramètres de calcul pour la transformation QGIS Affine?


15

J'ai un plan d'étage vectoriel (DXF) que j'ai ajouté à un projet vide dans QGIS en utilisant le plugin Dxf2Shp.

J'ai lu des tutoriels et des fils de discussion StackExchange, mais je n'arrive pas à trouver comment "géoréférencer" ma couche?

Je suppose que je peux en quelque sorte sélectionner les coins du bâtiment et régler le lat / long.

Mon objectif est d'exporter un fichier de formes que je peux utiliser avec TileMill et TileStache .

J'ai réalisé que les coordonnées du projet étaient en fait des coordonnées lat / long:

entrez la description de l'image ici

et je dois utiliser le plugin "Affine (Rotation, Traduction, Echelle)" pour "placer" mon dessin CAO.


Réponses:


2

Utiliser OpenJump pour calculer les paramètres de transformation affine donne:

Scale x: 0.02550720529745378
Scale y: 0.025669710194697357
Rotation: -88.6538203230914
Dx: 357101.9 (Translation x)
Dy: 4512814.6 (Translation y)

Ces paramètres, lorsqu'ils sont correctement appliqués, devraient transformer votre fichier de formes du CRS local qu'il utilise en WGS84 / UTM Zone 17 North (EPSG: 32617). Dans QGIS, les données transformées pouvaient ensuite être exportées ("enregistrées sous") vers n'importe quel CRS requis; Google Mercator ou lat / lon, par exemple.

La mauvaise nouvelle est que je n'ai jamais pu utiliser avec succès le plug-in affine QGIS pour les transformations qui incluent la rotation. Selon certains comptes, cela fonctionne pour d'autres personnes mais pas pour moi, donc ce doit être quelque chose que je fais mal. Si quelqu'un pouvait me dire de quoi il s'agit, je lui en serais reconnaissant.

Il y avait un fil ici sur l'affinement des vecteurs qui vaut la peine d'être lu. La méthode que j'utilise pour affiner les vecteurs est expliquée ici en bas de la première page.

Si vous êtes vraiment bloqué, vous pouvez publier un lien vers le fichier de formes et nous pourrions tous essayer de le transformer.

Une réflexion après coup. Si vous décidez d'essayer la méthode OpenJump, vous aurez besoin des coordonnées WGS84 / UTM Zone 17 North (EPSG: 32617) pour vos points lat / lon:

EPSG:32617: 361154.4 4513930.1
lat/long: 40.764622,-82.645056
shapefile coor: 947.3,1242.8

EPSG:32617: 361152.2 4513850.3
lat/long: 40.763903,-82.645064
shapefile coor: 4050.3,1035.7

EPSG:32617: 361246.5 4513886.7
lat/long: 40.764247,-82.643956
shapefile coor: 2710.5,4765.2

2
il ne semble pas exister de flux de travail cohérent et facile à expliquer pour la transformation affine dans QGIS. Le lien du forum dans votre explication est mort. Toutes les recherches sur la façon d'utiliser OpenJump pour cette tâche se retrouvent ici à nouveau. Avez-vous peut-être des mises à jour à ce sujet?
Bernd V.

Vous pouvez désormais utiliser GRASS v.transform à partir de la trousse à outils Sextante pour effectuer des transformations affines vectorielles. La documentation pour cela peut être trouvée ici: grass.osgeo.org/grass64/manuals/v.transform.html mais en vérité tout ce dont vous aurez besoin de regarder est le format du fichier texte. N.
nhopton

27

Vous devez d'abord projeter vos coordonnées géographiques dans un système de coordonnées cartésiennes 2D, car les transformations affines ne s'appliquent pas aux systèmes de coordonnées géographiques.

Vous pouvez appliquer une transformation affine à partir de points de contrôle ou de paramètres de transformation. Le plugin QGIS vous demande des paramètres de transformation, mais il est beaucoup plus courant pour un utilisateur d'avoir des points de contrôle.

À partir des points de contrôle, vous pouvez calculer les paramètres de transformation. Pour une transformation affine, il y a 6 paramètres de transformation, vous avez donc besoin d'au moins 3 points de contrôle (chaque point de contrôle implique 4 coordonnées: Xsource, Ysource, Xtarget, Ytarget), mais plus de points de contrôle sont recommandés pour avoir une redondance et donc pouvoir appliquer Les moindres carrés, qui vous donneraient une estimation de la qualité de la transformation. N'oubliez pas que les transformations affines peuvent pivoter, décaler, mettre à l'échelle (même en appliquant différents facteurs sur chaque axe) et incliner les géométries.

Les points de contrôle doivent avoir la forme:

X SOURCE: Xs
Y SOURCE: Ys
X TARGET: Xt
Y TARGET: Yt

Les paramètres sont:

a: Scale X 
e: Scale Y
d: Rotation X
b: Rotation Y
c: Translation X
f: Translation Y

Et nous savons:

Xt = X*a + Y*b + c
Yt = X*d + Y*e + f

Donc, vous devez résoudre ce système d'équations (pour 3 points de contrôle):

¦ Xs1 Ys1 1 0 0 0 ¦ | a ¦   ¦ Xt1 ¦
¦ Xs2 Ys2 1 0 0 0 ¦ ¦ b ¦   ¦ Xt2 ¦ 
¦ Xs3 Ys3 1 0 0 0 ¦ ¦ c ¦ = ¦ Xt3 ¦ 
¦ 0 0 0 Xs1 Ys1 1 ¦ ¦ d ¦   ¦ Yt1 ¦ 
¦ 0 0 0 Xs2 Ys2 1 ¦ ¦ e ¦   ¦ Yt2 ¦ 
¦ 0 0 0 Xs3 Ys3 1 ¦ ¦ f ¦   ¦ Yt3 ¦

Où les paramètres a, b, c, d, e et f sont inconnus.

Une fois que vous avez calculé les paramètres a, b, c, d, e et f (par exemple avec ce solveur d'équation en ligne ), placez-les dans l'interface du plugin QGIS comme ceci:

X' = a*x + b*y + c
Y' = d*x + e*y + f

ou:

Paramètres de transformation affine

Je pense que cela résout vos deux questions.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.