├── Flopy Tutorial 1- Steady-State, Confined Aquifer.ipynb ├── Flopy Tutorial 2- Steady-State Pumping Well.ipynb ├── Flopy Tutorial 3- Transient River.ipynb └── README.md /Flopy Tutorial 1- Steady-State, Confined Aquifer.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Flopy Tutorial 1: Steady-State, Confined Aquifer " 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "This script will walk through the creation of a single-layer, confined aquifer in flopy and use MODFLOW-2005 to run a steady-state simulation of groundwater flow in a 100m x 100m domain with a 10m head boundary on one side and a 0m head boundary on the other side, as displayed below:\n", 15 | "\n", 16 | "\n", 17 | "If you're new to flopy, check out the documentation here:\n", 18 | "\n", 19 | "http://modflowpy.github.io/flopydoc/\n", 20 | "\n", 21 | "It's an excellent resource for download instructions, all of the flopy commands, and examples of flopy code. The basis for this tutorial may be found here as well, with some further explanation/post-processing done in this jupyter notebook.\n", 22 | "\n", 23 | "Using flopy, it is helpful to be familiar with MODFLOW. The online documentation is located here and will have additional information on the variables used in flopy functions: https://water.usgs.gov/nrp/gwsoftware/modflow2000/MFDOC/index.html?rch.htm\n", 24 | "\n", 25 | " Note: In order to use this script you must download a MODFLOW executable from the USGS website. (https://water.usgs.gov/ogw/modflow/) This script will only work with MODFLOW or MODFLOW-2005 executables, and may be modified to use MODFLOW-USG. MODFLOW 6 has a seperate set of flopy commands associated with it and the model must be setup differently." 26 | ] 27 | }, 28 | { 29 | "cell_type": "markdown", 30 | "metadata": {}, 31 | "source": [ 32 | "References: This tutorial is based off the flopy documentation located here: http://modflowpy.github.io/flopydoc/ Bakker, M., Post, V., Langevin, C. D., Hughes, J. D., White, J. T., Starn, J. J. and Fienen, M. N., 2016, Scripting MODFLOW Model Development Using Python and FloPy: Groundwater, v. 54, p. 733–739, doi:10.1111/gwat.12413." 33 | ] 34 | }, 35 | { 36 | "cell_type": "markdown", 37 | "metadata": {}, 38 | "source": [ 39 | "# Introduction\n", 40 | "Flopy is a python package, developed to create and run MODFLOW groundwater flow models. The schematic below, illustrates how Flopy communicates with MODFLOW:\n", 41 | "\n", 42 | "\n", 43 | "\n", 44 | "* 1 Aquifer properties are collected or estimated from some aquifer system, including dimensions, elevations, hydraulic conductivity, specific storage/yield and location/properties of wells, rivers, lakes or other hydrologic features. \n", 45 | "\n", 46 | "* 2 A model is created in a python script using the Flopy package to set up the different Packages MODFLOW uses to run its groundwater flow models, (DIS, BAS, LPF, RIV, WEL, ETC...), as python objects. \n", 47 | "\n", 48 | "* 3 Flopy is called to write the MODFLOW input files from these objects. \n", 49 | "\n", 50 | "* 4 A Flopy function sends the files to a specified MODFLOW executable program that will be used to solve the groundwater flow model. \n", 51 | "\n", 52 | "* 5 The MODFLOW executable program outputs binary data into head and budget files. \n", 53 | "\n", 54 | "* 6 Flopy reads in binary head and budget data from the MODFLOW output files.\n", 55 | "\n", 56 | "* 7 Data is visualized using Flopy's plotting capabilities. \n", 57 | "\n", 58 | "\n", 59 | "## Contents of script:\n", 60 | "\n", 61 | "* I: Model Object \n", 62 | "\n", 63 | "\n", 64 | "#### Creating MODFLOW Packages in Flopy:\n", 65 | "* II: DIS Package \n", 66 | " \n", 69 | " \n", 70 | "* III: BAS Package \n", 71 | " \n", 74 | "* IV: LPF Package \n", 75 | " \n", 78 | "\n", 79 | "* V: OC Package \n", 80 | " \n", 83 | "\n", 84 | "* VI: PCG Package \n", 85 | " \n", 88 | "\n", 89 | "#### Writing Files and Running Model:\n", 90 | "\n", 91 | "* VII: Write MODFLOW Input Files \n", 92 | "* VIII: Run MODFLOW executable \n", 93 | "\n", 94 | "#### Post Processing:\n", 95 | "* IX: Read MODFLOW output \n", 96 | "* X: Plot Results \n", 97 | " \n", 98 | "
    \n", 99 | "\n" 100 | ] 101 | }, 102 | { 103 | "cell_type": "markdown", 104 | "metadata": {}, 105 | "source": [ 106 | "- First we will import the appropriate packages to run a modflow model in python and display the data" 107 | ] 108 | }, 109 | { 110 | "cell_type": "code", 111 | "execution_count": 3, 112 | "metadata": {}, 113 | "outputs": [ 114 | { 115 | "name": "stdout", 116 | "output_type": "stream", 117 | "text": [ 118 | "flopy is installed in C:\\Users\\sahrendt\\Anaconda3\\lib\\site-packages\\flopy\n" 119 | ] 120 | } 121 | ], 122 | "source": [ 123 | "import flopy\n", 124 | "import numpy as np\n", 125 | "import matplotlib.pyplot as plt\n", 126 | "import matplotlib as mp\n", 127 | "\n", 128 | "\n", 129 | "#jupyter specific--included to show plots in notebook\n", 130 | "%matplotlib inline " 131 | ] 132 | }, 133 | { 134 | "cell_type": "markdown", 135 | "metadata": {}, 136 | "source": [ 137 | " \n", 138 | " ## I. Create Model Object\n", 139 | "\n", 140 | "- We define a Modflow model class object using the following flopy function. The arguments are telling object 'model' what the modelname is and where the MODFLOW .exe file is to use to run the model on your computer. You will have to modify the exe_name variable to direct flopy to the modflow executable file on your computer! Note that the default model workspace is the location of your python notebook, so all MODFLOW files will be created there, but you may specify a different workspace if you'd like the files to be created somewhere else. (See: http://modflowpy.github.io/flopydoc/mf.html for more options)" 141 | ] 142 | }, 143 | { 144 | "cell_type": "code", 145 | "execution_count": 4, 146 | "metadata": {}, 147 | "outputs": [], 148 | "source": [ 149 | "modelname = \"my_model\"\n", 150 | "m = flopy.modflow.Modflow(modelname, exe_name = 'mf2005')" 151 | ] 152 | }, 153 | { 154 | "cell_type": "markdown", 155 | "metadata": {}, 156 | "source": [ 157 | " \n", 158 | "## II. MODFLOW DIS package\n", 159 | "Now we attach the DIS package to our model. The DIS package specifies model discretization in space and time. It contains information regarding:\n", 160 | "- spatial discretization: (the number of rows, layers, and columns, as well as cell sizes)\n", 161 | "- temporal discretization: (number of stress periods, steady-state/transient model within a stress period, length of stress periods, and the number of time steps within stress periods)\n", 162 | "- length and time units \n", 163 | "\n", 164 | "### Spatial Discretization\n", 165 | "- We define a 100 x 100 unit model domain, and discretize this into 10 rows and columns. " 166 | ] 167 | }, 168 | { 169 | "cell_type": "code", 170 | "execution_count": 5, 171 | "metadata": {}, 172 | "outputs": [], 173 | "source": [ 174 | "#assign discretization variables\n", 175 | "Lx = 100.\n", 176 | "Ly = 100.\n", 177 | "ztop = 0.\n", 178 | "zbot = -50.\n", 179 | "nlay = 1\n", 180 | "nrow = 10\n", 181 | "ncol = 10\n", 182 | "dx = Lx/ncol\n", 183 | "dy = Ly/nrow\n", 184 | "dz = (ztop - zbot) / nlay" 185 | ] 186 | }, 187 | { 188 | "cell_type": "markdown", 189 | "metadata": {}, 190 | "source": [ 191 | "" 192 | ] 193 | }, 194 | { 195 | "cell_type": "markdown", 196 | "metadata": {}, 197 | "source": [ 198 | "### Temporal Discretization\n", 199 | "\n", 200 | "To discretize time, we must first specify how many stress periods are involved in this model. This is done through flopy's variable 'nper'. As we are solving a steady-state model, we will only specify 1 stress period." 201 | ] 202 | }, 203 | { 204 | "cell_type": "code", 205 | "execution_count": 6, 206 | "metadata": {}, 207 | "outputs": [], 208 | "source": [ 209 | "#specify number of stress periods\n", 210 | "nper = 1" 211 | ] 212 | }, 213 | { 214 | "cell_type": "markdown", 215 | "metadata": {}, 216 | "source": [ 217 | "We then create a variable called \"steady\" as a list of boolean \"True/False\" flags, one for each stress period, indicating whether the finite difference solver should solve a steady-state or transient model. True=steady-state, False=Transient. Our list will only contain one boolean for the single, steady-state stress period." 218 | ] 219 | }, 220 | { 221 | "cell_type": "code", 222 | "execution_count": 7, 223 | "metadata": { 224 | "scrolled": true 225 | }, 226 | "outputs": [ 227 | { 228 | "name": "stdout", 229 | "output_type": "stream", 230 | "text": [ 231 | "steady-state data: \n", 232 | " [True]\n" 233 | ] 234 | } 235 | ], 236 | "source": [ 237 | "#specify if stress period is transient or steady-state\n", 238 | "steady = [True]\n", 239 | "\n", 240 | "print(\"steady-state data: \\n\", steady)" 241 | ] 242 | }, 243 | { 244 | "cell_type": "markdown", 245 | "metadata": {}, 246 | "source": [ 247 | "There are several other variables involved in the DIS package that allow the user to specify time-step properties of the stress period data (legnth of stress period, number of time steps per stress period, and time step multiplier). As this model is a single period, steady-state model, these options don't apply and hence we will not specify them." 248 | ] 249 | }, 250 | { 251 | "cell_type": "markdown", 252 | "metadata": {}, 253 | "source": [ 254 | "### Create DIS object\n", 255 | "\n", 256 | "The spatial and temporal discretizations are used to create the flopy dis object which will later be used to create the MODFLOW \"dis\" package. " 257 | ] 258 | }, 259 | { 260 | "cell_type": "code", 261 | "execution_count": 8, 262 | "metadata": {}, 263 | "outputs": [], 264 | "source": [ 265 | "#create flopy discretization object, length and time are meters (2) and days (4)\n", 266 | "dis = flopy.modflow.ModflowDis(model=m, nlay=nlay, nrow=nrow, ncol=ncol, \n", 267 | " delr=dx, delc=dy, top=ztop, botm=zbot, \n", 268 | " itmuni = 4, lenuni = 2, \n", 269 | " nper=nper, steady=steady)" 270 | ] 271 | }, 272 | { 273 | "cell_type": "markdown", 274 | "metadata": {}, 275 | "source": [ 276 | "Confused about the arguments given to the flopy.modflow.ModflowDis() function? \n", 277 | "Check out the Flopy documentation here: http://modflowpy.github.io/flopydoc/mfdis.html \n", 278 | "\n", 279 | "If you'd like to see the grid you've created, flopy has plotting capabilities to visualize \"ModelMap\" attributes such as the grid, which it pulls from the flopy \"dis\" object. Note that ModelMap uses matplotlib, so you will want to make sure you have that package imported at the top of your script as well!" 280 | ] 281 | }, 282 | { 283 | "cell_type": "code", 284 | "execution_count": 9, 285 | "metadata": {}, 286 | "outputs": [ 287 | { 288 | "data": { 289 | "image/png": "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\n", 290 | "text/plain": [ 291 | "
    " 292 | ] 293 | }, 294 | "metadata": { 295 | "needs_background": "light" 296 | }, 297 | "output_type": "display_data" 298 | } 299 | ], 300 | "source": [ 301 | "#use flopy to plot the grid of model 'm'\n", 302 | "modelmap = flopy.plot.PlotMapView(model=m, layer=0)\n", 303 | "grid = modelmap.plot_grid() \n", 304 | "plt.xlabel('Lx (m)',fontsize = 14)\n", 305 | "plt.ylabel('Ly (m)',fontsize = 14)\n", 306 | "plt.title('Grid', fontsize = 15, fontweight = 'bold')\n", 307 | "plt.show()" 308 | ] 309 | }, 310 | { 311 | "cell_type": "markdown", 312 | "metadata": {}, 313 | "source": [ 314 | " \n", 315 | "## III. MODFLOW BAS package\n", 316 | "\n", 317 | "Next, we attach the BAS package to our model. The BAS package specifies cell activity (how cells will participate in the model run) as well as starting heads to be used in the cells at the start of the groundwater flow simulation.\n", 318 | "\n", 319 | "### Define Cell Activity: IBOUND\n", 320 | "\n", 321 | "We assign the cell activity using a variable called IBOUND. Ibound is defined as an array of integers of form (nlay, nrow, ncol), or one for each cell with flags for the activity level:\n", 322 | "\n", 323 | "- < 1: active (cell has active finite difference equations calculating the head for this cell as well as flows between its neighbors) \n", 324 | "- = 0: inactive (cell has no active finite difference equations associated with it)\n", 325 | "- > 0: constant head (cell has active finite difference equation for flows between cells but not for head at the cell as it is kept constant throughout the simulation)\n", 326 | "\n", 327 | "For this model, the first and last column are set to be constant heads and the rest of the domain is set as active. " 328 | ] 329 | }, 330 | { 331 | "cell_type": "code", 332 | "execution_count": 10, 333 | "metadata": {}, 334 | "outputs": [ 335 | { 336 | "name": "stdout", 337 | "output_type": "stream", 338 | "text": [ 339 | "ibound values: \n", 340 | " [[[-1 1 1 1 1 1 1 1 1 -1]\n", 341 | " [-1 1 1 1 1 1 1 1 1 -1]\n", 342 | " [-1 1 1 1 1 1 1 1 1 -1]\n", 343 | " [-1 1 1 1 1 1 1 1 1 -1]\n", 344 | " [-1 1 1 1 1 1 1 1 1 -1]\n", 345 | " [-1 1 1 1 1 1 1 1 1 -1]\n", 346 | " [-1 1 1 1 1 1 1 1 1 -1]\n", 347 | " [-1 1 1 1 1 1 1 1 1 -1]\n", 348 | " [-1 1 1 1 1 1 1 1 1 -1]\n", 349 | " [-1 1 1 1 1 1 1 1 1 -1]]]\n" 350 | ] 351 | } 352 | ], 353 | "source": [ 354 | "#create ibound as array of ints = 1\n", 355 | "ibound = np.ones((nlay, nrow, ncol), dtype=np.int32)\n", 356 | "#assign left and right boundary cells to constant head\n", 357 | "ibound[:, :, 0] = -1\n", 358 | "ibound[:, :, -1] = -1\n", 359 | "\n", 360 | "print(\"ibound values: \\n\", ibound)" 361 | ] 362 | }, 363 | { 364 | "cell_type": "markdown", 365 | "metadata": {}, 366 | "source": [ 367 | "### Define Starting Heads\n", 368 | "\n", 369 | "Values for starting heads are given cell by cell with the variable strt defined as an array of floats of form (nlay, nrow, ncol). For this model the left and right boundaries are set to be constant heads in the IBOUND variable, so the starting heads assigned to these cells will be set throughout the model. Since we are interested in steady-state flow from a left boundary of h=10m and right boundary of h=0m we assign those conditions in the strt variable." 370 | ] 371 | }, 372 | { 373 | "cell_type": "code", 374 | "execution_count": 11, 375 | "metadata": {}, 376 | "outputs": [ 377 | { 378 | "name": "stdout", 379 | "output_type": "stream", 380 | "text": [ 381 | "starting head values: \n", 382 | " [[[10. 1. 1. 1. 1. 1. 1. 1. 1. 0.]\n", 383 | " [10. 1. 1. 1. 1. 1. 1. 1. 1. 0.]\n", 384 | " [10. 1. 1. 1. 1. 1. 1. 1. 1. 0.]\n", 385 | " [10. 1. 1. 1. 1. 1. 1. 1. 1. 0.]\n", 386 | " [10. 1. 1. 1. 1. 1. 1. 1. 1. 0.]\n", 387 | " [10. 1. 1. 1. 1. 1. 1. 1. 1. 0.]\n", 388 | " [10. 1. 1. 1. 1. 1. 1. 1. 1. 0.]\n", 389 | " [10. 1. 1. 1. 1. 1. 1. 1. 1. 0.]\n", 390 | " [10. 1. 1. 1. 1. 1. 1. 1. 1. 0.]\n", 391 | " [10. 1. 1. 1. 1. 1. 1. 1. 1. 0.]]]\n" 392 | ] 393 | } 394 | ], 395 | "source": [ 396 | "#create strt as array of floats = 1\n", 397 | "strt = np.ones((nlay, nrow, ncol), dtype=np.float32)\n", 398 | "#set left side head to 10 m\n", 399 | "strt[:, :, 0] = 10.\n", 400 | "#set right side head to 0 m\n", 401 | "strt[:, :, -1] = 0.\n", 402 | "\n", 403 | "print(\"starting head values: \\n\", strt)" 404 | ] 405 | }, 406 | { 407 | "cell_type": "markdown", 408 | "metadata": {}, 409 | "source": [ 410 | "### Create BAS object\n", 411 | "\n", 412 | "We now use strt and IBOUND to make the 'bas' flopy object which will later be used to create the MODFLOW BAS package." 413 | ] 414 | }, 415 | { 416 | "cell_type": "code", 417 | "execution_count": 12, 418 | "metadata": {}, 419 | "outputs": [], 420 | "source": [ 421 | "#create flopy bas object\n", 422 | "bas = flopy.modflow.ModflowBas(m, ibound=ibound, strt=strt)" 423 | ] 424 | }, 425 | { 426 | "cell_type": "markdown", 427 | "metadata": {}, 428 | "source": [ 429 | "If you wish to visualize the ibound variable assigned to this bas package, flopy ModelMap may be also used to display ibound. " 430 | ] 431 | }, 432 | { 433 | "cell_type": "code", 434 | "execution_count": 13, 435 | "metadata": {}, 436 | "outputs": [ 437 | { 438 | "data": { 439 | "image/png": "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\n", 440 | "text/plain": [ 441 | "
    " 442 | ] 443 | }, 444 | "metadata": { 445 | "needs_background": "light" 446 | }, 447 | "output_type": "display_data" 448 | } 449 | ], 450 | "source": [ 451 | "#plot grid and ibound\n", 452 | "modelmap = flopy.plot.PlotMapView(model=m, layer=0)\n", 453 | "grid = modelmap.plot_grid()\n", 454 | "ib = modelmap.plot_ibound()\n", 455 | "#add labels and legend\n", 456 | "plt.xlabel('Lx (m)',fontsize = 14)\n", 457 | "plt.ylabel('Ly (m)',fontsize = 14)\n", 458 | "plt.title('Ibound', fontsize = 15, fontweight = 'bold')\n", 459 | "plt.legend(handles=[mp.patches.Patch(color='blue',label='Const. Head',ec='black'),\n", 460 | " mp.patches.Patch(color='white',label='Active Cell',ec='black'),\n", 461 | " mp.patches.Patch(color='black',label='Inactive Cell',ec='black')],\n", 462 | " bbox_to_anchor=(1.5,1.0))\n", 463 | "plt.show(modelmap)" 464 | ] 465 | }, 466 | { 467 | "cell_type": "markdown", 468 | "metadata": {}, 469 | "source": [ 470 | " \n", 471 | "## IV. MODFLOW LPF package" 472 | ] 473 | }, 474 | { 475 | "cell_type": "markdown", 476 | "metadata": {}, 477 | "source": [ 478 | "The LPF package specifies Layer Properties associated with the flow in each cell. It holds information regarding horizontal and vertical hydraulic conductivity, layer confinement properties (confined/unconfined), specific storage, and specific yield among other flags for the model run for which we will use flopy's default settings.\n", 479 | "\n", 480 | "### Define Hydraulic Conductivity\n", 481 | "\n", 482 | "Here we define \"hk\" as a variable for horizontal hydraulic conductivity of 1 m/d that will be the same in the x and y directions, and \"vka\" as a variable for vertical conductivity of 1 m/d. hk and vka are arrays of floats of form (nlay, nrow, ncol) with conductivity values for each cell. You may also specify a ratio of anisotropy in the y direction for the flopy LPF function, if hk should be anisotropic in the xy plane. http://modflowpy.github.io/flopydoc/mflpf.html has details regarding these options.\n" 483 | ] 484 | }, 485 | { 486 | "cell_type": "code", 487 | "execution_count": 14, 488 | "metadata": {}, 489 | "outputs": [ 490 | { 491 | "name": "stdout", 492 | "output_type": "stream", 493 | "text": [ 494 | "horizontal k values: \n", 495 | " [[[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 496 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 497 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 498 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 499 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 500 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 501 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 502 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 503 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 504 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]]] \n", 505 | " vertical k values: \n", 506 | " [[[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 507 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 508 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 509 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 510 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 511 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 512 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 513 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 514 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]\n", 515 | " [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]]]\n" 516 | ] 517 | } 518 | ], 519 | "source": [ 520 | "#define horizontal hydraulic conductivity\n", 521 | "hk = np.ones((nlay,nrow,ncol), dtype=np.float32)\n", 522 | "vk = np.ones((nlay,nrow,ncol), dtype=np.float32)\n", 523 | "\n", 524 | "print(\"horizontal k values: \\n\", hk,\n", 525 | " \"\\n vertical k values: \\n\", vk)" 526 | ] 527 | }, 528 | { 529 | "cell_type": "markdown", 530 | "metadata": {}, 531 | "source": [ 532 | "### Define Specific Storage\n", 533 | "\n", 534 | "Specific storage is defined in a similar format to hydraulic conductivity with a value of $1 x 10^{-5} m^{-1}$ for each cell." 535 | ] 536 | }, 537 | { 538 | "cell_type": "code", 539 | "execution_count": 15, 540 | "metadata": {}, 541 | "outputs": [ 542 | { 543 | "name": "stdout", 544 | "output_type": "stream", 545 | "text": [ 546 | "specific storage values: \n", 547 | " [[[1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05]\n", 548 | " [1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05]\n", 549 | " [1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05]\n", 550 | " [1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05]\n", 551 | " [1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05]\n", 552 | " [1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05]\n", 553 | " [1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05]\n", 554 | " [1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05]\n", 555 | " [1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05]\n", 556 | " [1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05 1.e-05]]]\n" 557 | ] 558 | } 559 | ], 560 | "source": [ 561 | "#define specific storage\n", 562 | "ss = np.ones((nlay,nrow,ncol), dtype=np.float)\n", 563 | "ss[:,:,:] = 1e-5\n", 564 | "\n", 565 | "print(\"specific storage values: \\n\", ss)" 566 | ] 567 | }, 568 | { 569 | "cell_type": "markdown", 570 | "metadata": {}, 571 | "source": [ 572 | "### Define Aquifer Confinement Properties\n", 573 | "\n", 574 | "Layers may be specified in flopy with variable laytyp , an array of (nlay) integer flags to say whether a model is:\n", 575 | "\n", 576 | "- =0 Confined: Aquifer layers will be treated as confined\n", 577 | "- >0 Convertible: Aquifer layers will be treated as confined if the water level is above the top of the aquifer cell and unconfined if the water level is below the top of the aquifer cell.\n", 578 | "\n", 579 | "This single-layer model will be treated as confined." 580 | ] 581 | }, 582 | { 583 | "cell_type": "code", 584 | "execution_count": 16, 585 | "metadata": {}, 586 | "outputs": [ 587 | { 588 | "name": "stdout", 589 | "output_type": "stream", 590 | "text": [ 591 | "layer type values: \n", 592 | " [0]\n" 593 | ] 594 | } 595 | ], 596 | "source": [ 597 | "#define layer type as confined\n", 598 | "laytyp = np.zeros((nlay,), dtype=np.int32)\n", 599 | "\n", 600 | "print(\"layer type values: \\n\", laytyp)" 601 | ] 602 | }, 603 | { 604 | "cell_type": "markdown", 605 | "metadata": {}, 606 | "source": [ 607 | "### Define LPF object\n", 608 | "We now use hk, vk, ss, and laytyp to make the 'lpf' flopy object which will be used to create the MODFLOW LPF package. ipakcb is a flag to say whether we will save cell by cell buget data (flows etc) (ipakcb>0 = save data). (Note: Flopy documentation claims that budget data saves by using the ipakcb default settings, but it seems that ipakcb must be explicitly specified in order to be saved.)" 609 | ] 610 | }, 611 | { 612 | "cell_type": "code", 613 | "execution_count": 17, 614 | "metadata": {}, 615 | "outputs": [], 616 | "source": [ 617 | "lpf = flopy.modflow.ModflowLpf(model=m, hk=hk, vka=vk, ss=ss, laytyp=laytyp, ipakcb=1)" 618 | ] 619 | }, 620 | { 621 | "cell_type": "markdown", 622 | "metadata": {}, 623 | "source": [ 624 | " \n", 625 | "## V. MODFLOW OC Package\n", 626 | "\n", 627 | "The OC package tells MODFLOW which attributes of the head and flow solutions should be printed and saved for each stress period during the model run. \n", 628 | "\n", 629 | "### Create Output Control Stress Period Data \n", 630 | "To designate what data to save, we create variable spd as a dictionary of stress period data to be used as an argument for the flopy oc function. This takes the form: \n", 631 | "\n", 632 | "spd = {(stress period, time step): ['PRINT HEAD', 'PRINT BUDGET', 'SAVE HEAD', 'SAVE DRAWDOWN', 'SAVE IBOUND', 'SAVE BUDGET']} \n", 633 | "\n", 634 | " Note that the list of strings may be modified if you wish to only save some of the data. Here we will choose to record and save budget and head values for our steady-state model with a single stress period/time step as we specified in the 'dis' object." 635 | ] 636 | }, 637 | { 638 | "cell_type": "code", 639 | "execution_count": 18, 640 | "metadata": {}, 641 | "outputs": [ 642 | { 643 | "name": "stdout", 644 | "output_type": "stream", 645 | "text": [ 646 | "oc stress period data: \n", 647 | " {(0, 0): ['print head', 'print budget', 'save head', 'save budget']}\n" 648 | ] 649 | } 650 | ], 651 | "source": [ 652 | "#create oc stress period data. \n", 653 | "spd = {(0, 0): ['print head', 'print budget', 'save head', 'save budget']}\n", 654 | "\n", 655 | "print(\"oc stress period data: \\n\", spd)" 656 | ] 657 | }, 658 | { 659 | "cell_type": "markdown", 660 | "metadata": {}, 661 | "source": [ 662 | "### Define OC object\n", 663 | "We will use spd to make the 'oc' flopy object which will later be used to create the MODFLOW OC package." 664 | ] 665 | }, 666 | { 667 | "cell_type": "code", 668 | "execution_count": 19, 669 | "metadata": {}, 670 | "outputs": [], 671 | "source": [ 672 | "oc = flopy.modflow.ModflowOc(model=m, stress_period_data=spd, compact=True)" 673 | ] 674 | }, 675 | { 676 | "cell_type": "markdown", 677 | "metadata": { 678 | "collapsed": true 679 | }, 680 | "source": [ 681 | " \n", 682 | "## VI. MODFLOW PCG Package\n", 683 | "\n", 684 | "Attaching the PCG Package to a MODFLOW model, tells MODFLOW to use the Preconditioned Conjugate Gradient Package to solve the finite difference equation. Seeing as this model is steady-state in a very simple domain, the PCG package should have little trouble solving the parabolic groundwater flow equation with its default settings. However, MODFLOW has numerous other solver packages (Newton-Raphson (NWT), Direct Solver (DE4), Strongly Implicit Procedure (SIP), etc) that may be applicable to other models. Additionally, you may want to tweak the solving criterion depending on your model. If you are interested in the nitty gritty of these methods, the MODFLOW-2005 manual is a good resource: https://pubs.usgs.gov/tm/2005/tm6A16/PDF/TM6A16.pdf. \n", 685 | "\n", 686 | "Additionally, MODFLOW online describes these solvers: https://water.usgs.gov/ogw/modflow/MODFLOW-2005-Guide/index.html?oc.htm\n", 687 | "\n", 688 | "And Flopy documents its communication with the PCG MODFLOW package:\n", 689 | "http://modflowpy.github.io/flopydoc/mfpcg.html\n" 690 | ] 691 | }, 692 | { 693 | "cell_type": "markdown", 694 | "metadata": {}, 695 | "source": [ 696 | "### Define PCG Object\n", 697 | "\n", 698 | "Here we will create the flopy pcg object, with its default solver settings, which will be used to create the MODFLOW PCG package." 699 | ] 700 | }, 701 | { 702 | "cell_type": "code", 703 | "execution_count": 20, 704 | "metadata": {}, 705 | "outputs": [], 706 | "source": [ 707 | "pcg = flopy.modflow.ModflowPcg(model=m)" 708 | ] 709 | }, 710 | { 711 | "cell_type": "markdown", 712 | "metadata": {}, 713 | "source": [ 714 | " \n", 715 | "## VII. Write MODFLOW Input Files\n", 716 | "\n", 717 | "Now that we have created all the flopy objects for the packages we wish to attach to our model (dis, bas, lpf, oc, and pcg), we can use flopy to write the MODFLOW input files for our MODFLOW executable to read. This is done simply with:" 718 | ] 719 | }, 720 | { 721 | "cell_type": "code", 722 | "execution_count": 21, 723 | "metadata": {}, 724 | "outputs": [], 725 | "source": [ 726 | "#write MODFLOW input files\n", 727 | "m.write_input()" 728 | ] 729 | }, 730 | { 731 | "cell_type": "markdown", 732 | "metadata": {}, 733 | "source": [ 734 | "Flopy should have created 6 new files in your working directory that look something like:\n", 735 | "\n", 736 | "\n", 737 | "\n", 738 | "The file to pay attention to is the \"my_model.nam\" file. This file governs which packages will be attached to your MODFLOW file. Inside the name file it will list all the packages to be attached to your model as well as specify that BINARY DATA files that it will write as an output. (my_model.hds, my_model.cbc)\n", 739 | "\n", 740 | "\n", 741 | "\n", 742 | "Another file to pay attention to, post run, is the LIST file. This will have additional information on how the packages are attached to your model as well as MODFLOW mass-balance budgets during the model run. " 743 | ] 744 | }, 745 | { 746 | "cell_type": "markdown", 747 | "metadata": {}, 748 | "source": [ 749 | " \n", 750 | "## VIII. Run MODFLOW Model\n", 751 | "\n", 752 | "We can now run the MODFLOW model with the packages specified in the .nam file using the executable specified in the definition of our flopy model 'm':" 753 | ] 754 | }, 755 | { 756 | "cell_type": "code", 757 | "execution_count": 22, 758 | "metadata": {}, 759 | "outputs": [ 760 | { 761 | "name": "stdout", 762 | "output_type": "stream", 763 | "text": [ 764 | "FloPy is using the following executable to run the model: .\\mf2005.EXE\n", 765 | "\n", 766 | " MODFLOW-2005 \n", 767 | " U.S. GEOLOGICAL SURVEY MODULAR FINITE-DIFFERENCE GROUND-WATER FLOW MODEL\n", 768 | " Version 1.12.00 2/3/2017 \n", 769 | "\n", 770 | " Using NAME file: my_model.nam \n", 771 | " Run start date and time (yyyy/mm/dd hh:mm:ss): 2019/06/06 15:00:16\n", 772 | "\n", 773 | " Solving: Stress period: 1 Time step: 1 Ground-Water Flow Eqn.\n", 774 | " Run end date and time (yyyy/mm/dd hh:mm:ss): 2019/06/06 15:00:16\n", 775 | " Elapsed run time: 0.007 Seconds\n", 776 | "\n", 777 | " Normal termination of simulation\n" 778 | ] 779 | } 780 | ], 781 | "source": [ 782 | "# Run the model\n", 783 | "success, mfoutput = m.run_model(pause=False, report=True)\n", 784 | "if not success:\n", 785 | " raise Exception('MODFLOW did not terminate normally.')" 786 | ] 787 | }, 788 | { 789 | "cell_type": "markdown", 790 | "metadata": {}, 791 | "source": [ 792 | "If the run was successful, you should have seen a window reporting the run time data. " 793 | ] 794 | }, 795 | { 796 | "cell_type": "markdown", 797 | "metadata": {}, 798 | "source": [ 799 | " \n", 800 | "## IX. Read Head/Flow Data\n", 801 | "\n", 802 | "We will now make use of flopy's binary file reader and plotting capabilities to read and display the model output." 803 | ] 804 | }, 805 | { 806 | "cell_type": "markdown", 807 | "metadata": {}, 808 | "source": [ 809 | "### Read Head Data\n", 810 | "\n", 811 | "Head data from the my_model.hds file will be stored as a flopy head object." 812 | ] 813 | }, 814 | { 815 | "cell_type": "code", 816 | "execution_count": 23, 817 | "metadata": {}, 818 | "outputs": [ 819 | { 820 | "name": "stdout", 821 | "output_type": "stream", 822 | "text": [ 823 | "flopy head object: \n", 824 | " \n" 825 | ] 826 | } 827 | ], 828 | "source": [ 829 | "#extract binary data from head file as flopy head object\n", 830 | "headobj = flopy.utils.binaryfile.HeadFile(modelname+'.hds')\n", 831 | "\n", 832 | "print(\"flopy head object: \\n\", headobj)" 833 | ] 834 | }, 835 | { 836 | "cell_type": "markdown", 837 | "metadata": {}, 838 | "source": [ 839 | "This head object has different attributes that can be extracted from it such as the times used in the model run, head data, databytes and more. For information on how to access these functions see: http://modflowpy.github.io/flopydoc/binaryfile.html\n", 840 | "\n", 841 | "For this model, we will extract the head data after our single stress period (totim=1.0)." 842 | ] 843 | }, 844 | { 845 | "cell_type": "code", 846 | "execution_count": 24, 847 | "metadata": {}, 848 | "outputs": [], 849 | "source": [ 850 | "#extract head data from head object\n", 851 | "head = headobj.get_data(totim=1.0)" 852 | ] 853 | }, 854 | { 855 | "cell_type": "markdown", 856 | "metadata": {}, 857 | "source": [ 858 | "### Read Flow Data\n", 859 | "\n", 860 | "Flopy's binary budget data reader will be used to read in the budget data from my_model.cbc as a flopy budget object. (See: http://modflowpy.github.io/flopydoc/binaryfile.html#flopy.utils.binaryfile.CellBudgetFile for more info)" 861 | ] 862 | }, 863 | { 864 | "cell_type": "code", 865 | "execution_count": 25, 866 | "metadata": {}, 867 | "outputs": [ 868 | { 869 | "name": "stdout", 870 | "output_type": "stream", 871 | "text": [ 872 | "flopy budget object: \n", 873 | " \n" 874 | ] 875 | } 876 | ], 877 | "source": [ 878 | "#extract binary data from budget file as flopy budget object\n", 879 | "budgobj = flopy.utils.binaryfile.CellBudgetFile(modelname+'.cbc')\n", 880 | "\n", 881 | "print(\"flopy budget object: \\n\", budgobj)" 882 | ] 883 | }, 884 | { 885 | "cell_type": "markdown", 886 | "metadata": {}, 887 | "source": [ 888 | "We can now extract the data from this by passing a string in the CellBudgetFile function's \"text\" argument to call which part of the data we want to get. Here we will access the flow data for the right face and front face of each grid cell and save the data as variables 'frf' and 'fff' which are output as arrays." 889 | ] 890 | }, 891 | { 892 | "cell_type": "code", 893 | "execution_count": 26, 894 | "metadata": {}, 895 | "outputs": [ 896 | { 897 | "name": "stdout", 898 | "output_type": "stream", 899 | "text": [ 900 | "Flow through Right Face of Grid Cells m^3/d \n", 901 | " [array([[[55.555557, 55.555557, 55.555557, 55.555557, 55.555557,\n", 902 | " 55.555557, 55.555557, 55.555557, 55.555557, 0. ],\n", 903 | " [55.555557, 55.555557, 55.555557, 55.555557, 55.555557,\n", 904 | " 55.555553, 55.555557, 55.555557, 55.555557, 0. ],\n", 905 | " [55.555557, 55.555557, 55.555557, 55.555557, 55.555557,\n", 906 | " 55.555553, 55.555557, 55.555557, 55.555557, 0. ],\n", 907 | " [55.555557, 55.555557, 55.555557, 55.555557, 55.555557,\n", 908 | " 55.555557, 55.555557, 55.555557, 55.555557, 0. ],\n", 909 | " [55.555557, 55.555557, 55.555557, 55.555557, 55.555557,\n", 910 | " 55.555557, 55.555557, 55.555557, 55.555557, 0. ],\n", 911 | " [55.555557, 55.555557, 55.555557, 55.555557, 55.555557,\n", 912 | " 55.555557, 55.555557, 55.555557, 55.555557, 0. ],\n", 913 | " [55.555557, 55.555557, 55.555557, 55.555557, 55.555557,\n", 914 | " 55.555557, 55.555557, 55.555557, 55.555557, 0. ],\n", 915 | " [55.555557, 55.555557, 55.555557, 55.555557, 55.555557,\n", 916 | " 55.555557, 55.555557, 55.555557, 55.555557, 0. ],\n", 917 | " [55.555557, 55.555557, 55.555557, 55.555557, 55.555557,\n", 918 | " 55.555557, 55.555557, 55.555557, 55.555557, 0. ],\n", 919 | " [55.555557, 55.555557, 55.555557, 55.555557, 55.555557,\n", 920 | " 55.555557, 55.555557, 55.555557, 55.555557, 0. ]]],\n", 921 | " dtype=float32)] \n", 922 | " Flow through Front Face of Grid Cells m^3/d \n", 923 | " [array([[[ 0.00000000e+00, -5.76354076e-08, 1.75073950e-07,\n", 924 | " 3.44864588e-07, 5.15218687e-07, 2.24529728e-07,\n", 925 | " -1.73579153e-07, -8.10868030e-08, 7.67723662e-09,\n", 926 | " 0.00000000e+00],\n", 927 | " [ 0.00000000e+00, -1.46309546e-07, -1.54793028e-07,\n", 928 | " -6.91557922e-09, 1.57410000e-07, 1.94983755e-07,\n", 929 | " 1.99387856e-07, 9.59867279e-08, -5.01493389e-08,\n", 930 | " 0.00000000e+00],\n", 931 | " [ 0.00000000e+00, -1.52585329e-07, 8.69398349e-08,\n", 932 | " 8.20773209e-08, -6.69469813e-08, -5.85843836e-08,\n", 933 | " 3.85580670e-08, 6.68093563e-08, 1.28730576e-07,\n", 934 | " 0.00000000e+00],\n", 935 | " [ 0.00000000e+00, -5.15319343e-08, -7.35034256e-09,\n", 936 | " -4.72663260e-08, -5.27640154e-08, -8.56958522e-08,\n", 937 | " 4.65729890e-08, 1.06644158e-07, 9.46065768e-08,\n", 938 | " 0.00000000e+00],\n", 939 | " [ 0.00000000e+00, 3.96164864e-07, 1.54104598e-07,\n", 940 | " 2.25429453e-08, -1.72430077e-07, 1.76899828e-08,\n", 941 | " -2.29653185e-08, 1.24745455e-07, -4.98273636e-08,\n", 942 | " 0.00000000e+00],\n", 943 | " [ 0.00000000e+00, 7.11379400e-08, -1.23860559e-07,\n", 944 | " -2.06677527e-07, -5.44072805e-08, -2.63615352e-08,\n", 945 | " 2.33508768e-09, -1.22501717e-07, -2.65788067e-08,\n", 946 | " 0.00000000e+00],\n", 947 | " [ 0.00000000e+00, -2.61348816e-07, -1.10886724e-07,\n", 948 | " -8.63845457e-08, -4.19615453e-08, -1.08440631e-07,\n", 949 | " 1.79196658e-08, -4.04092759e-08, 4.03597937e-08,\n", 950 | " 0.00000000e+00],\n", 951 | " [ 0.00000000e+00, -6.76386946e-08, -9.51637844e-08,\n", 952 | " 5.89264637e-08, 8.77600215e-09, 3.89735817e-08,\n", 953 | " 1.53428594e-08, -1.22564941e-07, -2.94046458e-08,\n", 954 | " 0.00000000e+00],\n", 955 | " [ 0.00000000e+00, -1.23607080e-07, 3.75329989e-08,\n", 956 | " -5.87592197e-08, -3.09734872e-07, 1.03845821e-07,\n", 957 | " 2.44936516e-08, 3.62901972e-07, 2.76170852e-07,\n", 958 | " 0.00000000e+00],\n", 959 | " [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", 960 | " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", 961 | " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", 962 | " 0.00000000e+00]]], dtype=float32)]\n" 963 | ] 964 | } 965 | ], 966 | "source": [ 967 | "frf = budgobj.get_data(text='flow right face', totim=1.0)\n", 968 | "fff = budgobj.get_data(text='flow front face', totim=1.0)\n", 969 | "\n", 970 | "print(\"Flow through Right Face of Grid Cells m^3/d \\n\", frf,\n", 971 | " \"\\n Flow through Front Face of Grid Cells m^3/d \\n\", fff)" 972 | ] 973 | }, 974 | { 975 | "cell_type": "markdown", 976 | "metadata": {}, 977 | "source": [ 978 | "Here, it is good to check if results seem reasonable; for this steady-state model, it makes sense that we see a constant value in the \"Flow Right Face\" output array as the higher head on the left side of the model induces flow from left to right. The \"Flow Front Face\" array, has very small positive and negative values in it, suggesting that there are potential numerical oscillations in our solution. However, these fluctuations are so small that the output may still be appropriate depending on the application/precision we are looking for. \n", 979 | "\n", 980 | "It is good to look for numerical nuances in modeling practice, but the data is much easier to visualize by plotting with flopy's plotting cababilities. " 981 | ] 982 | }, 983 | { 984 | "cell_type": "markdown", 985 | "metadata": {}, 986 | "source": [ 987 | " \n", 988 | "## X. Plotting" 989 | ] 990 | }, 991 | { 992 | "cell_type": "code", 993 | "execution_count": 27, 994 | "metadata": {}, 995 | "outputs": [ 996 | { 997 | "data": { 998 | "image/png": "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J/v27eOLL77IdF5sbCw9e/b07ReVKlUKV0wBShWpRcdqr7gdoxB5dbe1tnU2DboDm621fwAYY+YA7YDpkU6mArEA6Nq1K127ds1yftoe58PE/PnO/rJnzx5q167tmx8TE0PHjh19BVb9+vUjmhdg/PjxvuvpwxG3zc/6RWXKlCkBBWJcXBx9+/bF4/HQq1cvypQpE7mwONso1N6nbt26BdyO9LB9RldccQVXXHFF0O23bNnC+eef77tdtGhRunbt6nsjrVWrViRiBnj66adDav/oo48GFIiVKlXyFViRGLbPqGbNmiHtF2lpabRo0SJgmv+wfYsWLSJSePsbOHAgAwcODLr92rVrfYcYAJQoUYIePXoEDNsPv9F57kaiOATn+R+Ke++9N6BALFasGHHxcYx/+YOIDNuLuGgbcKkxJhZniLkbsDovVqwCsRB64oknKFKkCP379/cVWOXKlXM7VpZOnjzJhAkTuPDCC31vpJdeemnEC6zcWLZsGZ9//rnvjdTj8QQU5fnRgw8+yHnnnefr2ezRowelSpVyO1aWDh06xMSJE7nooot827hVq1YRL7By491332Xjxo0kJib6LqH0mLph3LhxvlEKj8dD165dKVGihNuxspSSksILL7xAmzZtfPvFtKFzAOfYZ5HCxFq7whjzDvANcApYA0zOi3WrQCyErrnmGu6///6IDB1Hwp9//smiRYuoV6+e21GCVqlSJXbv3h3xns1wsdbyz3/+kxdffDFfF1j+Dh06xNdffx2RoeNIadiwIXv27PEbOs7fUlNTGTNmDM2bN49Y72C4HT9+nJ9//pnKlSv7TZ3jWh6RSLPWjgXG5vV6C0YFISHJOMSV35133nmcd955bscIScOGDd2OEBJjDC1btnQ7RkgCC4CCoXHjxm5HCEl0dDQXXXSR2zFCUpA+MIgUZAWjK0FERERE8owKRBEREREJoAJRRERERAKoQBQRERGRACoQRURERCSACkQRERERCaACUUREREQCqEAUERERkQAqEEVEREQkgApEEREREQmgAlFEREREAqhAFBEREZEAKhBFREREJEC+KBCNMcOMMeuNMd8bY94yxhQ3xtQxxqwwxvxsjJlpjCnqdk4RERGRc4HrBaIxphpwJ9DaWtsEiAb6AY8AT1przwf2ATe5l1JERETk3OF6gegVA5QwxsQAscBOoCvw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PGvXrnU7kkihpAKxELrrrrs4efIkb775Jn/961+pUKECXbt25cknn+Tnn392O94ZihQpwqhRo/jxxx959NFH6dChA5UqVeJvf/sbb7/9NgcOHHA74hk6duxIhw4d+PjjjxkyZAh169alSZMmjBw5ki+//DJf9tT961//Yt++fUydOpWrr76auLg4evfuzXPPPcfWrVvdjneGUqVKcc899/Dtt98yYcIELrnkEqpWrcpNN93Eu+++y+HDh92OeIYrrriCBg0a8P7773PLLbdQo0YNWrZsydixY1m9enW+LHDHjBnD77//zuTJk/F4PMTFxXH55Zfz8ssvs3PnTrfjnaFixYrccsstrFq1ijFjxtCiRQv+99X/+Hnjz3zwwQccO3bM7YgihUKM2wEkZ5988glPPvlklvMn3LMNgFETPb5psbGxvh6iU6dOsXTpUpYuXcpdd91Fw4YN8Xg8eDwe2rVrR0xM+HeD0aNH+z7Z9749BYDH/unJsv3JkycDbu/du5fp06czffp0YmJi6NSpEx6Ph8TEROrVqxf2vKdOncLjyTpfZlJSUgJur1+/nvXr1/Pwww8THx9P37598Xg89OzZkzJlyoQzLgDvvvsur776akj3KVWqlK9H+cSJE3z00Ud89NFH3H777TRt2tS3X7Rp04aoqPB/fhwyZAibNm0Kun3GInDXrl289tprvPbaaxQrVoyuXbv69osaNWqEOy7btm3jtttuC+k+GXvg1qxZw5o1axg3bhxVqlQhISEBj8dD9+7diY2NDWdcAKZNm8asWbNCuk9sbKxvaPzo0aPMnz+f+fPnA9C6dWvqlO5NXFwc1lqMMWHPPGjQIHbv3h10+3379gXcPn78OL///jsJCQnExsbSo0cPPB4PCQkJVK5cOdxxRc4JKhALgB07drBgwYIs5w8bVA2ABQu+C2p5GzZsYMOGDUycOJHy5cuTlJTE2LFjKVu2bFjyAqxYsYLFixcDcPFf63vzrTyrZZ06dYolS5awZMkShg4dyoUXXsjo0aO5/vrrw/ZmlZaWlu02DtXu3buZNm0a06ZNo0iRIvTp04dHH32Uhg0bhm0dmzZtCmvmdevWsW7dOh588EEqVqzIzTffzL/+9a+wFjGff/45a9asCcuyjh8/zocffsiHH37IrbfeSosWLbj//vtDLvSzc+jQobBu4507d/LKK6/w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5Fzn+hCziIiIiOQvKhBFREREJIAKRBEREREJoAJRRERERAKoQBQRERGRACoQRURERCSACkQRERERCZAvvgdRRERERHLPGFMW57ulKwPFgb3ARmvt+lCWowJRREREpAAzxpQB/gYMBFpx5gixNcYcAOYCr1hrv8ppmRpiFhERESmgjDGjgC3AUGApcBVQBygNFAUqApcA/wLigE+MMZ8YY5pkt1z1IIqIiIgUXJcCl1trl2cxf7f3shp40TsE/U+gPfB9VgtVgSgiIiJSQFlrE0NsfwB4JKd2GmIWERERkQAqEAuhp556innz5nHkyBG3owQlJSWFcePG8c0332CtdTtOUBYsWMArr7xCcnKy21GCYq3loYceYuHChRw/ftztOEH59ddfeeihh/j+++8LzH4xc+ZM/vvf/7Jnzx63owQlNTWVcePG8cknn3Dy5Em34wTl22+/5fmqJ/MAACAASURBVPHHH2fjxo1uRxHJl4wxVY0xg40x44wxj2a45NhzmE4FYiFUpUoV/vKXvxAXF0diYiIvvfQSO3bscDtWlipWrMiqVato1aoVNWrU4J///CcLFizg6NGjbkfLUqtWrbjjjjuoUqUKbdq0Yfz48axduzbfFjLGGEqXLk2fPn2Ii4vjqquuYsqUKaSkpLgdLUt169blvffeo2nTptStW5c777yTxYsX5+sCt3nz5iQlJVGxYkU6dOjAI488wg8//JBv94vo6GjS0tLo1q0bFSpUoF+/frzxxhvs3bvX7WhZaty4MZMnT6Zhw4Y0bNiQe+65h/379+fbbSySl4wx/YDNwDPATcC1mVyComMQC4ATJ05kWyyVSD0FwNEDBwDo0aMH9evX55dffuH999/n/fffB6BFixZ4PB48Hg8tW7YkKipynw8OHz7MqVNOrvS/B7z5MjN06FAWLFjAjh07eOmll3jppZcoUaIE3bt3x+PxkJiYSJUqVSKW11qbbb6MYmNjGThwIJMnT2bVqlWsWrWKMWPGUKNGDRITE0lMTKRr164UL148YpmPHz/OsWPHgm5/7bXXMn78eFJSUpg7dy5z587FGEObNm18+0XTpk0xxkQs859//klaWlrQ7YcNG0a/fv3YsmULzzzzDM888wylS5emZ8+eeDwe+vbtS4UKFSKWNzU1lUOHDgXdvkqVKlxxxRXMmTOH5cuXs3z5cu677z7q1q3r28YdOnSgaNGiEct87NixkIroQYMGMXHiRA4cOMDMmTOZOXMm0dHRtG/f3vfci7SDBw+GVOANHTqUW2+9lY0bN/L444/Tik7ExMRwww034PF46N27N+XLl49gYpF86wFgNvBPa+3B3CxIBWIBMHPmTAYOHJjl/CWzqwHQ7epy2S5nzZo1rFmzhnHjxlGlShUSExPxeDx069aN2NjYsGa+8sorWbx4MQD3v1Hfydc/+3wZHT16lPnz5zN//nwAWrdu7cvcokWLsBYyJ0+epFy50PJl5rfffuOFF17ghRdeIDY2lh49euDxeEhISKBy5cphSHrac889x913352rZVhrWbFiBStWrGDUqFHUrFnTV8h07tyZYsWKhSmto1OnTqxZsyZXy/jzzz+ZPXs2s2fPxhhD27ZtfYVM48aNw7pfbNiwgcaNG+d6OZs2beLpp5/m6aefpkyZMvTq1ctX4MbFxYUh6Wnjxo3joYceytUyUlNTWbZsGcuWLWP48OF0vPBm4uLiWLp0KZdddhlFihQJU1pH48aN2b59e66WcerUKd566y3eeustoqOj6dChg2+/aNCgQZiSiuR7ccCruS0OQUPM56ydO3fy8ssvM2zYMCZMmBBS75lbVq9ezfjx4xk2bBgzZ87M90NKR44c4b333mP48OEMHz6cDRs2uB0pR9u2beO5555j2LBhPProo/n+OFZrLV9++SVjxoxh2LBhvt7y/OzgwYPMmjWLu+++mxEjRrB161a3I+Xo6NGjbN++nWHDhvHMM89w4sQJtyNlKzU1lU8//ZR///vf3HXXXSxdutTtSCJ5ZQ7QORwLUg9iAVCvXj2SkpKynF+58joAkpJ6+KYtWrSI33///Yy2UVFRtG/f3tcT16hRo4gMKfbs2ZNq1ap58/3szXdZlu2PHTvGjBkzMp1XtmxZ+vTp4xs6Ou+888KeNyoqKtttnJkffviBlStXZjqvYcOGvt6L9u3bExMT/qda48aNQ848b968TI8vi/l/9u47PIpq/+P4+xB6pIQUAgQIvQlIFURCb8muehUUvZYoKtfuDxVFvYoKFhARr2BBpagIqCioqDQVC8qNVBFRQFSQEDoSenJ+fyTsZSFlF2YzSfy8nofH3ZmzMx83J7vfnDkzU7IkXbp08fWLevXqOZTS3wUXXEDLli0Dbr93717ee++9HNdFRUWRmJiI1+uld+/eVKxY0amYPpUqVQr6PV62bBmrVq3KcV3z5s19/aJ9+/aEhYVlr8n3pgYBa926ddCZ3377bdLT009ZXqZMGbp3705EZgMiq0Ty3LTXHUrp79JLLw1q3uO2bdv4+OOPc1wXGxvrd3QkPDzcqZgiRcGtwKvGmFeARcCekxtYa+cGsiEViEXAeeedx3nnnZfr+sydVwIwadIkIGt08MRiq2LFivTt2xev1+s7SSHU7r77bt/jxVuuB+DGSa/k2n78+PF+mRs0aOA71NmpUyfHD2mdrGTJkr73LxDWWr+fSVhYGAkJCb4vpgYNGoQipp8+ffrQp0+fgNv/9NNPTJ061fe8SpUqvgKrT58+VKpUKRQx/QwfPjzo9icWiM2aNfP1i3PPPfeEAis0atSoEVS/OHbsmN8h6dKlS9OtWzffNIP4+PgQpPTXv39/+vfvH3D7JUuWMHnyZN/zqlWrkpSUhNfrpWfPnpx11lncc13uv7tOGDNmTFDtb731Vr/nZ511FpFRkbz49n9DPr9apJBrCLQn604q1+Ww3gIBfXDmWyBm39/vIqALEA+UA7YDy4CPrbU5D6GIa0aNGkWNGjV8X6Tnn39+SCfFn6lDhw4xevRovxGsRo0auR0rT/PmzWPdunV+k+KdmMMYSiNGjPCNbHq9Xjp06BCSkU2n7NmzhwkTJvjmcXo8HurUqeN2rDxNnz6dPXv2cO211+LxeOjVqxcVKlRwO1aeHnnkEVq2bOnrF23bti3UBdbmzZt54403fEVsUlISY6+aCGTNUxb5m5sE7AOSgPXAac8HyfXbwRgTCwwn6+bPO4ClZN2S5SBQBegD3GeM+QV4xFr77umGEGfdcccdPPPMMyE9G9VJhw8fZtmyZSE5dBwqTZs2JS0trVAXWCey1jJixIgCGcFySkZGBuvXrw/JoeNQSUhIYOvWrYW6wDpRRkYGEydOpGbNmm5HCVjp0qX5888/HT+xTqSYaAhcbK399Ew3lNe32yrgTeA8a+3KnBoYY8LJuin0MGNMvLU2uOMEEhJFqQgACuTQptOK0hcqZF0Hsaj1i4KYCuG0WrVquR0hKGFhYUWuL8fExLgdQaQwWwo48kGUV4HYwlqb520irLXpwOvA68aYqk4EEhEREZHTMgSYbIw5SO4nqQR0eYpcC8T8isMc2m8Lpr2IiIiIOOr77P9OyaONMyepHGeMiQY6AjGcdP1Ea+3LgW5HRERERELiOrLOVD5jARWIxpjLgVeBUsDek3ZuARWIIiIiIi6y1k52aluBnmr3BDAWCLfWRllro0/4pxnDIiIiIi4wp3nJkvxeF2iBWJmse/sV7vsriYiIiPy9/GyMuT77yjL5Msa0McZMBe7Lq12gcxDfAvoB4wNsLyIiIiKhdx9Z160eZ4yZB3xD1nWrdwCHyRrkqwO0AfoCNYFXgNfy2migBeKdwCxjTDdgNXD0xJXW2scD/b8QEREREWdYa981xswCegJXk1WzVeN/54sYsu6o8j3wEvC6tTYtv+0GWiAOIqvq3AOczaknqahAFBEREXGBtdYC87P/YYypBsQCZYFdwK/BThMMtEAcDtxrrX06mI2LiIiISMGy1m4Ftp7JNgI9SaUk8N6Z7EhEREREioZAC8QpwMBQBhERERGRwiHQQ8xhwD3GmN7AKk49SWWI08FERERExB2BFoityDp7uQRwzknrHLmli4iIiIj4M8ZsAv4CMoBj1tq2BbHfgApEa23nUAcRERERkRx1s9buKMgdBjqCKCIiIiKFjDHm6mDaW2unBrTdrEvn5LjDF4ER1trNAYS7DChprX0zmJBOi4uLsyNGjHAzQlBSU1MBiI2NPaPt9G7/BgDzll55xpnycrp5yzd/B4ADq/s7nik/gWReXnsVAK1+a1EgmfJzcuZp4VnPr0g/s34SKhN3bwfghohol5PkbMbGvwC4rG4F3zKnfvec8uE3ewDwnFc51zZuZl44M+troMelcQG/piDzzn9qCQC97u14RtspbP0iP6mpqQwbNuz7gjrkCFClXj3bZ5QufeyU6f0H5vvzM8b8Cuwma0rfS9bal09an3nSS068QPbJy7DWhgWSLa8RxB3AGmPM18AcIIWsa+ocAiKApsD5ZJ3d/CdwYyA7FBEREREAoowxKSc8f/nkAhDoZK390xgTA8w3xvxkrV18wvoKJzxuDMwEXgVmAWlADHAJcB1waaDBci0QrbUPGmP+Q1bhdwfQCP8TUg4AC4F/WWvnBrrDUCpVqhTJycluxwjY5MmTAc44c+bOBY5sJz+nm3fxlq8ASGgT3OucEEjmrWtHZbXplnubgnRy5kVfZj/vnOxKnvxMGT8OCH3/O11fTHgbgOTkAb5lTv3uOSVl43QAkpNzv5qYm5nXLH4l6H0XZN7VU351ZF+FrV/k53jeglQ3IoK3LrmswPdbXE1n4I78RhCttX9m/zfNGPMe0B5YfML69OOPjTFjgPHW2mdO2MQuYKQx5hDwDNAlkGx5XgfRWrvNWvuYtbYJWRVo++wNNwMqW2svKizFoYiIiEhxYowJN8ZUOP4Y6A38kMdL2gNrcln3A9Au0H0HfJJK9tkzBXoGjYiIiMjfWFXgPWMMZNVs06y1n+TR/g/gWuDTHNYNAvI9r+Q4ncUsIiIiUghZazcCLYN4yf3AdGPMD2SdP3J8DuIFZM1PDHh+gApEERERkWLAWvuuMeZc4D7gciAWSAX+C1xjrf0+0G2pQBQREREpJqy1ywjibOXc5HmSioiIiIj8/QQ0gmiMuRV4w1q7J8R5REREROQ0GWM6knVCSkOg7MnrrbXtA9lOoCOI9wF/GmOmGWO6B5xSRERERAqEMaYXWddIjCPrZibbgf1knegSSd6XyPETaIFYCxgAlAY+NsZsNMY8ZIypGUxwEREREQmZR4FxQFL2839ba7uTNZp4FPg80A0FVCBaazOttR9Za/sDNYD/kHXbll+NMR8bY/obYzSfUURERMQ9TYGPgUyy7n4XDmCt/Q0YDjwQ6IaCLuqyL5j9NfAtcIys6+pMBDYaY7oGuz0RERERccQhoIS11gJbgXonrNtH1qHngARcIBpjoo0xQ7IvvvgFUAnwWGvrANWBd4HJgW5PRERERBy1EmiU/XghMMwY08sY04Wsw8+rA91QQAVi9s2hNwPXA68BcdbagdbaBQDW2oPAGLLmKoqIiIhIwXuWrEPLkHVXlXSybrv3GVl3VLkl0A0FeqHsfUAPa+1XebTZCjQIdMciIiIi4hxr7dwTHm8xxrQB6gPlgJ+stUcC3VagJ6lck1NxaIypbYyZmd3GWms3BLpjEREREQkNY4wBqgG/WmtXBVMcwpnfSaUyWWczSyFy7NgxtyME5dixY2TNpy06itp7bK0tcpmLWl4oepkzMzPJzMx0O0ZQitp7LFLQjDGJxpjvyDph5Q+gRfbyicaYKwPdji5NUwzdfPPNXHrppbz++uvs3LnT7Tj52rt3L23btmXIkCF89tlnHD161O1I+Xrrrbfo1q0bY8aM4eeff3Y7Tr6MMVxxxRVceeWVzJgxg71797odKV+bN2+mVatW3HfffXz99ddkZGS4HSlf48ePp0+fPjz//PNs2rTJ7TgB6devH9dddx3vvfce+/fvdztOvtasWUPr1q156KGH+O9//1vkClyRUDLGXA3MAX4CbgTMCat/JusOKwFRgVgM3X777bzzzjtcffXVxMTE0LlzZ0aNGsWPP/5YKEfqIiMj6du3L2PHjqV79+5ER0czcOBA3nzzTXbt2uV2vBwNHDiQ33//nbvvvptGjRrRqFEj7r77br744otCO8Jx66238uabbzJw4ECioqLo0aMHzz77LOvXr3c7Wo7i4+Np164dTz31FOeffz6xsbFcc801vP322+zbt8/teDkaNGgQy5Yt47bbbqNOnTo0b96c+++/nyVLlhTKArdEiRIMHjyYSZMmcfHFFxMVFUW/fv2YMGECv//+u9vxctSyZUvi4+N57LHHaN++PTVq1GDdunXs3LGT9PR0t+OJuO0BYLS19hrgjZPWrSHrOokBCfQkFXHRunXrWLBgQa7rL0jYAsCc6eN9y+rUqcPGjRvJzMzkq6++4quvvuLee++lbt26eL1evF4vnTt3pnTp0iHJPGfOHP744w8AqrTPyjf+/fG5ti9Tpozv8d69e5kxYwYzZswgLCyMTp06+TI3atQo122ciYyMDMaPzz1fTpo2bcrGjRsB+PnnnxkzZgxjxowhIiKCfv364fF46Nu3LxEREaGIzIoVK/j666+Dek10dDTbt2/n2LFjLFq0iEWLFvF///d/NG7c2Pced+zYkZIlQ/PRMGPGDHbs2BFw+8qVK/se79ixg6lTpzJ16lRKlSpFly5dfJnr1KkTirjs2rWLt956K6jXNGvWjC+++AKAH374gR9++IEnnniC6OhokpKS8Hg89O7dmwoVKoQiMkuWLGHZsmUBt8/MzCQ8PJz09HQOHz7MJ598wieffMItt9xCy5Yt8Xq9/LWvSsjyAkyZMiWo0cvY2Fjf49TUVFJJJXVrKlFRUXTv3h2v14vH4yEuLuBLvokUF7WB+bmsOwRUDHRDeX4LGGPm5PP6gHckp2/p0qXceuutua5v8m4NgDzbHLdx40bGjRvHuHHjqFixIn379sXj8XDhhRdSsaJzP87nn3+e+fOz+ugjb9YH4OEA8p0sIyODxYsXs3jxYu655x4aNGiAx+PhggsuoEuXLmTNwT1zGRkZAb1/gdi9ezfTpk1j2rRphIWF0blzZ7xeLxdffDHx8fGO7ANg0aJF3HXXXY5s66effuKnn35i9OjRVKlShcTERDweD16vl/LlyzuyD4CnnnqK5cuXn/F2jh49yoIFC1iwYAF33HEHTZs2xev1ctFFF9GhQwcHkmZJTU11rF9s376dyZMnM3nyZEqXLk3Xrl19/cJJH3zwAU888YQj21q5ciUrV66kXZ0rKV26NIMGLcHr9ZKYmOjoH5cPPvggmzdvPuPtHDp0iLlz5zJ37lxuuukmWrVq5esXrVq1ciCpSKH3B9AKWJTDurZAwIeM8hsmyG8C207g10B3JoVL/fr1adKkCU2bNuWss85yO06+ypUrR5MmTWjSpAkNGzZ0rDgMperVq/synzjqUVgZY2jYsKGvX5QrV87tSPmqUKECTZs2pUmTJtSrVy//FxQCcXFxvn4RFRXldpx8GWMoV74cTZrE06RJk5AdeXBSRESE7z128g8zkULuVeBhY8w24P3sZcYY0wMYStbFsgOSZ4Forb32tCOKY3r16sXChQtzXX9O7TEALFw41bds8ODBp8wtK1u2LD179sTr9ZKUlESNGjVCExgYNWqUb/7gX1UnZOd7Kdf2v/32G9ddd90py2vUqOEbyerevXvICpaSJUvm+R7n5JVXXsnx8GP79u19hz5btGgRskK2f//+nHPOOQG3z8zM5J///CdpaWl+y8866yx69+7tGxmKiYlxOqrPiy++GNShxJUrVzJkyJBTlsfHx/ve4y5duoSsYKldu3bQ/WLMmDHMnTvXb1mJEiU477zzfJkbN24csn4xaNAgevbsGXD7I0eO0L9//1Pm71WqVIl+/frh9Xr578f7KFmqJHfffb3TcQGYPn06hw8fDrj94sWLeeSRR05Z3qhRI9/h5U6dOoVsqoRIIfYUUBOYAhyf+PwNEAa8ZK19LtAN6benCIiNjc1z9Clz52sAdK/XHcj68DxeHFarVs1XYPXo0cPRw4V5ObFwWbxlGgAJzbrn2n7w4MG+x23btvV9kZ5zzjkFMlJYokQJunfPPd/J0tPTueyyywAoX768X4FVUCOFtWrVolatwG9eNGvWLF9xWKtWLd973LVrV785oKHUvn37oNo///zzQNYIVseOHX2ZmzZtWiD9Ijw8PKh+kZaWxueffw7gm8Lh9Xrp168fkZGRIUrpr169ekGNpL788su+4rBBgwa+97hTp06UKlUKgOULXglJ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XbqUf//735xzzjnUrl2bm2++mY8//phDhw65HfEUDz74IAcOHGDWrFlce+21xMbGct555/H444+zevXqQtcvKleuzJ133smvv/7Kc889R69evfj6669Zs+ZHpk6dyo4dO9yOKFIs6ELZRcDHH3/Mo48+muv6/zy2F4Db/t0x1zY//PADP/zwA0888QTR0dEkJibi9Xrp3bs3FSpUcDzzHXfcwdKlSwG47IGsw1f39s8938lF6+HDh/nkk0/45JNPuOWWW2jRogVerxev10u7du0oUcLZv22OHj1Kx46558vJyYcSU1NTefXVV3n11VcpU6YMPXr0wOPx4PF4qFmzppNxAXjrrbd47rnngnpNyZL+v/LLli1j2bJlPPLII1SvXp2kpCS8Xi89evSgfPnyTsYF4JprruHnn38OuP3Jhz4PHDjAnDlzmDNnDpBVqB/vF+eccw7GGEfz/vrrr1xxxRVBvebkkdk//viDF154gRdeeIHw8HB69eqFx+MhKSmJ2NhYJ+MC8MILLzB16tSgXlO6dGlf8WqtZcmSJSxZsoQHHniA2rVr06rmQCIjIzl8+DBlypRxPPOFF14Y1MjlJTOKIQAAIABJREFUyUcYMjIy2LF9O9dccw3GGDp27OjrF02bNnW8X4j8HahALAJ27NjBt99+m+v6fftqAPDtt2sD2t727duZMmUKU6ZMoVSpUtx888088sgjVKpUyZG8AGvXrvVl7revfna+5ae9vVWrVrFq1SpGjhxJXFwco0eP5rLLLnPsg99am+d7HKzDhw8zd+5c5s6dy80330zv3r157rnnaNSokWP72Lp1q6OZ//zzTyZOnMjEiRMpV64cQ4YM4f7773e0UFy9ejXLl59+PzhZSkoKKSkpPPzww9SvX59nnnkGr9fr2PYPHjzo6Hucnp7O+++/z/vvvw/AP/7xD8aOHevY9iGrIHUy82+//UZMiS1s2bKF6OhoHnzwQe68805Kly7t2D6WLVvm2Jxeay3ffPMN33zzDcOGDaN58+aMGzeObt26ObJ9kb8LFYhFQLly5ahWrVqu68uUzvqL/sQ2u3fvzvVwVsmSJUlISMDr9eLxeKhfv76zgcmaJ3Q8T5nsL5K8/h+staSmpua6PjIykqSkJDweD3369KFixYqO5jXG5JkvJwcOHGDv3r25rj/77LN9oxjt27cnLCzsTGP6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ICObTunfvz833njKnbIKrczMTN59991CP//4RFFRUfzxxx86dCwSYioQi6GiVARA1rzIoqawj2SdzBhT5PpFxYoV3Y4QtKL2HoeFhRWp4hAocnlFiipdKFtERERE/KhAFBERERE/KhBFRERExI8KRBERERHxowJRRERERPyoQBQRERERPyoQRURERMSPCkQRERER8aMCUURERET8qEAUERERET8qEEVERETEjwpEEREREfGjAlFERERE/LheIBpjahpjPjPGrDXGrDHG3JG9vIoxZr4x5pfs/0a4nVVERETk78D1AhE4BtxlrW0CdABuMcY0Be4DFlprGwALs5+LiIiISIi5XiBaa7daa5dlP/4LWAvUAC4EpmQ3mwJc5E5CERERkb8XY611O4OPMSYeWAycDfxura18wrrd1to8DzPHxcXZESNGhDSjk1JTUwGIjY09o+30bv8GAPOWXnnGmfJyunnLN38HgAOr+zueKT+BZF5eexUArX5rUSCZ8nNy5mnhWc+vSD+zfhIqE3dvB+CGiGiXk+Rsxsa/ALisbgXfMqd+95zy4Td7APCcVznXNm5mXjhzMwA9Lo0L+DUFmXf+U0sA6HVvxzPaTmHrF/lJTU1l2LBh31tr2xbUPtu2bWtTUlIKanfFnjGmQH9+wXB9BPE4Y8xZwLvAndbafUG87kZjTIoxJqUwFbsiIiIiRVVJtwMAGGNKkVUcvmmtnZW9eJsxppq1dqsxphqQltNrrbUvAy8D1KlTxyYnJxdEZEdMnjwZgDPNnLlzgSPbyc/p5l285SsAEtoE9zonBJJ569pRWW265d6mIJ2cedGX2c87J7uSJz9Txo8DQt//TtcXE94GIDl5gG+ZU797TknZOB2A5OSBubZxM/Oaxa8Eve+CzLt6yq+O7Kuw9Yv8HM8rEgqujyAaYwzwKrDWWvvMCavmANdkP74GmF3Q2URERET+jgrDCGIn4CpgtTFmRfay+4EngZnGmEHA78CAXF4vIiIiIg5yvUC01n4FmFxW9yjILCIiIiJSCA4xi4iIiEjhogJRRERERPyoQBQRERERPyoQRURERMSPCkQRERER8aMCUURERET8qEAUERERET8qEEVERETEjwpEEREREfGjAlFERERE/KhAFBERERE/KhBFRERExI8KxGJo//79bkcIysGDB8nIyHA7RlCK2ntsrS1y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8nM8r0goaARRRERERPyoQBQRERERPyoQRURERMSPCkQRERER8aMCUURERET8qEAUERERET8qEEVERETEjwpEEREREfGjAlFERERE/KhAFBERERE/KhBFRERExI8KRBERERHxowJRRERERPyoQBQRERERPyoQRURERMSPCkQRERER8aMCsRiaPXs2mzdvdjtGwNLS0vjwww85ePCg21EC9s0337BixQqstW5HCYi1lnfeeYdt27a5HSVgv/32G/PmzePw4cNuRwnYZ599xo8//lhk+kVGRgYzZ85k165dbkcJ2Lp16/j88885duyY21FEijUViMXQr7/+Ss2aNWndujUPP/wwKSkpZGZmuh0rV9HR0QwfPpzIyEguuOACJk6cyJ9//ul2rDxVqlSJ1q1bU6tWLW666Sbmzp3LoUOH3I6VK2MMy5cvp1q1anTo0IGRI0eyatWqQl3IVK9enZtuuomoqCj69+/PlClT2L59u9ux8hQWFkazZs2oX78+d955JwsWLODIkSNux8pVWFgYCxcuJDo6moSEBEaPHs1PP/1UqPtFXFwcAwYMIDo6miuuuIK33npLxaJICKhALIYGDx5MbGwsy5cv59FHH6Vdu3bExcVxww03MGfOHA4cOOB2RD/GGIYPH87Bgwf54IMPuPHGG6lRowZt27blkUceYdmyZYXuC6tZs2ZceumlbN68mRdffJGkpCQiIyO56KKLePXVV0lNTXUwUzGQAAAOq0lEQVQ74imGDBlCeHg43333HQ8++CAtW7YkPj6eW265hU8++aTQjdSVKlWKBx98kP379/Puu++SnJxM1apVOe+883jiiSf44YcfCl2/SEhIoHv37mzcuJFx48bRq1cvoqOjufTSS3n99dfZuXOn2xFPcf/991OiRAm+/PJLhg4dSpMmTWjYsCFDhgzhs88+4+jRo25H9BMeHs7QoUPZs2cPb731FldccQVff/01K1esZMyYMfz8889uRxQpFkq6HUDy9/7773P33Xfnuv71/xgArrqtvm/ZX3/95ddm69atvPLKK7zyyiuULVuWHj164PV68Xg81KhRw/HMycnJfPXVVwAMHlUOgOuG1s+1fU5f9N9//z3ff/89w4cPp0aNGng8HjweDz169KBcuXKO5j169Cj16+eeLyf79u3ze37gwAFmz57N7NmzAWjXrh1erxev10vL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\n", 999 | "text/plain": [ 1000 | "
    " 1001 | ] 1002 | }, 1003 | "metadata": { 1004 | "needs_background": "light" 1005 | }, 1006 | "output_type": "display_data" 1007 | } 1008 | ], 1009 | "source": [ 1010 | "#plot results\n", 1011 | "plt.figure(figsize=(10,10)) #create 10 x 10 figure\n", 1012 | "modelmap = flopy.plot.PlotMapView(model=m, layer=0) #use modelmap to attach plot to model\n", 1013 | "grid = modelmap.plot_grid() #plot model grid\n", 1014 | "contour_levels = np.linspace(head[0].min(),head[0].max(),11) #set contour levels for contouring head\n", 1015 | "head_contours = modelmap.contour_array(head, levels=contour_levels) #create head contours\n", 1016 | "flows = modelmap.plot_discharge(frf[0], fff[0], head=head) #create discharge arrows\n", 1017 | "\n", 1018 | "#display parameters\n", 1019 | "plt.xlabel('Lx (m)',fontsize = 14)\n", 1020 | "plt.ylabel('Ly (m)',fontsize = 14)\n", 1021 | "plt.title('Steady-State Model, Flow $(m^3/d)$ and Head(m) Results', fontsize = 15, fontweight = 'bold')\n", 1022 | "plt.colorbar(head_contours,aspect=5).set_label('head (m)', fontsize = 15)\n", 1023 | "plt.show(modelmap)" 1024 | ] 1025 | }, 1026 | { 1027 | "cell_type": "markdown", 1028 | "metadata": {}, 1029 | "source": [ 1030 | "### 3D Surface Plot \n", 1031 | "\n", 1032 | " Note: This is not part of flopy's plotting, and uses a matplotlib function from a 3d projection toolkit. Flopy takes cell indexing where the top left of the grid is the (0,0) cell index while the Length & Width units start at 0 in the lower left of the grid. This seems a little wierd, but it makes it easy to match up an array of cell by cell numbers to their respective locations on the grid when assigning properties or observing output data. Flopy's plotting functions automatically flip the resultant head data to display on its proper grid, however, for the 3d plots below, you'll see the function np.flipud() is used to flip the data array to plot in the same direction." 1033 | ] 1034 | }, 1035 | { 1036 | "cell_type": "code", 1037 | "execution_count": 26, 1038 | "metadata": {}, 1039 | "outputs": [ 1040 | { 1041 | "data": { 1042 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoEAAAElCAYAAACbNjjdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzsnXl8G/WZ/z9f3fJtJ3Zs+YjtHE7iZDmcg5RCswtl6dKWLaX05CjbUvbHi6VbuhxLdwulLJRCWwrdLSkQoLQLvelylAKFTQuBNnShKdBAyGFbkq3L8qWRdcz394czk5E0Oj06Rnrer5detqXRzHdkHW893+/zPIxzDoIgCIIgCKK2MJR7AARBEARBEETpIQkkCIIgCIKoQUgCCYIgCIIgahCSQIIgCIIgiBqEJJAgCIIgCKIGIQkkCIIgCIKoQUgCCYIgCIIgahCSQIIgCIIgiBqEJJAgCIIgCKIGIQkkCIIgCIKoQUx5bk895giCIAiC0BJW7gHUKhQJJAiCIAiCqEFIAgmCIAiCIGoQkkCiIF588UWceeaZcDgcsNlscDgcOPnkk/FP//RPiMfj8na/+MUvcP311+P6668v21j7+/vBGMOOHTs03W8pH4NXX31V3sfhw4eXPngFO3bsAGMMjDGYzWa43e6E23/4wx/KtzPG8NWvflWT4x4+fFjeZyGPjTTu/v7+jNs9//zz8nEuuuiinG8rBbke+/rrr0/4HzDGYLVasXbtWnzpS1+CIAiaj21mZgYXXXQRurq6YDAYwBjD/fffnzAW6bl4//33y9c9//zzmo+FIIjikO+aQILA008/jTPPPBOiKMrXud1uuN1uvPjii7j11lthNBoBLArQAw88AABlFUGtKfVj8Oqrr+KGG24AsCg/2cSnUGKxGB588EFcffXV8nX33ntvUY5FLI1IJIK3334bN910E1566SU8/fTTYEy7pVU33nij/LwlCKI6oUggkTe33347RFFEf38/9u3bh3A4jEOHDuFHP/oRPvCBD2j6QVSpVPNjsGvXLvn3Q4cO4bnnnivjaIhkdu3aBc45Dhw4gHXr1gEAnn322az/p3A4nNdxXn31VQBAS0sLgsEgOOe46KKLcP3114NzDs550b6MEARRGkgCibw5dOgQAGDt2rXYuHEjrFYr+vv78ZGPfAS//OUvYbVaASxOwyojCdJ0kXJa9uWXX8YHP/hBLFu2DBaLBWvXrsWNN96IaDQqb7N//36cc845GBgYQENDA6xWK1avXo2rrroK8/PzCWP79a9/jU2bNsFms2Hz5s144YUXUsb/mc98BowxNDc3IxQKJdxXGuMvfvGLkjwG//M//4PTTz8dDocDVqsV9fX1GBkZwd133y3f56KLLsKnP/1p+e+//uu/lvcj4XQ6cckll6C3txcWiwUOhwOf+cxnMDExkfE8lBiNRjgcDuzfvx+/+93vAAD33XcfOOfo6+tLe7/7778fW7duRX19Perq6rB58+YEkZS4/fbb0dPTg/r6epx99tlwOp2q+xNFEXfddRdOOOEE1NXVoaGhATt27MAzzzyT87lowVNPPYXTTjsNLS0tsNls2LRpE77zne+A82NFEl588UWcddZZ6OvrQ11dHex2O4aHh3HzzTcjFosl7O+hhx7C6tWrYbfbsWPHDrz55ptLGt+qVatwySWXyH/v3bsXwOLzRXp+7N27F9u3b4fVasV3v/tdAIDf78cVV1yB/v5+WCwWtLe349xzz8Wf//xneV+MMfnxDgaDaGlpkad/1aaD0xEMBnHllVdi1apV8rE+9rGP4e23317SuRMEoRHSN7ocLwTBd+zYwbFYLohv3ryZf+lLX+JPPfUUD4VCCdutXLlS3k55ec973sM55/xXv/oVN5vNqtu8//3vl/fz5JNPqm4DgJ933nnydm+88Qa3WCwJt9fX1/OGhoaE477yyivy7Q888IB8/8997nMcAG9ra+MLCwsleQyuvvrqtOf2n//5n5xzzi+88MK023DO+fj4OO/q6lK9feXKldzr9WY8l/e85z0cADcajfxf//VfOQD+6U9/msfjcd7T08MB8C9/+cvyPm+88Ub5vldddVXasV111VXydvfee2/K7Z2dnfLvX/7yl+Vtzz//fNX9Mcb4I488kjLulStXZjy/5557Tt7HhRdemNNt99xzD2eMqY7jsssuk7f7r//6r5zO/5lnnknZn/L8k8eVjPLx37Vrl3z97bffLl9/6623cs4Tny+tra3y79/85jd5MBjka9euVR1vXV0d37t3L+ecpz2nQ4cOJYzl0KFDnHPOd+3aJV/33HPPcc45n5mZ4cPDw6r7aW1t5W+99VbGcyZqinxdhC4aXUgCibx55JFHVN/Ym5qa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\n", 1043 | "text/plain": [ 1044 | "
    " 1045 | ] 1046 | }, 1047 | "metadata": { 1048 | "needs_background": "light" 1049 | }, 1050 | "output_type": "display_data" 1051 | } 1052 | ], 1053 | "source": [ 1054 | "#import 3d axes toolkit from matplotlib\n", 1055 | "from mpl_toolkits.mplot3d import Axes3D\n", 1056 | "\n", 1057 | "#create 3d figure\n", 1058 | "fig_3d = plt.figure(figsize=(12,5))\n", 1059 | "ax = fig_3d.gca(projection='3d')\n", 1060 | "\n", 1061 | "#set X, Y, Z variables for 3d plot to be our model domain and head solution\n", 1062 | "X = np.arange(0,Lx,dx)\n", 1063 | "Y = np.arange(0,Ly,dy)\n", 1064 | "X, Y = np.meshgrid(X, Y)\n", 1065 | "Z = np.flipud(head[0])\n", 1066 | "\n", 1067 | "#create surface and labels\n", 1068 | "surf = ax.plot_surface(X,Y,Z, cmap = plt.cm.coolwarm, linewidth=0, antialiased=False, label='head')\n", 1069 | "fig_3d.colorbar(surf,shrink=0.5,aspect=5).set_label('Head (m)',fontsize=10,fontweight='bold')\n", 1070 | "ax.set_xlabel('Lx (m)', fontsize=15, fontweight='bold')\n", 1071 | "ax.set_ylabel('Ly (m)', fontsize=15, fontweight='bold')\n", 1072 | "ax.set_title('Steady-State Model Head Profile', fontsize=15, fontweight='bold')\n", 1073 | "plt.show(surf)" 1074 | ] 1075 | }, 1076 | { 1077 | "cell_type": "markdown", 1078 | "metadata": {}, 1079 | "source": [ 1080 | "Congratulations! You just used flopy to run a single-layer, steady-state model in MODFLOW-2005! \n", 1081 | "\n", 1082 | "Activity: Try going back to where we defined the starting heads in the LPF package and changing the left and right boundary conditions. How does the head surface change?\n", 1083 | "\n", 1084 | "What happens if you add another row of constant head cells to the model by modifying the IBOUND variable and set those to a different value of starting heads?" 1085 | ] 1086 | } 1087 | ], 1088 | "metadata": { 1089 | "kernelspec": { 1090 | "display_name": "Python 3", 1091 | "language": "python", 1092 | "name": "python3" 1093 | }, 1094 | "language_info": { 1095 | "codemirror_mode": { 1096 | "name": "ipython", 1097 | "version": 3 1098 | }, 1099 | "file_extension": ".py", 1100 | "mimetype": "text/x-python", 1101 | "name": "python", 1102 | "nbconvert_exporter": "python", 1103 | "pygments_lexer": "ipython3", 1104 | "version": "3.7.0" 1105 | } 1106 | }, 1107 | "nbformat": 4, 1108 | "nbformat_minor": 2 1109 | } 1110 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # flopy-tutorials 2 | These IPython notebooks were developed for teaching MODFLOW groundwater modeling through flopy and python at the Illinois State Water Survey. There are three examples numbered in order of increasing complexity that demonstrate the set-up and execution of seady-state and transient groundwater models in MODFLOW through the python package 'Flopy'. 3 | 4 | ![Flopy Schematic](https://i.imgur.com/n2Dj6QF.png) 5 | --------------------------------------------------------------------------------