Çalışma kapsamında Türkiye’de son 1 yıl içerisinde gerçekleşen depremlerin keşifsel veri analizi yapılmıştır. Bu çalışmada rmdformats paketinde bulunan downcute teması kullanılarak R Markdown üzerinde html uzantılı raporlama yapılmıştır.Dolayısıyla bu formatta bir R Markdown raporu üretilmek isteniyorsa öncelikle rmdformats paketinin kurulumun yapılması gerektiği unutulmamalıdır.
Yüklenen Kütüphaneler
Aşağıdaki R kod bloğunun çalıştırılmasından sonra kütüphanelerin yüklenip yüklenmediğine dair aşağıdaki gibi mantıksal vektör sonuçları gelecektir. Eğer mantıksal vektör sonuçlarının hepsi TRUE ise kütüphanelerin tamamı yüklenmiştir. Kolaylık sağlaması açısından aşağıdaki kütüphanelerin yüklenmesini gösterir tabloyu da elde etmek ve daha kolay okumanız için aşağıdaki kod bloğu içerisinde kısa bir kod yazdım. Bu kod çalıştırıldığında aşağıdaki tabloda görüleceği üzere bütün kütüphaneler yüklenmiştir. Eğer ilgili kütüphane yüklenmemiş olursa Paket Kurulumu Gerekli ifadesi tablo satırında yazacaktır. Satırda yazan bu uyarı metnine göre paketi ya kurar yada yüklersiniz. Bir paketin kurulması ile yüklenmesinin aynı şey olmadığını burada ifade etmek gerekir konuyu yabancı olanlar için. Paket kurulumu ilk defa yapılan bir işlem iken, paketin yüklenmesi zaten kurulan bir paketin yüklenmesi yani çalışır duruma getirilmesidir. İlk defa bir paket kurulumu gerçekleştiriliyorsa install.packages() fonksiyonunu, zaten bir paket kurulumu gerçekleştirilmiş ise ilgili paketin veya kütüphanenin yüklenmesi veya okunması için library() veya require() fonksiyonlarını kullanıyoruz. Fonksiyonlardaki parantez () içerisine yüklenecek paket veya kütüphane adını yazıyoruz.
<-c("dplyr","tibble","tidyr","ggplot2","readr","RColorBrewer","crosstalk","leaflet","DT", "htmlwidgets","kableExtra","readr", "leaflet.extras", "sf", "plotly", "leafpop", "downloadthis", "tidygeocoder")
kütüphane<-sapply(kütüphane, require, character.only = TRUE, warn.conflicts = FALSE) yükle
## Warning: package 'leaflet.extras' was built under R version 4.0.5
## Warning: package 'leafpop' was built under R version 4.0.5
## Warning: package 'downloadthis' was built under R version 4.0.5
## Warning: package 'tidygeocoder' was built under R version 4.0.5
#Kütüphane yüklenme durumunu gösteren tablo
=suppressWarnings(yükle, classes = "warning")
tablo
=names(tablo)
isim
=as_tibble(tablo)
deger
data.frame(sıra=1:length(isim), kütüphane=isim, yuklenme_durumu=deger$value) %>% mutate(yuklenme_durumu=if_else(yuklenme_durumu==TRUE, "Yuklendi", "Paket Kurulumu Gerekli")) %>% kbl(caption = "Kütüphane Yüklenme Bilgisi") %>% kable_classic_2(full_width = F, html_font="arial")
sıra | kütüphane | yuklenme_durumu |
---|---|---|
1 | dplyr | Yuklendi |
2 | tibble | Yuklendi |
3 | tidyr | Yuklendi |
4 | ggplot2 | Yuklendi |
5 | readr | Yuklendi |
6 | RColorBrewer | Yuklendi |
7 | crosstalk | Yuklendi |
8 | leaflet | Yuklendi |
9 | DT | Yuklendi |
10 | htmlwidgets | Yuklendi |
11 | kableExtra | Yuklendi |
12 | readr | Yuklendi |
13 | leaflet.extras | Yuklendi |
14 | sf | Yuklendi |
15 | plotly | Yuklendi |
16 | leafpop | Yuklendi |
17 | downloadthis | Yuklendi |
18 | tidygeocoder | Yuklendi |
Verinin Okunması
<- read_table("deprem.txt")%>% rename(Enlem="Enlem(N)",Boylam="Boylam(E)", "Buyukluk"=ML, Derinlik="Derinlik(km)"
deprem )
##
## -- Column specification --------------------------------------------------------
## cols(
## Tarih = col_character(),
## Saat = col_time(format = ""),
## `Enlem(N)` = col_double(),
## `Boylam(E)` = col_double(),
## `Derinlik(km)` = col_double(),
## MD = col_character(),
## ML = col_double(),
## Mw = col_character(),
## Yer = col_character(),
## `<U+633C><U+3E37><U+663C><U+3E36>z<U+663C><U+3E63>m Niteli<U+663C><U+3E30>i` = col_character()
## )
<- deprem[, c(-6,-8,-10)]
deprem deprem
## # A tibble: 500 x 7
## Tarih Saat Enlem Boylam Derinlik Buyukluk Yer
## <chr> <time> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 2021.06.23 10:36:11 36.3 27.4 4.1 2.2 KOS ADASI (AKDENIZ)
## 2 2021.06.23 10:27:31 36.3 27.1 7 1.9 AKDENIZ
## 3 2021.06.23 10:13:38 39.9 26.0 15.2 1.9 EGE DENIZI
## 4 2021.06.23 09:53:11 36.3 27.0 7.3 1.7 AKDENIZ
## 5 2021.06.23 09:47:07 36.4 27.1 5 1.9 AKDENIZ
## 6 2021.06.23 09:45:47 36.4 27.1 10.8 1.6 ONIKI ADALAR (AKDENIZ)
## 7 2021.06.23 09:42:57 36.3 27.1 11 2 ONIKI ADALAR (AKDENIZ)
## 8 2021.06.23 09:28:07 38.5 39.4 12.6 2 SUREK-SIVRICE (ELAZIG)
## 9 2021.06.23 09:00:41 36.4 27.0 12.3 2.6 AKDENIZ
## 10 2021.06.23 08:37:40 36.3 27.1 9.9 2.1 AKDENIZ
## # ... with 490 more rows
Veri Setinin Yapısı
glimpse(deprem)
## Rows: 500
## Columns: 7
## $ Tarih <chr> "2021.06.23", "2021.06.23", "2021.06.23", "2021.06.23", "2...
## $ Saat <time> 10:36:11, 10:27:31, 10:13:38, 09:53:11, 09:47:07, 09:45:4...
## $ Enlem <dbl> 36.3452, 36.3297, 39.8638, 36.3048, 36.3865, 36.3818, 36.3...
## $ Boylam <dbl> 27.3597, 27.0938, 25.9833, 27.0480, 27.0573, 27.1043, 27.1...
## $ Derinlik <dbl> 4.1, 7.0, 15.2, 7.3, 5.0, 10.8, 11.0, 12.6, 12.3, 9.9, 4.6...
## $ Buyukluk <dbl> 2.2, 1.9, 1.9, 1.7, 1.9, 1.6, 2.0, 2.0, 2.6, 2.1, 2.9, 1.8...
## $ Yer <chr> "KOS ADASI (AKDENIZ)", "AKDENIZ", "EGE DENIZI", "AKDENIZ",...
Kaydırma Eksenine Bağlı Harita, Grafik Kombinasyonu
<- read_table("deprem.txt")%>% rename(Enlem="Enlem(N)",Boylam="Boylam(E)", "Buyukluk"=ML, Derinlik="Derinlik(km)"
deprem )
##
## -- Column specification --------------------------------------------------------
## cols(
## Tarih = col_character(),
## Saat = col_time(format = ""),
## `Enlem(N)` = col_double(),
## `Boylam(E)` = col_double(),
## `Derinlik(km)` = col_double(),
## MD = col_character(),
## ML = col_double(),
## Mw = col_character(),
## Yer = col_character(),
## `<U+633C><U+3E37><U+663C><U+3E36>z<U+663C><U+3E63>m Niteli<U+663C><U+3E30>i` = col_character()
## )
<- deprem[, c(-6,-8,-10)]
deprem
<- highlight_key(deprem)
d1
<- filter_slider("Büyüklük", "Depremin Büyüklüğü", d1,~Buyukluk)
kaydirma
<- plot_ly(d1, x = ~Derinlik, y = ~Buyukluk) %>%
p add_markers(alpha = 0.5) %>%
highlight("plotly_selected")
<- leaflet(d1) %>%
harita addTiles() %>%
addCircleMarkers(
label=deprem$Buyukluk,lng = ~Enlem, lat = ~Boylam,
labelOptions = labelOptions(noHide = T, direction = 'top'))%>% addSearchOSM() %>% addReverseSearchOSM() %>% addResetMapButton()
bscols(
widths = c(12, 12, 12),
kaydirma, p, harita)
## Warning in bscols(widths = c(12, 12, 12), kaydirma, p, harita): Sum of bscol
## width units is greater than 12
## Setting the `off` event (i.e., 'plotly_deselect') to match the `on` event (i.e., 'plotly_selected'). You can change this default via the `highlight()` function.
Örnek Veri Tablosu ve Harita Oluşturma
<- data.frame(
deneme ticker = c("Ulusoy", "Metro", "Süzer", "Kanberoğlu"),
address = c("Ankara","İstanbul","Artvin","Rize")
%>%
) ::geocode(address = address,
tidygeocodermethod = "osm") %>%
::st_as_sf(coords = c("long", "lat"), crs = 4326)
sf
leaflet(deneme) %>%
addMarkers(label = ~ address) %>%
addProviderTiles("CartoDB.Positron")
İkon ve Harita Temalarının Haritaya Eklenmesi 1
<- data.frame(
deneme Firma = c("Ulusoy", "Metro", "Süzer", "Kanberoğlu", "Pamukkale","Kamil Koç", "Anadolu", "Dadaş"),
Adres = c("Ankara","İstanbul","Artvin","Rize", "Kayseri", "Antalya", "İzmir", "Sivas"),
Ciro =c(1000, 12500,3000,4000, 6000,8000,9000,1800))%>%
::geocode(address = Adres,
tidygeocodermethod = "osm") %>%
::st_as_sf(coords = c("long", "lat"), crs = 4326)
sf
<- makeAwesomeIcon(
awesome icon = "fire",
iconColor = "red",
markerColor = "blue",
library = "fa"
)
leaflet(deneme) %>%
addAwesomeMarkers(icon = awesome,
label = ~ Ciro) %>%
addProviderTiles("CartoDB.Positron")
İkon ve Harita Temalarının Haritaya Eklenmesi 2
<- data.frame(
deneme Firma = c("Ulusoy", "Metro", "Süzer", "Kanberoğlu", "Pamukkale","Kamil Koç", "Anadolu", "Dadaş"),
Adres = c("Ankara","İstanbul","Artvin","Rize", "Kayseri", "Antalya", "İzmir", "Sivas"),
Ciro =c(1000, 12500,3000,4000, 6000,8000,9000,1800))%>%
::geocode(address = Adres,
tidygeocodermethod = "osm") %>%
::st_as_sf(coords = c("long", "lat"), crs = 4326)
sf
<- makeAwesomeIcon(
awesome icon = "automobile",
iconColor = "red",
markerColor = "blue",
library = "fa"
)
leaflet(deneme) %>%
addAwesomeMarkers(icon = awesome,
label = ~ Ciro) %>%
addProviderTiles("Esri.NatGeoWorldMap")
İkon ve Harita Temalarının Haritaya Eklenmesi 3
<- data.frame(
deneme Firma = c("Ulusoy", "Metro", "Süzer", "Kanberoğlu", "Pamukkale","Kamil Koç", "Anadolu", "Dadaş"),
Adres = c("Ankara","İstanbul","Artvin","Rize", "Kayseri", "Antalya", "İzmir", "Sivas"),
Ciro =c(1000, 12500,3000,4000, 6000,8000,9000,1800))%>%
::geocode(address = Adres,
tidygeocodermethod = "osm") %>%
::st_as_sf(coords = c("long", "lat"), crs = 4326)
sf
<- makeAwesomeIcon(
ikon icon = "bus",
iconColor = "blue",
markerColor = "lightgray",
library = "fa"
)
leaflet(deneme) %>%
addAwesomeMarkers(icon = ikon,
label = paste(deneme$Firma,"firmasının cirosu=",deneme$Ciro)) %>%
addProviderTiles("OpenStreetMap")
İkon ve Harita Temalarının Haritaya Eklenmesi 4
<- data.frame(
deneme Firma = c("Ulusoy", "Metro", "Süzer", "Kanberoğlu", "Pamukkale","Kamil Koç", "Anadolu", "Dadaş"),
Adres = c("Ankara","İstanbul","Artvin","Rize", "Kayseri", "Antalya", "İzmir", "Sivas"),
Ciro =c(1000, 12500,3000,4000, 6000,8000,9000,1800))%>%
::geocode(address = Adres,
tidygeocodermethod = "osm") %>%
::st_as_sf(coords = c("long", "lat"), crs = 4326)
sf
=makeAwesomeIcon(
ikonicon = "flag",
library = "glyphicon",
markerColor = "blue",
iconColor = "white",
spin = FALSE,
extraClasses = NULL,
squareMarker = FALSE,
iconRotate = 0,
fontFamily = "monospace",
text = NULL
)
leaflet(deneme) %>%
addAwesomeMarkers(icon = ikon,
label = paste(deneme$Firma,"firmasının cirosu=",deneme$Ciro)) %>%
addProviderTiles("NASAGIBS.ViirsEarthAtNight2012")
İkon ve Harita Temalarının Haritaya Eklenmesi 5
<- data.frame(
deneme Firma = c("Ulusoy", "Metro", "Süzer", "Kanberoğlu", "Pamukkale","Kamil Koç", "Anadolu", "Dadaş"),
Adres = c("Ankara","İstanbul","Artvin","Rize", "Kayseri", "Antalya", "İzmir", "Sivas"),
Ciro =c(1000, 12500,3000,4000, 6000,8000,9000,1800))%>%
::geocode(address = Adres,
tidygeocodermethod = "osm") %>%
::st_as_sf(coords = c("long", "lat"), crs = 4326)
sf
=makeAwesomeIcon(
ikonicon = "bus",
library = "fa",
markerColor = "blue",
iconColor = "white",
spin = FALSE,
extraClasses = NULL,
squareMarker = FALSE,
iconRotate = 0,
fontFamily = "monospace",
text = NULL
)
leaflet(deneme) %>%
addAwesomeMarkers(icon = ikon,
label = paste(deneme$Firma,"firmasının cirosu=",deneme$Ciro)) %>%
addProviderTiles("OpenTopoMap")
Haritaya Açılan Tablo Ekleme 1
Burada haritaya açılan tablo eklemek için leafpop paketi eklenmiştir.
<- data.frame(
deneme Firma = c("Ulusoy", "Metro", "Süzer", "Kanberoğlu", "Pamukkale","Kamil Koç", "Anadolu", "Dadaş"),
Adres = c("Ankara","İstanbul","Artvin","Rize", "Kayseri", "Antalya", "İzmir", "Sivas"),
Ciro =c(1000, 12500,3000,4000, 6000,8000,9000,1800))%>%
::geocode(address = Adres,
tidygeocodermethod = "osm") %>%
::st_as_sf(coords = c("long", "lat"), crs = 4326)
sf
leaflet() %>%
addTiles() %>%
addCircleMarkers(data = deneme,
popup = popupTable(deneme))
Haritaya Açılan Tablo Ekleme 2
Burada haritaya açılan tablo eklemek için leafpop paketi eklenmiştir. Burada deprem veri seti kullanılmıştır.
leaflet() %>%
addTiles() %>%
addCircleMarkers(data=deprem, lng = ~Boylam, lat = ~Enlem,popup = popupTable(deprem), color = '#ff0000', weight = 2, radius = deprem$Buyukluk*2)%>%
addSearchOSM() %>%
addReverseSearchOSM() %>%
addResetMapButton()
Spesifik Yer İşaretleme
Bu kısımda Sanayi ve Teknoloji Bakanlığı’nın adresi, web sitesi etiketlenmiştir.
=content <- paste(sep = "<br/>",
etiket"<b><a href='https://www.sanayi.gov.tr/anasayfa'>T.C. Sanayi ve Teknoloji Bakanlığı</a></b>",
"Mustafa Kemal Mahallesi Dumlupınar Bulvarı (Eskişehir Yolu 7.km) 2151. Cadde No:154/A",
"Çankaya/ANKARA, 06530"
)leaflet() %>% addTiles() %>% setView(32.78216614147982,39.911152425885824, zoom = 15) %>% addPopups(32.78216614147982,39.911152425885824,etiket, options = popupOptions(closeButton = TRUE))
Spesifik Kurum Logosunu Ekleme
Bu kısımda Sanayi ve Teknoloji Bakanlığı’nın logosu açılan resim olarak (popup) olarak haritaya eklenmiştir.
= st_as_sf(data.frame(x =32.78216614147982, y = 39.911152425885824),
pnt coords = c("x", "y"),
crs = 4326)
="logo.png"
img
leaflet() %>%
addTiles() %>%
addCircleMarkers(data = pnt, group = "pnt") %>%
addPopupImages(img, group = "pnt", width = 400)
Veri setinin İndirilmesi
Bu kısımda veri setinin dirimlesine yönelik olarak alternatif vermek adına downloadthis kütüphanesi kullanılmıştır.
%>%
deprem download_this(
output_name = "Deprem_Veri_Seti",
output_extension = ".csv",
button_label = "Veri Setini İndir",
button_type = "warning",
has_icon = TRUE,
icon = "fa fa-save"
)
## Warning: The `path` argument of `write_csv2()` is deprecated as of readr 1.4.0.
## Please use the `file` argument instead.
Verinin harita üzerinde görselleştirilmesine yönelik yaptığım bu R Markdown çalışmasının özellikle veri bilimi (data science) ile ilgilenen akademi ve saha çalışanlarına bir katkı sunacağı düşünülmektedir.
Faydalı olması ve farkındalık oluşturması dileğiyle.
Bilimle ve teknolojiyle kalınız.
Saygılarımla…
Not: Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.
Note: It can not be cited or copied without referencing.
Yararlanılan Kaynaklar
1.https://rstudio.github.io/crosstalk/ 2.https://emilyriederer.github.io/demo-crosstalk/tutorial/tutorial-rmd.html 3.https://www.jla-data.net/eng/leaflet-markers-in-r/ 4.https://rstudio.github.io/leaflet/popups.html 5.https://rstudio.github.io/crosstalk/using.html 6.https://emilyriederer.github.io/demo-crosstalk/tutorial/tutorial-rmd.html 7.https://plotly-r.com/client-side-linking.html 8.https://nicar.r-journalism.com/docs/crosstalk-flexdashboard-leaflet-datatable/ 9.https://rstudio-pubs-static.s3.amazonaws.com/367074_7396dc3734544b0f94e04b8801b24664.html 10.https://rstudio.github.io/crosstalk/using.html 11.https://rpubs.com/tevfik1461/deprem 12.https://cran.r-project.org/web/packages/crosstalk/crosstalk.pdf 13.https://cran.r-project.org/web/packages/leaflet.extras2/leaflet.extras2.pdf 14.https://mrjoh3.github.io/2018/07/25/filtering-spatial-data/ 15.https://rdrr.io/cran/leaflet/man/makeAwesomeIcon.html 16.https://rstudio.github.io/leaflet/popups.html 17.https://github.com/r-spatial/leafpop