QGIS คำนวณรัศมีของส่วนโค้งไปยังแอตทริบิวต์


9

ฉันติดตั้ง QGIS 2.18.16 แล้ว ปัญหาของฉันคือวิธีการคำนวณรัศมีของคุณสมบัติส่วนโค้ง / เส้นโค้ง (เส้น)? บรรทัดมาจากไฟล์. dgn ซึ่งฉันอ่านด้วย FME และเขียนไปยัง PostGis DB ฉันได้สร้างคีย์หลักเป็นต้นและตารางสามารถแก้ไขได้อย่างสมบูรณ์ ฉันคำนวณความยาวของส่วนโค้งเรียบร้อยแล้ว แต่ไม่สามารถหาวิธีคำนวณรัศมีสำหรับส่วนโค้งเหล่านี้ได้ ( https://www.mathopenref.com/arcradius.html ) นี้อาจให้ความคิดเกี่ยวกับคณิตศาสตร์แม้ว่าฉันไม่สามารถหาวิธีใช้ในเครื่องคิดเลข QGIS ดังนั้นฉันต้องคำนวณ "R" สำหรับทุกบรรทัดที่ฉันมีในฐานข้อมูล

ร้องเป็นตัวอย่าง ข้อมูลของฉันมีส่วนโค้ง / เส้นโค้งบนตารางที่แตกต่างจาก polylines "ปกติ"

ป้อนคำอธิบายรูปภาพที่นี่


เมื่อฉันคลิกส่วนโค้งด้วยเครื่องมือระบุหนึ่งในคุณลักษณะที่ได้รับที่ระบุไว้คือ "รัศมีจุดยอดที่ใกล้เคียงที่สุด" ดังนั้นไม่จำเป็นต้องคำนวณรัศมีคุณจะต้องหาวิธีการเข้าถึงคุณสมบัตินี้ในเครื่องคิดเลขภาคสนาม หรือเพียงคัดลอกจากเครื่องมือระบุ
csk

คุณยังสามารถดูคุณสมบัติของจุดสุดยอดเมื่อเลเยอร์อยู่ในโหมดแก้ไขโดยเลือกจุดยอดด้วยเครื่องมือโหนด จากนั้นจุดสุดยอดพิกัด (x, y, r) จะแสดงในแผงควบคุม Vertex
csk

ยินดีที่ได้ทราบอย่างน้อยเป็นไปได้ที่จะเห็นรัศมีผ่านเครื่องมือระบุ มีเพียงไม่กี่อาร์คคัดลอกวางจะเป็นตัวเลือก แต่ฉันวางแผนที่จะใช้สิ่งนี้กับข้อมูลทั้งหมดที่ฉันมีซึ่งมีคุณสมบัติส่วนโค้งมากเกินไปที่จะทำด้วยตนเอง : /
Sisuaski

ฉันไปรอบ ๆ และดูเหมือนว่ามีคนไม่มากที่ใช้คุณสมบัติสตริงแบบวงกลมใน QGIS ดังนั้นจึงไม่มีเครื่องมือหรือฟังก์ชั่นสำเร็จรูปในเครื่องคำนวณภาคสนาม คุณอาจต้องกำหนดฟังก์ชั่น Python แบบกำหนดเอง หากคุณต้องการไปเส้นทางนั้นให้เพิ่มแท็ก pygis ในคำถามของคุณ
csk

คุณมีจุดสุดยอดจำนวนเท่าใดสำหรับฟีเจอร์ คุณจะเห็นอะไรในVertex Editorเมื่อคุณคลิกNode Tool?
Marco

คำตอบ:


6

มีการทดสอบสูตรเบา ๆ ตามดังนั้นโปรดดำเนินการด้วยความระมัดระวัง แต่ทำตามตัวอย่างพร้อมที่นี่: https://www.mathopenref.com/arcradius.html ป้อนคำอธิบายรูปภาพที่นี่

หากส่วนโค้งวงกลมของคุณมีจุดยอดที่จุดกึ่งกลางตามส่วนโค้ง (ซึ่งฉันกำลังบอกว่าคือ x1, y1 ในรูป) คุณสามารถใช้มันพร้อมกับจุดเริ่มต้นและจุดสิ้นสุดในการคำนวณความยาวคอร์ด " W " และความสูง " h " เพื่อรับรัศมี "R" โดยใช้สูตรต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

และพูดว่า

ป้อนคำอธิบายรูปภาพที่นี่

W =

sqrt(
     ( $x_at(-1) - $x_at(0) )^2 +
     ( $y_at(-1) - $y_at(0) )^2
    )

และ

ป้อนคำอธิบายรูปภาพที่นี่

H =

sqrt(
    ( $x_at(1) - ( $x_at(-1) + $x_at(0) )/2 )^2
    + ( $y_at(1) - ( $y_at(-1) + $y_at(0) )/2 )^2
)

ในกล่องโต้ตอบนิพจน์ของเครื่องคิดเลขคุณจะมีสมการที่ยาวนานสำหรับการคำนวณรัศมี:

ป้อนคำอธิบายรูปภาพที่นี่

R =

sqrt( 
    ( $x_at(1) - ($x_at(-1) + $x_at(0) )/2 )^2 
    + ( $y_at(1) - ($y_at(-1) + $y_at(0))/2 )^2
     ) /2
+
(   ( $x_at(-1) - $x_at(0) )^2 )  + 
    ( $y_at(-1) - $y_at(0) )^2 )  )
/ ( 8 * sqrt(
            ( ($x_at(1) - ($x_at(-1) + $x_at(0) )/2 )^2
            + ( $y_at(1) - ($y_at(-1) + $y_at(0) )/2 )^2
             )
   )

1
ใน LaTe X $$W= \sqrt {(x_{-1} - x_0)^2 +(y_{-1}-y_0)^2}$$ $$H = \sqrt { (x_1- \frac {(x_{-1}+x_0)} 2 )^2 + (y_1- \frac {(y_{-1}+y_0)} 2 )^2}$$ และ $$R = \frac {\sqrt { (x_1- \frac {(x_{-1}+x_0)} 2 )^2 + (y_1- \frac {(y_{-1}+y_0)} 2 )^2}} {2} + \frac {(x_{-1} - x_0)^2 +(y_{-1}-y_0)^2} {8 \sqrt { (x_1- \frac {(x_{-1}+x_0)} 2 )^2 + (y_1- \frac {(y_{-1}+y_0)} 2 )^2}}$$
Marco

ดีมาก! ฉันไม่คิดว่าจะเข้าถึงจุดสุดยอดได้อย่างไร เป็นไปได้ใน PostGIS?
มาร์โก

1
มาร์โกฉันเชื่อว่าเป็นไปได้ที่จะแยกสิ่งที่คุณต้องการ ดูการเชื่อมโยงที่นี่: postgis.net/docs/ST_PointN.html ขอบคุณสำหรับการเพิ่มและแก้ไขสูตรที่ยอดเยี่ยมที่สุด
cm1

ในขณะที่รอให้นักพัฒนาเพิ่มปุ่มเพื่อ "คำนวณรัศมีง่าย" นี่เป็นคำตอบที่มีประโยชน์ที่สุดที่ฉันคาดหวัง ตอนนี้ฉัน (และคนอื่น ๆ ด้วย) อย่างน้อยก็มีวิธีในการสกัดรัศมี :) ฉันยังไม่ได้ทดสอบสิ่งนี้ แต่ฉันจะในอีกไม่กี่วันเมื่อฉันมีเวลาเพียงพอ ขอบคุณมากสำหรับความช่วยเหลือของคุณ!
Sisuaski

1

สิ่งที่เกี่ยวกับการแยกรัศมีในขณะที่การแยกข้อมูลด้วย FME? ที่นั่นคุณมีหม้อแปลง ArcPropertyExtractor ซึ่งควรให้ค่ารัศมีในแอททริบิวต์พร้อมที่จะตั้งค่าใน PostGIS DB ของคุณ


นั่นจะเป็นวิธีหนึ่งที่เป็นไปได้ในการดำเนินการซึ่งเป็นวิธีที่ดีในการจัดการกับข้อมูลทั้งหมด ปัญหาของฉันคือมีผู้ใช้ FME ไม่เพียงพอในองค์กรของฉันและฉันต้องทำให้กระบวนการง่ายที่สุดเท่าที่จะทำได้ ซึ่งหมายความว่ากระบวนการทั้งหมดรวมถึงส่วนโค้งพื้นที่เส้น ฯลฯ ควรจะสามารถทำได้ด้วย Qgis ความสามารถในการอัปเดตคุณลักษณะรัศมีไปยังวัตถุใหม่คือสิ่งที่ฉันต้องทำด้วย Qgis ขอบคุณสำหรับการตอบกลับของคุณฉันจะอัปเดตแอตทริบิวต์รัศมีด้วย FME ในตอนนี้ แต่หวังว่าจะมีวิธีในการทำกับ QGIS
Sisuaski
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.