Feature Loader Kullanımı

This page also available in English

Konumsal veritabanları ile çalışanlar için ellerindeki verilerin (sahadan gelen, analizlerden üretilen vs.) aktarımı işlemi bazı durumlarda oldukça zahmetli olmaktadır. Daha çok verinin yapısı (öznitelikler, koordinat sistemi vs.) ile veritabanındaki tablonun yapısı arasındaki farklar nedeniyle çeşitli dönüşümlerin yapılması gerekli olmaktadır. Bu konu hakkında daha önceden yazmış olduğum GeoKettle: Açık Kaynaklı Konumsal ETL Aracı yazımda kısmen bahsetmiştim.

Yukarıda bahsettiğim gibi elimdeki verileri Oracle Spatial ‘e aktarmam gereken bir işle karşılaştım. QGIS kullanarak bu işlemi gerçekleştirmeyi Copy Features (CTRL + C) ve Paste Features (CTRL + V) ile denedim fakat başarılı olamadım. Çünkü öznitelik yapıları birbirleri ile uyuşmuyordu. Bunun üzerine MapInfo ‘nun Easy Loader aracı ile bu işlemi gerçekleştirdim. QGIS ‘in böyle bir aracı olmamasını görünce hemen kolları sıvadım. Feature Loader adlı eklentiyi geliştirdim. Bu eklenti ile QGIS ortamındaki bir katmandaki verileri diğer bir katmana kolaylıkla aktarabiliyorsunuz. En önemli özellikleri arasında uygun öznitelikleri kendi tespit ediyor olması ve QGIS ‘in desteklediği tüm formatlar (Oracle, Postgis, Spatialite, SHP, TAB etc…) ile çalışabilmedir.

Örnek Uygulama

Bu uygulamada sahadan gelen verilerin Oracle Spatial veritabanına Feature Loader eklentisini kullanarak aktarımını gerçekleştireceğim. Şunu hemen belirteyim; illa ki bir veritabanı ile çalışıyor olmanız gerekli değil dosya tabanlı herhangi bir format (SHP, TAB, GDB vs.) ile de çalışmanı mümkün.

Öncelikle QGIS ‘te Oracle veritabanına bağlanmak için gerekli parametlerin girilerek bağlantının olduğunu varsayıyor. Ardından veritabanından yükleme yapacağımız tablomuzu QGIS ‘e katman olrak ekliyoruz. Ardından sahadan gelen verileri de QGIS ortamına katman olarak ekliyoruz. Ardından Feature Loader Eklentisini açarak Hedef (Target) kısmına veritabanından gelen katmanı gösteriyoruz. Kaynak (Source) kısmında da sahadan toplanan verilerin bulunduğu katmanı gösteriyoruz. Aşağıda örnek ekran görüntüsü verilmiştir.

Gerekli seçimler yapıldıktan sonra Start düğmesine tıklayarak işlem başlatılır. Kaynak (Source) katmanındaki coğrafi nesneler geometrileri ve öznitelikleri ile Hedef (Target) katmanına aktarılır.  İşlem tamamlandıktan sonra özet bilgileri gösteren bir bilgi penceresi karşınıza çıkar. Hepsi bu kadar. Verilerinizin aktarımı tamamlandı.

 

Özniteliklerin Aktarımı

Feature Loader ‘ın en önemli özelliği Hedef (Target) ve Kaynak (Source) katmanların arasındaki uyuşan öznitelikleri tespit ederek sadece eşleşenlerin işleme dahil edilmesini sağlamasıdır. Aşağıdaki ekran görüntüsünde örnek hedef ve kaynak katmanlarının öznitelikleri gösterilmektedir. Aralarında uyuşanlar ise altında verilmiştir.

Kaynak Katmana ait öznitelikler

 

 

Eşleşen öznitelikler

Önemli Notlar

  1. Her iki katmanın (Target-Source) aynı geometride olmalıdır.
  2. Her iki katman (Target-Source) aynı koordinat sisteminde olmalıdır. Farklı koordinat sistemleri için bir sınırlama koymadım. İstemeniz halinde farklı koordinat sistemlerindeki katmanların verilerini aktarım yapabilirsiniz fakat bu hatalı sonuçlara sebep verebilir.
  3. Öznitelikler aktarılırken aynı isimde olanlar ancak aktarılır. Örneğin hedef (Target) katmandaki öznitelikler ID, AD,SEVIYE olsun. Kaynak (Source) katmanındaki öznitelikler ise ID, AD, CINS olsun. Birbirleri ile ismen uyusanlar ID ve AD olduğu icin ancak bu iki öznitelik hedef katmana aktarılır.
  4. Veritabanları ile çalışırken PRIMARY KEY olan sütunlara veri aktarılmaz. Örneğin PKUID veya ID sütunu eğer PRIMARY KEY niteliğinde ise bu sütunların Kaynak (Target) katmanda ismen uyuşması halinde bile bu alanlara aktarım yapılmaz. Aksi halde veritabanınız hata mesajı dönecektir.
  5. Veritabanları ile çalışırken UNIQUE veya NOT NULL özellikte sütunlara sahip bir katmana veri aktarırken bu kuralları ihlal edecek öznitelikler aktarmayı denemeyin. Örneğin Hedef (Target) katmanınızda CINS sütununuz var ve NOT NULL özellikte olsun. Bu katmana aktaracağınız veride de CINS sütunu olmasın. Dolayısıyla yeni eklenecek verilerde CINS sütunu boş kalacaktır ve işlem gerçekleşmeyecektir.
  6. Hiç bir özniteliğin eşleşmemesi halinde sadece geometrilerin aktarımı yapılır
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s