Lake Rotorua Integrated Modelling — Project Update

PC10 Support: Hydrological Pilot

Tadhg Moore

Limnotrack & UoW

Chris McBride

Limnotrack

2026-04-21

Project Overview

  • Overarching goal: Develop an integrated catchment–lake modelling framework to support PC10 review and implementation
  • Two workstreams running in parallel:
    • Workstream 1 — Catchment (SWAT+gwflow): Pilot application in three sub-catchments (Puarenga, Hamurana, Waingaehe) to simulate nutrient transport via surface runoff and groundwater pathways; running November 2025 – April 2026
    • Workstream 2 — Lake (GLM-AED): Upgrade of the lake model to GLM-AED via the AEME framework, enabling improved simulation of vertical mixing, nutrient cycling, sediment feedbacks, and climate scenarios; calibration underway with initial climate scenarios targeted by September 2026
  • Two-phase programme:
    • Phase 1 (current): Pilot catchment models + lake model upgrade and calibration
    • Phase 2 (future): Full catchment-scale SWAT+gwflow coupled with lake model for scenario simulation at scale — contingent on Phase 1 outcomes

This update

Covers Phase 1 progress across both workstreams: catchment model setup and stability testing, and lake model data pipeline and climate forcing preparation.

Overview

%%{init: {'theme': 'base', 'themeVariables': {'fontSize': '14px'}}}%%
flowchart TD
    PC10["🎯 PC10 Support<br/>Nutrient management & policy scenarios"]

    PC10 --> P1["Phase 1 — Current"]

    P1 --> WS1["Workstream 1<br/>Catchment — SWAT+gwflow"]
    P1 --> WS2["Workstream 2<br/>Lake model — GLM-AED"]

    %% Workstream 1
    WS1 --> DI1["✅ Data inputs<br/>LiDAR, LCDBv6, GLHYMPS, ERA5"]
    DI1 --> PC["🟡 3 Pilot catchments<br/>Puarenga 40yr run ✓<br/>Hamurana, Waingaehe"]
    PC --> SWGW["🟡 SW–GW interaction<br/>gwflow grid & HRU mapping<br/>Single unconfined layer"]
    SWGW --> CAL["🔴 Calibration & lag analysis<br/>NO₃⁻ transport, MRT<br/>Lake-edge chemistry"]
    CAL --> SC["🔴 Phase 2 scaling decision<br/>Full catchment rollout"]

    %% Workstream 2
    WS2 --> DI2["✅ Observational data<br/>CTD, buoy, lake level<br/>Chemistry 1989–2025"]
    DI2 --> CLIM["✅ Climate forcing<br/>7 GCMs × 4 SSPs<br/>ERA5, VCSN, CMIP6"]
    CLIM --> BASE["🟡 Baseline calibration<br/>Hypsograph corrected<br/>BGC modules, water balance"]
    BASE --> ALUM["🔴 Alum–P module<br/>UWA collaboration<br/>Al speciation, pH/T dependence"]
    ALUM --> SCEN["🔴 Scenario simulations<br/>Climate + management"]

    %% Converge
    SC --> OUT
    SCEN --> OUT["Integrated outputs<br/>Climate scenarios, nutrient projections<br/>Rotoiti advice"]

    OUT -.-> P2["Phase 2 — Future, contingent<br/>Full catchment + lake coupling"]

    %% Styling
    classDef complete fill:#E1F5EE,stroke:#0F6E56,color:#085041
    classDef inprogress fill:#FAEEDA,stroke:#854F0B,color:#633806
    classDef pending fill:#F1EFE8,stroke:#5F5E5A,color:#444441
    classDef header fill:#EEEDFE,stroke:#534AB7,color:#26215C
    classDef phase fill:#D3D1C7,stroke:#5F5E5A,color:#2C2C2A

    class DI1,DI2,CLIM complete
    class PC,SWGW,BASE inprogress
    class CAL,SC,ALUM,SCEN pending
    class PC10,OUT header
    class P1,WS1,WS2,P2 phase

Workstream 1

Pilot Catchments

Catchment Key Characteristic Role in Pilot
Puarenga Urban/geothermal inputs; existing SWAT model Benchmarking & legacy source complexity
Hamurana Pumice aquifer; baseflow-dominated Control / undisturbed conditions
Waingaehe Shallow GW; intensive farming Land use sensitivity & shallow transport

Current Model Setup — Puarenga (& Pilot Catchments)

Data Inputs Currently Incorporated

Component Dataset Notes
Stream network & subbasins DN3 streams & subbasins National drainage network
Terrain LiDAR 1m DEM High-resolution topography
Land use LCDBv6 Latest NZ land cover classification
Soils SWAT+ Global Soils Default global dataset
Aquifer thickness Global bedrock depth data Used for gwflow layer setup
Aquifer permeability & porosity GLHYMPS Global HydroGeology MaPS
Meteorological forcing ERA5 reanalysis Global climate reanalysis

Data Available but Not Yet Incorporated

Component Dataset Barrier to Inclusion
Soils LRIS soil data Requires specialised conversion to SWAT+ format
Groundwater Aquifer potential maps Not yet integrated into gwflow setup
Groundwater NZ hydraulic head observations Could support gwflow calibration

Priority Next Steps

Incorporating NZ-specific soils (LRIS) and hydraulic head data would improve model realism — particularly for gwflow calibration in the pumice aquifer catchments.

Pilot Goals

  1. Handling Incongruous GW–SW Boundaries

  2. Simulating Multi-Decade Concentration Lags

  3. Surface Water–Groundwater Interaction

  4. Chemistry at the Lake Edge

  5. Changing Land Use & Climate

Hydrological Models

SWAT+ Coupling: MODFLOW vs gwflow

SWAT+MODFLOW SWAT+gwflow
GW representation Full 3D, multi-layer, spatially distributed 2D horizontal (Dupuit–Forchheimer), unconfined only
SW–GW exchange Physically explicit via MODFLOW River package Cell-by-cell exchange; soil–GW interaction needs modification
Layered aquifers ✅ Yes — multiple layers, confined & unconfined ❌ No — single unconfined layer
Spatial resolution Independent MODFLOW grid (can be finer/coarser than HRUs) Gwflow grid maps directly onto SWAT+ HRU structure
Setup complexity High — separate MODFLOW model, GIS linkage, dual calibration Moderate — embedded in SWAT+ code, single calibration
Computation time Slow — MODFLOW called as subroutine each timestep Faster — native integration within SWAT+
Managed features (pumping, tile drains, canals) Requires separate MODFLOW packages ✅ Built into gwflow module
Solute/nutrient transport ✅ Via RT3D coupling (e.g. SWAT-MODFLOW-RT3D) ❌ Not natively supported
Long GW residence times / lag simulation ✅ Explicit head-based flow; handles long lags Limited — less suited to deep or multi-decade lags
Maturity & community support Widely published but no tools/code to configure setups Newer; growing literature

Relevance to Rotorua

The pumice aquifer system (Hamurana) and multi-decade lag requirements favour SWAT+MODFLOW for this pilot, despite higher setup cost.

Goal 1: Handling Incongruous GW–SW Boundaries

Goal 1: Handling Incongruous GW–SW Boundaries

  • In the Rotorua catchment, groundwater and surface water domains frequently have mismatched spatial extents — aquifer boundaries do not conform to surface catchment divides, particularly where regional pumice aquifer systems underlie multiple sub-catchments

Current Status

  • The gwflow implementation for Puarenga currently uses catchment-conforming boundaries — GW and SW domains share the same spatial extent
  • Separate, independently defined GW boundaries have not yet been configured

Feasibility of Incongruous Boundaries in gwflow

  • gwflow supports specification of constant head, no-flow, and flux boundary conditions on the GW grid, independent of the SWAT+ subbasin boundaries
  • In principle, the GW domain could be extended beyond the surface catchment boundary to capture cross-divide flow, or clipped differently to reflect true aquifer extents
  • However, this requires careful parameterisation of boundary fluxes and is most tractable where hydraulic head observations are available to constrain the boundary conditions — highlighting the value of incorporating NZ hydraulic head data in the next phase

Status

Not yet implemented — identified as an important refinement once baseline gwflow

Goal 2: Simulating Multi-Decade Concentration Lags

  • Groundwater residence times in the Rotorua catchment can extend decades, particularly through the deep pumice aquifer system
  • Delayed nutrient delivery means that current lake water quality reflects land use decisions made generations ago — and that future improvements will similarly lag management changes
  • Understanding this lag is central to setting realistic expectations for PC10 outcomes

Approach in SWAT+gwflow

  • gwflow simulates spatially distributed groundwater head across the catchment using a cell-by-cell water balance solved at each timestep
  • Nutrient concentrations (e.g. NO₃⁻) are transported through the gwflow grid via advective flux — mass is carried with groundwater flow between cells and ultimately discharged to stream reaches
  • Lag times emerge naturally from the physics of the system: slow-moving groundwater in low-conductivity or thick aquifer cells retains solutes for longer before discharging to surface water
  • This is preferable to conceptual lag approaches (e.g. ROTAN’s exponential delay functions) which impose a lag distribution rather than simulating the underlying flow dynamics

Status

Lag behaviour not yet formally quantified.

Preliminary results:

Goal 3: Surface Water–Groundwater Interaction

3a. GW Flow Mapped onto HRUs

  • gwflow uses a regular grid overlaid on the catchment, with each cell linked to SWAT+ HRUs for exchange of recharge and groundwater fluxes
  • Grid resolution can be tuned independently of HRU delineation, allowing finer GW spatial representation where needed
  • Fluxes (recharge, baseflow, SW–GW exchange) are aggregated from HRUs to gwflow cells at each timestep

3b. Layer Configuration

  • Current implementation uses a single unconfined layer via gwflow (Dupuit–Forchheimer assumption)
  • Appropriate for the Puarenga pilot given its shallow GW system
  • Multi-layer representation (e.g. for deeper pumice aquifer systems like Hamurana) would require moving to SWAT+MODFLOW

3c. Residence Time & Model Stability

  • Successfully simulated 40 years (1980–2020) in Puarenga catchment without numerical instability
  • This demonstrates the model can sustain long-duration runs — a prerequisite for capturing multi-decade GW lag times
  • Groundwater residence times in the Rotorua catchment can extend decades; the stable 40-year run is an encouraging proof of concept

Progress

Puarenga 40-year simulation running stably — foundational step toward lag time analysis and nutrient delivery projections.

gwflow Results

Goal 4: Chemistry at the Lake Edge

  • Validation target: nutrient concentrations at lake inflow points
  • Key species: [TN, TP, NO₃⁻, DRP — adjust as appropriate]
  • Benchmark: comparison with ROTAN outputs and monitored inflow data

Goal 5: Changing Land Use & Climate

5a. Land Use — LCDBv6 Integration

  • Land Cover Database v6 provides updated spatial land use inputs to SWAT
  • Enables scenario testing aligned with PC10 management options

5b. Climate Data — VCSN & CMIP6

  • VCSN (Virtual Climate Station Network) used for historical calibration period
  • CMIP6 downscaled scenarios available on server for future projections
  • [Note climate variables used: rainfall, temperature, PET, etc.]
  • [Describe how climate inputs are formatted/read into SWAT]

Challenges: Dynamic Land Cover in SWAT+

  • SWAT+ supports land use change, but implementing it is non-trivial
  • The model requires discrete land use snapshots rather than continuous change — transitions must be manually defined and scheduled
  • Key challenges include:
    • Ensuring HRU definitions remain consistent across land use scenarios
    • Validating the hydrological and nutrient impacts of land use change at each transition point

Model Configuration

  • Land use change in SWAT+ is implemented via management schedules — each transition must be explicitly defined in the input files
  • HRU definitions are static at setup; a change in land cover fraction within a sub-basin requires re-mapping HRUs or use of the land use update functionality, which has limited documentation
  • Interactions between changing land use and groundwater recharge, evapotranspiration, and nutrient loading need to be carefully validated at each transition point

Workflow Implications

  • In a GUI-based setup, each land cover scenario requires substantial manual re-configuration — compounding the bottleneck described previously
  • A scripted R-based workflow could make scenario switching significantly more tractable

Relevance to PC10

PC10 scenarios will require testing of future land use configurations (e.g. reforestation, dairy conversion limits). Getting the land use change workflow right in the pilot is essential groundwork for Phase 2.

Bottleneck: GUI-Dependent Workflow in QSWAT+

  • QSWAT+ relies on a QGIS-based graphical interface for model setup
  • Key steps — watershed delineation, HRU definition, input file generation — are currently performed manually through the GUI
  • This creates significant bottlenecks for:
    • Reproducibility and version control
    • Iterative scenario testing and sensitivity analysis
    • Scaling to full catchment or multiple FMUs
    • Collaboration and code review

Current Limitation

A GUI-dependent workflow makes it difficult to automate, document, or hand off model.

Moving Towards a Programmable Workflow

  • Work is underway to develop R packages that replicate QSWAT+ GUI steps programmatically
  • Key functions being implemented include:
    • Watershed and sub-basin delineation
    • HRU generation from land use, soil, and slope inputs
    • SWAT+ input file construction and editing
  • This would allow model setup to be fully scripted, version-controlled, and integrated into reproducible workflows (e.g. via renv, Git)

Status

These tools are still in active development and not yet production-ready. In the interim, GUI-based setup remains necessary — but a programmable workflow is the preferred long-term direction for this project.

Longer-term benefit

A scripted pipeline would substantially reduce setup time for Phase 2 full-catchment scaling and enable systematic scenario generation for climate and land use projections.

Progress Summary

Goal Status Notes
GW–SW boundary handling 🟡 In progress Catchment-conforming boundaries operational in Puarenga; incongruous boundary configuration not yet attempted — feasibility confirmed in gwflow
Multi-decade lag simulation 🟡 In progress 40-year Puarenga run (1980–2020) stable; advective transport approach confirmed — lag quantification pending calibration
SW–GW interaction (HRUs, layers, residence time) 🟢 Operational gwflow grid mapped to HRUs; single-layer unconfined setup running stably for 40 years
Lake-edge chemistry 🔴 Pending Awaiting nutrient transport calibration against observed inflow concentrations
Land use (LCDBv6) 🟢 Complete Incorporated into current Puarenga setup; dynamic land cover change workflow still being developed
Climate inputs 🟡 In progress ERA5 currently in use; VCSN and CMIP6 available on server but not yet incorporated
Programmable workflow 🟡 In progress R packages for QSWAT+ automation in development; GUI-based setup still required in interim
NZ-specific data integration 🔴 Pending LRIS soils, SMAP, hydraulic head data, and aquifer potential maps available but not yet incorporated

Key Risks & Issues

  • GUI workflow bottleneck — QSWAT+ GUI dependency slows iteration, reproducibility, and scenario testing; R-based automation is in development but not yet production-ready, creating a near-term constraint on model development speed

  • Global datasets as placeholders — soils (SWAT+ Global), aquifer thickness (global bedrock), and permeability (GLHYMPS) are coarse proxies; NZ-specific alternatives (LRIS, hydraulic head, aquifer potential maps) exist but require conversion effort before they can improve model realism

  • Cross-boundary groundwater flow — particularly in Hamurana, where regional pumice aquifer flow crosses surface catchment divides; incongruous GW–SW boundaries not yet configured and will require hydraulic head data to constrain

  • Dynamic land cover complexity — implementing time-varying land use in SWAT+ requires manual scheduling of HRU transitions; compounded by differences in classification schemes across LCDB versions

  • Nutrient transport calibration — advective transport of NO₃⁻ through gwflow not yet validated against observed lake inflow concentrations; this is the critical remaining step before lag times can be formally quantified

Risk: gwflow Limitations & Alternative Modelling Platforms

The gwflow implementation makes pragmatic trade-offs that may limit scientific defensibility for some aspects of the Rotorua problem:

  • Single unconfined layer — this assumption is a significant simplification for Rotorua’s multi-layer volcanic aquifer geology (interbedded ignimbrites, rhyolite domes, semi-confined sequences, etc.)

  • No native solute transport — nitrogen is routed through SWAT+’s HRU-level nutrient routines rather than tracked physically through the aquifer; the decades-long subsurface nitrogen transit central to the PC10 management question cannot be explicitly represented in the current framework

  • Surface catchment boundary constraint — gwflow cannot readily extend beyond topographic divides, yet an estimated 45–60 km² of additional groundwater catchment area outside surface boundaries contributes flow to the lake (as identified in ROTAN)

Alternative Platforms

  • MODFLOW 6 + GWT + MODPATH — potentially addresses all three limitations; 3D unstructured grid can represent volcanic stratigraphy, GWT handles solute transport, and MODPATH particle tracking produces physically-based MRT distributions directly comparable to tritium data; precedent exists in the same volcanic geology in the Upper Waikato catchment

  • However, setup demands are substantially higher and would require a well-constrained 3D geological grid

  • INCA-N / INCA-P — lighter-weight alternative; faster to set up than MODFLOW-GWT; adds P transport capability absent from the current framework; better suited to scenario screening and policy communication than gwflow; worth considering if gwflow transport limitations prove critical for Phase 2

Workstream 2: GLM-AED Lake Model

GLM-AED Lake Model — Overview

  • Lake model upgrade from previous generation to GLM-AED via the AEME (Aquatic Ecosystem Model Ensemble) R package framework
  • Pipeline built using targets — a reproducible, dependency-aware workflow manager ensuring all steps are tracked, versioned, and re-run only when inputs change
  • Parallel processing enabled via crew for computationally intensive steps (e.g. CMIP6 processing, GCM scenario grid)
  • Model configured with the following AED biogeochemical modules active:
    • Sediment flux, oxygen, silica, nitrogen, phosphorus, organic matter, phytoplankton, totals
    • Zooplankton and macrophyte modules defined but currently disabled

Framework

The AEME framework provides a modular, scriptable interface to GLM-AED — enabling reproducible scenario generation.

Lake Model — Data Inputs & Preparation

Observational Data (Completed)

  • Lake level — Bay of Plenty (BOP) bulk export data loaded, QC-filtered (qc_code > 200), and aggregated to daily means from 2014 onward
  • CTD profiles — full record extracted from BOP Excel files; depth-resolved temperature and water quality profiles
  • Lake chemistry — BOP water quality data 1989–2025 loaded (Lakes Data 1989_2025.xlsx)
  • Buoy data — profiler and meteorological data retrieved from LERNZMP API; formatted for AEME input
  • NIWA met data — daily and hourly station data (rain, temperature, wind, radiation, evaporation) read and converted to AEME format

Hypsograph

  • Hypsograph retrieved from LERNZMP and corrected to align with median observed lake level (masl)
  • Sediment zones and parameters estimated from hypsograph for AED sediment flux module

Lake Model — Climate Scenario Setup

CMIP6 Climate Forcing (Completed)

  • 7 GCMs configured: ACCESS-CM2, AWI-CM-1-1-MR, CNRM-CM6-1, EC-Earth3, GFDL-ESM4, NZESM, NorESM2-MM
  • 4 SSP scenarios: ssp126, ssp245, ssp370, ssp585 (NZESM excluded from ssp585 — data unavailable)
  • 5 variables: air temperature, humidity, precipitation, shortwave radiation, wind speed (tas, hurs, pr, rsds, sfcWind)
  • CMIP6 data clipped to Rotorua catchment bbox and aligned to VCSN grid points; standardised to Gregorian calendar
  • Point-scale GCM data extracted at lake centroid and written to CSV

Simulation Periods Defined

Period Start Stop Spin-up
Historical 1984-07-01 2014-06-30 10 years
SSP (future) 2015-07-01 2099-06-30 10 years

Simulation Grid

  • Full crossing of 7 GCMs × 5 scenarios = up to 35 simulation runs per model configuration

Lake Model — Current Status & Next Steps

Completed ✅

  • Reproducible targets pipeline built and operational
  • All observational data loaded, QC’d, and formatted for AEME
  • Hypsograph corrected and sediment zones parameterised
  • CMIP6 data processed, standardised, and extracted for all GCMs and scenarios
  • GCM time series summaries and plots generated

In Progress 🟡

  • Baseline model calibration — GLM-AED model build and run targets are drafted but currently commented out pending resolution of water balance and hypsograph configuration
  • Inflow configuration — precipitation-as-inflow approach identified; inflow data integration not yet finalised
  • BGC calibration — AED biogeochemical modules configured but not yet calibrated against observed CTD and chemistry data

Pending 🔴

  • Scenario simulations across full GCM × SSP grid (35 runs)
  • Alum–phosphorus mechanistic module (contingent on UWA collaboration)
  • Integration of catchment model nutrient loads as lake inflow boundary conditions (contingent on Phase 1 catchment outcomes)
  • Reporting and visualisation targets

Key Milestone

Baseline GLM-AED calibration is the critical path item — all scenario runs and climate projections depend on it.

Next Steps

Near-term (to March 2026)

Mid-term (to September 2026)

Longer-term (to February 2027)

Discussion