orman yangınları

Author

Şefika Nur ALKAN

Published

May 22, 2023

Quarto

Rmarkdown a çok benzer bir yapıdır. Bir çok kod yapısını da içinde barındırır. R, Python, Julia, observable vb. yazılım dillerini kod blokları sayesinde çalıştırır.

Quarto temel olarak paketlerin işlevselliğini tek bir komut satırı arayüzünde birleştirir.

Quarto, hazırladığımız belgemizi pdf,html, sunum dosyası olarak çıktısını alabiliriz.

Nasıl kurulur?

Quarto ’ yu kurmak için bu linke tıklayıp kendi bilgisayarınızı seçerek uygun olan kurulumu yapabilirisiniz. https://quarto.org/docs/get-started/

Nasıl Kullanılır?

Kurulumunuzu tamamladıktan sonra R studio uygulamanıza eklenecektir. Quarto dosyanızı oluşturmak için yeni bir script açtığımız kısımdan Quarto document kısmını seçerek yazmaya başlayabilirsiniz.

Bu kısmı seçtikten sonra bir pencere açılacaktır.Açılan pencereden almak istediğiniz çıktının bulunduğu kutucuğu işaretleyiniz. Quarto; Knitr’a bağlı olarak çalışmaktadır. Create butonuna basarak .qmd uzantılı dosyanızı oluşturmuş bulumaktasınız.

Açılan dosyadan karşımıza ilk olarak bir YAML kısmı çıkıcaktır. Bu kısımda dosyamızın ismi(title), oluşturan kişi (author), tarih(date), dosya formatını(format), oluşturacağımız formatta kodlarımızın görünürlüğünü belirleyebileceğimiz(echo:false), editör kısmını belirleyeceğimiz yerdir.

Source kısmı script şeklinde olan kısımdır. Visual kısmı ise quarto dosyasının açılımış şeklidir. Hangisinin tercih edileceği ise kullanıcıya bırakılmıştır.

Hemen yan tarafına bakıcak olursak yazı karakterlerini ayarlamamıza yardımcı olur.

Bu araç çubuğundan normal yazan kısımdan ana başlık (Header 1) , bir alt başlık (Header 2 ) ve diğer alt başlıkları(Header 3, Header 4,…) oluşturabiliriz.

Maddeler eklememiz için seçenekler vardır. (Numara veya şekillerle)

Yan bloğundan devam edelim. Dosyamıza link ve fotoğraf eklemesi yapabiliriz.

Format ve Insert kısmı ise bütün seçeneklerin bulunduğu genel kısımdır.

Table kısmından ise tablo eklemesi yapabiliriz.,

Dosyamızı tamamladıktan sonra çalıştırmak için Render ’ a basmanız yeterli olacaktır.

Araç çubuğumuzun sağ kısmında bulunan ;

Butonların ilkinden kod bloğu açmaya, aşağı ve yukarı oklarla bölümler arasında hareket edebilmeyi, Run kısmından yazdığınız kodları çalıştırmayı, son blok ise oluşturulan dosyamızı paylaşım yapmaya yardımcı olur. Paylaşım yapmak için Shiny, RPubs, Posit , Posit Cloud gibi siteler kullanılır.

Veri Analizi

https://www.kaggle.com/datasets/uttam94/forest-forest-dataset Kaggle da bulunan orman yangınları veri seti için genel bir analiz yapalım.

‘tidyverse’ paketlerini kurup yükleyerek başlayın.(label; kod bloğumuzun ismini belirleyebiliriz., echo; kodlarımızın görünürlüğünü belirler, ….)

#|label : load-packages
#| include: false
#| message: false
library(tidyverse)
Warning: package 'tidyverse' was built under R version 4.2.3
Warning: package 'ggplot2' was built under R version 4.2.3
Warning: package 'tibble' was built under R version 4.2.3
Warning: package 'tidyr' was built under R version 4.2.3
Warning: package 'readr' was built under R version 4.2.3
Warning: package 'purrr' was built under R version 4.2.3
Warning: package 'dplyr' was built under R version 4.2.3
Warning: package 'stringr' was built under R version 4.2.3
Warning: package 'forcats' was built under R version 4.2.3
Warning: package 'lubridate' was built under R version 4.2.3
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.1     ✔ readr     2.1.4
✔ forcats   1.0.0     ✔ stringr   1.5.0
✔ ggplot2   3.4.2     ✔ tibble    3.2.1
✔ lubridate 1.9.2     ✔ tidyr     1.3.0
✔ purrr     1.0.1     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
forest_fires <- read_csv("C:/Users/90553/Downloads/forestfires.csv")
Rows: 517 Columns: 13
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr  (2): month, day
dbl (11): X, Y, FFMC, DMC, DC, ISI, temp, RH, wind, rain, area

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Orman Yangını Verilerinin Önemi

Veri çerçevesini özetlemek veya önizlemek için farklı işlevler kullanın.

Verilere bir göz atın, her bir değişken ve yangın arasındaki ilişkileri düşünün.

head(forest_fires)
# A tibble: 6 × 13
      X     Y month day    FFMC   DMC    DC   ISI  temp    RH  wind  rain  area
  <dbl> <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1     7     5 mar   fri    86.2  26.2  94.3   5.1   8.2    51   6.7   0       0
2     7     4 oct   tue    90.6  35.4 669.    6.7  18      33   0.9   0       0
3     7     4 oct   sat    90.6  43.7 687.    6.7  14.6    33   1.3   0       0
4     8     6 mar   fri    91.7  33.3  77.5   9     8.3    97   4     0.2     0
5     8     6 mar   sun    89.3  51.3 102.    9.6  11.4    99   1.8   0       0
6     8     6 aug   sun    92.3  85.3 488    14.7  22.2    29   5.4   0       0
str(forest_fires)
spc_tbl_ [517 × 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
 $ X    : num [1:517] 7 7 7 8 8 8 8 8 8 7 ...
 $ Y    : num [1:517] 5 4 4 6 6 6 6 6 6 5 ...
 $ month: chr [1:517] "mar" "oct" "oct" "mar" ...
 $ day  : chr [1:517] "fri" "tue" "sat" "fri" ...
 $ FFMC : num [1:517] 86.2 90.6 90.6 91.7 89.3 92.3 92.3 91.5 91 92.5 ...
 $ DMC  : num [1:517] 26.2 35.4 43.7 33.3 51.3 ...
 $ DC   : num [1:517] 94.3 669.1 686.9 77.5 102.2 ...
 $ ISI  : num [1:517] 5.1 6.7 6.7 9 9.6 14.7 8.5 10.7 7 7.1 ...
 $ temp : num [1:517] 8.2 18 14.6 8.3 11.4 22.2 24.1 8 13.1 22.8 ...
 $ RH   : num [1:517] 51 33 33 97 99 29 27 86 63 40 ...
 $ wind : num [1:517] 6.7 0.9 1.3 4 1.8 5.4 3.1 2.2 5.4 4 ...
 $ rain : num [1:517] 0 0 0 0.2 0 0 0 0 0 0 ...
 $ area : num [1:517] 0 0 0 0 0 0 0 0 0 0 ...
 - attr(*, "spec")=
  .. cols(
  ..   X = col_double(),
  ..   Y = col_double(),
  ..   month = col_character(),
  ..   day = col_character(),
  ..   FFMC = col_double(),
  ..   DMC = col_double(),
  ..   DC = col_double(),
  ..   ISI = col_double(),
  ..   temp = col_double(),
  ..   RH = col_double(),
  ..   wind = col_double(),
  ..   rain = col_double(),
  ..   area = col_double()
  .. )
 - attr(*, "problems")=<externalptr> 
colnames(forest_fires)
 [1] "X"     "Y"     "month" "day"   "FFMC"  "DMC"   "DC"    "ISI"   "temp" 
[10] "RH"    "wind"  "rain"  "area" 
  1. ‘X’

  2. ‘Y’

  3. ‘month’

  4. ‘day’

  5. ‘FFMC’

  6. ‘DMC’

  7. ‘DC’

  8. ‘ISI’

  9. ‘temp’

  10. ‘RH’

  11. ‘wind’

  12. ‘rain’

  13. ‘area’

Sütunların aşağıdaki bilgilere karşılık geldiğini biliyoruz:

  • X: Montesinho park haritasındaki X ekseni uzamsal koordinatı: 1’den 9’a

  • Y: Montesinho park haritasında Y ekseni uzamsal koordinatı: 2 ila 9

  • month: Yılın ayı: “jan” - “dec”

  • day: Haftanın günü: ‘mon’ to ‘sun’

  • FFMC: FWI sisteminden İnce Yakıt Nem Kodu indeksi: 18,7 - 96,20

  • DMC:FWI sisteminden Duff Nem Kodu indeksi: 1,1 ila 291,3

  • DC: FWI sisteminden Kuraklık Kodu endeksi: 7,9 ila 860,6

  • ISI: FWI sisteminden İlk Yayılma Endeksi: 0,0 - 56,10

  • temp: Santigrat derece cinsinden sıcaklık: 2,2 - 33,30

  • RH: Yüzde cinsinden bağıl nem: 15,0 ila 100

  • wind: Km/sa cinsinden rüzgar hızı: 0,40 ila 9,40

  • rain: mm/m2 cinsinden dış yağmur: 0,0 - 6,4

  • area: Ormanın yanmış alanı (ha cinsinden): 0,00 - 1090,84

Sütunlardaki birçok faktör, örneğin yangınlara katkıda bulunabilir: ‘DMC’, ‘DC’, ‘temp’, ‘rüzgar’, ‘yağmur’. Hepsi ‘alan’ ile ilişkilendirilebilir.

Veri İşleme

month ve day karakter değişkenlerdir, ama onların doğasında var olan bir düzen olduğunu biliyoruz. Bu değişkenleri, çizdiğimizde doğru sırada sıralanmaları için faktörlere dönüştüreceğiz.

forest_fires %>% pull(month) %>% unique
 [1] "mar" "oct" "aug" "sep" "apr" "jun" "jul" "feb" "jan" "dec" "may" "nov"
forest_fires %>% pull(day) %>% unique
[1] "fri" "tue" "sat" "sun" "mon" "wed" "thu"
  1. ‘mar’

  2. ‘oct’

  3. ‘aug’

  4. ‘sep’

  5. ‘apr’

  6. ‘jun’

  7. ‘jul’

  8. ‘feb’

  9. ‘jan’

  10. ‘dec’

  11. ‘may’

  12. ‘nov’

  1. ‘fri’

  2. ‘tue’

  3. ‘sat’

  4. ‘sun’

  5. ‘mon’

  6. ‘wed’

  7. ‘thu’

month_levels <- c("jan", "feb", "mar", "apr", "may","jun","jul","aug","sep","oct", "nov", "dec")

day_levels <- c("mon", "tue", "wed", "thu", "fri", "sat", "sun")

forest_fires <- forest_fires %>% 
  mutate(month = factor(month, levels = month_levels),
         day = factor(day, levels = day_levels)
  )

Orman Yangınları En Çok Ne Zaman Oluşur?

Her ay çıkan yangın sayısını sayan bir özet bilgi oluşturun. Ardından bunu görselleştirme için kullanın, aynısı “gün” için de geçerlidir.

Ay Seviyesi

fires_by_month <- forest_fires %>% 
  group_by(month) %>% 
  summarise(total_fires = n())

ggplot(data = fires_by_month)+
  geom_col(mapping = aes(x = month, y = total_fires))+
  labs(title = "Aylara Göre Orman Yangın Sayıları", caption ="project from DATAQUEST")

Ağustos ve Eylül aylarında yangınlarda büyük bir artış ve Mart ayında daha küçük bir artış görüyoruz. Yangınlar hafta içinde daha sık görünüyor

Zamana Karşı Diğer Değişkenleri Çizmek

month ile farklı değişkenler arasındaki ilişkiyi gösteren bazı görselleştirmeler oluşturun.

library(tidyr)

df <- forest_fires %>% pivot_longer(cols = c('FFMC', 'DMC', 'DC', 'ISI', 'temp', 'RH', 'wind','rain'),

names_to = 'data_col',

values_to = 'value')

ggplot(data = df)+

geom_boxplot(mapping = aes(x = month, y = value))+

facet_wrap(vars(data_col), scales = "free_y")+

labs(title = "Ay boyunca değişken değişiklikleri ", x = "Aylar", y = "Değişken Değer" , caption ="project from DATAQUEST")

Görselleştirmelerden de anlayabileceğimiz gibi ‘DC’, ‘DMC’, ‘rain’, ‘temp’ değişkenlerinin yangınların ani artışıyla ilgisi var. Her bir değişkenin ne anlama geldiğini anlarsak, daha yüksek sıcaklık, havadaki daha az nem, aynı havanın daha kuru olması ve daha az yağmurun orman yangınına neden olmayı kolaylaştırması mantıklı olacaktır.

Orman Yangın Şiddetinin İncelenmesi

Bu veri setinde ‘area’ değişkeni, orman yangını sırasında yanan ormanın hektar sayısına ilişkin verileri içerir. Bu değişkeni yangının ciddiyetinin bir göstergesi olarak kullanacağız.

Her biri arasındaki ilişkiyi görüntüleyen görselleştirme oluşturun

ggplot(data = df)+
  geom_point(mapping = aes(x =value , y = area))+
  facet_wrap(vars(data_col), scales = "free_x")+
  labs(title = "Diğer değişkenler ile yakılan alan arasındaki ilişkiler", x = "sütun değeri", y = "Yakılan alan (hektar)" , caption ="project from DATAQUEST")


Görselleştirmeden, orman yangınlarını yakalamayı kolaylaştıran değişkenin genellikle yangının ciddiyeti ile de ilgisi olduğunu fark etmek o kadar da zor değil.

Aykırı Değer Problemleri

Değişkenler arasındaki ilişkileri daha net bir şekilde görselleştirmek için ‘area’ belirli bir aralıkla sınırlayarak veri çerçevesini filtreleyin.

df %>% 
  filter(area < 300) %>% 
  ggplot()+
  geom_point(mapping = aes(x =value , y = area))+
  facet_wrap(vars(data_col), scales = "free_x")+
  labs(title = "Diğer değişkenler ile yakılan alan arasındaki ilişkiler (alan < 300)", x = "sütun değeri", y = "Yakılan alan (hektar)" , caption ="project from DATAQUEST")

Verileri filtreledikten sonra, farklı değişkenler ile orman yangını alanı arasındaki ilişkileri gösteren daha net bir görselleştirme sağlar.