Skip to contents

DOI

This dataset contains water point assessment data collected during an emergency flood response in Malawi between 2019 and 2020. The survey was conducted under the BASEflow program to evaluate the status, functionality, and safety of water points affected by flooding events.

Data collection and subsequent data cleaning were conducted using the mWater platform. The dataset includes geospatial coordinates, functionality status, user population estimates, reported mechanical and structural issues, pumping performance metrics, sediment observations, and field-based water quality test information.

The survey covered the following districts in Malawi:

  • Zomba

  • Mangochi

  • Chikwawa

  • Balaka

  • Nsanje

  • Blantyre

  • Machinga

The primary purpose of this dataset is to support emergency response planning, infrastructure rehabilitation prioritization, and monitoring of rural water supply systems in flood-affected areas.

This dataset can be used for:

  1. Humanitarian WASH (Water, Sanitation, and Hygiene) response analysis

  2. Geospatial mapping of water point functionality

  3. Infrastructure vulnerability assessments

  4. Evidence-based resource allocation during disaster recovery

Installation

You can install the development version of mwefloodresponse from GitHub with:

# install.packages("devtools")
devtools::install_github("openwashdata/mwefloodresponse")
## Run the following code in console if you don't have the packages
## install.packages(c("dplyr", "knitr", "readr", "stringr", "gt", "kableExtra"))
library(dplyr)
library(knitr)
library(readr)
library(stringr)
library(gt)
library(kableExtra)

Alternatively, you can download the individual datasets as a CSV or XLSX file from the table below.

  1. Click Download CSV. A window opens that displays the CSV in your browser.
  2. Right-click anywhere inside the window and select “Save Page As…”.
  3. Save the file in a folder of your choice.
dataset CSV XLSX
mwefloodresponse Download CSV Download XLSX

Data

The package provides access to water point assessment data collected during an emergency flood response in Malawi between 2019 and 2020.

metadata

The dataset mwefloodresponse contains 319 observations and 40 variables

mwefloodresponse |> 
  head(3) |> 
  gt::gt() |>
  gt::as_raw_html()
submitted_on district community people_using photo_water_point latitude longitude depth currently_submerged likely_submerged functional_status water_pump_possible problems_reported water_quality_problems civil_works_problems photo_civil_works pump_problems photo_pump_problems pump_operational_feel time_to_pump_20l strokes_to_yield sediment_presence water_quality_tests electrical_conductivity conductivity_units total_dissolved_solids ph temperature_c turbidity_tube turbidity_tube_units turbidity_electronic_ntu comments microbiological_test test_method sample_type sample_date color_change_mpn color_change_upper95 color_change_health color_change_image
4/5/2019 Nsanje Sandram village 0 https://api.mwater.co/v3/images/06b48d45a7e447ba8f95d763f9820ea5; https://api.mwater.co/v3/images/26cc941b0cc248eeb53189bba709e7d2 -16.46502 35.18280 48.0 No Yes Not functional NA Soil erosion or collapse around the water point, Damage or problem with pump NA NA NA Pump loose at the point of attachment, Damage to pump head or handle https://api.mwater.co/v3/images/c8377d0c3efa43c188aab9fd89cc2fe1 Handle cannot be moved NA NA NA NA NA NA NA NA NA NA NA NA No water coming out of the borehole, it hasn’t been functional for about a year NA NA NA NA NA NA NA NA
4/7/2019 Nsanje Khope scho 358 https://api.mwater.co/v3/images/0ab79f294201470395abbe65e637f8bf; https://api.mwater.co/v3/images/a27544c1609f40fcb68ace6b53fc2c53 -16.64987 35.19275 NA No No Partially functional but in need of repair Yes Water quality, Damage to civil works - platform, well head, riser etc Bad taste, Salinity / saltiness Platform cracked or damaged , Pedestal cracked or damaged, Drainage channel cracked, broken, or in need of cleaning, Fence/barrier is missing or damaged https://api.mwater.co/v3/images/af75be3379634e9a8e9a644c9bb64330 NA NA Significant friction (very stiff) on up stroke, Significant friction (very stiff) at all times, Can only be moved with extreme force, Significant sideways movement on handle (loose/wobbly) 204.214 5 Present Electrical conductivity (EC), pH, Temperature, Turbidity (by Turbidity Tube), Turbidity (by electronic turbidimeter), Microbiological or fecal indicator test 9.15 μS / cm NA 7.8 35.7 5 JTU NA The bolehole is totally broken down when pumping water so many rickadges making water difficult to feel the 20 little backet E. coli Aquagenx Compartment Bag Test (CBT) Point of collection 4/6/2019 100 9435.1 unsafe https://api.mwater.co/v3/images/45608ae9ae8f47189ad3e3914541b2ee
4/7/2019 Nsanje Khope school 1065 https://api.mwater.co/v3/images/37e765754f3c4785a030a7339c5fa4a3; https://api.mwater.co/v3/images/2f1d237eb79e4dfc9f10e09ba5a13a91 -16.64930 35.19196 38.7 No No Partially functional but in need of repair Yes Water quality Bad taste, Salinity / saltiness NA NA NA NA Very light 58.956 2 Absent Electrical conductivity (EC), pH, Temperature, Turbidity (by Turbidity Tube) 4.36 mS / cm NA 7.6 33.5 5 JTU NA The person I talked to complained about salty water said they used the water just for washing E. coli Aquagenx Compartment Bag Test (CBT) Point of collection 4/5/2019 100 9435.1 unsafe https://api.mwater.co/v3/images/68e2c5cada9b4d3186f4ebde835a5f2f

For an overview of the variable names, see the following table.

readr::read_csv("data-raw/dictionary.csv") |>
  dplyr::filter(file_name == "mwefloodresponse.rda") |>
  dplyr::select(variable_name:description) |> 
  knitr::kable() |> 
  kableExtra::kable_styling("striped") |> 
  kableExtra::scroll_box(height = "200px")
#> Rows: 40 Columns: 5
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (5): directory, file_name, variable_name, variable_type, description
#> 
#> ℹ 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.
variable_name variable_type description
submitted_on character Date and time the survey record was submitted
district character Administrative district where the water point is located
community character Name of the local community or village
people_using numeric Number of people currently using the water point
photo_water_point character link of photo showing the water point
latitude numeric GPS latitude of the water point
longitude numeric GPS longitude of the water point
depth numeric Measured depth of the water source
currently_submerged character Indicator of whether the water point is submerged at the time of survey
likely_submerged character Assessment of whether the water point was submerged during the recent flooding
functional_status character Operational status of the water point
water_pump_possible character Ability to pump water at the time of the visit
problems_reported character Observed or reported problems at the water point
water_quality_problems character Issues affecting water quality
civil_works_problems character Problems affecting the water point infrastructure
photo_civil_works character link of photo showing civil works problems
pump_problems character Problems observed with the water pump
photo_pump_problems character link of photo showing pump problems
pump_operational_feel character Subjective assessment of the pump operation
time_to_pump_20l numeric Time taken to pump 20 liters of water
strokes_to_yield numeric Number of strokes required to yield water
sediment_presence character Presence or absence of sediment in the water
water_quality_tests character Field tests performed on water quality
electrical_conductivity numeric Measured electrical conductivity of the water
conductivity_units character Units used for electrical conductivity measurement
total_dissolved_solids numeric Measured total dissolved solids in water
ph numeric Measured pH of the water
temperature_c numeric Water temperature in Celsius
turbidity_tube numeric Turbidity measured using a tube method
turbidity_tube_units character Units used for turbidity tube measurement
turbidity_electronic_ntu numeric Turbidity measured using an electronic turbidimeter
comments character Additional observations recorded by the surveyor
microbiological_test character Type of microbiological test performed
test_method character Method used to perform the microbiological test
sample_type character Type of water sample collected
sample_date character Date the water sample was collected
color_change_mpn numeric MPN count from color-change test indicating bacterial contamination
color_change_upper95 numeric Upper 95 percent confidence interval for MPN count
color_change_health character Health risk classification based on color-change results
color_change_image character link of photo showing compartments that changed color

Example

library(mwefloodresponse)

# Visualization 1: Map of Water Points
# Show waterpoint functionality
# Load required libraries
library(leaflet)
library(dplyr)
library(htmltools)
library(scales)

# Validate coordinates
df <- mwefloodresponse %>%
  mutate(
    latitude = as.numeric(latitude),
    longitude = as.numeric(longitude),
    people_using = as.numeric(people_using)
  ) %>%
  filter(!is.na(latitude), !is.na(longitude))

# Assign specific colors to each functional status category
status_pal <- colorFactor(
  palette = c(
    "Functional" = "green",
    "Partially Functional" = "orange",
    "Not Functional" = "red"
  ),
  domain = df$functional_status
)

# Rescale number of people using the water point
# Bubble size will range between 4 and 15
df <- df %>%
  mutate(
    people_scaled = rescale(people_using, to = c(4, 15))
  )

# Displays district, community, status, population, problems, and water quality result
df <- df %>%
  mutate(
    popup_content = paste0(
      "<b>District:</b> ", district, "<br>",
      "<b>Community:</b> ", community, "<br>",
      "<b>Functional Status:</b> ", functional_status, "<br>",
      "<b>People Using:</b> ", people_using, "<br>",
      "<b>Problems Reported:</b> ", 
        ifelse(is.na(problems_reported), "None reported", problems_reported), "<br>",
      "<b>Water Quality Result:</b> ", 
        ifelse(is.na(color_change_health), "No test result", color_change_health)
    )
  )

leaflet(df) %>%
  
  # Add base map tiles
  addProviderTiles("CartoDB.Positron") %>%
  
  # Add circle markers for each water point
  addCircleMarkers(
    lng = ~longitude,                  
    lat = ~latitude,                   
    radius = ~people_scaled,           
    fillColor = ~status_pal(functional_status),  
    color = "#333333",                 
    weight = 1,                        
    fillOpacity = 0.8,                 
    popup = ~HTML(popup_content)      
  ) %>%
  
  # Add legend to explain functional status colors
  addLegend(
    "bottomright",
    pal = status_pal,
    values = ~functional_status,
    title = "Functional Status",
    opacity = 1
  )

License

Data are available as CC-BY.

Citation

Please cite this package using:

citation("mwefloodresponse")
#> To cite package 'mwefloodresponse' in publications use:
#> 
#>   Mhango E (2026). _mwefloodresponse: Malawi Emergency Flood Response
#>   Water Point Survey (2019–2020)_. R package version 0.0.0.9000,
#>   <https://github.com/openwashdata/mwefloodresponse>.
#> 
#> A BibTeX entry for LaTeX users is
#> 
#>   @Manual{,
#>     title = {mwefloodresponse: Malawi Emergency Flood Response Water Point Survey (2019–2020)},
#>     author = {Emmanuel Mhango},
#>     year = {2026},
#>     note = {R package version 0.0.0.9000},
#>     url = {https://github.com/openwashdata/mwefloodresponse},
#>   }