Teknoloji

Coğrafi Bilgi Sistemleri ve CBS’de Mekansal Veri – Giriş

Öncelikle, Coğrafi Bilgi Sistemleri(CBS)/ Geographic Information Systems (GIS) ile ilgili bir yazı kaleme almam gündeme geldiğinde böyle geniş ve her aşaması ayrı bir disiplin ile ilişkili olan bir konuyu nasıl ele almalıyım diye düşününce, konu ile ilgili bazı kavramları açıklamanın ve CBS üzerine çalışmaya başladığımda anlamakta zorlandığım detaylara değinmemin daha doğru olacağını düşündüm.

İlk olarak, CBS nedir sorusu üzerinde duralım. Bu sorunun kesin bir tanımı olmaması, bu kavramın oturmasını zorlaştırmakla birlikte, farklı disiplinlerden kullanıcıların farklı tanımlar yapıyor olması kavramın anlaşılmasını güçleştirmektedir. Gelişmelere açık bir alan olması da yapılan tanımları değiştirip, geliştirmektedir. Genel anlamda CBS, konuma dayalı işlemlerle elde edilen grafik ve grafik olmayan verilerin toplanması, saklanması, analizi ve kullanıcıya sunulması işlevlerini bir bütünlük içerisinde gerçekleştiren bir bilgi sistemidir. Peki bilgi sistemi kavramı neydi? Bilginin toplanıp işlenmesi ve kullanılır hale dönüştürülmesini sağlayan sistem.[1] Bu tanım, ufak bir araştırmayla rahatlıkla ulaşılabilecek herkesin bildiği gayet anlaşılır(?) bir tanım. Bu durumda; günümüzde sıkça karşılaştığımız bir uygulama olan bir bilgi sisteminin adının bir idari birime ya da bir kuruma verilmesi anlamlı mıdır?  Bu konuyu siz değerli okurların değerlendirmesine sunuyor ve eskilerin adıyla yaşasın demesinin altında, anlamlı isimler vermeye teşvik olduğunu da hatırlamanızı diliyorum.

CBS’nin temel ve en önemli adımlarından biri veri toplama aşamasıdır. Bu, CBS yapısının oluşturulmasının %80’ini ve maliyetin %65’ini oluşturur[1].

Bir coğrafi bölgenin sınırlarını gösteren mekansal (spatial) veri, konum bilgisini içerirken o nesnenin konum verisine ait tanımsal bilgiye de öznitelik verisi adı verilir. Verilerin birbirine bağlanma bilgisini içeren bilgi ise topolojik veridir.

Mekansal (spatial) verilerin hangi yollarla elde edildiği bilgisine kısa bir araştırmayla rahatlıkla ulaşılabilir. Burada önemli bir nokta da verinin güvenilirliği ve kalitesidir. Mesela GPS uydularından sivil amaçlı kullanıma açılan C/A kod(Coarse Acquisition Code) aracılığı ile elde edilen koordinat bilgileri Mayıs 2000’e kadar “Selective Availability” adı verilen özellik ile hassasiyeti ~100m olacak şekilde düzenlenmiş, ancak 2 Mayıs 2000’de bu özellik kaldırılarak ~15 m hassasiyetle GPS üzerinden konum verisi alınabilmiştir.

CBS’nin en temel verisi ise jeodezik yöntemlerle üretilen haritalardır. Jeodezi; Yeryuvarının şekil, boyut ve gravite alanı ile zamana bağlı değişimlerinin 3 boyutlu bir koordinat sisteminde tanımlanmasını amaçlayan bir bilim dalıdır[5]. Çok farklı bir disiplin çalışması olduğu için özellikle verinin gösterimi kısmında çalışan bizlerin de kafasını karıştıran bu alan olmaktadır. Buradaki sorunu Coğrafi Koordinat Sistemi ve Projeksiyon Koordinat Sistemlerinin karıştırılıyor ya da kafa karıştırıyor olması şeklinde ifade edebiliriz. Bilinmesi gereken en önemli özellik herhangi bir konum verisi elde edilirken yatay ve düşey konumunu tanımlamak için başlangıç alınan bir referans yüzeyi gerekliliğidir. Yer’in şeklini ve boyutunu tanımlayan bu yüzeye Datum adı verilmektedir. Datum, bir koordinat sistemini oluşturan parametrelerden biridir ve Datum’un parametrelerinden biri de referans elipsoididir. (Örneğin ED50 Datumu(European Datum) için elipsoid “international” adını almaktadır). Bir referans elipsoid’i ülkeler için söylersek, her ülkenin üzerinde bulunduğu geoid yüzeyi en iyi tanımlayan elipsoid olmalıdır. Bu nedenle her ülkenin referans yüzeyi ve dolayısıyla elipsoidi farklıdır. Yerküre üzerinde aynı noktayı gösteren Enlem ve Boylam değerleri seçilen datum’a göre bu nedenle farklı değerler alacaktır. Coğrafi bir Koordinat Enlem, Boylam ve Yükseklik değerleri ile tanımlanmaktadır. 3 boyuttan 2 boyutlu harita düzlemine geçiş için ise Projeksiyon Koordinat Sistemleri kullanılacaktır. Aşağıdaki şekilde kıtalar ve seçilen en uygun elipsoidler görülebilmektedir.

Datum farklılıkları nedeniyle, tüm ülkeler için kullanılabilecek global bir referans yüzeyi arayışı başlamış ve zaten halihazırda mevcut olan GR80 (Geodetic Reference System 1980) elipsoidinde çok minik düzeltmeler yapılarak elde edilen bir elipsoid kullanmakta olan WGS84 (World Geodetic System) sistemi  (Datum adı WGS84 ve elipsoidinin adı da WGS84’dür) yeni hesap yüzeyi olarak kullanılmaya başlanmıştır.  GPS tekniği ile elde edilen koordinatlar WGS84 sistemindedir. Türkiye’deki yoğun tektonik aktiviteler sonucu oluşan deformasyonlar ve benzeri nedenlerle, kullanılagelmiş olan ED-50 yersel datumu geçen zaman içerisinde pratik ihtiyaçları karşılayamaz duruma gelmiştir. Yeni bir jeodezik ağa gereksinim duyulmuş ve bu ağın GPS teknolojisine dayalı olması öngörülmüştür.[6]

Yıllardır yapılan özverili çalışmalarla Türkiye jeodezik altyapısı ED50 datumu üzerine oturtulmuş olduğu için çalışmalarımız sırasında genellikle Datum’u ED50 olan UTM(Universal Transverse Mercator) koordinatları ile karşılaşmamız ihtimali yüksektir. Mekansal veriyi destekleyen Oracle, IBM, ve SQL Server gibi ticari veritabanı yazılımları yanında, PostgreSQL gibi açık kaynak kodlu yazılımlar tek bir SQL komutu ile Koordinat sistemleri arası dönüşümü yapmanızı sağlamaktadır. Bu özellik ile Coğrafi Koordinatı Projeksiyon Koordinat Sistemine kolayca dönüştürebilir ya da tam tersi işlemi yapabilirsiniz.

Oracle örneğinde; Oracle veritabanı spatial özelliği ile yüklendiğinde MDSYS şeması yaratılmaktadır. Bu şema altında bulunan SDO_CS_SRS isimli tablo içinde tanımlı koordinat sistemleri bilgileri kullanılarak dönüşüm işlemleri yapılabilmektedir. Aşağıda Oracle’da kullanılan koordinat dönüşüm fonksiyonu görülmektedir.

SDO_CS.TRANSFORM(//Dönüşüm için kullanılan fonksiyon.
geom IN MDSYS.SDO_GEOMETRY,
to_srid IN NUMBER
) RETURN MDSYS.SDO_GEOMETRY; 

Bu fonksiyonda, geometri (geom) ve geometrinin dönüşeceği unique bir integer değer olan SRID numarası parametrelerdir. Dönüşmüş geometri ise çıktıdır.[7]

Bir Örnek:

Select MDSYS.SDO_CS.TRANSFORM (MDSYS.SDO_GEOMETRY(2001, 82358,MDSYS.SDO_POINT_TYPE(255871, 4107073,null),null,null),  4326) as KOORDINATLAR from ARAZI ;

Bu Örnekte;

2001: geometrinin point olduğunu belirtmektedir.

82358: MDSYS Şeması altında, SDO_CS_SRS tablosunda bulunan uygun koordinat SRID (burada UTM Zone 37 (Datumu:ED 50) ) numarasıdır.

4326: MDSYS Şeması altında, SDO_CS_SRS tablosunda bulunan WGS84 Koordinat Sisteminin SRID’sidir. Yani, geometrinin dönüşeceği koordinat sistemidir.

Projeksiyon koordinat sistemi; fiziksel yeryüzünün geometrik bir yüzey üzerine izdüşürülmesidir.[1] Projeksiyon Koordinat Sistemi, 2 boyutlu düzlem yüzeyidir. Google Maps, Microsoft Virtual Earth, Yahoo Maps, ve diğer birçok ticari API sağlayıcılar Spherical Mercator Projeksiyonunu  kullanmaktadır. Burada yerküre bir küre gibi düşünülerek hesaplamalar yapılmış ve 2 boyuta izdüşürülmüştür. Daha açık bir örnekle söylemek gerekirse Google Earth WGS84 datumunu  (EPSG 4326) kullanan bir Coğrafi Koordinat Sisteminde çalışırken, Google maps WGS84 datumunu (EPSG 3857) kullanan Projeksiyon Koordinat Sistemine bağlı olarak çalışmaktadır.

Koordinatları bir web sayfası üzerinde gösterirken, Coğrafi koordinatları Projeksiyon koordinat sistemine dönüştürmek için bir dönüşüm işlemi yapılmalıdır. Bu reprojection işlemi server-side ya da client-side yapılabilmektedir. Geoserver ya da Mapserver gibi platformlar sayesinde mekansal veriyi server-side olarak on-the-fly göstermeniz mümkündür. Unutulmamalıdır ki gösterim esnasında yapılan bu dönüşümde orijinal koordinat verisi korunur. Web sayfasında temel harita altlığı olarak eklediğimiz harita projeksiyonu, üzerine eklenen katmanların farklı koordinat sisteminde tanımlanmış olsalar da bu temel altlığın tanımlı olduğu projeksiyonda gösterilmesini gerektirmektedir. Aşağıda Openlayers kütüphanesi kullanılarak yapılan bir client-site reprojection işlemi görülmektedir. [4]

var map;
function init() {
  map = new OpenLayers.Map('map', {
       projection: 'EPSG:3857', //altlık haritamız Mercator projeksiyonunda
       layers: [
           new OpenLayers.Layer.Google(
               "Google Physical",
               {type: google.maps.MapTypeId.TERRAIN}
           ),
           new OpenLayers.Layer.Google(
               "Google Streets", // the default
               {numZoomLevels: 20}
           ),
           new OpenLayers.Layer.Google(
               "Google Hybrid",
               {type: google.maps.MapTypeId.HYBRID, numZoomLevels: 20}
           ),
           new OpenLayers.Layer.Google(
               "Google Satellite",
               {type: google.maps.MapTypeId.SATELLITE, numZoomLevels: 22}
           )
       ],
       center: new OpenLayers.LonLat(10.2, 48.9) //Burada WGS84 koordinatlarını görmekteyiz
           .transform('EPSG:4326', 'EPSG:3857'),// altlık haritamız Mercator projeksiyonunda olduğu için bu koordinatları dönüştürerek kullanmamız gerekmektedir.
       zoom: 5
    });
    map.addControl(new OpenLayers.Control.LayerSwitcher());
       // add behavior to html
    var animate = document.getElementById("animate");
    animate.onclick = function() {
       for (var i=map.layers.length-1; i>=0; --i) {
           map.layers[i].animationEnabled = this.checked;
       }
      };
}

Openlayers API ile ilgili çeşitli örneklere [4] no’lu referansda verilen link ile ulaşabilirsiniz.

Tartışmalı bazı konuları bu metnin dışında bırakarak bilgi vermeye çalıştım. Detaylı bilgi için verilen kaynaklar incelenebilir. Çalışmalarınızda kolaylıklar diler, saygılarımı sunarım.

Kaynaklar :

1. http://www.koeri.boun.edu.tr/jeodezi/dosyalar/files/CBS_BUKRDAE_GED.pdf

2. http://docs.openlayers.org/library/spherical_mercator.html

3. http://www.gis.itu.edu.tr/wp-content/uploads/2012/07/gis_tubitak.pdf

4. http://openlayers.org/dev/examples/

5. http://www.koeri.boun.edu.tr/jeodezi/dosyalar/files/JEODEZI_BUKRDAE_GED.pdf

6. http://www.hgk.msb.gov.tr/dergi/makaleler/146_2.pdf

7. http://docs.oracle.com/cd/B28359_01/appdev.111/b28400.pdf

8. http://wiki.openstreetmap.org/wiki/OpenLayers_Simple_Example