QGIS, bir yayın özniteliklere yarıçapını hesaplar


9

QGIS 2.18.16 yükledim. Benim sorunum, bir yay / eğri özelliğinin (çizgi) yarıçapı nasıl hesaplanır? Satırlar, FME ile okuduğum ve PostGis DB'ye yazdığım .dgn dosyasından geliyor. Birincil anahtarlar vb. Oluşturdum ve tablo tamamen düzenlenebilir. Yaylar için uzunlukları başarıyla hesapladım, ancak bu eğriler için yarıçapın nasıl hesaplanacağını anlayamıyorum. Bu ( https://www.mathopenref.com/arcradius.html ) matematik tarafında bir fikir verebilir, ancak QGIS hesap makinesinde nasıl kullanılacağını anlayamıyorum. Bu yüzden ben DB sahip tüm satırlar için "R" hesaplamak gerekir.

Körük bir örnektir. Verilerim farklı tabloda "normal" çoklu çizgilerden oluşan Yaylar / Eğriler içeriyor.

resim açıklamasını buraya girin


Tanımlama aracıyla bir yayı tıklattığımda, listelenen özniteliklerden biri "en yakın köşe yarıçapı" dır. Bu yüzden yarıçapı hesaplamanıza gerek yoktur, sadece alan hesaplayıcısında bu özelliğe nasıl erişileceğini anlamanız gerekir. Veya sadece tanımlama aracından kopyalayın.
csk

Düğüm Aracı ile köşeleri seçerek, katman düzenleme modundayken tepe noktasının özelliklerini de görüntüleyebilirsiniz. Ardından köşe koordinatları (x, y, r) Köşe Düzenleyici panelinde görüntülenir.
csk

En azından tanımlama aracı ile yarıçapı görmek mümkün olduğunu bilmek güzel. Sadece birkaç yay ile kopyalama-yapıştırma bir seçenek olacaktır, ancak bunu elimde çok fazla ark özelliği olan tüm verilerimde kullanmayı planlıyorum. : /
Sisuaski

Biraz dolaştım ve pek çok insan QGIS'de dairesel dize özellikleri kullanmıyor gibi görünüyor, bu nedenle alan hesap makinesinde hazır bir araç veya işlev yok. Özel bir Python işlevi tanımlamanız gerekebilir. Bu rotaya gitmek istiyorsanız, sorunuza pygis etiketini ekleyin.
csk

Özellik için kaç tepe noktanız var? Düğmesini Vertex Editortıkladığınızda ne görüyorsunuz Node Tool?
Marco

Yanıtlar:


6

Hafif test edilmiş formüller takip eder, bu yüzden dikkatli olun. Ancak burada bir örnekle birlikte: https://www.mathopenref.com/arcradius.html resim açıklamasını buraya girin

Dairesel yaylarınızın yay boyunca orta noktada bir tepe noktası varsa (şekilde x1, y1 diyorum), " W "akor uzunluğunuve yüksekliğinihesaplamak için başlangıç ​​ve bitiş noktalarıyla birlikte kullanabilirsiniz.Aşağıdaki formülü kullanarak "R" yarıçapını elde etmek için" h ":

resim açıklamasını buraya girin

ve diyor ki

resim açıklamasını buraya girin

W =

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

ve

resim açıklamasını buraya girin

H =

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

Alan Hesaplayıcısının İfade İletişim Kutunuzda yarıçap hesaplaması için şu uzun denkleme sahip olursunuz:

resim açıklamasını buraya girin

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}$$ ve $$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

Çok iyi! Köşelere nasıl erişileceğini hayal etmedim. PostGIS'te mümkün mü?
Marco

1
Marco, aradığınız her köşeyi çıkarmanın mümkün olduğuna inanıyorum. Buradaki bağlantıya bakın: postgis.net/docs/ST_PointN.html . En mükemmel formül eklemeleri ve düzenlemeleri için teşekkür ederiz.
cm1

Geliştiriciler "yarıçapı kolay hesaplamak" için bir düğme eklemek için beklerken, bu umut olabilir en yararlı cevaptır. Şimdi ben (ve muhtemelen başkaları da) yarıçapı çıkarmanın en azından bir yoluna sahibiz. :) Bunu henüz test etmedim, ancak yeterli zamanım olduğunda birkaç gün içinde yapacağım. Yardımınız için çok teşekkür ederim!
Sisuaski

1

FME ile veri çıkarırken yarıçapı çıkarmaya ne dersiniz? Burada, PostGIS DB'nizde ayarlanmaya hazır özelliklerde yarıçap değerlerini vermesi gereken ArcPropertyExtractor transformatörünüz var


Bu, ilerlemenin olası bir yolu, tüm verileri işlemek için iyi bir yol olacaktır. Benim sorunum, kuruluşumda yeterli sayıda FME kullanıcısı olmaması ve süreci mümkün olduğunca kolaylaştırmam gerekiyor. Bu, yaylar, alanlar, çizgiler vb.Dahil olmak üzere tüm sürecin Qgis ile yapılabilmesi gerektiği anlamına gelir. Arc özellik yarıçapını yeni nesnelere güncelleyebilme, Qgis ile yapılması gereken şey. Yine de cevabınız için teşekkür ederim, şimdilik yarıçap özelliklerini FME ile güncelleyeceğim, ancak umarım QGIS ile yapmanın bir yolu olacaktır.
Sisuaski
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.