QGIS tính bán kính của một cung đến các thuộc tính


9

Tôi đã cài đặt QGIS 2.18.16. Vấn đề của tôi là, làm thế nào để tính bán kính của một tính năng cung / đường cong (đường thẳng)? Các dòng có nguồn gốc từ tệp .dgn, mà tôi đọc bằng FME và đã ghi vào PostGis DB. Tôi đã tạo các khóa chính, v.v. và bảng hoàn toàn có thể chỉnh sửa. Tôi đã tính toán độ dài cho các cung thành công, nhưng không thể tìm ra cách tính bán kính cho các đường cong này. Điều này ( https://www.mathopenref.com/arcradius.html ) có thể đưa ra một số ý tưởng về mặt toán học, mặc dù tôi không thể tìm ra cách sử dụng nó trong máy tính QGIS. Vì vậy, tôi cần tính toán "R" cho tất cả các dòng tôi có trong DB.

Dưới đây là một ví dụ. Dữ liệu của tôi có Arcs / Curves trên các bảng khác với các polylines "bình thường".

nhập mô tả hình ảnh ở đây


Khi tôi nhấp vào một cung bằng công cụ Xác định, một trong các thuộc tính dẫn xuất được liệt kê là "bán kính đỉnh gần nhất". Vì vậy, không cần tính toán bán kính, bạn chỉ cần tìm ra cách truy cập thuộc tính này trong máy tính trường. Hoặc đơn giản là sao chép nó từ công cụ xác định.
csk

Bạn cũng có thể xem các thuộc tính của một đỉnh khi một lớp ở chế độ chỉnh sửa bằng cách chọn các đỉnh với Công cụ nút. Sau đó, tọa độ đỉnh (x, y, r) hiển thị trong bảng Chỉnh sửa Vertex.
csk

Rất vui được biết ít nhất có thể nhìn thấy bán kính thông qua công cụ nhận dạng. Chỉ với vài vòng cung sao chép sẽ là một tùy chọn, nhưng tôi dự định sử dụng nó cho toàn bộ dữ liệu tôi có, có quá nhiều tính năng vòng cung được thực hiện thủ công. : /
Sisuaski

Tôi loay hoay một chút và dường như không có nhiều người sử dụng các tính năng chuỗi tròn trong QGIS, vì vậy không có công cụ hoặc chức năng làm sẵn trong máy tính trường. Bạn có thể cần xác định một hàm Python tùy chỉnh. Nếu bạn muốn đi theo con đường đó, hãy thêm thẻ pygis vào câu hỏi của bạn.
csk

Bạn có bao nhiêu đỉnh cho tính năng? Bạn thấy gì Vertex Editorkhi bạn nhấp vào Node Tool?
Marco

Câu trả lời:


6

Công thức thử nghiệm nhẹ theo sau, do đó tiến hành thận trọng. Nhưng sau đây cùng với một ví dụ ở đây: https://www.mathopenref.com/arcradius.html nhập mô tả hình ảnh ở đây

Nếu các cung tròn của bạn có một đỉnh ở điểm giữa dọc theo cung (mà tôi đang nói là x1, y1 trong hình), bạn có thể sử dụng nó cùng với điểm bắt đầu và điểm kết thúc để tính độ dài hợp âm " W " và độ cao " h " để lấy bán kính "R" bằng công thức sau:

nhập mô tả hình ảnh ở đây

và nói

nhập mô tả hình ảnh ở đây

W =

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

nhập mô tả hình ảnh ở đây

H =

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

trong Hộp thoại Biểu thức của Máy tính Trường, bạn có phương trình dài này để tính bán kính:

nhập mô tả hình ảnh ở đây

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
Trong 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

Rất tốt! Tôi đã không tưởng tượng làm thế nào để truy cập các đỉnh. Có thể trong PostGIS?
Marco

1
Marco, tôi tin rằng có thể trích xuất bất cứ đỉnh nào bạn đang tìm kiếm. Xem liên kết tại đây: postgis.net/docs/ST_PointN.html . Cảm ơn bạn đã bổ sung và chỉnh sửa công thức tuyệt vời nhất.
cm1

Trong khi chờ đợi các nhà phát triển thêm nút vào "bán kính tính toán dễ dàng", đây là câu trả lời hữu ích nhất mà tôi có thể hy vọng. Bây giờ tôi (và có thể cả những người khác nữa) có ít nhất một số cách để trích xuất bán kính. :) Tôi chưa thử nghiệm điều này, nhưng tôi sẽ có một vài ngày khi tôi có đủ thời gian. Cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn!
Sisuaski

1

Còn việc trích xuất bán kính trong khi trích xuất dữ liệu bằng FME thì sao? Ở đó bạn có biến áp ArcPropertyExtractor, sẽ cung cấp cho bạn các giá trị bán kính trong các thuộc tính sẵn sàng để đặt trong DB PostGIS của bạn


Đó sẽ là một cách có thể để tiến hành, một cách tốt để xử lý toàn bộ dữ liệu. Vấn đề của tôi là, không có đủ người dùng FME trong tổ chức của tôi và tôi cần làm cho quá trình này dễ dàng nhất có thể. Điều đó có nghĩa là, toàn bộ quá trình, bao gồm cả cung, khu vực, đường, v.v., có thể được thực hiện với Qgis. Khả năng cập nhật bán kính tính năng Arc cho các đối tượng mới là những gì tôi cần phải thực hiện với Qgis. Tuy nhiên, cảm ơn bạn đã trả lời, tôi sẽ cập nhật các thuộc tính bán kính với FME, nhưng hy vọng sẽ có cách để làm điều đó với QGIS.
Sisuaski
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.