Eu gostaria de girar um conjunto de pontos vetoriais no QGIS um número arbitrário de graus em torno de um ponto central (ou ponto arbitrário).
Isso é semelhante a uma pergunta recente sobre a criação de uma grade regular ; foi sugerido lá o uso da ferramenta "Affine Transformation" (que suponho que significou o plug-in) para girar ou mudar uma grade de pontos em um ângulo ou distância arbitrários. Suspeito que não esteja entendendo como funciona e não consegui fazê-lo funcionar.
Eu crio uma grade regular de pontos no QGIS e garanto que a zona UTM esteja definida corretamente para a camada e o projeto, ative a edição da camada e abra a caixa de diálogo do plug-in (qgsAffine):
Eu seleciono 'camada inteira' e, em seguida, desejando girar todo o campo de pontos em 15 °, coloco 15 nas duas caixas 'rotação' (que podem ser as coisas que estão dando errado). A operação resulta na rotação dos pontos em algum lugar fora do planeta!
Essa é a ferramenta certa para o trabalho? Eu gostaria de girar um conjunto de pontos sobre o centro comum, idealmente.
Atualização : qgsAffine é apenas um pensamento; se pudermos fazer isso em qualquer ferramenta QGIS, ficarei feliz!
Atualização 2 : qgsAffine é utilizável SE você souber os números certos para conectar (veja a resposta abaixo, obrigado Mike!). A planilha / calculadora funciona bem, ou aqui está a função R para obter os números diretamente:
## 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)
}
Portanto, para girar uma grade de pontos no norte de Uganda (UTM 36N), affine(578988, 419210, 30)
obtém:
scaleX scaleY rotX rotY transX transY
1 0.8660254 0.8660254 0.5 -0.5 287174.7 -233330.5
... que, inserido na caixa de diálogo qgsAffine, gira corretamente os pontos.