Estimating Typhoon Uwan’s Exposure – A Manual Analysis Under Pressure #

Characteristics of the exercise #

Type of trainings exercise:

  • This exercise can be used in online and presence training.

  • It can be done as a follow-along exercise or individually as a self-study.

  • It works well as a scenario exercise: participants play the GIS team of a National Society in the first days of a typhoon emergency.

Exercise Track:

This exercise is part of the Philippines Typhoon Response Exercise Track

Estimated time demand for the exercise

  • Tasks 1–6 (hazard zone): approx. 30 minutes

  • Tasks 7–13 (population and health sites): approx. 60 minutes

  • Tasks 14–16 (visualisation, prior impact, export): approx. 45 minutes

  • Discussion: 20–30 minutes

Aim of the exercise: In this exercise you will estimate, step by step and without a model, how many people and how many health facilities lie within 200 km of the track of Typhoon Uwan (Fung-wong, November 2025). Finally, you will flag which provinces had already been hit by Typhoon Tino a few days earlier, because these are the places where response capacity is most stretched.

Instructions for the trainers #

Trainers Corner

Prepare the training

  • Take the time to familiarise yourself with the exercise and the provided material. Run through all tasks once yourself and note down your results. They will be useful as reference values for participants (see Results).

  • Prepare a white-board. It can be either a physical whiteboard, a flip-chart, or a digital whiteboard (e.g. Miro board) where the participants can add their findings and questions.

  • Before starting the exercise, make sure everybody has installed QGIS and has downloaded and unzipped the data folder.

  • Ask participants about their computer specifications beforehand. The population raster for the whole Philippines is a few hundred MB. On slow machines, consider providing a raster already cut to Luzon.

  • Check out How to do trainings? for some general tips on facilitating trainings.

Conduct the training

Introduction (scenario briefing):

  • Introduce the context (see the Context box below). Make clear that participants are standing at the beginning of the emergency: the earthquake and Typhoon Tino have already happened, and Typhoon Uwan is approaching.

  • Before opening QGIS, ask the group:

    • Which operations have you been part of where information management helped you, or where it was missing?

    • What can we do with GIS at this stage of the emergency?

    • What would the different sectors or clusters (shelter, health, food security and livelihoods, logistics) need to know from us?

    • Which data would we need, and where could we find it? Collect the answers on the whiteboard and compare them afterwards with the datasets in the folder.

    • Do we have a 3W (Who does What Where) map? Where would we look for previous situation reports?

  • Short comment: if a map is only available as an image or PDF (for example in a situation report), the Georeferencer can be used to bring it into QGIS.

Follow-along:

  • Show and explain each step yourself at least twice and slow enough so everybody can see what you are doing, and follow along in their own QGIS-project.

  • Make sure that everybody is following along and doing the steps themselves by periodically asking if anybody needs help or if everybody is still following.

  • Be open and patient to every question or problem that might come up. Your participants are essentially multitasking by paying attention to your instructions and orienting themselves in their own QGIS-project.

  • Many participants will create a buffer for the first time in Task 6. Take a moment to explain what a buffer is before moving on. When you get to the note after Task 6, point out that the 200 km buffer is a simplification and show where to find the literature on wind radii.

  • Tasks 8 to 12 repeat the same logic for different datasets. Once participants have understood the population steps, faster participants can continue on their own while you support the others.

Wrap up:

  • Use the discussion questions in the Results section.

  • Point out that every step done manually here can later be automated with the Model Designer (see the Madagascar exercise track).

  • Leave some time for open questions.

Trainers Corner: Preparing the data folder

The data folder should follow the standard folder structure. The following files are expected in data/input (paths relative to this folder). The file names below are the names used in the instructions; rename the downloaded files accordingly.

File name in exercise

How to prepare it

IBTrACS.last3years.list.v04r01.lines/IBTrACS.last3years.list.v04r01.lines.shp

Download the last3years lines shapefile (IBTrACS.last3years.list.v04r01.lines.zip) from the IBTrACS v04r01 shapefile folder and unzip it into its own folder. It contains all storms worldwide of the last three years, which keeps the file small but still requires participants to find the right storm.

admin_boundaries/phl_admin_boundaries.shp/phl_admin2.shp

Download the shapefile version of the administrative boundaries from HDX (COD-AB Philippines) and unzip it. We use admin level 2 (provinces, phl_admin2.shp). Check that the fields adm2_name and adm2_pcode exist.

worldpop/phl_pop_2015_CN_100m_R2025A_v1.tif

Download the constrained population count raster at 100 m resolution from HDX (WorldPop Philippines).

phl_healthsites_osm.gpkg

Export health facilities for the Philippines with the HOT Export Tool (or download them from healthsites.io). Keep the fields name, amenity and healthcare. Convert polygons to points (centroids) so that all facilities are points.

optional: worldpop/phl_agesex_structures_2015_CN_1km_R2025A_UA_v1.zip

For the optional vulnerability extension: WorldPop age and sex structures. Use the 1 km version to save space.

Note: 2025 storms are still provisional tracks in IBTrACS and are usually replaced by reanalysed best tracks within about two years. If you rebuild the data folder later, check whether the track or the wind radii fields (used in the optional wind radii method) have changed.

Available Data #

Download all datasets here, save the folder on your computer and unzip the file.

https://nexus.heigit.org/repository/gis-training-resource-center/TODO_PHL_UWAN_DATA.zip

The folder contains the whole standard folder structure with all data in the input folder and the additional documentation in the documentation folder.

Note

All intermediate results of this exercise are saved in the data → interim folder. In some versions of the folder structure, this folder is called temp. If you have a temp folder instead, use that one.

Dataset

Source

Description

Tropical cyclone tracks

International Best Track Archive for Climate Stewardship (IBTrACS)

The tracks of all storms worldwide of the last three years as lines. Each line segment contains the storm name, time, wind speed and the wind radii reported by the different agencies. Tracks from 2025 are provisional.

Administrative boundaries

HDX

Province boundaries (admin level 2) of the Philippines, provided by OCHA.

Population

WorldPop

Estimated number of people per 100 m grid cell for 2015 (constrained to built-up areas). This is a modelled dataset, not a census count.

Health facilities

HOT Export Tool

Health facilities from OpenStreetMap. Completeness depends on how well an area has been mapped.

Context

../_images/IFRC-icons-colour_SURGE.png

It is 7 November 2025. About a month ago, a magnitude 6.9 earthquake struck Cebu. Between 4 and 5 November, Typhoon Tino (Kalmaegi) made multiple landfalls across the Visayas and Palawan, causing flooding, landslides and widespread damage. Volunteers, staff and relief stocks are already committed to these two operations.

Now a second storm, Typhoon Uwan (Fung-wong), is intensifying east of the Philippines and heading towards Luzon. The Philippine Red Cross has just activated its Early Action Protocol for typhoons. Interestingly, the protocol was not activated for Tino a week earlier.

You work in the information management team of the Philippine Red Cross. The operations team asks you one question:

Where will Uwan hit people and health services the hardest, and which of these places are already struggling after Tino?

There is no time to build an automated model. You have to do the analysis by hand, quickly and in a way you can explain to the operations team.

Reports on the events

../_images/en_PHL_UWAN_report_ERCC_earthquake_20251010.png

ERCC – DG ECHO Daily Map of the 7.4 M and 6.7 M earthquakes off Mindanao, 10 October 2025. The inset also shows the 6.9 M Cebu earthquake of 30 September. Source: European Commission, JRC.#

../_images/en_PHL_UWAN_report_ADAM_kalmaegi_20251103.png

ADAM alert for Tropical Cyclone Kalmaegi (Tino), 3 November 2025, with wind buffers of 60, 90 and 120 km/h. Source: WFP ADAM, in collaboration with JRC.#

../_images/en_PHL_UWAN_report_ADAM_fungwong_20251106.png

ADAM alert for Tropical Cyclone Fung-wong (Uwan), 6 November 2025, with wind buffers of 60, 90 and 120 km/h. Source: WFP ADAM, in collaboration with JRC.#

../_images/en_PHL_UWAN_report_PDC_JADE_20251109.png

Joint Analysis of Disaster Exposure (JADE) for Typhoon Fung-wong (Uwan), advisory 19, 9 November 2025. Source: PDC Global and OCHA.#

../_images/en_PHL_UWAN_report_OCHA_snapshot_20251111.png

Humanitarian snapshot of Tropical Cyclones Kalmaegi (Tino) and Fung-wong (Uwan), as of 11 November 2025. Source: OCHA.#

Note

In this exercise we use the observed IBTrACS track of Uwan and treat it as if it were the latest forecast. In a real operation you would work with forecast tracks and wind fields from PAGASA, JTWC or JMA, which change with every update.

Tasks: #

Part A – Preparing the hazard: from storm track to hazard zone#

  1. Open QGIS and create a new project by clicking on Project → New.

  2. Save the project in the project folder. Click on Project → Save as, navigate to the folder and name the project Typhoon_Uwan_Exposure.

  3. Add the OpenStreetMap basemap for orientation. Click on Layer → Add Layer → Add XYZ Layer..., select OpenStreetMap and click Add. Alternatively, open XYZ Tiles in the Browser panel and double-click on OpenStreetMap (Wiki basemap). Keep the basemap at the bottom of the Layers panel.

  4. Load the storm tracks and find Uwan:

    • Load IBTrACS.last3years.list.v04r01.lines.shp from data → input → IBTrACS.last3years.list.v04r01.lines by drag and drop (Wiki Video).

    • Open the attribute table and look at the fields. Find NAME, ISO_TIME (time in UTC) and USA_WIND (maximum wind speed in knots).

    • The layer contains every storm worldwide of the last three years. Untick the box next to IBTrACS.last3years.list.v04r01.lines in the Layers panel to make it invisible while we filter it.

    • Right-click on IBTrACS.last3years.list.v04r01.lines → Filter.... The Query Builder opens.

    • In the Fields list, double-click on NAME. It appears in the expression box at the bottom.

    • Click on the = button.

    • Under Values, click on All. This loads all storm names in the dataset.

    • Type FUNG in the search field under Values and double-click on FUNG-WONG. The expression now reads "NAME" = 'FUNG-WONG'.

    • Click OK.

    • Tick the box next to IBTrACS.last3years.list.v04r01.lines again. Only the track of Uwan is now visible. The filter icon next to the layer name shows that the layer is filtered. Processing tools only use the features that pass the filter, so every tool we run on this layer from now on only works with Uwan.

    • Save the filtered track as its own file. Like this, we do not change the IBTrACS.last3years.list.v04r01.lines layer, and we can always come back to it and filter it again.

      • Right-click on IBTrACS.last3years.list.v04r01.lines → Export → Save Features As…

      • Format: GeoPackage

      • File name: click on the … button, navigate to data → interim and name the file Storm_Track_Fung_Wong.

      • Layer name: change it to Storm_Track_Fung_Wong.

      • Make sure Add saved file to map is ticked and click OK.

../_images/qgis_3.44_module_5_phl_uwan_ex_1_task_1_filter.png

The query builder in QGIS 3.44 to filter the storm tracks.#

Tip

Uwan is the local Philippine name (assigned by PAGASA). IBTrACS uses the international name, Fung-wong. Storm names are reused over the years, so when you work with the full IBTrACS archive, always combine the name with the season, e.g. "SEASON" = 2025 AND "NAME" = 'FUNG-WONG'. If the filter returns nothing, check the spelling of the name in the attribute table.

../_images/qgis_3.44_module_5_phl_uwan_ex_1_task_1.png

Your QGIS map canvas should resemble this.#

  1. Reproject the storm track to a CRS that uses metres. The IBTrACS data is in degrees, and a buffer distance in kilometres can only be calculated correctly in a CRS that measures in metres.

    • In the Processing Toolbox, search for Reproject Layer.

    • Input: Storm_Track_Fung_Wong

    • Target CRS: EPSG:32651 (WGS 84 / UTM zone 51N, which covers Luzon)

    • Save the result in the interim folder as Storm_Track_Fung_Wong_32651

Attention

Buffer distances must be calculated in a CRS that measures in metres. The IBTrACS data uses EPSG:4326, which measures in degrees. Always reproject to a projected CRS before buffering.

  1. Buffer the storm track. A buffer is a zone of a fixed distance around a feature. Here we draw a zone of 200 km around the track and treat everything inside it as exposed to the storm.

    • In the Processing Toolbox, search for Buffer.

    • Input: Storm_Track_Fung_Wong_32651

    • Distance: 200 and set the unit next to it to kilometers

    • Segments: leave default (5)

    • Dissolve result: Yes

    • Save the output in the interim folder as Uwan_Buffer_200km

../_images/qgis_3.44_module_5_phl_uwan_ex_1_task_1_buffer_dialogue.png

Buffer dialogue for the storm track in QGIS 3.44.#

Intermediate Result: Buffer

The intermediate result shows the track of Uwan and a 200 km wide zone on each side of it. The buffer must be a single feature.

../_images/qgis_3.44_module_5_phl_uwan_ex_1_task_1_buffer_result.png

Your buffer should look similar to the picture.#

Going further: Wind zones from the reported wind radii (optional)

Instead of one fixed 200 km buffer, you can use the size of the wind field that was reported along the track. IBTrACS gives the 34-knot radius (gale-force winds, about 63 km/h) and the 64-knot radius (typhoon-force winds, about 118 km/h) for four quadrants (NE, SE, SW, NW), in nautical miles. Each line segment of the track carries the wind radii reported at its start.

  1. Calculate the wind radii in metres.

    • Open the Field Calculator on the layer Storm_Track_Fung_Wong_32651.

    • Create a new field: name r34_m, type Decimal number (real).

    • Expression:

      max(
        coalesce("USA_R34_NE", 0),
        coalesce("USA_R34_SE", 0),
        coalesce("USA_R34_SW", 0),
        coalesce("USA_R34_NW", 0)
      ) * 1852
      
    • Click OK.

    • Repeat the same for a field r64_m, replacing R34 with R64 in all four field names.

    • Save your edits and switch off editing mode.

  2. Buffer the track with the wind radii (34-knot zone):

    • In the Processing Toolbox, search for Buffer.

    • Input: Storm_Track_Fung_Wong_32651

    • Distance: click the Data defined override button next to the distance field, choose Field type: int, double and select r34_m.

    • Segments: leave default (5)

    • Dissolve result: Yes

    • Save the output in the interim folder as Uwan_Zone_34kt

  3. Repeat the buffer for the 64-knot zone using the field r64_m. Save the output as Uwan_Zone_64kt.

The 34-knot zone is a corridor along the track that changes its width as the storm develops. The 64-knot zone is a much narrower corridor in its centre and only exists where Uwan had typhoon strength. You can run Part B with these two zones instead of Uwan_Buffer_200km and compare the results.

Why max, coalesce and 1852?

  • 1852 converts nautical miles to metres (1 nautical mile = 1852 m).

  • max(...) takes the largest of the four quadrants. This turns the asymmetric wind field into a circle that is as large as the widest quadrant. It is a cautious simplification, because the real wind field is not a circle.

  • coalesce(field, 0) replaces missing values with 0. Early and late parts of a storm often have no wind radii, and without coalesce the whole result would become empty (NULL).

Part B – Who and what is exposed?#

Great, you now have the area that is potentially exposed to Typhoon Uwan! But the operations team does not plan with buffers. They need to know how many people are potentially exposed and where they are. In this part we therefore combine the buffer with the administrative boundaries and find out, for every province, how much of the population lies inside the buffer and which health facilities, especially hospitals, are potentially exposed to the coming typhoon.

We add the results one after another to the province layer. Each processing step creates a new layer that contains all previous columns plus the new one, so at the end you have one layer with all results.

  1. Load the base data:

    • phl_admin2.shp from data → input → admin_boundaries → phl_admin_boundaries.shp

    • phl_pop_2015_CN_100m_R2025A_v1.tif from data → input → worldpop (Layer → Add Layer → Add Raster Layer)

  2. Calculate the total population per province. We need it later to calculate what share of each province’s population is exposed.

    • In the Processing Toolbox, search for Zonal Statistics.

    • Input layer: phl_admin2

    • Raster layer: phl_pop_2015_CN_100m_R2025A_v1

    • Field prefix: pop_total_

    • Statistics to calculate: Sum only

    • Save the output in the interim folder as admin2_pop_sum

  3. Clip the population raster to the buffer:

    • In the Processing Toolbox, search for Clip Raster by Mask Layer.

    • Input layer: phl_pop_2015_CN_100m_R2025A_v1

    • Mask layer: Uwan_Buffer_200km

    • Save the output in the interim folder as Uwan_Pop_200km

Tip

The population raster is in EPSG:4326 and the buffer is in EPSG:32651. Clip Raster by Mask Layer handles the difference automatically. If you run into problems, reproject the buffer to EPSG:4326 first, as done in the Madagascar exercise.

Intermediate Result: Clipped population

Only the population inside the 200 km buffer should remain visible.

  1. Calculate the exposed population per province:

    • Run Zonal Statistics again.

    • Input layer: admin2_pop_sum

    • Raster layer: Uwan_Pop_200km

    • Field prefix: pop200_

    • Statistics: Sum

    • Save as admin2_pop_exposed

  2. Calculate the share of exposed people. Open the Field Calculator on admin2_pop_exposed and create a new decimal field pop200_pct:

    round("pop200_sum" / "pop_total_sum" * 100, 1)
    

    Provinces that are completely outside the buffer have no value (NULL) in pop200_sum, so they also get NULL in pop200_pct. Read these as 0 % exposed.

Why look at both numbers?

The absolute number (pop200_sum) shows where most people are affected, which matters for the size of the response. The percentage (pop200_pct) shows which provinces are hit almost completely, which matters because neighbouring areas in the same province cannot easily support them. A large province with many exposed people and a small province where nearly everyone is exposed can both be priorities, for different reasons.

  1. Count the exposed health facilities.

    • Load phl_healthsites_osm.gpkg.

    • In the Processing Toolbox, search for Extract by location.

    • Extract features from: phl_healthsites_osm

    • Where the features: intersect

    • By comparing to the features from: Uwan_Buffer_200km

    • Save as Uwan_Healthsites_200km

    • In the Processing Toolbox, search for Count points in polygon.

    • Polygons: admin2_pop_exposed, Points: Uwan_Healthsites_200km, Count field name: hs200. Save the result in the output folder as Uwan_Exposure_Provinces.

  2. Look at the hospitals in the buffer. Open the attribute table of Uwan_Healthsites_200km. Use Select by expression with "amenity" = 'hospital' to see which hospitals lie within the buffer. Hospitals close to the track are the facilities whose functioning is most at risk and which the health team should contact first.

Note

OpenStreetMap coverage in the Philippines is comparatively good because of many past mapping activities, but it is not complete. A province with zero health facilities in the result may simply be poorly mapped. Compare with official facility lists (e.g. from the Department of Health) where possible.

Part C – Making the results usable#

  1. Visualise the exposed population.

    • Right-click on Uwan_Exposure_Provinces → Properties → Symbology.

    • Change Single Symbol to Graduated.

    • Value: pop200_sum

    • Colour ramp: e.g. Reds

    • Mode: e.g. Natural Breaks (Jenks) with 5 classes

    • Click Classify, then OK.

    • Add Storm_Track_Fung_Wong and Uwan_Buffer_200km (with a transparent fill) on top, so the reader can see where the storm passed.

Tip

Duplicate the layer (right-click → Duplicate Layer) to make a second map of pop200_pct or hs200 without losing your first style. See Module 4 for more on styling and print layouts.

  1. Flag provinces already hit by Typhoon Tino. This is the step that brings the stretched capacity into the analysis.

    • Right-click on IBTrACS.last3years.list.v04r01.lines → Filter... and change the filter to "NAME" = 'KALMAEGI'. The Uwan track is already saved as its own file, so it is not affected.

    • Export the filtered layer as in Task 4 and save it in data → interim as Storm_Track_Kalmaegi.

    • Repeat Tasks 5 and 6 with Storm_Track_Kalmaegi as input. Save the reprojected track as Storm_Track_Kalmaegi_32651 and the buffer as Tino_Buffer_200km.

    • Use Select by Location to select all features of Uwan_Exposure_Provinces that intersect Tino_Buffer_200km.

    • Open the Field Calculator on Uwan_Exposure_Provinces, make sure Only update selected features is unchecked, and create a new integer field tino_hit:

      if(is_selected(), 1, 0)
      
    • Save your edits and clear the selection.

    • Symbolise these provinces with a hatched outline on top of your population map.

Going further: other information on stretched capacity

Tino is only one part of the picture. If available, you could also add:

  • the provinces affected by the Cebu earthquake,

  • a 3W map showing where Red Cross and partner teams are currently deployed,

  • the locations of warehouses with pre-positioned stock (see Exercise 7 of the Madagascar track for an accessibility analysis).

  1. Export the results for the operations team.

    • Right-click on Uwan_Exposure_Provinces → Export → Save Features As…

    • Format: Comma Separated Value [CSV]

    • Under Select fields to export, keep adm2_name, adm2_pcode, pop_total_sum, pop200_sum, pop200_pct, hs200 and tino_hit.

    • Save it in the output folder as Uwan_Exposure_Provinces.csv.

    • Open the CSV in a spreadsheet and sort by pop200_sum. These are the first provinces you would report.

Optional extension: Who is most vulnerable?#

Repeat Tasks 9 and 10 with the WorldPop age and sex rasters (e.g. children under 5 and people over 65). This helps the shelter and health teams estimate how many people will need extra support during evacuation.

Results #

Your final layer Uwan_Exposure_Provinces contains, for every province, the total population, the population within 200 km of the track, the share of exposed people, the number of exposed health facilities and a flag for previous impact by Tino.

Reference values (for trainers)

Indicator

Value

Population within 200 km of the track

Health facilities within 200 km of the track

Hospitals within 200 km of the track

Provinces in the buffer also hit by Tino

Discussion #

  • We used a fixed 200 km buffer. Where would it overestimate or underestimate the area hit by strong winds? How could the reported wind radii improve the analysis (see the dropdown after Task 6)?

  • Exposure is not impact. What is missing from this analysis to say how badly people will be affected (e.g. housing quality, poverty, previous damage)?

  • Our analysis only looks at wind. Uwan also brought heavy rain, storm surge, landslides and lahar flows. Which areas might be hit hard even though they are outside the buffer? Which additional data would you need?

  • The operations team can only support a few provinces. How would you combine the absolute numbers, the percentages and the tino_hit flag to suggest priorities?

  • The EAP was activated for Uwan but not for Tino, although both caused severe damage. What does that tell you about triggers and about the limits of forecasts?

  • Which steps of this exercise would you automate first if a similar storm came next week?