QGIS'deki vektör noktalarının bir kümesini merkezi bir nokta (veya keyfi nokta) etrafında rasgele sayıda derece döndürmek istiyorum.
Bu, düzenli bir ızgara oluşturma hakkında son zamanlarda sorulan soruya benzer ; orada bir nokta ızgarasını keyfi bir açı veya mesafe döndürmek veya kaydırmak için "Affine Transformation" aracını (eklenti anlamına geldiğini varsayıyorum) kullanılması önerildi. Nasıl çalıştığını anlamadığımı sanıyorum ve işe yaramadı.
QGIS'te düzenli bir nokta ızgarası oluşturuyorum ve UTM bölgesinin hem katman hem de proje için doğru ayarlandığından emin oluyor, katman için düzenlemeyi etkinleştiriyorum, ardından eklenti iletişim kutusunu açıyorum (qgsAffine):
'Tüm katmanı' seçiyorum ve sonra tüm nokta alanını 15 ° döndürmek isteyen her iki 'rotasyon' kutusuna 15 koyuyorum (işlerin yanlış gittiği yer olabilir). Operasyon, noktaları gezegen dışında bir yerde döndürmeyle sonuçlanır!
Bu iş için doğru araç mı? İdeal olarak onların ortak merkezleri hakkında bir dizi noktayı döndürmek istiyorum.
Güncelleme : qgsAffine sadece bir düşüncedir; bunu herhangi bir QGIS aracında yapabilirsek mutlu olurum!
Güncelleme 2 : qgsAffine, takmak için doğru numaraları biliyorsanız (aşağıdaki cevaba bakınız, teşekkürler Mike!) Kullanılabilir. E-tablo / hesap makinesi iyi çalışıyor veya sayıları doğrudan almak için R işlevi:
## 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)
}
Böylece, kuzey Uganda'daki (UTM 36N) bir nokta ızgarasını döndürmek için affine(578988, 419210, 30)
şunları verir:
scaleX scaleY rotX rotY transX transY
1 0.8660254 0.8660254 0.5 -0.5 287174.7 -233330.5
... qgsAffine iletişim kutusuna girilen noktaları doğru şekilde döndürür.