Me gustaría rotar un conjunto de puntos vectoriales en QGIS un número arbitrario de grados alrededor de un punto central (o punto arbitrario).
Esto es similar a una pregunta reciente sobre la creación de una cuadrícula regular ; se sugirió utilizar la herramienta "Transformación afín" (que supongo que significa el complemento) para rotar o desplazar una cuadrícula de puntos en un ángulo o distancia arbitrario. Sospecho que no entiendo cómo funciona y no he podido hacer que funcione.
Creo una cuadrícula regular de puntos en QGIS y me aseguro de que la zona UTM esté configurada correctamente tanto para la capa como para el proyecto, habilito la edición de la capa y luego abro el cuadro de diálogo del complemento (qgsAffine):
Selecciono 'capa completa' y luego, queriendo rotar todo el campo de puntos en 15 °, pongo 15 en ambos cuadros de 'rotación' (que puede ser donde las cosas van mal). ¡La operación da como resultado la rotación de los puntos en algún lugar fuera del planeta!
¿Es esta la herramienta adecuada para el trabajo? Me gustaría rotar un conjunto de puntos sobre su centro común, idealmente.
Actualización : qgsAffine es solo un pensamiento; si podemos hacer esto en cualquier herramienta QGIS, ¡estaré feliz!
Actualización 2 : qgsAffine es utilizable SI conoce los números correctos para enchufar (vea la respuesta a continuación, ¡gracias Mike!). La hoja de cálculo / calculadora funciona bien, o aquí está la función R para obtener los números directamente:
## 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)
}
Entonces, para rotar una cuadrícula de puntos en el norte de Uganda (UTM 36N), se affine(578988, 419210, 30)
obtiene:
scaleX scaleY rotX rotY transX transY
1 0.8660254 0.8660254 0.5 -0.5 287174.7 -233330.5
... que, ingresado en el cuadro de diálogo qgsAffine, rota los puntos correctamente.