In [1]:
%matplotlib inline
import os
import numpy as np
import flopy

In [2]:
ml = flopy.modflow.Modflow.load('freyberg.nam', version='mf2005', verbose=True, model_ws='data')


Creating new model with name: freyberg
--------------------------------------------------

Parsing the namefile --> data/freyberg.nam
Setting filehandles:

--------------------------------------------------
External unit dictionary:
{51: <flopy.utils.mfreadnam.NamData object at 0x108816090>, 2: <flopy.utils.mfreadnam.NamData object at 0x108805d10>, 11: <flopy.utils.mfreadnam.NamData object at 0x108805e50>, 13: <flopy.utils.mfreadnam.NamData object at 0x108805e90>, 14: <flopy.utils.mfreadnam.NamData object at 0x108816050>, 15: <flopy.utils.mfreadnam.NamData object at 0x108805ed0>, 18: <flopy.utils.mfreadnam.NamData object at 0x108805f50>, 19: <flopy.utils.mfreadnam.NamData object at 0x108805f90>, 20: <flopy.utils.mfreadnam.NamData object at 0x108805f10>, 53: <flopy.utils.mfreadnam.NamData object at 0x108816110>, 52: <flopy.utils.mfreadnam.NamData object at 0x1088160d0>, 27: <flopy.utils.mfreadnam.NamData object at 0x108805fd0>}
--------------------------------------------------

loading dis package file...
   Loading dis package with:
      1 layers, 40 rows, 20 columns, and 1 stress periods
   loading laycbd...
   loading delr...
   loading delc...
   loading top...
   loading botm...
   loading stress period data...
adding Package:  DIS
   DIS  package load...success
   DATA(BINARY) file load...skipped
      freyberg.hds
   LIST package load...skipped
loading bas6 package file...
adding Package:  BAS6
   BAS6 package load...success
loading oc package file...
adding Package:  OC
   OC   package load...success
loading lpf package file...
   loading IBCFCB, HDRY, NPLPF...
   loading LAYTYP...
   loading LAYAVG...
   loading CHANI...
   loading LAYVKA...
   loading LAYWET...
   loading hk layer   1...
   loading vka layer   1...
adding Package:  LPF
   LPF  package load...success
loading riv package file...
   loading <class 'flopy.modflow.mfriv.ModflowRiv'> for kper     1
adding Package:  RIV
   RIV  package load...success
loading rch package file...
   loading rech stress period   1...
adding Package:  RCH
   RCH  package load...success
loading wel package file...
   loading <class 'flopy.modflow.mfwel.ModflowWel'> for kper     1
adding Package:  WEL
   WEL  package load...success
   DATA(BINARY) file load...skipped
      freyberg.cbc
   DATA(BINARY) file load...skipped
      freyberg.ddn
loading pcg package file...
adding Package:  PCG
   PCG  package load...success


   The following 8 packages were successfully loaded.
      freyberg.dis
      freyberg.bas
      freyberg.oc
      freyberg.lpf
      freyberg.riv
      freyberg.rch
      freyberg.wel
      freyberg.pcg
   The following 1 packages were not loaded.
      freyberg.list



In [3]:
ml.plot();


Plotting Packages
plotting DIS package util_2d instance: top
plotting DIS package util_3d instance: _ModflowDis__thickness
plotting DIS package util_3d instance: botm
plotting BAS6 package util_3d instance: ibound
plotting BAS6 package util_3d instance: strt
plotting LPF package util_3d instance: wetdry
plotting LPF package util_3d instance: vka
plotting LPF package util_3d instance: hani
plotting LPF package util_3d instance: vkcb
plotting LPF package util_3d instance: hk
plotting LPF package util_3d instance: sy
plotting LPF package util_3d instance: ss
plotting RIV package mflist instance: stress_period_data
plotting RCH package transient_2d instance: rech
plotting WEL package mflist instance: stress_period_data
 

In [4]:
ml.dis.plot();


plotting DIS package util_2d instance: top
plotting DIS package util_3d instance: _ModflowDis__thickness
plotting DIS package util_3d instance: botm

In [5]:
fb = os.path.join('data', 'ml.lpf')
ml.dis.plot(filename_base=fb);


plotting DIS package util_2d instance: top
    created...ml.lpf_top.png
plotting DIS package util_3d instance: _ModflowDis__thickness
    created...ml.lpf_thickness_Layer1.png
plotting DIS package util_3d instance: botm
    created...ml.lpf_botm_Layer1.png

In [6]:
fb = os.path.join('data', 'ml')
ml.plot(filename_base=fb);


Plotting Packages
plotting DIS package util_2d instance: top
    created...ml_top.png
plotting DIS package util_3d instance: _ModflowDis__thickness
    created...ml_thickness_Layer1.png
plotting DIS package util_3d instance: botm
    created...ml_botm_Layer1.png
plotting BAS6 package util_3d instance: ibound
    created...ml_ibound_Layer1.png
plotting BAS6 package util_3d instance: strt
    created...ml_strt_Layer1.png
plotting LPF package util_3d instance: wetdry
    created...ml_wetdry_Layer1.png
plotting LPF package util_3d instance: vka
    created...ml_vka_Layer1.png
plotting LPF package util_3d instance: hani
    created...ml_hani_Layer1.png
plotting LPF package util_3d instance: vkcb
    created...ml_vkcb_Layer1.png
plotting LPF package util_3d instance: hk
    created...ml_hk_Layer1.png
plotting LPF package util_3d instance: sy
    created...ml_sy_Layer1.png
plotting LPF package util_3d instance: ss
    created...ml_ss_Layer1.png
plotting RIV package mflist instance: stress_period_data
    created...ml_RIV_StressPeriod1_Layer1.png
plotting RCH package transient_2d instance: rech
    created...ml_00001.png
plotting WEL package mflist instance: stress_period_data
    created...ml_WEL_StressPeriod1_Layer1.png
 

In [7]:
fb = os.path.join('data', 'ml.wel')
ml.wel.plot(filename_base=fb);


plotting WEL package mflist instance: stress_period_data
    created...ml.wel_WEL_StressPeriod1_Layer1.png

In [8]:
ml.oc.compact = True
ml.oc.write_file()

In [9]:
ml.exe_name = 'mf2005'
ml.run_model()


FloPy is using the following executable to run the model: /Users/langevin/langevin/bin/mac/mf2005

                                  MODFLOW-2005     
    U.S. GEOLOGICAL SURVEY MODULAR FINITE-DIFFERENCE GROUND-WATER FLOW MODEL
                             Version 1.11.00 8/8/2013                        

 Using NAME file: freyberg.nam 
 Run start date and time (yyyy/mm/dd hh:mm:ss): 2015/10/24  8:15:54

 Solving:  Stress period:     1    Time step:     1    Ground-Water Flow Eqn.
 Run end date and time (yyyy/mm/dd hh:mm:ss): 2015/10/24  8:15:54
 Elapsed run time:  0.020 Seconds

  Normal termination of simulation
Out[9]:
[True, []]

In [10]:
bobj = flopy.utils.CellBudgetFile(os.path.join('data', 'freyberg.cbc'))
bobj.list_records()


(1, 1, '   CONSTANT HEAD', 20, 40, -1, 2, 10.0, 10.0, 10.0)
(1, 1, 'FLOW RIGHT FACE ', 20, 40, -1, 1, 10.0, 10.0, 10.0)
(1, 1, 'FLOW FRONT FACE ', 20, 40, -1, 1, 10.0, 10.0, 10.0)
(1, 1, '           WELLS', 20, 40, -1, 5, 10.0, 10.0, 10.0)
(1, 1, '   RIVER LEAKAGE', 20, 40, -1, 5, 10.0, 10.0, 10.0)
(1, 1, '        RECHARGE', 20, 40, -1, 3, 10.0, 10.0, 10.0)

In [11]:
times = bobj.get_times()
print(times)


[10.0]

In [12]:
kk = bobj.get_kstpkper()
print(kk)


[(0, 0)]

In [13]:
bi = bobj.get_data(kstpkper=kk[0], text='river leakage')[0]
print(bi.dtype)


[('node', '<i4'), ('q', '<f4'), ('IFACE           ', '<f4')]

In [14]:
print(bi['node'])


[ 15  35  55  75  95 115 135 155 175 195 215 235 255 275 295 315 335 355
 375 395 415 435 455 475 495 515 535 555 575 595 615 635 655 675 695 715
 735 755 775 795]

In [15]:
print(bi.node)


[ 15  35  55  75  95 115 135 155 175 195 215 235 255 275 295 315 335 355
 375 395 415 435 455 475 495 515 535 555 575 595 615 635 655 675 695 715
 735 755 775 795]

In [16]:
print(bi.q.sum())


-0.0427154

In [ ]: