Я хотів би повернути набір векторних точок у QGIS довільною кількістю градусів навколо центральної точки (або довільної точки).
Це схоже на недавнє запитання про створення звичайної сітки ; там було запропоновано використовувати інструмент "Affine Transformation" (який, мабуть, мав на увазі плагін), щоб обертати або зміщувати сітку точок на довільний кут або відстань. Я підозрюю, що не розумію, як це працює, і не зміг змусити його працювати.
Я створюю звичайну сітку точок у QGIS і переконуюсь, що зона UTM встановлена правильно як для шару, так і для проекту, включити редагування шару, а потім відкрити діалогове вікно плагінів (qgsAffine):
Я вибираю "цілий шар", а потім, бажаючи повернути все поле точок на 15 °, поміщаю 15 в обидва поля "обертання" (можливо, там справи йдуть не так). Операція призводить до обертання точок десь поза планетою!
Це правильний інструмент для роботи? Я хотів би в ідеалі повернути набір точок щодо їх спільного центру.
Оновлення : qgsAffine - це лише думка; якщо ми зможемо це зробити на будь-якому інструменті QGIS, я буду радий!
Оновлення 2 : qgsAffine є корисним, якщо ви знаєте правильні номери для підключення (див. Відповідь нижче, дякую, Майк!). Електронна таблиця / калькулятор працює нормально, або ось функція R для отримання номерів безпосередньо:
## 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)
}
Отже, для обертання сітки точок на півночі Уганди (UTM 36N), affine(578988, 419210, 30)
дає:
scaleX scaleY rotX rotY transX transY
1 0.8660254 0.8660254 0.5 -0.5 287174.7 -233330.5
... який, введений у діалоговому вікні qgsAffine, правильно обертає точки.