Analyzing forest fires with the geoideo package

Antony Barja

22 Setiembre, 2024

1. Introduction

geoidep currently allows you to work with data from Serfor’s Satellite Tracking Unit.

However, this project is still under construction, for more information you can visit the GitHub official repository https://github.com/ambarja/geoidep.

If you want to support this project, you can support me with a coffee for my programming moments.

2. Package installation

install.packages("geoidep")

Also, you can install the development version as follows:

install.packages('pak')
pak::pkg_install('ambarja/geoidep')
library(geoidep)

3. Filter the available Serfor layer

providers <- get_data_sources(query = "Serfor")
providers
#> # A tibble: 2 × 7
#>   provider category layer       layer_can_be_actived admin_en        year  link 
#>   <chr>    <chr>    <chr>       <lgl>                <chr>           <chr> <chr>
#> 1 Serfor   Hazard   fire_forest TRUE                 Ministry of En… Not … http…
#> 2 Serfor   Hazard   hot_spots   TRUE                 Ministry of En… Not … http…

4. Forest fire data collection download

incendio.forestal <- get_forest_fire_data(show_progress = FALSE)
#> Reading layer `file47404bd422f7' from data source 
#>   `C:\Users\USER\AppData\Local\Temp\RtmpgztcfX\file47404bd422f7.geojson' 
#>   using driver `GeoJSON'
#> Simple feature collection with 5678 features and 34 fields
#> Geometry type: POINT
#> Dimension:     XY
#> Bounding box:  xmin: -80.49888 ymin: -15.61481 xmax: -69.10229 ymax: -3.56854
#> Geodetic CRS:  WGS 84
head(incendio.forestal)
#> Simple feature collection with 6 features and 34 fields
#> Geometry type: POINT
#> Dimension:     XY
#> Bounding box:  xmin: -74.48153 ymin: -8.59718 xmax: -74.47054 ymax: -8.59503
#> Geodetic CRS:  WGS 84
#>   OBJECTID                                          FUENTE DOCREG     FECREG
#> 1   195126 Servicio Nacional Forestal y de Fauna Silvestre        2024-09-17
#> 2   195127 Servicio Nacional Forestal y de Fauna Silvestre        2024-09-17
#> 3   195128 Servicio Nacional Forestal y de Fauna Silvestre        2024-09-17
#> 4   195129 Servicio Nacional Forestal y de Fauna Silvestre        2024-09-17
#> 5   195130 Servicio Nacional Forestal y de Fauna Silvestre        2024-09-17
#> 6   195131 Servicio Nacional Forestal y de Fauna Silvestre        2024-09-17
#>                                                                                        OBSERV
#> 1 Información generada por la Unidad Funcional de Monitoreo Satelital de la DGIOFFS de SERFOR
#> 2 Información generada por la Unidad Funcional de Monitoreo Satelital de la DGIOFFS de SERFOR
#> 3 Información generada por la Unidad Funcional de Monitoreo Satelital de la DGIOFFS de SERFOR
#> 4 Información generada por la Unidad Funcional de Monitoreo Satelital de la DGIOFFS de SERFOR
#> 5 Información generada por la Unidad Funcional de Monitoreo Satelital de la DGIOFFS de SERFOR
#> 6 Información generada por la Unidad Funcional de Monitoreo Satelital de la DGIOFFS de SERFOR
#>   ZONUTM ORIGEN  NOMDEP           NOMPRO   NOMDIS      CAPITAL      FECHA
#> 1     18      2 UCAYALI CORONEL PORTILLO MANANTAY SAN FERNANDO 2024-09-17
#> 2     18      2 UCAYALI CORONEL PORTILLO MANANTAY SAN FERNANDO 2024-09-17
#> 3     18      2 UCAYALI CORONEL PORTILLO MANANTAY SAN FERNANDO 2024-09-17
#> 4     18      2 UCAYALI CORONEL PORTILLO MANANTAY SAN FERNANDO 2024-09-17
#> 5     18      2 UCAYALI CORONEL PORTILLO MANANTAY SAN FERNANDO 2024-09-17
#> 6     18      2 UCAYALI CORONEL PORTILLO MANANTAY SAN FERNANDO 2024-09-17
#>       HORA CATEG      NOMCATEG  LATITUD  LONGITUD   COORES  COORNO
#> 1 14:10:00    24 NUEVO PARAISO -8.59718 -74.47883 557346.6 9049643
#> 2 13:43:00    24 NUEVO PARAISO -8.59653 -74.48153 557049.6 9049715
#> 3 14:10:00    24 NUEVO PARAISO -8.59642 -74.47469 557802.3 9049726
#> 4 13:43:00    24 NUEVO PARAISO -8.59578 -74.47691 557558.1 9049798
#> 5 14:10:00    24 NUEVO PARAISO -8.59565 -74.47054 558259.0 9049811
#> 6 13:43:00    24 NUEVO PARAISO -8.59503 -74.47227 558068.8 9049880
#>           CODREP created_user        created_date last_edited_user
#> 1 PIF_02967_2024       USUFMS 2024-09-18 16:00:13           UFMS17
#> 2 PIF_02967_2024       USUFMS 2024-09-18 16:00:13           UFMS17
#> 3 PIF_02967_2024       USUFMS 2024-09-18 16:00:13           UFMS17
#> 4 PIF_02967_2024       USUFMS 2024-09-18 16:00:13           UFMS17
#> 5 PIF_02967_2024       USUFMS 2024-09-18 16:00:13           UFMS17
#> 6 PIF_02967_2024       USUFMS 2024-09-18 16:00:13           UFMS17
#>      last_edited_date ESTADO             TIPCOB PELIGRO REFESTADO CONF CODRVIF
#> 1 2024-09-20 06:20:59      2 Cobertura Forestal       0         0    0       0
#> 2 2024-09-20 06:20:59      2 Cobertura Forestal       0         0    0       0
#> 3 2024-09-20 06:20:59      2 Cobertura Forestal       0         0    0       0
#> 4 2024-09-20 06:20:59      2 Cobertura Forestal       0         0    0       0
#> 5 2024-09-20 06:20:59      2 Cobertura Forestal       0         0    0       0
#> 6 2024-09-20 06:20:59      2 Cobertura Forestal       0         0    0       0
#>   SENSAT CATDEP CATPRO CATDIS                   geometry
#> 1      N     25   2501 250107 POINT (-74.47883 -8.59718)
#> 2    N21     25   2501 250107 POINT (-74.48153 -8.59653)
#> 3      N     25   2501 250107 POINT (-74.47469 -8.59642)
#> 4    N21     25   2501 250107 POINT (-74.47691 -8.59578)
#> 5      N     25   2501 250107 POINT (-74.47054 -8.59565)
#> 6    N21     25   2501 250107 POINT (-74.47227 -8.59503)

5. National Forest Fire Count

library(sf)
library(dplyr)
library(ggplot2)
stats <- incendio.forestal |> 
  st_drop_geometry() |>
  filter(FECHA >= '2024-09-11') |> 
  group_by(NOMDEP) |> 
  summarise( total = n()) 
# Simple visualisation
stats |> 
  ggplot(aes(x = NOMDEP, y = total)) + 
  geom_bar(stat = "identity") + 
  coord_polar() + 
  theme_minimal(base_size = 10)  + 
  labs(x="", y = "", caption = "Unidad de Monitoreo Forestales - SERFOR")

6. Download the official INEI administrative limits of interest

# Region boundaries download 
ucayali_dep <- get_departaments(show_progress = FALSE) |> 
  subset(NOMBDEP == 'UCAYALI')
# The first five rows
head(ucayali_dep)
#> Simple feature collection with 1 feature and 6 fields
#> Geometry type: MULTIPOLYGON
#> Dimension:     XY
#> Bounding box:  xmin: -75.94789 ymin: -11.44834 xmax: -70.49442 ymax: -7.262049
#> Geodetic CRS:  WGS 84
#>    id OBJECTID CCDD NOMBDEP SHAPE_Length SHAPE_Area
#> 24 24       24   25 UCAYALI     27.47016   8.660111
#>                              geom
#> 24 MULTIPOLYGON (((-74.47145 -...

7. Forest fire count in the area of interest only

# Data collection only within the regions of interest.
ucayali.if <- st_filter(incendio.forestal, ucayali_dep)
head(ucayali.if)
#> Simple feature collection with 6 features and 34 fields
#> Geometry type: POINT
#> Dimension:     XY
#> Bounding box:  xmin: -74.48153 ymin: -8.59718 xmax: -74.47054 ymax: -8.59503
#> Geodetic CRS:  WGS 84
#>   OBJECTID                                          FUENTE DOCREG     FECREG
#> 1   195126 Servicio Nacional Forestal y de Fauna Silvestre        2024-09-17
#> 2   195127 Servicio Nacional Forestal y de Fauna Silvestre        2024-09-17
#> 3   195128 Servicio Nacional Forestal y de Fauna Silvestre        2024-09-17
#> 4   195129 Servicio Nacional Forestal y de Fauna Silvestre        2024-09-17
#> 5   195130 Servicio Nacional Forestal y de Fauna Silvestre        2024-09-17
#> 6   195131 Servicio Nacional Forestal y de Fauna Silvestre        2024-09-17
#>                                                                                        OBSERV
#> 1 Información generada por la Unidad Funcional de Monitoreo Satelital de la DGIOFFS de SERFOR
#> 2 Información generada por la Unidad Funcional de Monitoreo Satelital de la DGIOFFS de SERFOR
#> 3 Información generada por la Unidad Funcional de Monitoreo Satelital de la DGIOFFS de SERFOR
#> 4 Información generada por la Unidad Funcional de Monitoreo Satelital de la DGIOFFS de SERFOR
#> 5 Información generada por la Unidad Funcional de Monitoreo Satelital de la DGIOFFS de SERFOR
#> 6 Información generada por la Unidad Funcional de Monitoreo Satelital de la DGIOFFS de SERFOR
#>   ZONUTM ORIGEN  NOMDEP           NOMPRO   NOMDIS      CAPITAL      FECHA
#> 1     18      2 UCAYALI CORONEL PORTILLO MANANTAY SAN FERNANDO 2024-09-17
#> 2     18      2 UCAYALI CORONEL PORTILLO MANANTAY SAN FERNANDO 2024-09-17
#> 3     18      2 UCAYALI CORONEL PORTILLO MANANTAY SAN FERNANDO 2024-09-17
#> 4     18      2 UCAYALI CORONEL PORTILLO MANANTAY SAN FERNANDO 2024-09-17
#> 5     18      2 UCAYALI CORONEL PORTILLO MANANTAY SAN FERNANDO 2024-09-17
#> 6     18      2 UCAYALI CORONEL PORTILLO MANANTAY SAN FERNANDO 2024-09-17
#>       HORA CATEG      NOMCATEG  LATITUD  LONGITUD   COORES  COORNO
#> 1 14:10:00    24 NUEVO PARAISO -8.59718 -74.47883 557346.6 9049643
#> 2 13:43:00    24 NUEVO PARAISO -8.59653 -74.48153 557049.6 9049715
#> 3 14:10:00    24 NUEVO PARAISO -8.59642 -74.47469 557802.3 9049726
#> 4 13:43:00    24 NUEVO PARAISO -8.59578 -74.47691 557558.1 9049798
#> 5 14:10:00    24 NUEVO PARAISO -8.59565 -74.47054 558259.0 9049811
#> 6 13:43:00    24 NUEVO PARAISO -8.59503 -74.47227 558068.8 9049880
#>           CODREP created_user        created_date last_edited_user
#> 1 PIF_02967_2024       USUFMS 2024-09-18 16:00:13           UFMS17
#> 2 PIF_02967_2024       USUFMS 2024-09-18 16:00:13           UFMS17
#> 3 PIF_02967_2024       USUFMS 2024-09-18 16:00:13           UFMS17
#> 4 PIF_02967_2024       USUFMS 2024-09-18 16:00:13           UFMS17
#> 5 PIF_02967_2024       USUFMS 2024-09-18 16:00:13           UFMS17
#> 6 PIF_02967_2024       USUFMS 2024-09-18 16:00:13           UFMS17
#>      last_edited_date ESTADO             TIPCOB PELIGRO REFESTADO CONF CODRVIF
#> 1 2024-09-20 06:20:59      2 Cobertura Forestal       0         0    0       0
#> 2 2024-09-20 06:20:59      2 Cobertura Forestal       0         0    0       0
#> 3 2024-09-20 06:20:59      2 Cobertura Forestal       0         0    0       0
#> 4 2024-09-20 06:20:59      2 Cobertura Forestal       0         0    0       0
#> 5 2024-09-20 06:20:59      2 Cobertura Forestal       0         0    0       0
#> 6 2024-09-20 06:20:59      2 Cobertura Forestal       0         0    0       0
#>   SENSAT CATDEP CATPRO CATDIS                   geometry
#> 1      N     25   2501 250107 POINT (-74.47883 -8.59718)
#> 2    N21     25   2501 250107 POINT (-74.48153 -8.59653)
#> 3      N     25   2501 250107 POINT (-74.47469 -8.59642)
#> 4    N21     25   2501 250107 POINT (-74.47691 -8.59578)
#> 5      N     25   2501 250107 POINT (-74.47054 -8.59565)
#> 6    N21     25   2501 250107 POINT (-74.47227 -8.59503)

8. Simple visualization with leaflet

library(leaflet)
#> 
#> Adjuntando el paquete: 'leaflet'
#> The following object is masked _by_ '.GlobalEnv':
#> 
#>     providers
library(leaflet.extras)
ucayali.if |> 
  leaflet() |> 
  addProviderTiles(provider = "CartoDB.Positron") |> 
  addHeatmap(radius = 10,minOpacity = 1)