Genel / Yazılım · Haziran 27, 2021 0

Cografi Konum Tespiti.

Selamlar uzun süredir yazmıyordum. Sanırım son olan yasakta, üzerinde çalıştığım ve bazı öğrenmeler gerçekleştirdiğim konuyu bir nevi not defterim olan bloga yazmaya karar verdim.

Daha önce kullandığım ve cografi konumu LatLon olarak belli olan bir offset e göre, range ve bearing değerlerini kullanarak hedef konumun cografi konumunun bulunması probleminin çözümünü geopy modülü ile çözmüştüm. Geopy içerisinde Vincenty distance ya da Great Circle fonksiyonları mevcut. Bu fonksiyonlar iki konum arasında uzaklığı da hesaplayabiliyor ve aynı zamanda yukarıda bahsettiğim problemi de aşabiliyorlar.

(not: Artık Vincenty distance yerine geodesic kullanılıyor)

Vincenty daha hassas olmasına rağmen daha yavaş çalışıyor. Bunu göz önünde bulundurarak kullanmak gerekiyor.

Kullanım için basit bir örnek aşağıda.

Burada origine göre aci ve mesafe si verilmiş olan yerin koordinati döndürülüyor.

Benim için problem geopy modülünü kullanamamakla başladı.Artık geoPy kullanamıyordum. Başka bir modül ile çalışma yöntemleri aradım. Kullandığım bir başka modül olan PyQt5 QtPositioning sınıfının varlığıyla tanıştım. Neredeyse aynı sonuçları veriyordu.

Yukarıdaki örnekte ofset adında bir konum belirleniyor. Daha sonra bu ofset e göre açısı ve mesafesi belirli bir konum parametre geçilerek, yerin latlon bilgisi alınıyor.

Tabi işler bu kadar kolay olmamalıydı. Neden kolay olsun ki ?

Testlerimi yaptığım PyQt5 versiyonu ile uygulamanın esasında kullandığım PyQt5 in versiyonları farklıydı ve onda QtPositioning yoktu.

İşlerin böyle olmayacağını oturup kendim yazmam gerektiğini anladım ve kolları sıvadım.

Önce elimdeki verilere baktım. Ofset in lat ve lon bilgileri var, uzaklık ve açı var. Birde yükseklik değerleri mevcut. Sonra biraz cosinus sinus vs bakındım. Neyse ki hatırladım. Sonuç olarak aşağıdaki çözümü kodladım ve şu an bir problem görünmüyor.

Yukarıdaki eşitliklerde yükseklik hesaba katılmamıştır. Yeryüzünden distance hesaplanmaktadır.

Eğer bir yükseltiden, diğer bir yükseltiye bir lazer mesafe ölçer ile aradaki mesafe ölçülseydi (slant range)bu mesafenin yeryüzü izdüşümünün mesafesi bulunmalı ve yukarıdaki eşitlikteki “distanceKM” olarak girilmesi gerekmekteydi.

İzdişüm mesafesini hesaplamak için aşağıdaki eşitlik kullanılabilir.

Saygı ve sağlıcakla kalın.

Ziyaretci : 4872