R’da oceanmap Paketi Kullanarak Deniz/Göl/Okyanus Haritası Çizme

2021-09-10

Günümüz dünyasında veri analizi artık bir disiplinlerarası ihtiyaç olarak kendini hissettiyor. Çeşitli adımlardan meydana gelen bu sürecin en önemli noktalarından biri de elbette veri görselleştirme. Özellikle coğrafi veri analizleri ile ilgilenen uzmanlar için haritalama oldukça önemli bir ihtiyaç. Bu yazıda sizlere R’da oceanmap paketi kullanılarak dünya üzerindeki herhangi bir deniz ya da okyanus gibi su kütlesinin grafiğinin nasıl çizdirilebileceğini kısaca anlatmaya çalışacağım. Bu paket özellikle coğrafik ve oşinografik verilerin görselleştirilmesinde büyük avantaj sağlıyor.

Bauer tarafından geliştirilen bu paketin detaylı tutorial dosyasına bu adresten ulaşabilirsiniz.

oceanmap paketi 4 temel fonksiyona dayanıyor. Bunlar

  • plotmap

  • set.colorbar

  • figure

  • v

Biz bu fonksiyonlardan plotmap’e odaklanacağız çünkü amacımız sadece basit bir haritalandırma işlemi. Ancak özellikle deniz sıcaklığı gibi konularla alakalı görselleştirme yapmak isteyenler v fonksiyonuna göz atmalı. Öte yandan figure komutu sadece elde edilen haritanın kaydedimesi ya da boyutunun ayarlanması ile ilgili bir işleve sahip ancak R Studio’daki Plots ekranında da bununla alakalı işlemleri gerçekleştirmek mümkün.

plotmap komutu

plotmap fonksiyonu ile coğrafik ya da oşinografik verileri fazla bir uğraş harcamadan kolaylıkla görselleştirebiliyoruz. Bu komut yardımı ile 5 farklı yol kullanarak harita çizdirebiliriz.

  • Koordinatları girerek

  • Su kütlelerine özel anahtar kelimeler kullanarak; örneğin Akdeniz için "med4

  • Raster nesneleri kullanarak

  • Kapsam nesneleri kullanarak

  • Mevcut grafiğin üzerine ek bir katman olarak

Bu yazıda ben koordinatlar girilerek harita çiziminden ve o harita üzerinde yapılacak bazı basit manipülasyonlardan bahsedeceğim. Ancak bonus olarak ikinci sıradaki anahtar kelimeye de örnek vereceğim.

Diyelim ki amacımız Marmara Denizi’ni çizdirmek olsun. Marmara Denizi için ihtiyacımız olan koordinat değerleri 25-30 Kuzey Boylamı, 40-42 Doğu Enlemi. Şimdi paketimizi çağırıp koordinatlarımızı belirleyelim.

library(oceanmap)
## Warning: package 'oceanmap' was built under R version 3.6.3
## Warning: package 'maps' was built under R version 3.6.3
## Warning: package 'mapdata' was built under R version 3.6.3
## Warning: package 'raster' was built under R version 3.6.3
## Warning: package 'sp' was built under R version 3.6.3
## Warning: package 'extrafont' was built under R version 3.6.2
lon <- c (25,30)
lat <- c (40, 42)

Not: Batı boylam ve Güney enlem değerleri girerken - işaretini kullanacağız.

Koordinatlarımızı belirledikten sonra plotmap komutuyla haritamızı çizdirebiliriz.

plotmap ( lon=lon , lat=lat)

İşte Marmara Denizi!

Şimdi gelin üzerinde biraz oynama yapalım. Orta seviye bir R kullancısıysanız eğer grafiğin temasından bu haritaların base R plot teması ile oluşturulduğunu, o yüzden manipülasyonlar için base R komutlarını kullanmamız gerektiğini tahmin edebilirsiniz ki BİNGO! Doğru tahmin.

İlk olarak haritamıza bir başlık ekleyelim. Bunun için plot komutundan aşina olduğumuz main argümanını kullanacağız.

plotmap (lon=lon , lat=lat , main ="Marmara Denizi")

Mesela Marmara Denizi’nde bir noktada bir doğal olay gerçekleşti ve onu bir nokta ile göstermek istiyoruz. Bunun için plotmap komutumuzun hemen sonrasında points komutunu kullanarak istediğimiz bir bölgeyi nokta işareti ile niteleyebiliriz.

plotmap ( lon=lon , lat=lat,main="Marmara Denizi")
points(x = 28.5,y=40.6,col="red") #Belirli bir bölgeye nokta koyalım

#Biz burada 28.5 Doğu, 40.6 Kuzey noktasını niteledik

Eğer bir alanı belirtmek istersek plotmapten hemen sonra rect komutunu kullanmamız yeterli.

plotmap (lon=lon , lat=lat,main="Marmara Denizi")
rect(xleft = 28, ybottom = 40.632, xright =28.7, ytop=40.7,col="red") 

Eğer haritamızdaki su kütlesi bölümünü renklendirmek istersek plotmap komutu içindeki col.bg argümanını kullanabiliriz.

plotmap ( lon=lon , lat=lat , main ="Marmara Denizi",col.bg="blue")

Haritamızdaki eksen isimleri ve değerleri kaldırmak istersek eğer

plotmap ( lon=lon , lat=lat , main ="Marmara Denizi",col.bg="blue",axeslabels =F) #axeslabels =F : lattitude ve longitude adlarını siliyor. 

plotmap ( lon=lon , lat=lat , main ="Marmara Denizi",col.bg="blue",axeslabels =F,ticklabels =  F)

#ticklabels: eksen değerlerini siliyor 

Arkadaki grid çizgilerini silmek istersek eğer;

plotmap ( lon=lon , lat=lat , main ="Marmara Denizi",col.bg="blue",axeslabels =F,ticklabels =  F,grid = F)

#grid = F arkadaki çizgileri kaldırıyor 

Son olarak haritamız üzerinde bir bölgeye yazı eklemek istersek, text komutu ve ilgili argümanları işimize yarayacaktır.

plotmap ( lon=lon , lat=lat , main =" ",col.bg="blue",ticklabels =  F,axeslabels =F,grid=F)
text(x = 28.3, y=40.8, "Marmara Denizi",font =2,col ="white",cex=0.75)

#cex: font büyüklüğü
#font: font kalınlığı
#col: kelimenin rengi

Koordinatlar kullanarak plotmap’in kullanımından sonra şimdi paket içinde yer alan anahtar kelimeler yardımıyla haritalamayı gösterelim. Örneğin Akdeniz’i çizdirmek istiyoruz.

plotmap('med4',main = "Akdeniz")

Ya da Cebelitarık Boğazı’nı çizdirmek istiyoruz.

plotmap("gib",main = "Cebelitarık Boğazı")

Aşağıdaki tabloda yer alan anahtar kelimelerle karşılık gelen bölgelerin haritalandırmasını yapabilirsiniz. Umarım faydalı olacak bir öğretici olmuştur.

$$

med4 -> Akdeniz
medw4 -> Batı Akdeniz
lion -> Aslan Golfü
survey -> hava araştırması
medm9 -> Akdeniz
gib -> Cebelitarık Boğazı
bal -> balear adaları
CANARY -> Kanarya
med-nw1 -> KB Akdeniz
can4 -> Kanarya
med025 -> Akdeniz
mednw4 -> KB Akdeniz
med9 -> Akdeniz
golts -> aslanların ifremer-osis körfezi survey2 -> havadan orkinos araştırmaları
tp -> Tropikal Pasifik
survey3 -> hava araştırması
wio -> batı hint okyanusu
WIO -> batı Hint Okyanusu
WAO -> Batı Atlantik Okyanusu
WCPO -> Batı Pasifik
NEAO -> kuzeydoğu atlantik
NEAO2 -> Kuzeydoğu Atlantik Okyanusu
NEAO3 -> kuzeydoğu atlantik
WIO1 -> Batı Hint
alion -> Aslanlar Körfezi
WIO2 -> Batı Hint
hic -> Hawaii Adası zinciri
mhi -> Ana Hawaii adaları

$$

Soru ve görüşleriniz için :