|
18 | 18 | "metadata": {}, |
19 | 19 | "outputs": [], |
20 | 20 | "source": [ |
21 | | - "import logging\n", |
22 | | - "import os\n", |
23 | | - "\n", |
24 | | - "import flopy\n", |
25 | | - "import geopandas as gpd\n", |
26 | | - "import matplotlib.pyplot as plt\n", |
27 | 21 | "import nlmod" |
28 | 22 | ] |
29 | 23 | }, |
|
33 | 27 | "metadata": {}, |
34 | 28 | "outputs": [], |
35 | 29 | "source": [ |
36 | | - "print(f\"nlmod version: {nlmod.__version__}\")\n", |
37 | | - "\n", |
38 | | - "nlmod.util.get_color_logger(\"INFO\")" |
| 30 | + "nlmod.util.get_color_logger(\"INFO\")\n", |
| 31 | + "nlmod.show_versions()" |
39 | 32 | ] |
40 | 33 | }, |
41 | 34 | { |
|
44 | 37 | "source": [ |
45 | 38 | "## Create model\n", |
46 | 39 | "\n", |
47 | | - "With the code below we create a modflow model with the name 'IJmuiden'. This model has the following properties :\n", |
| 40 | + "With the code below we create a modflow model with the name 'IJmuiden'. This model has the following properties:\n", |
| 41 | + "\n", |
48 | 42 | "- an extent that covers part of the Northsea, Noordzeekanaal and the small port city IJmuiden.\n", |
49 | | - "- a structured grid based on the subsurface models [Regis](https://www.dinoloket.nl/regis-ii-het-hydrogeologische-model) and [Geotop](https://www.dinoloket.nl/detaillering-van-de-bovenste-lagen-met-geotop). The Regis layers that are not present within the extent are removed. In this case we use 'MSz1' as the bottom layer of the model. Use `nlmod.read.regis.get_layer_names()` to get all the layer names of Regis. All Regis layers below this layer are not used in the model. Geotop is used to replace the holoceen layer in Regis because there is no kh or kv defined for the holoceen in Regis. Part of the model is in the North sea. Regis and Geotop have no data there. Therefore the Regis and Geotop layers are extrapolated from the shore and the seabed is added using bathymetry data from [Jarkus](https://www.openearth.nl/rws-bathymetry/2018.html).\n", |
| 43 | + "- a structured grid based on the subsurface models [Regis](https://www.dinoloket.nl/regis-ii-het-hydrogeologische-model) and [Geotop](https://www.dinoloket.nl/detaillering-van-de-bovenste-lagen-met-geotop). The Regis layers that are not present within the extent are removed. In this case we use 'MSz1' as the bottom layer of the model. Use `nlmod.read.regis.get_layer_names()` to get all the layer names of Regis. All Regis layers below this layer are not used in the model. Geotop is used to replace the Holocene layer in Regis because there is no kh or kv defined for the Holocene in Regis. Part of the model is in the North sea. Regis and Geotop have no data there. Therefore the Regis and Geotop layers are extrapolated from the shore and the seabed is added using bathymetry data from [Jarkus](https://www.openearth.nl/rws-bathymetry/2018.html).\n", |
50 | 44 | "- starting heads of 1 in every cell.\n", |
51 | | - "- the model is a steady state model of a single time step.\n", |
| 45 | + "- the model is a steady state model with a single time step.\n", |
52 | 46 | "- big surface water bodies (Northsea, IJsselmeer, Markermeer, Noordzeekanaal) within the extent are added as a general head boundary. The surface water bodies are obtained from a [shapefile](..\\data\\shapes\\opp_water.shp).\n", |
53 | | - "- surface drainage is added using [ahn](https://www.ahn.nl) data and a default conductance of $1000 m^2/d$\n", |
54 | | - "- recharge is added using data from the [knmi](https://www.knmi.nl/nederland-nu/klimatologie/daggegevens) using the following steps:~~\n", |
55 | | - " 1. Check for each cell which KNMI weather and/or rainfall station is closest.\n", |
56 | | - " 2. Download the data for the stations found in 1. for the model period. For a steady state stress period the average precipitation and evaporation of 8 years before the stress period time is used.\n", |
57 | | - " 3. Combine precipitation and evaporation data from step 2 to create a recharge time series for each cell\n", |
58 | | - " 4. Add the timeseries to the model dataset and create the recharge package.\n", |
59 | | - "- constant head boundaries are added to the model edges in every layer. The starting head is used as constant head." |
| 47 | + "- surface drainage is added using the Dutch DEM ([ahn](https://www.ahn.nl)) and a default conductance of $1000 m^2/d$\n", |
| 48 | + "- recharge is added using data from [knmi](https://www.knmi.nl/nederland-nu/klimatologie/daggegevens) using the following steps:\n", |
| 49 | + " 1. Check for each cell which KNMI weather and/or rainfall station is closest.\n", |
| 50 | + " 2. Download the data for the stations found in 1. for the model period. For a steady state stress period the average precipitation and evaporation of 8 years before the stress period time is used.\n", |
| 51 | + " 3. Combine precipitation and evaporation data from step 2 to create a recharge time series for each cell,\n", |
| 52 | + " 4. Add the timeseries to the model dataset and create the recharge package.\n", |
| 53 | + "- constant head boundaries are added to the model edges in every layer. The starting head is used as the specified head." |
60 | 54 | ] |
61 | 55 | }, |
62 | 56 | { |
|
215 | 209 | "source": [ |
216 | 210 | "## Write and Run\n", |
217 | 211 | "Now that we've created all the modflow packages we need to write them to modflow files. You always have to write the modflow data to the model workspace before you can run the model. You can write the model files and run the model using the function `nlmod.sim.write_and_run)` as shown below. This function has two additional options:\n", |
| 212 | + "\n", |
218 | 213 | "1. Write the model dataset to the disk if `write_ds` is `True`. This makes it easier and faster to load model data if you ever need it. \n", |
219 | 214 | "2. Write a copy of this Jupyter Notebook to the same directory as the modflow files if `nb_path` is the name of this Jupyter Notebook. It can be useful to have a copy of the script that created the modflow files, together with the files. " |
220 | 215 | ] |
|
250 | 245 | "cell_type": "markdown", |
251 | 246 | "metadata": {}, |
252 | 247 | "source": [ |
253 | | - "Data from a model with a structured grid can be easily visualised using the model dataset. Below some examples" |
| 248 | + "Data from a model with a structured grid can be easily visualised using the model dataset. Below are some examples:" |
254 | 249 | ] |
255 | 250 | }, |
256 | 251 | { |
|
0 commit comments