Je voudrais faire pivoter un ensemble de points vectoriels dans QGIS d'un nombre arbitraire de degrés autour d'un point central (ou point arbitraire).
Ceci est similaire à une question récente sur la création d'une grille régulière ; il a été suggéré d'utiliser l'outil "Transformation affine" (qui, je suppose, signifiait le plugin) pour faire pivoter ou déplacer une grille de points d'un angle ou d'une distance arbitraire. Je soupçonne que je ne comprends pas comment cela fonctionne et que je n'ai pas réussi à le faire fonctionner.
Je crée une grille régulière de points dans QGIS et je m'assure que la zone UTM est correctement définie pour la couche et le projet, j'active l'édition pour la couche, puis j'ouvre la boîte de dialogue du plugin (qgsAffine):
Je sélectionne «calque entier», puis, voulant faire pivoter tout le champ de points de 15 °, j'en place 15 dans les deux cases «rotation» (qui peuvent être là où les choses tournent mal). L'opération entraîne la rotation des points quelque part hors de la planète!
Est-ce le bon outil pour le travail? Je voudrais faire pivoter un ensemble de points autour de leur centre commun, idéalement.
Mise à jour : qgsAffine n'est qu'une pensée; si nous pouvons le faire dans n'importe quel outil QGIS, je serai heureux!
Mise à jour 2 : qgsAffine est utilisable SI vous connaissez les bons numéros à brancher (voir réponse ci-dessous, merci Mike!). La feuille de calcul / calculatrice fonctionne bien, ou voici la fonction R pour obtenir les chiffres directement:
## Compute correct affine numbers for qgsAffine plugin
affine <- function(originX, originY, rotAngle) {
A <- rotAngle * pi / 180
scaleX <- scaleY <- cos(A)
rotX <- sin(A)
rotY <- -sin(A)
transX <- originX - cos(A) * originX + sin(A) * originY
transY <- originY - sin(A) * originX - cos(A) * originY
aff <- data.frame(scaleX, scaleY, rotX, rotY, transX, transY)
return(aff)
}
Ainsi, faire pivoter une grille de points dans le nord de l'Ouganda (UTM 36N), affine(578988, 419210, 30)
donne:
scaleX scaleY rotX rotY transX transY
1 0.8660254 0.8660254 0.5 -0.5 287174.7 -233330.5
... qui, entré dans la boîte de dialogue qgsAffine, fait pivoter correctement les points.