GeoServer Eklentileri – Veri Kaynakları

GeoServer açık kaynaklı bir proje olması itibariyle çeşitli eklentiler ile “genişletilebilir” yapıdadır. Yani standart kurulumun ardından ek fonksiyonlar ekleyebilir, üzerinde çalıştığımız projenin ihtiyaçlarına bağlı olarak özelleştirebiliriz. Fakat yapılandırma işlemleri kullanıcılar açısından bazen sıkıntılı bir süreç halini alabilmektedir.  Bu nedenle “GeoServer Eklentileri” başlıklı bir yazı dizisi yayınlamayı planlıyorum. İlk olarak Veri Kaynakları (data sources) konusundan başlayacağım.

Şöyle bir senaryo zihnimizde canlandıralım; çalıştığınız kurumda coğrafi veriler Oracle Spatial üzerinde bulunmakta ve çeşitli birimler bu veri ile çalışmaktadır. Güvenlik nedeniyle birimlerin doğrudan veritabanına erişmesi yerine GeoServer üzerinden WFS-T servisini kullanarak işlemlerini gerçekleştirmesini istiyorsunuz. Böylece farklı birimlerin veriyi vektörel olarak görüntülemesi ve düzenleyebilmesi sağlanacaktır. Ama standart bir GeoServer kurulumunda Oracle desteği bulunmamaktadır. Oracle eklentisi sayesinde bu mümkün hale geliyor. Bu yazıda GeoServer veri kaynakları eklentilerinin kurulumuna ve dikkat edilmesi gereken noktalara değineceğim.

Eklentilerin kurulmasının ardından GeoServer tarafından desteklenen veri formatları ile standart bir kurulum sonrası arasındaki desteklenen formatlar arasındaki farkı hazırladığım ekran görüntüsü çok güzel bir şekilde açıklamaktadır.

OGR/GDAL Kütüphanesinin Kurulumu

GeoServer eklentilerinin düzgün çalışabilmesi için öncelikle sistemimizde bu eklentilerin ihtiyaç duyduğu kütüphanelerin (dependency)  yüklenmesi gerekmektedir. Bunların başında da OGR/GDAL kütüphanesi gelmektedir. GDAL/OGR Kütüphanesinin Windows Ortamında Derlenmesi başlıklı yazımda kurulumun nasıl yapılacağı hakkında bilgi edinebilirsiniz. Bu yazıda hazır derlenmiş kurulumu tercih ettim (release-1600-gdal-1-10-mapserver-6-4).

Sistemimize OGR/GDAL kütüphanesinin kurduktan sonra bunu Sistem değişkenleri içerisine kaydetmemiz gerekiyor. Bunun için Çalıştırı açıp control.exe sysdm.cpl,System,3 komutunu girerek karşınıza gelen pencereden Ortam Değişkenleri butonuna tıklayın. Buradan Sistem değişkenleri bölümünden Path adlı değişkeni açın. Burada Değişken değeri kısmının en sonuna gelerek ;klasör\yolu şeklinde değer girin. Örneğin GDAL/OGR ‘nin kurulu olduğu klasör C:\Program Files\GDAL şeklinde olsun bu durumda

; C:\Program Files\GDAL

Şeklinde kaydı girip kaydederek çıkın. Benzer bir işlemi Mapnik Kurulum ve Tile Oluşturulması adlı yazımın Kurulum kısmındaki dört adımda anlatmıştım. Buradan da faydalanabilirsiniz.

Spatialite

Spatialite veritabanı hakkında daha detaylı yazıları ilerleyen zamanlarda yayınlamayı düşünüyorum. Şimdilik GeoServer bağlantısı yapılmasına değineceğim. Öncelikle http://ares.boundlessgeo.com/geoserver/master/community-latest/ adresinden geoserver-XX-NAPSHOT-spatialite-plugin.zip dosyamızı indiriyoruz. Ardından ZIP içerindeki .JAR dosyalarını [GeoServer kurulumu]\WEB-INF\lib  klasörüne çıkarıyoruz.  Sonrasında sunucuyu yeniden başlatarak eklentiyi etkinleştirmemiz gerekiyor. Bu işlem sonrasında GeoServer ‘a giriş yaparak Stores (sol taraftaki Data başlığı altında) bölümünde gelerek Add new store linkine tıklıyoruz.

Açılan sayfada Spatialite (JNDI) özelliğinin eklendiğini göreceksiniz. Fakat bu bizim için yeterli değil. Çünkü JNDI (Java Naming and Directory Interface) zahmetli bir yöntem (bana göre) dolayısıyla bu  şekilde bağlantı kurmadan, direk bağlantı yöntemini kullanacağız. Şunu da belirtmeden geçmeyeyim; Veri kaynakları (Data Source) eklentileri kurduktan sonra GeoServer ilk önce sistemde ihtiyaç duyulan kütüphanelere bakar. Bunları bulursa direkt olarak bağlantı sağlar eğer bulamazsa JNDI olarak bağlantı sağlar. Dolayısıyla bizim örneğimizde sistemde Spatialite kütüphanesini bulamadığı için yalnızca JNDI bağlantı şekli etkinleşmiştir.

GeoServer şuan için Spatialite 2.3.1 versiyonunu destekliyor. Spatialite kütüphanesini sisteme kurmak için aşağıdaki dosyaları indirin.

https://www.gaia-gis.it/spatialite-2.3.1/libspatialite-win-x86-2.3.1.zip

https://www.gaia-gis.it/spatialite-2.3.1/proj-win-x86-4.6.1.zip

https://www.gaia-gis.it/spatialite-2.3.1/geos-win-x86-3.1.1.zip

https://www.gaia-gis.it/spatialite-2.3.1/libiconv-win-x86-1.9.2.zip

dosyalar indikten sonra her biri içerisindeki \bin klasöründe bulunan .DLL dosyalarını daha önceden sisteme tanıttığımız OGR\GDAL klasörü içerisine kopyalayın.

İsterseniz System32 içerisine de kopyalayabilirsiniz değişen bir şey olmaz. Ardında sunucuya reset atın. Sunucu açılınca GeoServer ‘a giriş yaparak Stores kısmından desteklenen veri kaynaklarına baktığınızda artık özelliğinin eklendiğini göreceksiniz. Artık GeoServer ile Spatialite veritabanı bağlantısı sağlayabiliriz. Diğer eklentiler için benzer işlemleri gerçekleştireceğiz. Bu açıdan Spatialite güzel bir başlangıç oldu diyebilirim.

 

Oracle

Oracle eklentisi ek kütüphanelere ihtiyaç duymamaktadır. Dolatısıyla Oracle bağlantısını sağlanmak için sadece eklenti dosyalarının yüklenmesi yeterlidir. Eklenti http://geoserver.org/display/GEOS/Stable adresindenki Extensions bölümünden indirilir. İndirilen dosya içeriği ZIP arşivinden çıkartılarak .JAR dosyaları [GeoServer kurulumu]\WEB-INF\lib klasörüne kopyalanarak sunucu yeniden başlatılır. İşlemin ardında Stores > Add new store kısmında Oracle desteği eklenecektir

MySQL

MySQL eklentisi de aynen Oracle ‘da olduğu gibi diğer kütüphanelere ihtiyaç duymamaktadır. Eklentiyi http://geoserver.org/display/GEOS/Stable adresindenki Extensions bölümünden indirdikten sonra ZIP dosyasını açarak içerisindeki .JAR dosyalarını [GeoServer kurulumu]\WEB-INF\lib klasörüne çıkartıp sunucuyu yeniden başlatın. Bu işlemlerin ardından MySQL desteği eklenmiş olacaktır.

SQL Server

SQL Server eklentisi önceki aynen Spatialite eklentisindeki gibi harici kütüphanelere ihtiyaç duymaktadır. O yüzden yalnızca eklentiyi kurduğunuzda JNDI bağlantısı aktif olur. Direk bağlantı sağlamak için ek kütüphaneleri kuracağız. Öncelikle http://www.microsoft.com/en-us/download/default.aspx adresine girerek “sql jdbc” (tırnak olmadan) terimini aratarak Microsoft SQL Server JDBC sürücüsünü indirin. Bu yazı 2.0 versiyonu kullanılmıştır. Ardından inen dosyayı herhangi bir yere kurun. Kurulumu yaptığınız klasöre girerek içindeki sqljdbc4.jar ve sqljdbc.jar dosyalarını   [GeoServer kurulumu]\WEB-INF\lib klasörüne kopyalayın. Buraya kadar SQL Server eklentisinin ihtiyacı olan kütüphaneleri kurmuş olduk. Şimdi sıra eklentiyi kurmaya geldi. http://geoserver.org/display/GEOS/Stable adresindenki Extensions bölümünden SQL Server eklentisini indirin ve ZIP içerindeki .JAR uzantılı dosyaları [GeoServer kurulumu]\WEB-INF\lib klasörüne kopyalayın. Bu işlemlerin ardından sunucuyu yeniden başlatarak değişikliklerin etkin olmasını sağlayın. GeoServer a giriş yaptıktan sonra SQL Server eklentisinin hem doğrudan hem de JNDI olarak yüklendiğini göreceksiniz.

 

GDAL

Şuana kadar kurulumu gerçekleştirilen eklentiler vektör verilere yönelikti. GDAL eklentisi ise raster verilerin servis edilmesine yönelik bir eklenti olarak karşımıza çıkıyor. Standart GeoServer kurulumu GeoTIFF gibi ArcGrid gibi sınırlı sayıda veri kaynağını desteklemektedir. Fakat günümüzde 100 ‘e yakın (muhtemelen daha fazladır) raster veri formatı mevcut bulunmaktadır. Dolayısıyla eğer veriniz diğer formatlarda ise mecburen veriyi GeoServer ‘in anlayabileceği bu sınırlı sayıdaki formata dönüştürmeniz gerekmektedir. Bu aşamada GeoServer geliştiricileri GDAL kütüphanesinin zenginliğine kayıtsız kalmaları mümkün değildir. Dolayısıyla GeoServer GDAL eklentisini geliştirerek GDAL ‘ın okuyabildiği pek çok raster formata erişimi de sağlamışlardır.

GDAL eklentisini OGR/GDAL kütüphanesine ihtiyaç duymaktadır. Dolayısıyla öncelik bu kurulumun gerçeklemiş olması ve Sistem Değişkenlerine kaydedilmesi gerekmektedir. Bu işlemi zaten eklentilerin kurulumuna başlamadan gerçekleştirdik. Sadece gerekli eklentinin http://geoserver.org/display/GEOS/Stable adresindeki Extension bölümünden indirilmesi gereklidir. İnen ZIP arşivi içersindeki .JAR dosyalarını [GeoServer kurulumu]\WEB-INF\lib klasörüne kopyalayıp sunucuyu yeniden başlatın. Tüm bu işlemlerin ardından GeoServer veri kaynakları (Data Sources) Raster Data Sources kısmındaki desteklenen format sayısının arttığını göreceksiniz.

ECW ve MrSID Desteğinin Etkinleştirilmesi

ECW ve MrSID uydu görüntüleri ve hava fotoğraflarına yönelik olarak geliştirilen formatlar olup verileri sıkıştırması (wavelet) ile ön plana çıkmaktadır. Her iki formatta aslında GeoServer GDAL eklentisi ile kullanılmaktadır. Ayrı bir eklenti (.JAR) kurmayacağız. Şimdi soracaksınız zaten GDAL eklentisi ile çalışıyorsa neden bu eklentiyi kurunca bu formatlarda diğerleri gibi etkinleşmedi? Hemen cevap verelim: çünkü bu formatlar standart OGR/GDAL kurulumu ile gelmiyor. Dolayısıyla yapmamız gereken OGR/GDAL ‘ın bu formatları okuyabilmesini sağlamak. Bunun için http://gisinternals.com/sdk/ adresinden kullandığınız OGR/GDAL kütüphanesi versiyonuna göre ECW ve MrSID eklentilerini indirin. Eğer kendiniz derlediyseniz gerekli düzenlemeleri yaparak bu kütüphaneleri etkinleştirin. Ben bu yazıda hazır olarak sunulan kurulumu tercih ettim (yazının başında da belirtmiştim). Her iki format için kurulumları gerçekleştirdikten sonra komut satırını açıp

gdalinfo ––formats

Komutunu girerek kontrol etmenizi öneririm. Karşınıza gelen listede bu formatların bulunması gerekir. Kontrol işleminin ardından işimiz bitmedi. Bu formatlar eklenti olarak geldiği için GeoServer ‘in bunlara rahatça ulaşabilmesi için Sistem Değişkenleri içerisine kaydetmemiz gerekir. Yazının başında Path değişkeni için yapmıştık şimdide yeni bir değişken oluşturmamız gerekiyor. Bunun için Yeni butonuna tıklayın.

Karşımıza gelen pencerede Değişken adı kısmına GDAL_DRIVER_PATH girin, değişken değeri kısmına ise GDAL kurulum klasörü içerisindeki gdalplugins klasörünün yolunu girin. Ardından kaydedin ve değişikliklerin etkin olması için bilgisayarınız yeniden başlatın.

Tüm bu işlemlerin ardından her iki formatın da GeoServer tarafından desteklenen raster formatları arasında yer aldığını göreceksiniz.

NetCDF

NetCDF platformdan bağımsız olarak bilimsel verilerin paylaşımını hedefleyen veri formatıdır ve OGC tarafından da bir standart olarak kabul edilmiştir. Genellikle klimatoloji, meteroloji, hava tahmini gibi alanlarda sıklıkla kullanılmaktadır. Bu formatın etkinleştirilmesi için http://ares.boundlessgeo.com/geoserver/master/community-latest/ adresinden geoserver-XX-NAPSHOT-netcdf-plugin.zip dosyanısı indirin. İçerisindeki .JAR dosyalarını [GeoServer kurulumu]\WEB-INF\lib klasörüne kopyalayıp sunucuyu yeniden başlatın. Böylece NetCDF dosyalarını GeoServer ile kullanabileceksiniz.

Olası Hatalar

GeoServer veri kaynakları eklentileri kurulumlarında genellikle karşılaşılan hataların başında ihtiyaç duyulan ek kütüphanelerin (dependency) kurulmaması veya eksik kurulması gelmektedir. Bu nedenle eklenti kurulduğu halde desteklenen veri formatları listesinden ya gözükmez yada JNDI olarak karşımıza çıkar. Eğer eklentinin bağımlı olduğu kütüphane eksiksiz olarak kurulu olduğu halde böyle bir problem yaşanıyorsa bu durum Sistem Değişkenlerine gerekli kayıtların yapılmadığını işaret eder.

Eklentiler ile çalışırken karşılaşılan diğer bir hata ise olgunlaşmamış (master veya snapshot) eklentilerin kullanılmasından kaynaklanmaktadır. Bu yazı içerisinde kurulumunu gerçekleştirdiğimiz Spatialite ve NetCDF eklentileri henüz son versiyon halini almadığından çeşitli hatalar ile karşılaşabilirsiniz. Şunu da söylemeliyim ki ben şu ana kadar böyle bir hata ile karşılaşmadım.

 

Yayınlamış olduğum yazıları kaynak belirtmek kaydıyla paylaşabilirsiniz.

 

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