FloPy3 includes support for MODFLOW-2000, MODFLOW-2005, and MODFLOW-NWT. Other supported MODFLOW-based models include MODPATH (version 6), MT3D and SEAWAT.
For general modeling issues, please consult a modeling forum, such as the MODFLOW Users Group. Other MODFLOW resources are listed at the bottom of this page in the MODFLOW Resources section.
If you think you have found a bug in FloPy3, or if you would like to suggest an improvement or enhancement, please submit a new Issue through the Github Issue tracker toward the upper-right corner of this page.
-
FloPy3 now supports some simple plotting capabilities for two- and three-dimensional model input data array classes and transient two-dimensional stress period input data using the
.plot()
methods associated with the data array classes (util_2d
,util_3d
, andtransient_2d
). The model results reader classes (HeadFile
,UcnFile
, andCellBudgetFile
) have also been extended to include a.plot()
method that can be used to create simple plots of model output data. See the notebook flopy3_PlotArrayExample. -
Added
.to_shapefile()
method to two- and three-dimensional model input data array classes (util_2d
andutil_3d
), transient two-dimensional stress period input data classes (transient_2d
), and model output data classes (HeadFile
,UcnFile
, andCellBudgetFile
) that allows model data to be exported as polygon shapefiles with separate attribute columns for each model layer. -
Added support for ASCII model results files.
-
Added support for reading MODPATH version 6 pathline and endpoint output files and plotting MODPATH results using mapping capabilities in
flopy.plot
submodule. -
Added
load()
method for MODFLOW GMG solver. -
Bug fixes:
- Multipler in array control record was not being applied to arrays
- vani parameter was not supported
-
FloPy3 can now be used with Python 3.x
-
Revised setters for package class variables stored using the
util_2d
orutil_3d
classes. -
Added option to load a subset of MODFLOW packages in a MODFLOW model name file using
load_only=
keyword.
-
FloPy3 now supports some simple mapping and cross-section capabilities through the
flopy.plot
submodule. See the notebook flopy3_MapExample. -
Full support for all Output Control (OC) options including DDREFERENCE, SAVE IBOUND, and layer lists. All Output Control Input is specified using words. Output Control Input using numeric codes is still available in the ModflowOc88 class. The ModflowOc88 class is currently deprecated and no longer actively maintained.
-
Added support for standard MULT package FUNCTION and EXPRESSION functionality are supported. MODFLOW parameters are not supported in
write()
methods.
FloPy3 is significantly different from FloPy2 (previously hosted on googlecode). The main changes are:
-
FloPy3 is fully zero-based. This means that layers, rows and columns start counting at zero. The reason for this is consistency. Arrays are zero-based by default in Python, so it was confusing to have a mix.
-
Input for packages that take layer, row, column, data input (like the wel or ghb package) has changed and is much more flexible now. See the notebook flopy3boundaries
-
Input for the MT3DMS Source/Sink Mixing (SSM) Package has been modified to be consistent with the new MODFLOW boundary package input and is more flexible than previous versions of FloPy. See the notebook flopy3ssm
-
Support for use of EXTERNAL and OPEN/CLOSE array specifiers has been improved.
-
load() methods have been developed for all of the standard MODFLOW packages and a few less used packages (e.g. SWI2).
-
MODFLOW parameter support has been added to the
load()
methods. MULT, PVAL, and ZONE packages are now supported and parameter data are converted to arrays in theload()
methods. MODFLOW parameters are not supported inwrite()
methods.
Python versions:
FloPy3 requires Python 2.7 or Python 3.3 (or higher)
Dependencies:
FloPy3 requires NumPy 1.9 (or higher) and matplotlib 1.4 (or higher). The mapping and cross-section capabilities in the flopy.plot submodule require Pyshp 1.2 (or higher).
For base Python distributions:
To install FloPy3 type:
pip install flopy
To update FloPy3 type:
pip install flopy --upgrade
To uninstall FloPy3 type:
pip uninstall flopy
Installing from the git repository:
Current Version of FloPy3:
To install the current version of FloPy3 from the git repository type:
pip install https://github.com/modflowpy/flopy/zipball/master
To update your version of FloPy3 with the current version from the git repository type:
pip install https://github.com/modflowpy/flopy/zipball/master --upgrade
Development version of FloPy3:
To install the bleeding edge version of FloPy3 from the git repository type:
pip install https://github.com/modflowpy/flopy/zipball/develop
To update your version of FloPy3 with the bleeding edge code from the git repository type:
pip install https://github.com/modflowpy/flopy/zipball/develop --upgrade
Documentation for FloPy3 is a work in progress. FloPy3 code documentation is available at:
The following IPython Notebooks contain example FloPy scripts for a variety of models and FloPy features
-
An overview of the options to enter layer, row, column, data values for packages such as the wel and ghb packages is given in the flopy3boundaries Notebook
-
The lake example, a very simple FloPy3 example of steady flow in a square model with a fixed head cell in the middle (representing a lake) in a 10-layer model.
-
A variant of the water-table example, a very simple example of one-dimensional groundwater flow in an unconfined aquifer with recharge, from the MODFLOW-NWT documentation (http://pubs.usgs.gov/tm/tm6a37/). This IPython Notebook build files for MODFLOW-NWT.
-
The Zaidel discontinuous water-table example, which simulates a discontinuous water table over a stairway impervious base, from http://onlinelibrary.wiley.com/doi/10.1111/gwat.12019/abstract. This IPython Notebook build files for MODFLOW-USG. (http://pubs.usgs.gov/tm/06/a45/).
-
An overview of the options for creating a Source/Sink Mixing (SSM) Package for MT3DMS and SEAWAT is given in the flopy3ssm Notebook.
-
The Henry Problem, a simple saltwater intrusion model developed with Flopy and run using SEAWAT.
-
Example 1 of the SWI2 manual, simulating a rotating interface.
-
Example 4 of the SWI2 manual, upconing below a pumping well below a two-aquifer island system.
- An overview of the FloPy3 map and cross-section plotting capabilities.
- An overview of the FloPy3 model input and output data
plot()
method capabilities
- Example problems from the 2015 2nd edition of Applied Groundwater Modeling by Mary P. Anderson, William W. Woessner, and Randall J. Hunt (https://github.com/Applied-Groundwater-Modeling-2nd-Ed)
FloPy3 scripts for running and post-processing the SWI2 Examples (examples 1 to 5) that are described in Bakker et al. (2013) are available:
Note that examples 2 and 5 also include FloPy3 code for running and post-processing SEAWAT models.
A few simple FloPy3 tutorials are available at: