मैं क्यूजीआईएस में एक केंद्रीय बिंदु (या मनमाना बिंदु) के आसपास डिग्री की मनमानी संख्या में वेक्टर बिंदुओं के एक सेट को घुमाना चाहूंगा।
यह एक नियमित ग्रिड बनाने के बारे में हाल के प्रश्न के समान है ; यह सुझाव दिया गया था कि "Affine ट्रांसफॉर्मेशन" टूल का उपयोग करें (जो मुझे लगता है कि प्लगइन का मतलब है) एक मनमाना कोण या दूरी के बिंदुओं के ग्रिड को घुमाने या स्थानांतरित करने के लिए। मुझे संदेह है कि मैं यह नहीं समझ पा रहा हूं कि यह कैसे काम करता है, और यह काम करने में सक्षम नहीं है।
मैं QGIS में एक नियमित ग्रिड बनाता हूं, और सुनिश्चित करता हूं कि UTM ज़ोन लेयर और प्रोजेक्ट दोनों के लिए सही तरीके से सेट हो, लेयर के लिए एडिटिंग सक्षम करें, फिर प्लगइन डायलॉग खोलें (qgsAffine):
मैं 'पूरी परत' का चयन करता हूं और फिर, पूरे क्षेत्र को 15 ° तक घुमाना चाहता हूं, 15 को दोनों 'रोटेशन' बॉक्स में डाल देता हूं (जो कि गलत हो सकता है)। ऑपरेशन के परिणाम कहीं-कहीं ऑफ-प्लैनेट घूमते हैं!
क्या यह नौकरी के लिए सही उपकरण है? मैं आदर्श रूप से उनके सामान्य केंद्र के बारे में बिंदुओं के एक सेट को घुमाना चाहूंगा।
अद्यतन : qgsAffine सिर्फ एक विचार है; अगर हम किसी भी QGIS टूल में ऐसा कर सकते हैं तो मुझे खुशी होगी!
अद्यतन 2 : qgsAffine प्रयोग करने योग्य है यदि आप प्लग इन करने के लिए सही संख्या जानते हैं (नीचे उत्तर देखें, धन्यवाद माइक)। स्प्रेडशीट / कैलकुलेटर ठीक काम करता है, या सीधे नंबर प्राप्त करने के लिए आर फ़ंक्शन है:
## 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 संवाद में दर्ज किया गया, सही ढंग से अंक घुमाता है।