5 Şubat 2016 Cuma

WGS84

Not : GPS sisteminin alternatifi olarak Rus GLONASS sistemi mevcuttur. Ayrıca Avrupa Birliği Galileo sistemi üzerinde çalışmaktadır.

WGS84 Nedir ?
WGS84 (World Geodetic System) Küresel Konumlama Sistemi (GPS) kullandığı koordinat sistemidir. 2004 senesinde, bu sistem tekrar gözden geçirildi. Artık sadece dünyamız için değil güneş sistemindeki diğer gezegenler için de koordinat sistemleri geliştiriliyor. Örneğin Mars gezegeni için Mars 2000 mevcut.

WGS84 koordinat sisteminin bileşenlerini gösteren bir şekli buradan aldım.



Burada dikkat edilmesi gereken nokta, koordinat sistemindeki (X,Y,Z eksenleri) dünyanın ağırlık merkezinde birleşiyorlar. WGS 84'ten önce WGS 60, WGS 66, WGS 72 sistemleri vardı.


Koordinat Sistemi ve Projeksiyon Arasındaki Fark Nedir ?
Koordinat sistemi, dünyadaki herhangi bir noktayı enlem ve boylamı olarak bildirir. Projeksiyon ise dünyadaki kara, deniz, göl gibi şekillerin iki boyutlu harita üzerine çizilmesidir. Örneğin WGS84 sistemi, farklı farklı projeksiyonlar kullanılarak kağıda/ekran çizilebilirler.

proj4 uygulamasının desteklediği elipsoidler
proj -le ile görülebilir.


Buradaki örnekte proj4 kullanılarak iki projeksiyon sistemi arasında çevrim gösteriliyor. Kullanılan metod isimleri. pj_init_plus ve pj_transform .



WGS84 ve Ellipsoid
WGS84 ile dünyanın şekli ellipsoid olarak kabul edilir. Dünyanın gerçek şekline ise geoid denilir. Aşağıdaki şekilde dünyanın gerçek şekli ile ellipsoid arasında farklılıklar olduğu görülüyor.

Datum Nedir?
Geoid datum defines the size and shape of the world. Geodetic datums also define the origin and orientation of the coordinate system to map the earth. Modern geodetic datums describe the size, shapei orientation, gravity field and angular velocity of the earth.

WGS84 ile kullanılan ellipsoid dışında başka ellipsoid tanımlamaları da yapılmış.

Tabloda kutupsal eksenin ekvatordaki eksenden dünyanın basıklığı sebebiyle daha kısa olduğu görülebiliyor. 

Geodetic Height (Jeodezik yükseklik)
Noktanın elipsoidden yüksekliği. Elipsoid ile nokta arasında dik bir çizgi (orthogonal - çekül doğrultusunda çizgi) çekilerek bulunur.  Aşağıdaki şekilde "h" ile belirtiliyor.


Geoid ve ellipsoid arasındaki farklılık, özellikle irtifanın bulunmasında sıkıntılara yol açıyor. Örneğin buradaki soruda Flori'danın ortalama yüksekliğinin deniz seviyesinden 30-40 metre yukarıda olduğu, dolayısıyla deniz kıyısında duran bir kişinin 0 yerine daha farklı bir yükseklik göreceğinden bahsedilmiş.

Ellipsoid yüksekliği, deniz seviyesi yüksekliğine çevirmek için aşağıdaki basit algoritmanın kullanıldığını gördüm. Bilinear interpolation ile ilgili buraya bakılabilir.

NWHeight = geoidHeight [index] ;
NEHeight  = geoidHeight [index+1] ;
index = //recalculate index
SWHeight = geoidHeight [index] ;
SEHeight  = geoidHeight [index+1] ;
//Do bi-linear interpolation to compute elevation difference
deltaX = //compute
deltaY = //compute

UpperY =  NWHeight + deltaX * (NEHeight   - NWHeight);
LowerY =  SWHeight + deltaX * (SEHeight   - SWHeight);
DeltaHeight = LowerY +  deltaY* (UpperY- LowerY);

WGS84 ve Flattening
semi-minor axis : Merkezden kutupa doğru giden çizgi. Küçük eksen olarak ta kullanılabiliyor.
semi-major axis : Merkezden ekvatora doğru giden çizgi.Büyük eksen olarak ta kullanılabiliyor.

Flattening WGS-84 için 1 - (semi-minor axis)/(semi-major axis) anlamına geliyor. Bu değer 0'a ne kadar yakınsa şekilin tam yuvarlağa o kadar yakın olması anlamına geliyor. Yani bir nevi basıklık ölçüsü.



WGS84 ve Meridyenler yani Boylam (Longitude)
WGS84'te Baş Meridyen (Prime Meridian) Greenwich'ten değil ona çok yakın olan bir noktadan geçiyor kabul ediliyor. Başlangıç Meridyeni gösteren bir şekli buradan aldım.


Ekvator
WGS-84 ekvatorun uzunluğunu 40,075.016686 kilometre olarak sabitlemiş durumda. Ekvatorda iki boylam arasındaki mesafe  40,000 / 360 =  yaklaşık 110 km. İki enlem arasındaki mesafe de aynı.

Ekvatordan uzaklaştıkça iki boylam arasındaki mesafe azalıyor. Buradaki soruya verilen cevapta mesafenin azaldığı görülebilir. Yanlız 42. enlemde neden aşağıdaki formul kullanıldı bilmiyorum.

cos(90-42) * 110 = 74 km

Başlangıç Meridyenindeki saate Greenwich Meridian Time (GMT) denilir.

Aşağıdaki resmi buradan aldım ve aradaki farkı gösteriyor. Başlangıç boylamının nerede olduğunun hesaplanması görevi International Earth Rotation and Reference Systems Service (IERS) kuruluşunun görevi ve yukarıdaki şekilde de bu durum görülebiliyor.



GPS ile konum bulma
Burada GPS ile konum bulma işlemi için en az 3 uydudan sinyal alınması gerektiği görülebiliyor.

Android ve GPS
Android ile GPS'i kullanarak konum değişiminden haberdar olmak için LocationListener arayüzünü gerçekleştirmek ve onLocationChanged (Location location) metodunu kullanmak gerekiyor.

İki Nokta Arasında En Kısa Mesafeyi Hesaplama
Yaklaşık Hesaplama
Konuyu Konum Hesaplama Formülleri başlıklı yazıya taşıdım.

Tam Olarak Hesaplama 
Konuyu Konum Hesaplama Formülleri başlıklı yazıya taşıdım.

GPS ve DM Formatı
Degree Minute Formatı şöyle olabiliyor. DDDMM.MMMM . Yani Degree Minutes ve saniye yerine küsuratlı dakikalar. Böyle bir formatı sayıy çevirmek için aşağıdak formül kullanılabilir.

GPS ve DMS Formatı

DMS (Degree Minutes Seconds) formatı GPS koordinatının Derece/Dakika/Saniye cinsinden gösterilmesi anlamına geliyor. Bazı hava kuvvetleri haritalarında DMS formatında gösterim kullanılabiliyor. DMS formatını GPS cihazının gösterdiği gibi küsuratlı bir sayıya çevirmek çok kolay.

1 derece   = 60' dakika - Derece aslında saat gibi düşünülebilir.
1 derece   = 3600'' saniye (60 dakika * 60 saniye)
90 derece = 5400' dakika

Dolayısıyla bu kodu kullanabiliyoruz.

Bir başka örnekte ise DMS gösteriminde 47°02'24''S, 73°28'48''W olan bir konum, GPS gösterimine aşağıdaki gibi çevirilir

enlem   = - (47 + 2/60 + 24/3600 ) =-47.04
boylam = - (73 + 28/60 + 48/3600)=-73.48


GPS ve NMEA Formatı
NMEA yazısına taşıdım.

NTP (Network Time Protocol) ve GPS
GPS'in bir diğer az bilinen faydası ise sistemler arasındaki saati ayarlamaya yarayan NTP protokolüne refererans saaat olarak kullanılabilmesidir. Aşağıda resimi buradan aldım ve bu durumu özetliyor.


İstemciler üzerinde ntpd kullanılması ile tüm sistemleri saati tutarlı hale geliyor. ntpd ve ntpdate komutlarını güzelce anlatan bir yazı için burayı okuyabilirsiniz.

ntpdate komutu ile bilgisayarın açılışında saati ayarlamak için aşağıdaki komut kullanılabilir.

/usr/bin/ntpdate -b -s -u pool.ntp.org

GPS ve UTM
UTM (Universal Transverse Mercator) harita üzerinde iki boyutlu pozisyon bulma sistemi. Bir çok NATO ülkesi tarafından kullanılan Military Grid Reference System UTM'nin biraz daha geliştirilmiş hali.
Buradan aldığım bir şekilde koordinat dönüştürücü başlığı altında görülebiliyor.


1 yorum:

  1. enlem boylam ı karıştırmışsın. anlamadığın kısımların sebebi bu.

    YanıtlaSil