{"id":18392870,"url":"https://github.com/barneydobson/integrated-modelling-template","last_synced_at":"2025-07-28T12:12:54.035Z","repository":{"id":253386860,"uuid":"836620425","full_name":"barneydobson/integrated-modelling-template","owner":"barneydobson","description":"Integrated modelling workshop and repository template","archived":false,"fork":false,"pushed_at":"2025-04-01T11:23:15.000Z","size":3262,"stargazers_count":0,"open_issues_count":5,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T12:28:04.920Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/barneydobson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-01T08:18:11.000Z","updated_at":"2025-04-01T11:23:13.000Z","dependencies_parsed_at":"2024-09-12T20:51:46.090Z","dependency_job_id":"7ba4e65a-14af-4cfb-9760-509ad553fa6c","html_url":"https://github.com/barneydobson/integrated-modelling-template","commit_stats":null,"previous_names":["barneydobson/integrated-modelling-template"],"tags_count":2,"template":true,"template_full_name":"ImperialCollegeLondon/pip-tools-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barneydobson%2Fintegrated-modelling-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barneydobson%2Fintegrated-modelling-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barneydobson%2Fintegrated-modelling-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barneydobson%2Fintegrated-modelling-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/barneydobson","download_url":"https://codeload.github.com/barneydobson/integrated-modelling-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248559179,"owners_count":21124429,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T01:58:24.844Z","updated_at":"2025-04-12T11:25:24.642Z","avatar_url":"https://github.com/barneydobson.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Integrated modelling workshop\r\n\r\nOverview of the technical parts of the workshop:\r\n\r\nDay 2\r\n\r\n- 09:00-09:10 Explain the day (now)\r\n- 09:10-09:40 Present overviews:\r\n  - [Inputs/outputs](#water-in-water-out)\r\n  - [Conceptual diagram](#conceptual-diagram)\r\n- 09:40-13:30 (30 min coffee break, 1 hour lunch break):\r\n  - [Fill in integration templates](#20-minute-integration-template)\r\n\r\nDay 3\r\n\r\n- 09:30-11:30 (30 min coffee break):\r\n  - [Give shape to your project](#what-next)\r\n- 13:00-14:30:\r\n  - [Make a GitHub for your project](#turn-your-plan-into-github-issues)\r\n\r\n## Example: groundwater (MODFLOW) and supply distribution (EPANET)\r\n\r\nI don't know either of these models well, I just asked ChatGPT for info in the\r\ninputs/outputs. These examples will be used throughout this explanation\r\n\r\n## Introduction (pre-workshop homework)\r\n\r\n\u003c!-- markdownlint-disable MD033 --\u003e\r\n\u003ctable\u003e\r\n   \u003c!--- Headers --\u003e\r\n   \u003ctr\u003e\u003cth\u003e\r\n     Please do this section before the workshop and include it preferably in your group's presentation on Day 1 (some groups may present in Day 2 if they need so). The individual participants (not assigned to preliminary groups) can present their model/system in Day 2. You only need to do one model/system that you can describe in \u003c 4-5 min during the workshop.\r\n     \u003c/th\u003e\r\n   \u003c/tr\u003e\r\n\u003c/table\u003e\r\n\r\nExplain your system, I will present groundwater and supply distribution side-by\r\n-side.\r\n\r\n### Water in-water out\r\n\r\nWhere does water/pollutants come in/go out?\r\n\r\n\u003c!-- markdownlint-disable MD033 --\u003e\r\n\u003ctable\u003e\r\n   \u003c!--- Headers --\u003e\r\n   \u003ctr\u003e\u003cth\u003e\u003c/th\u003e\u003cth\u003eMODFLOW\u003c/th\u003e\u003cth\u003eEPANET\u003c/th\u003e\r\n\r\n   \u003c!--- Row 1, input section --\u003e\r\n   \u003ctr\u003e\r\n      \u003ctd rowspan=\"4\"\u003eInputs\u003c/td\u003e\r\n      \u003ctd\u003eRecharge from surface (includes precipitation, irrigation, or other surface water bodies).\u003c/td\u003e\r\n      \u003ctd\u003eReservoirs, with a fixed head thus representing a large store.\u003c/td\u003e\r\n   \u003c/tr\u003e\r\n\r\n   \u003c!--- Row 2 --\u003e\r\n   \u003ctr\u003e\r\n      \u003ctd\u003eRivers and streams (boundary condition model).\u003c/td\u003e\r\n      \u003ctd\u003eTanks, sources or sinks with variable elevation and head.\u003c/td\u003e\r\n   \u003c/tr\u003e\r\n\r\n   \u003ctr\u003e\r\n      \u003ctd\u003eGeneralised/fixed head boundaries (reservoirs, lakes, lateral aquifer flows?)\u003c/td\u003e\r\n      \u003ctd\u003eOther external inflows.\u003c/td\u003e\r\n   \u003c/tr\u003e\r\n\r\n   \u003ctr\u003e\r\n      \u003ctd\u003ePoint and distributed pollutant sources/Injection wells.\u003c/td\u003e\r\n      \u003ctd\u003e\u003c/td\u003e\r\n   \u003c/tr\u003e\r\n\r\n   \u003c!---Output section --\u003e\r\n   \u003ctr\u003e\r\n      \u003ctd rowspan=\"4\"\u003eOutputs\u003c/td\u003e\r\n      \u003ctd\u003eGeneralised/fixed head boundaries.\u003c/td\u003e\r\n      \u003ctd\u003eNodes representing demand.\u003c/td\u003e\r\n   \u003c/tr\u003e\r\n\r\n   \u003ctr\u003e\r\n      \u003ctd\u003eRivers and streams (boundary condition model).\u003c/td\u003e\r\n      \u003ctd\u003eTanks, sources or sinks with variable elevation and head.\u003c/td\u003e\r\n   \u003c/tr\u003e\r\n\r\n   \u003ctr\u003e\r\n      \u003ctd\u003eEvapotranspiration.\u003c/td\u003e\r\n      \u003ctd\u003eReservoirs, with a fixed head thus representing a large store.\u003c/td\u003e\r\n   \u003c/tr\u003e\r\n\r\n   \u003ctr\u003e\r\n      \u003ctd\u003eExtraction wells.\u003c/td\u003e\r\n      \u003ctd\u003eLeaks and valves.\u003c/td\u003e\r\n   \u003c/tr\u003e\r\n\r\n\u003c/table\u003e\r\n\r\n### Conceptual diagram\r\n\r\nOther information is fine, but make sure to highlight all of your inputs and\r\noutputs, in particular dynamic ones!\r\n\r\n![conceptual-diagram](docs/images/conceptual-diagram-separate.png)\r\n\r\n_Made with [draw.io](https://app.diagrams.net/?src=about#)_\r\n\r\n## 20-minute integration template\r\n\r\nYou can find a fillable version [here](https://forms.gle/QNAvMLefKcAe4EoBA).\r\n\r\n- [What models/systems do you care about?](#models)\r\n- [Do any inputs/outputs directly match?](#direct-integration)\r\n- [Do any inputs/outputs indirectly match?](#indirect-integration)\r\n- [Update conceptual diagram](#conceptual-diagram-integrated)\r\n- [Explore feasibility](#explore-feasibility)\r\n\r\n### Models\r\n\r\n- Groundwater: MODFLOW\r\n- Supply distribution: EPANET\r\n\r\n### Direct integration\r\n\r\n- Leaks/Valves -\u003e MODFLOW? I guess leak could be a point water/pollutant source,\r\n or maybe aggregate into recharge from surface.\r\n- If there is a groundwater supply borehole, then that could be pumped from\r\nMODFLOW enter the EPANET tanks?\r\n- EPANET reservoirs seem like the system outflow - perhaps some of this can go\r\ninto MODFLOW depending on the case study.\r\n\r\n### Indirect integration\r\n\r\n- Generalised head boundaries in MODFLOW - maybe these could match with network\r\nhead in distribution? Presumably enabling infiltration (in the unpressurised\r\nsections) or exfiltration (anywhere).\r\n- Leaks/valves -\u003e MODFLOW via river interactions (depends where the leaks go..).\r\n- Garden water use interacting with recharge/evapotranspiration (probably needs\r\na model to 'translate' the EPANET demand outputs).\r\n\r\n### Conceptual diagram integrated\r\n\r\nMake sure to highlight all of your inputs, outputs and integration links!\r\n\r\n![conceptual-diagram](docs/images/conceptual-diagram-integrated.png)\r\n\r\n### Explore feasibility\r\n\r\nNote, you're not expected to complete all of this in the 20-minutes, but please\r\nat least try and have a go at **1.**!\r\n\r\n1. **Are these identified integrations likely to induce boundary condition errors\r\nin one system or the other! (i.e., why integrate)**\r\n2. What temporal scale mismatches exist?\r\n3. What spatial scale mismatches exist?\r\n4. How complicated are the processes in between [indirect integration](#indirect-integration)?\r\n5. What kind of case studies might these work for?\r\n\r\nFor example:\r\n\r\n1. Would the integration tell us anything important?\r\n\r\n   - Anecdotal evidence that leakage plays a significant groundwater source in urban\r\nareas (i.e., importance of exfiltration), though this is probably more useful for\r\nleakage estimation because groundwater will not be that sensitive to the day-to-day\r\ndynamics of leakage.\r\n   - Suppose distribution networks are nearly\r\nalways pressurised (i.e., unimportance of infiltration).\r\n   - Garden water use can be\r\nseasonally a very significant portion of water supply, though unsure if this is\r\nover timescales that would impact groundwater (i.e., unknown importance of garden\r\nwater use).\r\n   - Although boreholes do provide supply, I would expect that daily variations\r\nthat EPANET captures are unlikely to significantly impact groundwater (i.e., expected\r\nunusefulness of abstraction), same is probably true for outflows/leaks.\r\n\r\n2. Temporal scale mismatch:\r\n\r\n   - EPANET typically run at 1-15 minute resolution.\r\n   - MODFLOW at daily or monthly, or possibly hourly on small scales.\r\n   - The resolutions aren't aligned, but not insurmountable. The more important\r\n   question is whether there will be any interesting questions that can be\r\n   answered if the dynamics that EPANET provides are mostly smoothed out.\r\n\r\n3. Spatial scale mismatch:\r\n\r\n   - Both models accommodate wide variety of scales.\r\n   - Key spatial challenge is mapping pipes to MODFLOW grid.\r\n\r\n4. Indirect processes:\r\n\r\n   - The infiltration/exfiltration \"adaptor\" doesn't sound overwhelmingly\r\n   complicated to me, accommodating the scale mismatches sounds hardest part.\r\n   Validating it may be difficult because of lack of data.\r\n   - Garden water use is a reasonably well-studied field, don't anticipate\r\n   significant difficulties.\r\n\r\n5. Case studies:\r\n\r\n   - Whether integration is interesting seems to rely heavily on the temporal scales\r\n   being sufficiently near that the dynamics may interact. Presumably the most\r\n   promising case studies would thus have quick to respond groundwater (gravels,\r\n   etc.) and also be on relatively small scales (e.g., distribution network\r\n   causing localised basement flooding).\r\n   - Highly urbanised areas seems to be a given considering the EPANET focus.\r\n   - Leaks-\u003erivers, outfalls-\u003egroundwater, or groundwater-\u003einfiltration seem to\r\n   be unlikely for the most part, but there may be specific case studies where\r\n   this behaviour occurs.\r\n\r\n## What next?\r\n\r\n1. Identify a research question(s) - why integrate?\r\n2. Formalise your integrated conceptual model, using it as a map to build around:\r\n\r\n   - Include the internal model processes as well as interactions.\r\n   - Identify if you have any relevant case studies, even if they only cover\r\n   part of the integrated conceptual model.\r\n   - Consider scale mismatches in more detail, map where this mismatches occur\r\n   and what can be done to fix them.\r\n   - How do the model software work? Which bits can be interfaced with and which\r\n   will require something custom? Is new code required, where?\r\n\r\n3. Make a plan:\r\n\r\n   - Who is in charge?\r\n   - What are the key tasks and how long might they take?\r\n   - Who can do what?\r\n   - What's missing?\r\n\r\n### Turn your plan into GitHub issues\r\n\r\nIf you want to use this page to take your project further then please use\r\nthe [GitHub template](docs/template.md), and read [contributing](docs/CONTRIBUTING.md)\r\n\r\nYou can use the GitHub [issues](https://github.com/barneydobson/integrated-modelling-template/issues) as a to do list. With an added bonus that your `git`\r\nsetup will already be in place when it comes to software development.\r\n\r\n**Hint:** It may be easiest to start trying to create a standard WSIMOD node that has your required inputs and outputs, and then thinking about\r\nwrapping a more complex model.\r\n\r\n![Issues page](docs/images/example-issues-page.png)\r\n\r\nIt is sensible to organise issues with [\"big-picture\"](https://github.com/barneydobson/integrated-modelling-template/issues/9) issues and checklists.\r\n\r\n![Issues overview](docs/images/example-issue-overview.png)\r\n\r\nAnd then use separate issues when you are ready to get [specific](https://github.com/barneydobson/integrated-modelling-template/issues/10).\r\n\r\n![Issue](docs/images/example-issue.png)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarneydobson%2Fintegrated-modelling-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbarneydobson%2Fintegrated-modelling-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarneydobson%2Fintegrated-modelling-template/lists"}