# Purpose: Showing the location of gender based violence (GBV) Services in Rohingya Refugee Camps in Cox's Bazar, Bangladesh
# Author: Proloy Barua (gtpb2008@gmail.com)
# data source: "Location of Rohingya Refugees in Cox's Bazar as of 28 February 2021 sourced from RRRC-UNHCR Family Counting Exercise Data"
# data source url: "https://data.humdata.org/dataset/site-location-of-rohingya-refugees-in-cox-s-bazar/resource/d947b032-aa5b-4404-9fe9-9cb7c3ac93cf"
# Clean up everything
rm(list = ls())
# setting path of working directory
setwd("F:/Maps")
# Checking r-version
print(version)
## _
## platform x86_64-w64-mingw32
## arch x86_64
## os mingw32
## system x86_64, mingw32
## status
## major 4
## minor 0.3
## year 2020
## month 10
## day 10
## svn rev 79318
## language R
## version.string R version 4.0.3 (2020-10-10)
## nickname Bunny-Wunnies Freak Out
## START
## Loading packages
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.0.4
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.3 v purrr 0.3.4
## v tibble 3.0.4 v dplyr 1.0.2
## v tidyr 1.1.2 v stringr 1.4.0
## v readr 1.4.0 v forcats 0.5.0
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(leaflet)
library(htmltools)
library(leafpop)
library(purrr)
library(Hmisc)
## Loading required package: lattice
## Loading required package: survival
## Loading required package: Formula
##
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:dplyr':
##
## src, summarize
## The following objects are masked from 'package:base':
##
## format.pval, units
library(reactable)
## Load Data
rohingya_camps <- read_csv("20210318_location_fce_rrrc_unhcr_population-registration_public.csv")
##
## -- Column specification --------------------------------------------------------
## cols(
## New_Camp_SSID = col_character(),
## New_Camp_Name = col_character(),
## Site_Name_Alias = col_character(),
## `Settlement Type` = col_character(),
## District = col_character(),
## Upazila = col_character(),
## Union = col_character(),
## Geo_Code = col_double(),
## Total_HH = col_double(),
## Total_Individuals = col_double(),
## Latitude = col_double(),
## Longitude = col_double()
## )
outline <- rohingya_camps[chull(rohingya_camps$Longitude, rohingya_camps$Latitude), ]
rohingya_camps_all <- read_csv("210228_iscg_4w_data.csv")
##
## -- Column specification --------------------------------------------------------
## cols(
## .default = col_character(),
## no = col_double(),
## project_title = col_logical(),
## project_code = col_logical(),
## measuring_units = col_logical(),
## quantity_planned = col_logical(),
## quantity_achieved = col_logical(),
## reached_total_beneficiaries = col_logical(),
## reached_total_beneficiaries_male_hhh = col_logical(),
## reached_total_beneficiaries_female_hhh = col_logical(),
## reached_total_individuals = col_double(),
## reached_total_female_individuals = col_double(),
## reached_total_male_individuals = col_double(),
## total_girls_beneficiaries_below_18 = col_double(),
## total_boys_beneficiaries_below_18 = col_double(),
## total_women_beneficiaries_18_59 = col_double(),
## total_men_beneficiaries_18_59 = col_double(),
## total_elderly_women_beneficiaries_above_59 = col_double(),
## total_elderly_men_beneficiaries_above_59 = col_double(),
## total_beneficiaries_with_unknown_sex_and_age = col_logical(),
## division_code = col_double()
## # ... with 3 more columns
## )
## i Use `spec()` for the full column specifications.
## Warning: 11662 parsing failures.
## row col expected actual file
## 1543 measuring_units 1/0/T/F/TRUE/FALSE Points '210228_iscg_4w_data.csv'
## 1544 measuring_units 1/0/T/F/TRUE/FALSE Complaints '210228_iscg_4w_data.csv'
## 1544 quantity_achieved 1/0/T/F/TRUE/FALSE 7 '210228_iscg_4w_data.csv'
## 1545 measuring_units 1/0/T/F/TRUE/FALSE Complaints '210228_iscg_4w_data.csv'
## 1545 quantity_achieved 1/0/T/F/TRUE/FALSE 7 '210228_iscg_4w_data.csv'
## .... ................. .................. .......... .........................
## See problems(...) for more details.
rohingya_camps_gbv <- dplyr::filter(rohingya_camps_all, sector_sub_sec_assistance == "GBV" & type_of_beneficiaries == "Refugee")
rohingya_camps_gbv <- rohingya_camps_gbv %>%
dplyr::group_by(camp_village_location_name) %>%
dplyr::summarise(
reached_total_individuals = sum(reached_total_individuals, na.rm = FALSE),
reached_total_female_individuals = sum(reached_total_female_individuals, na.rm = FALSE),
reached_total_male_individuals = sum(reached_total_male_individuals, na.rm = FALSE),
total_girls_beneficiaries_below_18 = sum(total_girls_beneficiaries_below_18, na.rm = FALSE),
total_boys_beneficiaries_below_18 = sum(total_boys_beneficiaries_below_18, na.rm = FALSE),
total_women_beneficiaries_18_59 = sum(total_women_beneficiaries_18_59, na.rm = FALSE),
total_men_beneficiaries_18_59 = sum(total_men_beneficiaries_18_59, na.rm = FALSE),
total_elderly_women_beneficiaries_above_59 = sum(total_elderly_women_beneficiaries_above_59, na.rm = FALSE),
total_elderly_men_beneficiaries_above_59 = sum(total_elderly_men_beneficiaries_above_59, na.rm = FALSE),
no_implementing_partner = sum(implementing_partner = n_distinct(implementing_partner, na.rm = FALSE))
) %>%
ungroup()
## `summarise()` ungrouping output (override with `.groups` argument)
# Filtering data by gender based violence (GBV) services
rohingya_camps_gbv <- dplyr::filter(rohingya_camps_gbv, !camp_village_location_name %in% c("Transit Site"))
# saving data in local directory
write.csv(rohingya_camps_gbv, "rohingya_camps_gbv.csv")
# Merging two data sets
gbv_camps <- dplyr::inner_join(rohingya_camps_gbv, rohingya_camps, by = c("camp_village_location_name" = "New_Camp_Name"))
# see variables in vector form
dput(names(gbv_camps))
## c("camp_village_location_name", "reached_total_individuals",
## "reached_total_female_individuals", "reached_total_male_individuals",
## "total_girls_beneficiaries_below_18", "total_boys_beneficiaries_below_18",
## "total_women_beneficiaries_18_59", "total_men_beneficiaries_18_59",
## "total_elderly_women_beneficiaries_above_59", "total_elderly_men_beneficiaries_above_59",
## "no_implementing_partner", "New_Camp_SSID", "Site_Name_Alias",
## "Settlement Type", "District", "Upazila", "Union", "Geo_Code",
## "Total_HH", "Total_Individuals", "Latitude", "Longitude")
# keeping necessary variables
gbv_camps <- dplyr::select(
gbv_camps, camp_village_location_name, reached_total_individuals,
reached_total_female_individuals, reached_total_male_individuals,
total_girls_beneficiaries_below_18, total_boys_beneficiaries_below_18,
total_women_beneficiaries_18_59, total_men_beneficiaries_18_59,
total_elderly_women_beneficiaries_above_59, total_elderly_men_beneficiaries_above_59,
no_implementing_partner, Total_HH, Total_Individuals, Latitude, Longitude
)
# Saving data in local directory
write.csv(gbv_camps, "rohingya_camps_gbv_hh.csv")
# Creating HTML data table
reactable::reactable(gbv_camps, searchable = TRUE, sortable = TRUE)
# Creating a customize title
tag.map.title <- tags$style(HTML("
.leaflet-control.map-title {
transform: translate(-50%,20%);
position: fixed !important;
left: 50%;
text-align: center;
padding-left: 10px;
padding-right: 10px;
background: rgba(255,255,255,0.75);
font-weight: bold;
font-size: 16px;
}
"))
title <- tags$h2(
tag.map.title, HTML("Location of GBV Services in Rohingya Refugee Camps in Cox's Bazar, Bangladesh")
)
## Add Tiles
rohingya_camps %>%
leaflet() %>%
addTiles() %>%
fitBounds(lng1 = min(rohingya_camps$Longitude), lat1 = min(rohingya_camps$Latitude), lng2 = max(rohingya_camps$Longitude), lat2 = max(rohingya_camps$Latitude)) %>%
addPolygons(data = outline, lng = outline$Longitude, lat = outline$Latitude, fill = FALSE, weight = 5, color = "red", group = "Virtual boundary") %>%
addCircleMarkers(
lng = rohingya_camps$Longitude, lat = rohingya_camps$Latitude, group = "Rohingya camps",
radius = 10, color = "red", opacity = 1, weight = 2,
popup = paste0(
"New Camp Name: ", "<strong>", '<span style="color:red">',
rohingya_camps$New_Camp_Name, "</strong>", "</span>",
"<br>", "Settlement Type: ", "<strong>", '<span style="color:red">',
rohingya_camps$`Settlement Type`, "</strong>", "</span>",
"<br>", "District Name: ", "<strong>", '<span style="color:red">', rohingya_camps$District, "</strong>", "</span>",
"<br>", "Sub-district Name: ", "<strong>", '<span style="color:red">', rohingya_camps$Upazila, "</strong>", "</span>",
"<br>", "Union Name: ", "<strong>", '<span style="color:red">', rohingya_camps$Union, "</strong>", "</span>",
"<br>", "No. of total household in this camp: ", "<strong>", '<span style="color:blue">', rohingya_camps$Total_HH, "</strong>", "</span>",
"<br>", "No. of total individuals in this camp: ", "<strong>", '<span style="color:blue">', rohingya_camps$Total_Individuals, "</strong>", "</span>",
"<br>", "Data source <span style='color:blue'> (as of Feb 2021): <a href='https://data.humdata.org/dataset/site-location-of-rohingya-refugees-in-cox-s-bazar/resource/d947b032-aa5b-4404-9fe9-9cb7c3ac93cf'>RRRC-UNHCR </a>",
"<br>"
)
) %>%
addProviderTiles(providers$Esri.WorldImagery, group = "World Imagery") %>%
addProviderTiles(providers$Stamen.TonerLite, group = "Toner Lite") %>%
addProviderTiles(providers$OpenStreetMap, group = "Open SM") %>%
addGraticule(group = "Graticule", interval = 0.02, style = list(color = "#FF0000", weight = 1)) %>%
addCircleMarkers(
lng = gbv_camps$Longitude, lat = gbv_camps$Latitude, group = "Rohingya camps with GBV services",
radius = 5, color = "blue", opacity = 2, weight = 2,
popup = paste0(
"New Camp Name: ", "<strong>", '<span style="color:red">', gbv_camps$camp_village_location_name, "</strong>", "</span>",
"<br>", "Settlement Type: ", "<strong>", '<span style="color:red">', gbv_camps$`Settlement Type`, "</strong>", "</span>",
"<br>", "District Name: ", "<strong>", '<span style="color:red">', gbv_camps$District, "</strong>", "</span>",
"<br>", "Sub-district Name: ", "<strong>", '<span style="color:red">', gbv_camps$Upazila, "</strong>", "</span>",
"<br>", "Union Name: ", "<strong>", '<span style="color:red">', gbv_camps$Union, "</strong>", "</span>",
"<br>", "No. of total household in this camp: ", "<strong>", '<span style="color:blue">', gbv_camps$Total_HH, "</strong>", "</span>",
"<br>", "No. of total individuals in this camp: ", "<strong>", '<span style="color:blue">', gbv_camps$Total_Individuals, "</strong>", "</span>",
"<br>", "Total individuals reached by GBV in this camp: ", "<strong>", '<span style="color:green">', gbv_camps$reached_total_individuals, "</strong>", "</span>",
"<br>", "Total females reached by GBV in this camp: ", "<strong>", '<span style="color:green">', gbv_camps$reached_total_female_individuals, "</strong>", "</span>",
"<br>", "Total males reached by GBV in this camp: ", "<strong>", '<span style="color:green">', gbv_camps$reached_total_male_individuals, "</strong>", "</span>",
"<br>", "Total girls GBV beneficiaries <18 in this camp: ", "<strong>", '<span style="color:green">', gbv_camps$total_girls_beneficiaries_below_18, "</strong>", "</span>",
"<br>", "Total boys GBV beneficiaries <18 in this camp: ", "<strong>", '<span style="color:green">', gbv_camps$total_boys_beneficiaries_below_18, "</strong>", "</span>",
"<br>", "Total women GBV benef. 18-59 in this camp: ", "<strong>", '<span style="color:green">', gbv_camps$total_women_beneficiaries_18_59, "</strong>", "</span>",
"<br>", "Total men GBV beneficiaries 18-59 in this camp: ", "<strong>", '<span style="color:green">', gbv_camps$total_men_beneficiaries_18_59, "</strong>", "</span>",
"<br>", "Total women GBV beneficiaries >59 in this camp: ", "<strong>", '<span style="color:green">', gbv_camps$total_elderly_women_beneficiaries_above_59, "</strong>", "</span>",
"<br>", "Total men GBV beneficiaries >59 in this camp: ", "<strong>", '<span style="color:green">', gbv_camps$total_elderly_men_beneficiaries_above_59, "</strong>", "</span>",
"<br>", "No of GBV implementing partner in this camp: ", "<strong>", '<span style="color:green">', gbv_camps$no_implementing_partner, "</strong>", "</span>",
"<br>", "Data source <span style='color:blue'> (as of Feb 2021): <a href='https://data.humdata.org/dataset/site-location-of-rohingya-refugees-in-cox-s-bazar/resource/d947b032-aa5b-4404-9fe9-9cb7c3ac93cf'>RRRC-UNHCR </a>",
"<br>"
)
) %>%
addLayersControl(baseGroups = c("Open SM", "Toner Lite", "World Imagery"), overlayGroups = c("Virtual boundary", "Graticule", "Rohingya camps", "Rohingya camps with GBV services"), options = layersControlOptions(collapsed = FALSE)) %>%
addControl(title, position = "topleft", className = "map-title") %>%
addMiniMap(toggleDisplay = TRUE, tiles = providers$OpenStreetMap)
## Warning: Unknown or uninitialised column: `Settlement Type`.
## Warning: Unknown or uninitialised column: `District`.
## Warning: Unknown or uninitialised column: `Upazila`.
## Warning: Unknown or uninitialised column: `Union`.
## End