A Python package to create, run, and post-process MODFLOW-based models.

Overview

flopy3

Version 3.3.5 — release candidate

flopy continuous integration Read the Docs

codecov Codacy Badge Documentation Status

Anaconda-Server Badge Anaconda-Server Badge PyPI Version

Binder

Introduction

FloPy includes support for MODFLOW 6, MODFLOW-2005, MODFLOW-NWT, MODFLOW-USG, and MODFLOW-2000. Other supported MODFLOW-based models include MODPATH (version 6 and 7), MT3DMS, MT3D-USGS, and SEAWAT.

For general modeling issues, please consult a modeling forum, such as the MODFLOW Users Group. Other MODFLOW resources are listed in the MODFLOW Resources section.

Installation

FloPy requires Python 3.7 (or higher), NumPy 1.15.0 (or higher), and matplotlib 1.4.0 (or higher). Dependencies for optional FloPy methods are summarized here.

To install FloPy type:

conda install -c conda-forge flopy

or

pip install flopy

The release candidate version can also be installed from the git repository using the instructions provided below.

Documentation

Documentation is available on Read the Docs and includes information on FloPy; tutorials for using FloPy with MODFLOW 6 and previous versions of MODFLOW, MT3DMS, MT3D-USGS, MODPATH, and ZONEBUDGET; and code documentation.

Getting Started

MODFLOW 6 Quick Start

import flopy
ws = './mymodel'
name = 'mymodel'
sim = flopy.mf6.MFSimulation(sim_name=name, sim_ws=ws, exe_name='mf6')
tdis = flopy.mf6.ModflowTdis(sim)
ims = flopy.mf6.ModflowIms(sim)
gwf = flopy.mf6.ModflowGwf(sim, modelname=name, save_flows=True)
dis = flopy.mf6.ModflowGwfdis(gwf, nrow=10, ncol=10)
ic = flopy.mf6.ModflowGwfic(gwf)
npf = flopy.mf6.ModflowGwfnpf(gwf, save_specific_discharge=True)
chd = flopy.mf6.ModflowGwfchd(gwf, stress_period_data=[[(0, 0, 0), 1.],
                                                       [(0, 9, 9), 0.]])
budget_file = name + '.bud'
head_file = name + '.hds'
oc = flopy.mf6.ModflowGwfoc(gwf,
                            budget_filerecord=budget_file,
                            head_filerecord=head_file,
                            saverecord=[('HEAD', 'ALL'), ('BUDGET', 'ALL')])
sim.write_simulation()
sim.run_simulation()

head = gwf.output.head().get_data()
bud = gwf.output.budget()

spdis = bud.get_data(text='DATA-SPDIS')[0]
qx, qy, qz = flopy.utils.postprocessing.get_specific_discharge(spdis, gwf)
pmv = flopy.plot.PlotMapView(gwf)
pmv.plot_array(head)
pmv.plot_grid(colors='white')
pmv.contour_array(head, levels=[.2, .4, .6, .8], linewidths=3.)
pmv.plot_vector(qx, qy, normalize=True, color="white")

plot

Additional FloPy Resources

  • Tutorials demonstrating basic FloPy use.

  • MODFLOW 6 Example Problems demonstrating FloPy use to create, run, and post-process MODFLOW 6 models.

  • Jupyter notebooks demonstrating the use of FloPy pre- and post-processing capabilities with a variety of MODFLOW-based models.

  • Scripts demonstrating the use of FloPy for running and post-processing MODFLOW-based models.

  • A list of supported packages in FloPy is available in docs/supported_packages.md on the github repo.

  • A table of the supported and proposed model checks implemented in FloPy is available in docs/model_checks.md on the github repo.

  • A summary of changes in each FloPy version is available in docs/version_changes.md on the github repo.

Questions

FloPy usage has been growing rapidly, and as the number of users has increased, so has the number of questions about how to use FloPy. We ask our users to carefully consider the nature of their problem and seek help in the appropriate manner.

Do not open issues for general support questions as we want to keep GitHub issues for bug reports and feature requests. You've got much better chances of getting your question answered on Stack Overflow where the questions should be tagged with tag flopy or the MODFLOW google group.

Stack Overflow is a much better place to ask questions since:

  • there are thousands of people willing to help on Stack Overflow and the MODFLOW google group
  • questions and answers stay available for public viewing so your question / answer might help someone else
  • Stack Overflow's voting system assures that the best answers are prominently visible.

To save your and our time, we will systematically close all issues that are requests for general support and redirect people to Stack Overflow or the MODFLOW google group.

Contributing

Bug reports, code contributions, or improvements to the documentation are welcome from the community. Prior to contributing, please read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.

Installing the latest FloPy release candidate

To install the latest release candidate type:

pip install https://github.com/modflowpy/flopy/zipball/develop

How to Cite

Citation for FloPy:

Bakker, Mark, Post, Vincent, 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.

Software/Code citation for FloPy:

Bakker, Mark, Post, Vincent, Hughes, J. D., Langevin, C. D., White, J. T., Leaf, A. T., Paulinski, S. R., Bellino, J. C., Morway, E. D., Toews, M. W., Larsen, J. D., Fienen, M. N., Starn, J. J., and Brakenhoff, Davíd, 2021, FloPy v3.3.5 — release candidate: U.S. Geological Survey Software Release, 20 August 2021, http://dx.doi.org/10.5066/F7BK19FH

MODFLOW Resources

Disclaimer

This software is preliminary or provisional and is subject to revision. It is being provided to meet the need for timely best science. The software has not received final approval by the U.S. Geological Survey (USGS). No warranty, expressed or implied, is made by the USGS or the U.S. Government as to the functionality of the software and related material nor shall the fact of release constitute any such warranty. The software is provided on the condition that neither the USGS nor the U.S. Government shall be held liable for any damages resulting from the authorized or unauthorized use of the software.

Comments
  • Removed aggregation in util_list.py, get_dataframe()

    Removed aggregation in util_list.py, get_dataframe()

    See #764.

    In the current implementation list input is grouped by layer, row, column when creating a dataframe. Variables are summed. This is incorrect for levels, e.g. stages or river bottoms.

    Removed the groupby altogether. I believe it is not needed here? Not aware of the requirements for NetCDF, but a groupby can be performed after this function call.

    opened by tomvansteijn 27
  • gridgen module, function intersect: donuts in shape Modflow6

    gridgen module, function intersect: donuts in shape Modflow6

    Hi, Maybe this problem has already been discussed, I do not know, we just started with Modflow6 in Flopy.

    We have a polygon shape file of locations with drainage. But this shapefile contains donuts, sometimes the donut has a value and sometimes the donut has no value (in GIS at this location there is no shape).

    When we use the command: gridgen module, function intersect.. we receive the rec.array with the intersection properties. But at locations of (1) a shapedonut with a value, we receive two properties (of the donut and the surrounding polygon and at (2) locations of a shapedonut with no value, we receive the value of the surrounding shapepolygon.

    does anyone have an idea how the receive only the correct value? -for donut with value: we only want to receive the value of the donut itself -for donut without value: the function should not select this polygon.

    would be great if there is a simple solution! Annemieke

    opened by AvDKWR 22
  • bugs in flopy.mt3d.mt.Mt3dms.load()

    bugs in flopy.mt3d.mt.Mt3dms.load()

    The attached file is a SSM file for MT3D. MT3D-USGS is OK with it. However, flopy cannot load it correctly. In the file, the loading starts at stress period 60. The flopy will see it starting from stress period 120. tran_v1.zip

    opened by flydream0428 20
  • Add point, polyline, and polygon intersection capabilities

    Add point, polyline, and polygon intersection capabilities

    Here are some thoughts related to March 2019 developer meeting at Delft.

    Possible Dependencies

    geopandas, shapely, others

    Projections, sampling, etc

    Initial thoughts for syntax of calls

    Point shape to grid for boundary conditions

    >>> mg = modelgrid
    >>> int_dict = mg.get_cellids(shp_xy, type=POINT)
    >>> list(int_dict.keys()) 
    ['cellids', 'point_id']
    >>> wel_spd = [((cellid), q) for cellid, q in zip(int_dict['cellids'], qs)]
    

    or

    >>> wel_spd = [((cellid), q) for cellid, q in zip(int_dict.cellids, qs)]
    

    Polyline shape to grid for boundary conditions

    >>> mg = modelgrid
    >>> int_dict = mg.get_cellids(shp_poly, type=POLYLINE)
    >>> list(int_dict.keys()) 
    ['cellids', 'poly_id', 'length']
    

    Polygon shape to grid for boundary conditions

    >>> mg = modelgrid
    >>> int_dict = mg.get_cellids(shp_polygon, type=POLYGON)
    >>> list(int_dict.keys()) 
    ['cellids', 'polyg_id', 'area']
    
    >>> mg = modelgrid
    >>> int_dict = mg.get_cellids(shp_polygon, type=POLYGON, vertices=True)
    >>> list(int_dict.keys()) 
    ['cellids', 'polyg_id', 'area', 'vert']
    
    opened by jdhughes-usgs 18
  • reading array data with free format

    reading array data with free format

    This implementation of load_txt behaves like MODFLOW while reading array data with free format. It reads the first "total column number" values, and ignores any comments at the end of each line.

    opened by gyanz 18
  • fix(UnstructuredGrid)

    fix(UnstructuredGrid)

    Loading an mf6 DISU model with variable voronoi grid results in extraneous iverts entries of None (Iverts appears to be a consistent (not jagged) shape). This results in a vertexdict indexing error in UnstructuredGrid._build_grid_geometry_info when using plot() methods.

    Filter out None entries from iverts in UnstructuredGrid._build_grid_geometry_info

    opened by cnicol-gwlogic 16
  • bug: flopy.utils.binaryfile.HeadUFile.get_ts() gives error for idx= 0

    bug: flopy.utils.binaryfile.HeadUFile.get_ts() gives error for idx= 0

    I am trying to run this script:

    import flopy
    import flopy.utils.binaryfile as bf
    
    path_exe = r'C:\modflow'
    path_model = r'c:\models'
    modelname = 'mymodel'
    
    heads = bf.HeadUFile(path_model + '\\' + modelname + '.hds')  # hds file generated with the software mf-usg
    
    print(heads.get_ts(idx=0))
    

    and I get the following error message:

    {IndexError}index -682005 is out of bounds for axis 0 with size XXXX

    If I use any number between 1 and (XXXX - 1), I get a timeseries without any problem. I have the feeling that the command does not read node 0.

    PS I am running flopy v 3.3.5 on a python 3.9 environment.

    bug 
    opened by giovannifi 15
  • Problem with the str package const parameter

    Problem with the str package const parameter

    I'm working with the time unit as days in the str package so I have to take the const = 1.486*86400 but than some problem arise like in the list

    FILE UNIT 118 : ERROR CONVERTING "1128390.000" TO AN INTEGER IN LINE: 40 3 2 0 1128390.000 (enter icalc and const together in here) -1 0

    if I take the constant less than 100,000 than no problem has occurs

    opened by OnurSahin20 15
  • convert transient array data in UZF package to Transient2d

    convert transient array data in UZF package to Transient2d

    • bug fix for SFR package loading of transient stress period data (8599b73)
    • fix `SpatialReference.write_gridSpec() so that origin units are same as grid spacing units
    • shorten shapefile int field sizes to 18 (signed 64 bit int); otherwise they might be interpreted as floats on load of the shapefile
    opened by aleaf 15
  • modflowusg

    modflowusg

    Created new folder modflowusg. Created mfusg.py file for ModflowUsg class Created mfusgbcf.py file for ModflowUsgBcf class Created mfusgcln.py file for ModflowUsgCln class Created mfusggnc.py file for ModflowUsgGnc class Created mfusglpf.py file for ModflowUsgLpf class Created mfusgsms.py file for ModflowUsgSms class Created mfusgwel.py file for ModflowUsgWel class

    opened by swfwmd 14
  • export method for the disu, disv, npf etc. does not create .nc files

    export method for the disu, disv, npf etc. does not create .nc files

    I defined a model grid using voronoi cells. I built the model using the DISV package in MF6. When I try to use the following commands in python:

    gwf.disv.export(workspace + '\\' + 'disv_mf6.nc') gwf.npf.export(workspace + '\\' + 'npf_mf6.nc')

    I get the following error

    Traceback (most recent call last):

      File "H:/scripts/python3.6/modflow/post_process_mf.py", line 78, in <module>
        gwf.npf.export(workspace + '\\' + 'npf_mf6.nc')
    
      File "C:\Program Files\Python36\lib\site-packages\flopy\mf6\mfpackage.py", line 1762, in export
        return export.utils.package_export(f, self, **kwargs)
    

    File "C:\Program Files\Python36\lib\site-packages\flopy\export\utils.py", line 468, in package_export f = NetCdf(f, pak.parent, **kwargs)

      File "C:\Program Files\Python36\lib\site-packages\flopy\export\netcdf.py", line 175, in __init__
        self.model_grid.grid_type))
    

    Exception: Grid type vertex not supported.

    everything works fine if I try to export shape files. Thanks in advance

    in progress 
    opened by giovannifi 14
  • feat(utils): move channel flow utilities from modflow6

    feat(utils): move channel flow utilities from modflow6

    Move n-point cross section functions from MODFLOW 6 to new file flopy/utils/crossection_util.py (originally in modflow6 repo's autotest/scripts/cross_section_functions.py)

    This follows up on #1621 with a view to moving modeling-related utilities to flopy, narrowing the scope of pymake to build-related concerns, and using a shared set of test functions/patterns/conventions

    opened by w-bonelli 1
  • feature: use VCS for version automation

    feature: use VCS for version automation

    Is your feature request related to a problem? Please describe. FloPy version updates are already automated, scripts/update_version.py just needs to run at release time. Ad hoc versioning can be hard to get right and has limitations though, like providing no information between releases. Finer-grained version strings could be helpful e.g. to trace issues to release vs. development versions or even specific commits

    Describe the solution you'd like Could consider a tool like versioneer, maybe once it stabilizes a bit. It uses git as the source of truth, so versioning would just involve tagging revisions. From the link above:

    you get a useful fine-grained version string, updated every time you run your program, embedded into release products via the most common tarball-generation tools (setup.py sdist and git-archive). Developers will get detailed version information in their test logs (assuming you record version in them, which you should), so other developers can reproduce their tree. Bug reports from end users will contain enough data (assuming they emit the version string) to reproduce their code, and to learn if they have local modifications or not.

    Describe alternatives you've considered Not changing the current approach, it's simple enough and we need a script to update README.md and DISCLAIMER.md anyway

    Additional context Maybe this should be a discussion instead?

    enhancement 
    opened by w-bonelli 1
  • partial test for special case of reach 1 unconnected

    partial test for special case of reach 1 unconnected

    I have added test_sfr_connections() to test_mf6.py. It uses external files added to examples/data/sfr_test/ which define the package and connection data.

    The model that uses examples/data/sfr_test/mf6_sfr0_* has the last two reaches unconnected . MF6 runs with a mild warning and flopy loads the model fine.

    The model that uses examples/data/sfr_test/mf6_sfr1_* has the first reach unconnected. MF6 runs with the same warning but flopy fails to load the model with the following warning, seemingly unrelated to the first reach:

    loading simulation...
      loading simulation name file...
      loading tdis package...
      loading model gwf6...
        loading package dis...
        loading package ic...
        loading package npf...
        loading package sfr...
    Traceback (most recent call last):
      File "C:\modelling\flopy\flopy\mf6\data\mffileaccess.py", line 1477, in read_list_data_from_file
        data_line=data_line,
      File "C:\modelling\flopy\flopy\mf6\data\mffileaccess.py", line 1893, in load_list_line
        zero_based=zero_based,
      File "C:\modelling\flopy\flopy\mf6\data\mffileaccess.py", line 2199, in _append_data_list
        sub_amt=sub_amt,
      File "C:\modelling\flopy\flopy\mf6\data\mfdatautil.py", line 107, in convert_data
        return int(PyListUtil.clean_numeric(data)) - sub_amt
    ValueError: invalid literal for int() with base 10: '17 16 -18'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "C:\modelling\flopy\flopy\mf6\mfpackage.py", line 896, in load
        external_file_info,
      File "C:\modelling\flopy\flopy\mf6\data\mfdatalist.py", line 1341, in load
        first_line, file_handle, storage, pre_data_comments
      File "C:\modelling\flopy\flopy\mf6\data\mffileaccess.py", line 1158, in load_from_package
        self._data_line,
      File "C:\modelling\flopy\flopy\mf6\data\mffileaccess.py", line 1497, in read_list_data_from_file
        ex,
    flopy.mf6.mfbase.MFDataException: An error occurred in data element "connectiondata" model "gwf6" package "sfr". The error occurred while loading data list from package file in the "read_list_data_from_file" method.
    Additional Information:
    (1) Unable to process line 17 of data list: "17 16 -18
    "
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\modelling\flopy\autotest\test_mf6.py", line 1091, in test_sfr_connections
        sim2 = MFSimulation.load(sim_ws=str(tmpdir))
      File "C:\modelling\flopy\flopy\mf6\modflow\mfsimulation.py", line 719, in load
        load_only,
      File "C:\modelling\flopy\flopy\mf6\modflow\mfgwf.py", line 137, in load
        load_only,
      File "C:\modelling\flopy\flopy\mf6\mfmodel.py", line 805, in load_base
        instance.load_package(ftype, fname, pname, strict, None)
      File "C:\modelling\flopy\flopy\mf6\mfmodel.py", line 1858, in load_package
        package.load(strict)
      File "C:\modelling\flopy\flopy\mf6\mfpackage.py", line 2639, in load
        self._load_blocks(fd_input_file, strict)
      File "C:\modelling\flopy\flopy\mf6\mfpackage.py", line 2817, in _load_blocks
        block_header_info, fd_input_file, strict
      File "C:\modelling\flopy\flopy\mf6\mfpackage.py", line 908, in load
        fd_block.name,
    flopy.mf6.mfbase.MFDataException: An error occurred in data element "connectiondata" model "test_sfr" package "sfr". The error occurred while loading data list from package file in the "read_list_data_from_file" method.
    Additional Information:
    (1) Unable to process line 17 of data list: "17 16 -18
    "
    (2) Error occurred while loading data "connectiondata" in block "connectiondata" from file "C:\modelling\flopy\autotest\.\../examples/data/sfr_test/mf6_sfr1_connection.txt".
    

    Admittedly this is a "special" case and I am struggling to piece together the testing structure (I'm new to testing, sorry). But hopefully this gives enough for someone to go on? @mwtoews , @emorway-usgs ?

    opened by wkitlasten 1
  • bug: location of mf6 executable using relative path

    bug: location of mf6 executable using relative path

    I am stumbling with flopy to locate the mf6 executable on my Mac.

    I define the location with a relative path, as per documentation (Relative path to MODFLOW 6 executable from the simulation working folder).

    exe_name='../bin/mf6'

    But when I run the model I get:

    FileNotFoundError: [Errno 2] No such file or directory: '../bin/mf6'

    When in the next code cell I do:

    ls ../bin/

    I get

    mf6* mp7*

    So mf6 clearly exist in the right location and is executable. I can even run it

    !../bin/mf6

    Gives

    ERROR REPORT: 1. mf6: mfsim.nam is not present in working directory.

    When I move this mf6 to the same directory as the notebook and change exe_name to

    path = os.getcwd() exe_name=path + '/mf6'

    But then it is an absolute path.

    My colleague claims that

    exe_name='../bin/mf6.exe'

    works on his Windows machine.

    Is this a Mac problem?

    bug 
    opened by mbakker7 5
  • `flopy.discretization.ModelTime` object lacks API for reading references from files

    `flopy.discretization.ModelTime` object lacks API for reading references from files

    flopy 3.3.5 python 3.10.5

    Model grid geographic reference information can be loaded from files. No such option exists for model temporal reference information.

    Current Behavior

    Default behavior for flopy.discretization.Grid classes is to read from the following references in order:

    1. usgs.model.reference
    2. NAM file (header comment)
    3. defaults

    The .modflow.Modflow class creates .discretization.ModelTime and (sub-classes of) .discretization.Grid objects for it's modeltime and modelgrid attributes (respectively).

    The ModelTime object does not support reading from the above references like it's Grid counterpart does. Additionally, the .utils.reference.TemporalReference does not support reading from file either.

    Existing behavior for reading temporal information exists in the Grid class in it's read_usgs_model_reference_file and attribs_from_namfile_header methods. Currently, temporal information is not used. Moving these methods to .utils.reference, and adjusting them to be functions that return dict could allow their use in the ModelTime class as well.

    Proposed Change

    1. Create 2 functions, read_usgs_model_reference_file and read_attribs_from_namfile_header in .utils.reference. Use the following signatures.
      • def read_usgs_model_reference_file(reffile: str="usgs.model.reference") -> dict:
      • def read_attribs_from_namfile_header(namefile: str)-> dict:
    2. Alter 2 existing methods in .discretization.Grid. Adjust these methods to use the .utils.referece functions created above. Changes would be made o read_usgs_model_reference_file and attribs_from_namfile_header methods.
    3. Add 2 methods in .discretization.ModelTime class to mirror the API for the Grid class.

    Files changed would be:

    • flopy/discretization/grid.py
    • flopy/discretization/modeltime.py
    • flopy/utils/reference.py

    Let me know if you see any complications here that I am ignorant to. If there are none seen, I can submit a pull request.

    Cheers

    Minimum Reproducible Example Files

    example.nam
    # Name file for MODFLOW-NWT, generated by Flopy version 3.3.5.
    LIST               2  example.list
    DIS               11  example.dis
    
    example.dis
    # DIS package for MODFLOW-NWT generated by Flopy 3.3.5
             1         1         1         5         4         2
      0
    CONSTANT    1.000000E+00                           #delr                          
    CONSTANT    1.000000E+00                           #delc                          
    CONSTANT    1.000000E+00                           #model_top                     
    CONSTANT    0.000000E+00                           #botm layer 1                  
          1.000000             1  1.000000  SS 
          1.000000             1  1.000000  SS 
          1.000000             1  1.000000  SS 
          1.000000             1  1.000000  SS 
          1.000000             1  1.000000  SS 
    
    usgs.model.reference
    # Hypothetical, non-zero for demonstration
    xul 2.022
    yul 3.14
    rotation 42
    # Set non-typical
    time_units days
    start_date 1/1/2000
    start_time 00:00:00
    
    read_example.py
    import flopy
    
    model = flopy.modflow.Modflow.load('example.nam')
    model.modelgrid.load_coord_info('example.nam')  # No api available for temporal data
    
    print(model.modeltime.start_datetime)
    # 1-1-1970
    print(model.modelgrid)
    # xll:2.691130606358858; yll:2.3968551745226057; rotation:42.0; units:meters; lenuni:2
    
    opened by zroy-wc 1
  • feature: create packages() for MODFLOW 6 as a executable

    feature: create packages() for MODFLOW 6 as a executable

    Is your feature request related to a problem? Please describe. There isn't a problem with create packages() but is relatively obscure.

    Describe the solution you'd like A create packages() executable like get-modflow. Options could be available to download definition files from specified releases or provide path to custom definition files.

    Describe alternatives you've considered None other than using the current implementation create packages().

    Additional context None

    enhancement 
    opened by jdhughes-usgs 0
Releases(3.3.6)
  • 3.3.6(Dec 15, 2022)

    New features

    • feat(time step length): Added feature that returns time step lengths from listing file (#1435) (#1437). Committed by scottrp on 2022-06-30.
    • feat: Get modflow utility (#1465). Committed by Mike Taves on 2022-07-27.
    • feat(Gridintersect): New grid intersection options (#1468). Committed by Davíd Brakenhoff on 2022-07-27.
    • feat: Unstructured grid from specification file (#1524). Committed by w-bonelli on 2022-09-08.
    • feat(aux variable checking): Check now performs aux variable checking (#1399) (#1536). Committed by spaulins-usgs on 2022-09-12.
    • feat(get/set data record): Updated get_data/set_data functionality and new get_record/set_record methods (#1568). Committed by spaulins-usgs on 2022-10-06.
    • feat(get_modflow): Support modflow6 repo releases (#1573). Committed by w-bonelli on 2022-10-11.
    • feat(contours): Use standard matplotlib contours for StructuredGrid map view plots (#1615). Committed by w-bonelli on 2022-11-10.

    Bug fixes

    • fix(geometry): Is_clockwise() now works as expected for a disv problem (#1374). Committed by Eric Morway on 2022-03-16.
    • fix(packaging): Include pyproject.toml to sdist, check package for PyPI (#1373). Committed by Mike Taves on 2022-03-21.
    • fix(url): Use modern DOI and USGS prefixes; upgrade other HTTP->HTTPS (#1381). Committed by Mike Taves on 2022-03-23.
    • fix(packaging): Add docs/*.md to MANIFEST.in for sdist (#1391). Committed by Mike Taves on 2022-04-01.
    • fix(_plot_transient2d_helper): Fix filename construction for saving plots (#1388). Committed by Joshua Larsen on 2022-04-01.
    • fix(simulation packages): *** Breaks interface *** (#1394). Committed by spaulins-usgs on 2022-04-19.
    • fix(plot_pathline): Split recarray into particle list when it contains multiple particle ids (#1400). Committed by Joshua Larsen on 2022-04-30.
    • fix(lgrutil): Child delr/delc not correct if parent has variable row/col spacings (#1403). Committed by langevin-usgs on 2022-05-03.
    • fix(ModflowUzf1): Fix for loading negative iuzfopt (#1408). Committed by Joshua Larsen on 2022-05-06.
    • fix(features_to_shapefile): Fix missing bracket around linestring for shapefile (#1410). Committed by Joshua Larsen on 2022-05-06.
    • fix(mp7): Ensure shape in variables 'zones' and 'retardation' is 3d (#1415). Committed by Ruben Caljé on 2022-05-11.
    • fix(ModflowUzf1): Update load for iuzfopt = -1 (#1416). Committed by Joshua Larsen on 2022-05-17.
    • fix(recursion): Infinite recursion fix for getattr. Spelling error fix in notebook. (#1414). Committed by scottrp on 2022-05-19.
    • fix(get_structured_faceflows): Fix index issue in lower right cell (#1417). Committed by jdhughes-usgs on 2022-05-19.
    • fix(package paths): Fixed auto-generated package paths to make them unique (#1401) (#1425). Committed by spaulins-usgs on 2022-05-31.
    • fix(get-modflow/ci): Use GITHUB_TOKEN to side-step ratelimit (#1473). Committed by Mike Taves on 2022-07-29.
    • fix(get-modflow/ci): Handle 404 error to retry request from GitHub (#1480). Committed by Mike Taves on 2022-08-04.
    • fix(intersect): Update to raise error only when interface is called improperly (#1489). Committed by Joshua Larsen on 2022-08-11.
    • fix(GridIntersect): Fix DeprecationWarnings for Shapely2.0 (#1504). Committed by Davíd Brakenhoff on 2022-08-19.
    • fix: CI, tests & modpathfile (#1495). Committed by w-bonelli on 2022-08-22.
    • fix(HeadUFile): Fix #1503 (#1510). Committed by w-bonelli on 2022-08-26.
    • fix(setuptools): Only include flopy and flopy.* packages (not autotest) (#1529). Committed by Mike Taves on 2022-09-01.
    • fix(mfpackage): Modify maxbound evaluation (#1530). Committed by jdhughes-usgs on 2022-09-02.
    • fix(PlotCrossSection): Update number of points check (#1533). Committed by Joshua Larsen on 2022-09-08.
    • fix(parsenamefile): Only do lowercase comparison when parent dir exists (#1554). Committed by Mike Taves on 2022-09-22.
    • fix(obs): Modify observations to load single time step files (#1559). Committed by jdhughes-usgs on 2022-09-29.
    • fix(PlotMapView notebook): Remove exact contour count assertion (#1564). Committed by w-bonelli on 2022-10-03.
    • fix(test markers): Add missing markers for exes required (#1577). Committed by w-bonelli on 2022-10-07.
    • fix(csvfile): Default csvfile to retain all characters in column names (#1587). Committed by langevin-usgs on 2022-10-14.
    • fix(csvfile): Correction to read_csv args, close file handle (#1590). Committed by Mike Taves on 2022-10-16.
    • fix(data shape): Fixed incorrect data shape for sfacrecord (#1584). Fixed a case where time array series data did not load correctly from a file when the data shape could not be determined (#1594). (#1598). Committed by spaulins-usgs on 2022-10-21.
    • fix(write_shapefile): Fix transform call for exporting (#1608). Committed by Joshua Larsen on 2022-10-27.
    • fix(multiple): Miscellanous fixes/enhancements (#1614). Committed by w-bonelli on 2022-11-03.
    • fix: Not reading comma separated data correctly (#1634). Committed by Michael Ou on 2022-11-23.
    • fix(get-modflow): Fix code.json handling (#1641). Committed by w-bonelli on 2022-12-08.
    • fix(quotes+exe_path+nam_file): Fixes for quoted strings, exe path, and nam file (#1645). Committed by spaulins-usgs on 2022-12-08.

    Refactoring

    Source code(tar.gz)
    Source code(zip)
  • 3.3.5(Mar 9, 2022)

    • New features:

      • feat(mvt): Add simulation-level support for mover transport (#1357). Committed by langevin-usgs on 2022-02-18.
      • feat(gwtgwt-mvt): Add support for gwt-gwt with mover transport (#1356). Committed by langevin-usgs on 2022-02-18.
      • feat(inspect cells): New feature that returns model data associated with specified model cells (#1140) (#1325). Committed by spaulins-usgs on 2022-01-11.
      • feat(multiple package instances): Flopy support for multiple instances of the same package stored in dfn files (#1239) (#1321). Committed by spaulins-usgs on 2022-01-07.
      • feat(Gridintersect): Add shapetype kwarg (#1301). Committed by Davíd Brakenhoff on 2021-12-03.
      • feat(get_ts): Added support to get_ts for headufile (#1260). Committed by Ross Kushnereit on 2021-10-09.
      • feat(CellBudget): Add support for full3d keyword (#1254). Committed by jdhughes-usgs on 2021-10-05.
      • feat(mf6): Allow multi-package for stress package concentrations (spc) (#1242). Committed by langevin-usgs on 2021-09-16.
      • feat(lak6): Support none lake bedleak values (#1189). Committed by jdhughes-usgs on 2021-08-16.
    • Bug fixes:

      • fix(exchange obs): Fixed building of obs package for exchange packages (through mfsimulation) (#1363). Committed by spaulins-usgs on 2022-02-28.
      • fix(tab files): Fixed searching for tab file packages (#1337) (#1344). Committed by scottrp on 2022-02-16.
      • fix(ModflowUtllaktab): Utl-lak-tab.dfn is redundant to utl-laktab.dfn (#1339). Committed by Mike Taves on 2022-01-27.
      • fix(cellid): Fixes some issues with flopy properly identifying cell ids (#1335) (#1336). Committed by spaulins-usgs on 2022-01-25.
      • fix(postprocessing): Get_structured_faceflows fix to support 3d models (#1333). Committed by langevin-usgs on 2022-01-21.
      • fix(Raster): Resample_to_grid failure no data masking failure with int dtype (#1328). Committed by Joshua Larsen on 2022-01-21.
      • fix(voronoi): Clean up voronoi examples and add error check (#1323). Committed by langevin-usgs on 2022-01-03.
      • fix(filenames): Fixed how spaces in filenames are handled (#1236) (#1318). Committed by spaulins-usgs on 2021-12-16.
      • fix(paths): Path code made more robust so that non-standard model folder structures are supported (#1311) (#1316). Committed by scottrp on 2021-12-09.
      • fix(UnstructuredGrid): Load vertices for unstructured grids (#1312). Committed by Chris Nicol on 2021-12-09.
      • fix(array): Getting array data (#1028) (#1290). Committed by spaulins-usgs on 2021-12-03.
      • fix(plot_pathline): Sort projected pathline points by travel time instead of cell order (#1304). Committed by Joshua Larsen on 2021-12-03.
      • fix(autotests): Added pytest.ini to declare test naming convention (#1307). Committed by Joshua Larsen on 2021-12-03.
      • fix(geospatial_utils.py): Added pyshp and shapely imports check to geospatial_utils.py (#1305). Committed by Joshua Larsen on 2021-12-03.
      • fix(path): Fix subdirectory path issues (#1298). Committed by Brioch Hemmings on 2021-11-18.
      • fix(): fix(mfusg/str) (#1296). Committed by Chris Nicol on 2021-11-11.
      • fix(io): Read comma separated list (#1285). Committed by Michael Ou on 2021-11-02.
      • fixes(1247): Make flopy buildable with pyinstaller (#1248). Committed by Tim Mitchell on 2021-10-20.
      • fix(keystring records): Fixed problem with keystring records containing multiple keywords (#1266). Committed by spaulins-usgs on 2021-10-15.
      • fix(ModflowFhb): Update datasets 4, 5, 6, 7, 8 loading routine for multiline records (#1264). Committed by Joshua Larsen on 2021-10-15.
      • fix(MFFileMgmt.string_to_file_path): Updated to support unc paths (#1256). Committed by Joshua Larsen on 2021-10-06.
      • fix(_mg_resync): Added checks to reset the modelgrid resync (#1258). Committed by Joshua Larsen on 2021-10-06.
      • fix(MFPackage): Fix mfsim.nam relative paths (#1252). Committed by Joshua Larsen on 2021-10-01.
      • fix(voronoi): Voronoigrid class upgraded to better support irregular domains (#1253). Committed by langevin-usgs on 2021-10-01.
      • fix(writing tas): Fixed writing non-constant tas (#1244) (#1245). Committed by spaulins-usgs on 2021-09-22.
      • fix(numpy elementwise comparison): Fixed numpy futurewarning. no elementwise compare is needed if user passes in a numpy recarray, this is only necessary for dictionaries. (#1235). Committed by spaulins-usgs on 2021-09-13.
      • fix(): fix(shapefile_utils) unstructured shapefile export (#1220) (#1222). Committed by Chris Nicol on 2021-09-03.
      • fix(rename and comments): Package rename code and comment propagation (#1226). Committed by spaulins-usgs on 2021-09-03.
      • fix(numpy): Handle deprecation warnings from numpy 1.21 (#1211). Committed by Mike Taves on 2021-08-23.
      • fix(Grid.saturated_thick): Update saturated_thick to filter confining bed layers (#1197). Committed by Joshua Larsen on 2021-08-18.
      • fix(): fix(pakbase) unstructured storage check (#1187) (#1194). Committed by Chris Nicol on 2021-08-17.
      • fix(MF6Output): Fix add new obs package issue (#1193). Committed by Joshua Larsen on 2021-08-17.
      • fix(): fix(plot/plot_bc) plot_bc fails with unstructured models (#1185). Committed by Chris Nicol on 2021-08-16.
      • fix(): fix(modflow/mfriv) unstructured mfusg RIV package load check fix (#1184). Committed by Chris Nicol on 2021-08-16.
      • fix(pakbase): Specify dtype=bool for 0-d active array used for usg (#1188). Committed by Mike Taves on 2021-08-16.
      • fix(raster): Rework raster threads to work on osx (#1180). Committed by jdhughes-usgs on 2021-08-10.
      • fix(): fix(loading mflist from file) (#1179). Committed by J Dub on 2021-08-09.
      • fix(grid, plotting): Bugfixes for all grid instances and plotting code (#1174). Committed by Joshua Larsen on 2021-08-09.
    Source code(tar.gz)
    Source code(zip)
  • 3.3.4(Aug 6, 2021)

    • New features:

      • feat(mf6-lake): Add helper function to create lake connections (#1163). Committed by jdhughes-usgs on 2021-08-04.
      • feat(data storage): Data automatically stored internally when simulation or model relative path changed (#1126) (#1157). Committed by spaulins-usgs on 2021-07-29.
      • feat(get_reduced_pumping): Update to read external pumping reduction files (#1162). Committed by Joshua Larsen on 2021-07-29.
      • feat(raster): Add option to extrapolate using nearest method (#1159). Committed by jdhughes-usgs on 2021-07-26.
      • Feat(ZoneBudget6): Added zonebudget6 class to zonbud.py (#1149). Committed by Joshua Larsen on 2021-07-12.
      • feat(grid): Add thickness method for all grid types (#1138). Committed by jdhughes-usgs on 2021-06-25.
      • feat(flopy for mf6 docs): Documentation added and improved for flopy (#1121). Committed by spaulins-usgs on 2021-06-01.
      • Feat(.output): Added output property method to mf6 packages and models (#1100). Committed by Joshua Larsen on 2021-04-23.
    • Bug fixes:

      • fix(flopy_io): Limit fixed point format string to fixed column widths (#1172). Committed by jdhughes-usgs on 2021-08-06.
      • fix(modpath7): Address #993 and #1053 (#1170). Committed by jdhughes-usgs on 2021-08-05.
      • fix(lakpak_utils): Fix telev and belev for horizontal connections (#1168). Committed by jdhughes-usgs on 2021-08-05.
      • fix(mfsfr2.check): Make reach_connection_gaps.chk.csv a normal csv file (#1151). Committed by Mike Taves on 2021-07-27.
      • fix(modflow/mfrch,mfevt): Mfusg rch,evt load and write fixes (#1148). Committed by Chris Nicol on 2021-07-13.
      • fix(Raster): Update default dtypes to include unsigned integers (#1147). Committed by Joshua Larsen on 2021-07-12.
      • fix(utils/check): File check for mfusg unstructured models (#1145). Committed by Chris Nicol on 2021-07-09.
      • fix(list parsing): Fixed errors caused by parsing certain lists with keywords in the middle (#1135). Committed by spaulins-usgs on 2021-06-25.
      • fix(plotutil.py, grid.py): Fix .plot() method using mflay parameter (#1134). Committed by Joshua Larsen on 2021-06-16.
      • fix(map.py): Fix slow plotting routines (#1118). Committed by Joshua Larsen on 2021-06-11.
      • fix(plot_pathline): Update modpath intersection routines (#1112). Committed by Joshua Larsen on 2021-06-11.
      • fix(gridgen): Mfusg helper function not indexing correctly (#1124). Committed by langevin-usgs on 2021-05-28.
      • fix(numpy): Aliases of builtin types is deprecated (#1105). Committed by Mike Taves on 2021-05-07.
      • fix(mfsfr2.py): Dataset 6b and 6c write routine, remove blank lines (#1101). Committed by Joshua Larsen on 2021-04-26.
      • fix(performance): Implemented performance improvements including improvements suggested by @briochh (#1092) (#1097). Committed by spaulins-usgs on 2021-04-12.
      • fix(package write): Allow user to define and write empty stress period blocks to package files (#1091) (#1093). Committed by scottrp on 2021-04-08.
      • fix(imports): Fix shapely and geojson imports (#1083). Committed by jdhughes-usgs on 2021-03-20.
      • fix(shapely): Handle deprecation warnings from shapely 1.8 (#1069). Committed by Mike Taves on 2021-03-19.
      • fix(mp7particledata): Update dtype comparison for unstructured partlocs (#1071). Committed by rodrperezi on 2021-03-19.
      • fix(get_file_entry): None text removed from empty stress period data with aux variable (#1080) (#1081). Committed by scottrp on 2021-03-19.
      • fix(data check): Minimum number of data columns check fixed (#1062) (#1067). Committed by spaulins-usgs on 2021-03-17.
      • fix(plotutil): Number of plottable layers should be from util3d.shape[0] (#1077). Committed by Mike Taves on 2021-03-15.
      • fix(data check): Minimum number of data columns check fixed (#1062) (#1065). Committed by spaulins-usgs on 2021-02-19.
    Source code(tar.gz)
    Source code(zip)
  • 3.3.3(Feb 18, 2021)

    • New features:

      • feat(voronoi): Add voronoigrid class (#1034). Committed by langevin-usgs on 2021-01-05.
      • feat(unstructured): Improve unstructured grid support for modflow 6 and modflow-usg (#1021). Committed by langevin-usgs on 2020-11-27.
    • Bug fixes:

      • fix(createpackages): Avoid creating invalid escape characters (#1055). Committed by Mike Taves on 2021-02-17.
      • fix(DeprecationWarning): Use collections.abc module instead of collections (#1057). Committed by Mike Taves on 2021-02-15.
      • fix(DeprecationWarning): Related to numpy (#1058). Committed by Mike Taves on 2021-02-15.
      • fix(numpy): Aliases of builtin types is deprecated as of numpy 1.20 (#1052). Committed by Mike Taves on 2021-02-11.
      • fix(): fix(get_active) include the cbd layers when checking layer thickness before BAS is loaded (#1051). Committed by Michael Ou on 2021-02-08.
      • fix(dis): Fix for dis.get_lrc() and dis.get_node() (#1049). Committed by langevin-usgs on 2021-02-04.
      • fix(): fix(modflow/mflpf) mfusg unstructured lpf ikcflag addition (#1044). Committed by Chris Nicol on 2021-02-01.
      • fix(print MFArray): Fixed printing of layered arrays - issue #1043 (#1045). Committed by spaulins-usgs on 2021-01-29.
      • fix(GridIntersect): Fix vertices for offset grids (#1037). Committed by Davíd Brakenhoff on 2021-01-13.
      • fix(PlotMapView.plot_array()): Fix value masking code for masked_values parameter (#1026). Committed by Joshua Larsen on 2020-12-03.
      • fix(sfr ic option): Made ic optional and updated description (#1020). Committed by spaulins-usgs on 2020-11-27.
    Source code(tar.gz)
    Source code(zip)
  • 3.3.2(Oct 27, 2020)

    • New features:

      • feat(mf6): Update t503 autotest to use mf6examples zip file (#1007). Committed by jdhughes-usgs on 2020-10-21.
      • feat(mf6): Add modflow 6 gwt dfn and classes (#1006). Committed by jdhughes-usgs on 2020-10-21.
      • feat(geospatial_util): Geospatial consolidation utilities (#1002). Committed by Joshua Larsen on 2020-10-19.
      • feat(cvfdutil): Capability to create disv nested grids (#997). Committed by langevin-usgs on 2020-10-02.
      • feat(cellid not as tuple): List data input now accepts cellids as separate integers (#976). Committed by spaulins-usgs on 2020-08-27.
      • feat(set_all_data_external): New check_data option (#966). Committed by spaulins-usgs on 2020-08-17.
    • Bug fixes:

      • fix(gridintersect): Use linestrings and structured grid (#996). Committed by Tom van Steijn on 2020-09-25.
      • fix(): fix(extraneous blocks and zero length data in a list) (#990). Committed by spaulins-usgs on 2020-09-03.
      • fix(internal): Flopy fixed to correctly reads in internal keyword when no multiplier supplied. also, header line added to package files. (#962). Committed by spaulins-usgs on 2020-08-13.
      • fix(mfsfr2.py: Find_path): wrap find_path() so that the routing dictionary (graph) can still be copied, but won't be copied with every call of find_path() as it recursively finds the routing connections along a path in the sfr network. this was severely impacting performance for large sfr networks. (#955). Committed by aleaf on 2020-08-11.
      • fix(#958): Fix gridintersect._vtx_grid_to_shape_generator rtree for cells with more than 3 vertices (#959). Committed by mkennard-aquaveo on 2020-08-07.
      • fix(GridIntersect): Fix crash intersecting 3d points that are outside… (#957). Committed by mkennard-aquaveo on 2020-08-05.
      • fix(mvr): Added documentation explaining the difference between the two flopy mvr classes (#950). Committed by spaulins-usgs on 2020-07-31.
      • fix(check): Get_active() error for confining bed layers (#937). Committed by Michael Ou on 2020-07-29.
      • fix(rcha and evta): Irch and ievt arrays now zero based. fix for issue #941. also changed createpackages.py to always produce python scripts with unix-style line endings. (#949). Committed by spaulins-usgs on 2020-07-29.
      • fix(lgrutil): Corrected bug in child to parent vertical exchanges (#948). Committed by langevin-usgs on 2020-07-27.
      • fix(time series slowness): Speeds up performance when a large number of time series are used by a single stress package (#943). Committed by spaulins-usgs on 2020-07-17.
      • fix: Restore python 3.5 compatibility (modulenotfounderror -> importerror) (#933). Committed by Mike Taves on 2020-07-09.
      • fix(read binary file): Fix for reading binary files with array data (#931). Committed by spaulins-usgs on 2020-06-30.
      • fix(idomain): Data checks now treat all positive idomain values as active (#929). Committed by spaulins-usgs on 2020-06-29.
      • fix(Modpath7Sim): Fix timepointinterval calculation for timepointoption 3 (#927). Committed by jdhughes-usgs on 2020-06-26.
    Source code(tar.gz)
    Source code(zip)
  • 3.3.1(Jun 26, 2020)

    • New features:

      • feat(ModflowAg): Add the modflowag package for nwt (pull request #922). Committed by Joshua Larsen on 2020-06-25.
      • feat(GridIntersect): #902 (#903). Committed by Davíd Brakenhoff on 2020-06-10.
      • feat(mbase): Suppress duplicate package warning if verbose is false (#908). Committed by Hughes, J.D on 2020-06-09.
      • feat(ModflowSms): Add support for simple, moderate, complex (#906). Committed by langevin-usgs on 2020-06-09.
      • feat(str): Add irdflg and iptflg control to str (#905). Committed by Hughes, J.D on 2020-06-09.
      • feat(Mf6ListBudget): Add support for mf6 budgets with multiple packages with same name (#900). Committed by langevin-usgs on 2020-06-02.
      • feat(mfchd.py): Prevent write chk-file always (#869). Committed by Ralf Junghanns on 2020-05-08.
      • feat(set all data external): Set all data external for simulation (#846). Committed by spaulins-usgs on 2020-04-08.
      • feat(vtk): Improve export at vertices (#844). Committed by Etienne Bresciani on 2020-04-06.
      • feat(netcdf): Use modern features from pyproj>=2.2.0 (#840). Committed by Mike Taves on 2020-03-31.
      • feat(vtk): Export vectors to vtk. Committed by Etienne Bresciani on 2020-03-31.
      • feat(vtk): Export in .vti and .vtr when possible. Committed by Etienne Bresciani on 2020-03-28.
      • feat(vectors): Vector plots when stresses applied along boundaries (#817). Committed by langevin-usgs on 2020-03-05.
      • feat(plot_bc): Updated plot_bc for maw, uzf, sfr, and multiple bc packages (#808). Committed by Joshua Larsen on 2020-02-11.
      • feat(disl grids): Support for 1d vertex grids. fix for writing gridlines to shapefile (#799). Committed by spaulins-usgs on 2020-02-04.
      • feat(zb netcdf): Zonebudget netcdf export support added (#781). Committed by Joshua Larsen on 2020-01-17.
      • feat(mf6 checker): Input data check for mf6 (#779). Committed by spaulins-usgs on 2020-01-16.
    • Bug fixes:

      • fix(#280, #835): Set_all_data_external now includes constants, cellids in list data are checked (#920). Committed by spaulins-usgs on 2020-06-23.
      • fix(mfsfr2.check): Negative segments for lakes no longer included in segment numbering order check (#915). Committed by aleaf on 2020-06-23.
      • fix(GridIntersect): Fixes #916 and #917 (#918). Committed by Davíd Brakenhoff on 2020-06-22.
      • fix(ZoneBudget): Fix faulty logic in ZoneBudget (#911). Committed by Jason Bellino on 2020-06-22.
      • fix(SwtListBudget): Totim was not being read correctly for seawat list file (#910). Committed by langevin-usgs on 2020-06-10.
      • fix(Seawat.modelgrid): Pass lenuni from dis file into modelgrid instance (#901). Committed by Joshua Larsen on 2020-06-02.
      • fix(mfsimulation): Repair change for case insensitive model names (#897). Committed by langevin-usgs on 2020-06-01.
      • fix(_plot_util3d_helper, export_array): (#895). Committed by Joshua Larsen on 2020-06-01.
      • fix(): fix building in clean env (#894). Committed by Ritchie Vink on 2020-05-28.
      • fix(setup.py): Read package name, version, etc. from version.py (#893). Committed by Hughes, J.D on 2020-05-26.
      • fix(MFSimulation): Remove case sensitivity from register_ims_package() (#890). Committed by Joshua Larsen on 2020-05-25.
      • fix(modelgrid): Fix offset for xul and yul in read_usgs_model_reference_file and attribs_from_namfile_header (#889). Committed by Joshua Larsen on 2020-05-19.
      • fix(#886): Mfarray aux variable now always returned as an numpy.ndarray. fixed problem with pylistutil not fully supporting numpy.ndarray type. (#887). Committed by spaulins-usgs on 2020-05-19.
      • fix(CellBudgetFile): Update for auto precision with imeth = 5 or 6 (#876). Committed by Joshua Larsen on 2020-05-14.
      • fix(#870): Update ims name file record after removing ims package (#880). Committed by Joshua Larsen on 2020-05-14.
      • fix: #868, #874, #879 (#881). Committed by spaulins-usgs on 2020-05-14.
      • fix(#867): Fixed minimum record entry count for lists to never include keywords in the count (#875). Committed by spaulins-usgs on 2020-05-11.
      • fix(SfrFile): Update sfrfile for streambed elevation when present (#866). Committed by Joshua Larsen on 2020-05-04.
      • fix(#831,#858): Data length check and case-insensitive lookup (#864). Committed by spaulins-usgs on 2020-05-01.
      • fix(#856): Specifying period data with value none now only removes data from that period. also, fixed an unrelated problem by updating the multi-package list. (#857). Committed by spaulins-usgs on 2020-04-22.
      • fix(plot_array): Update plot_array method to mask using np.ma.masked_values (#851). Committed by Joshua Larsen on 2020-04-15.
      • fix(ModflowDis): Zero based get_node() and get_lrc()… (#847). Committed by Joshua Larsen on 2020-04-10.
      • fix(binaryfile_utils, CellbudgetFile): Update for imeth == 6 (#823). Committed by Joshua Larsen on 2020-04-10.
      • fix(utils.gridintersect): Bug in gridintersect for vertex grids (#845). Committed by Davíd Brakenhoff on 2020-04-06.
      • fix(mflmt.py): Clean up docstring for package_flows argument in lmt. Committed by emorway-usgs on 2020-03-31.
      • fix(str): Add consistent fixed and free format approach (#838). Committed by Hughes, J.D on 2020-03-31.
      • fix(vtk): Issues related to nan and type cast. Committed by Etienne Bresciani on 2020-03-31.
      • fix(pyproj): Pyproj.proj's errcheck keyword option not reliable (#837). Committed by Mike Taves on 2020-03-29.
      • fix: (#830): handling 'none' cellids in sfr package (#834). Committed by spaulins-usgs on 2020-03-25.
      • fix(): Fix quasi3d plotting (#819). Committed by Ruben Caljé on 2020-03-02.
      • fix(ModflowSfr2.export): Update modflowsfr2.export() to use grid instead of spatialreference (#820). Committed by Joshua Larsen on 2020-02-28.
      • fix(flopy3_MT3DMS_examples.ipynb): Wrong indices were indexed (#815). Committed by Eric Morway on 2020-02-20.
      • fix(build_exes.py): Fix bugs for windows (#810) (#813). Committed by Etienne Bresciani on 2020-02-18.
      • fix(mflist): Default value not working (#812). Committed by langevin-usgs on 2020-02-13.
      • fix(flopy3_MT3DMS_examples.ipynb): Match constant heads to original problem (#809). Committed by Eric Morway on 2020-02-11.
      • fix(vtk): Change in export_cbc output file name (#795). Committed by rodrperezi on 2020-01-30.
      • fix(mf6): Update create packages to support additional models (#790). Committed by Hughes, J.D on 2020-01-24.
      • fix(remove_package): Fixed remove_package to rebuild namefile recarray correctly after removing package - issue #776 (#784). Committed by spaulins-usgs on 2020-01-17.
      • fix(gridgen): X, y center was not correct for rotated grids (#783). Committed by langevin-usgs on 2020-01-16.
      • fix(mtssm.py): Handle 1st stress period with incrch equal to -1 (#780). Committed by Eric Morway on 2020-01-16.
      • fix(vtk): Change in export_model when packages_names is none (#770). Committed by rodrperezi on 2019-12-30.
      • fix(): fix(repeating blocks) (#771). Committed by spaulins-usgs on 2019-12-30.
      • fix(replace package): When a second package of the same type is added to a model, the model now checks to see if the package type supports multiple packages. if it does not it automatically removes the first package before adding the second (#767). (#768). Committed by spaulins-usgs on 2019-12-18.
      • fix(Mflist): Allow none as a list entry (#765). Committed by langevin-usgs on 2019-12-16.
    Source code(tar.gz)
    Source code(zip)
  • 3.3.0(Dec 14, 2019)

    • Dropped support for python 2.7

    • Switched from pangeo binder binder to mybinder.org binder

    • Added support for MODFLOW 6 Skeletal Compaction and Subsidence (CSUB) package

    • Bug fixes:

      • Fix issue in MNW2 when the input file had spaced between lines in Dataset 2. #736
      • Fix issue in MNW2 when the input file uses wellids with inconsistent cases in Dataset 2 and 4. Internally the MNW2 will convert all wellids to lower case strings. #736
      • Fix issue with VertexGrid plotting errors, squeeze proper dimension for head output, in PlotMapView and PlotCrossSection
      • Fix issue in PlotUtilities._plot_array_helper mask MODFLOW-6 no flow and dry cells before plotting
      • Removed assumption that transient SSM data appears in the first stress period #754 #756. Fix includes a new autotest (t068_test_ssm.py) that adds transient concentration data after the first stress period.
      • Fix issues with add_record method for MfList #758
    Source code(tar.gz)
    Source code(zip)
  • 3.2.13(Nov 18, 2019)

    Support for Python versions < 3.5 will be dropped in the next version of FloPy (version 3.3.0)

    • ModflowFlwob: Variable irefsp is now a zero-based integer (#596)

    • ModflowFlwob: Added a load method and increased precision of toffset when writing to file (#598)

    • New feature GridIntersect (#610): The GridIntersect object allows the user to intersect shapes (Points, LineStrings and Polygons) with a MODFLOW grid. These intersections return a numpy.recarray containing the intersection information, i.e. cell IDs, lengths or areas, and a shapely representation of the intersection results. Grids can be structured or vertex grids. Two intersections methods are implemented: "structured" and "strtree": the former accelerates intersections with structured grids. The latter is more flexible and also works for vertex grids. The GridIntersect class is available through flopy.utils.gridintersect. The functionality requires the Shapely module. See the example notebook for an overview of this new feature.

    • New feature Raster (#634): The Raster object allows the user to load raster files (Geotiff, arc ascii, .img) and sample points, sample polygons, create cross sections, crop, and resample raster data to a Grid. Cropping has been implemented using a modified version of the ray casting algorithm for speed purposes. Resampling a raster can be performed with structured, vertex, and unstructured Grids. Rasters will return a numpy array of resampled data in the same shape as the Grid. The Raster class is available by calling flopy.utils.Raster. The functionality requires rasterio, affine, and scipy. See the (example notebook) for an overview of this feature.

    • Modify NAM and MFList output files to remove excessive whitespace (#622, #722)

    • Deprecate crs class from flopy.utils.reference in favor of CRS class from flopy.export.shapefile_utils (#608)

    • New feature in PlotCrossSection (#660). Added a geographic_coords parameter flag to PlotCrossSection which allows the user to plot cross sections with geographic coordinates on the x-axis. The default behavior is to plot distance along cross sectional line on the x-axis. See the (example notebook) for an overview of this feature.

    • New feature with binaryfile readers, including HeadFile and CellBudgetFile (#669): with statement is supported to open files for reading in a context manager, which automatically close when done or if an exception is raised.

    • Improved the flopy list reader for MODFLOW stress packages (for mf2005, mfnwt, etc.), which may use SFAC to scale certain columns depending on the package. The list reading now supports reading from external files, in addition to open/close. The (binary) option is also supported for both open/close and external. This new list reader is used for reading standard stress package lists and also lists used to create parameters. The new list reader should be consistent with MODFLOW behavior.

    • SfrFile detects additional columns (#708)

    • Add a default_float_format property to mfsfr2, which is string formatted by NumPy versions > 1.14.0, or {:.8g} for older NumPy versions (#710)

    • Support for pyshp 1.2.1 dropped, pyshp 2.1.0 support maintained

    • Improved VTK export capabilities. Added export for VTK at array level, package level, and model level. Added binary head file export and cell by cell file export. Added the ability to export point scalars in addition to cell scalars, and added smooth surface generation. VTK export now supports writing transient data as well as exporting to binary .vtu files.

    • Support for copying model and package instances with copy.deepcopy()

    • Added link to Binder on README and notebooks_examples markdown documents. Binder provides an environment that runs and interactively serves the FloPy Jupyter notebooks.

    • Bug fixes:

      • When using the default iuzfbnd=None in the __init__ routine of mtuzt.py, instantiation of IUZBND was generating a 3D array instead of a 2D array. Now generates a 2D array
      • ModflowSfr2 __init__ was being slowed considerably by the ModflowSfr2.all_segments property method. Modified the ModflowSfr2.graph property method that describes routing connections between segments to handle cases where segments aren't listed in stress period 0.
      • Ensure disordered fields in reach_data (Dataset 2) can be supported in ModflowSfr2 and written to MODFLOW SFR input files.
      • When loading a MF model with UZF active, item 8 ("[IUZROW] [IUZCOL] IFTUNIT [IUZOPT]") wasn't processed correctly when a user comment appeared at the end of the line
      • MODFLOW-6 DISU JA arrays are now treated as zero-based cell IDs. JA, IHC, CL12 are outputted as jagged arrays.
      • Models with multiple MODFLOW-6 WEL packages now load and save correctly.
      • Exporting individual array and list data to a shapefile was producing an invalid attribute error. Attribute reference has been fixed.
      • Fix UnboundLocalError and typo with flopy.export.shapefile_utils.CRS class (#608)
      • Fix Python 2.7 issue with flopy.export.utils.export_contourf (#625)
      • When loading a MT3D-USGS model, keyword options (if used) were ignored (#649)
      • When loading a modflow model, spatial reference information was not being passed to the SpatialReference class (#659)
      • Fix specifysurfk option in UZF, ModflowUZF1 read and write surfk variable
      • Fix minor errors in flopy gridgen wrapper
      • Close opened files after loading, to reduce ResourceWarning messages (#673)
      • Fix bugs related to flake8's F821 "undefined name 'name'", which includes issues related to Mt3dPhc, ModflowSfr2, ModflowDe4, ListBudget, and ModflowSms (#686)
      • Fix bugs related to flake8's F811 "redefinition of unused 'name'" (#688)
      • Fix bugs related to flake8's W605 "invalid escape sequence '\s'" (or similar) (#700)
      • Fix EpsgReference class behavior with JSON user files (#702)
      • Fix ModflowSfr2 read write logic for all combinations of isfropt and icalc
      • IRCH array of the Recharge Package is now a zero-based variable, which means an IRCH value of 0 corresponds to the top model layer (#715)
      • MODFLOW lists were not always read correctly if they used the SFAC or binary options or were used to define parameters (#683)
      • Changed VDF Package density limiter defaults to zero (#646)
    Source code(tar.gz)
    Source code(zip)
  • 3.2.12(Jun 1, 2019)

    • Added a check method for OC package (#558)

    • Change default map projection from EPSG:4326 to None (#535)

    • Refactor warning message visibility and categories (#554, #575)

    • Support for MODFLOW 6 external binary files added. Flopy can read/write binary files containing list and array data (#470, #553).

    • Added silent option for MODFLOW 6 write_simulation (#552)

    • Refactored MODFLOW-6 data classes. File writing operations moved from mfdata*.py to new classes created in mffileaccess.py. Data storage classes moved from mfdata.py to mfdatastorage.py. MFArray, MFList, and MFScalar interface classes simplified with most of the data processing code moved to mfdatastorage.py and mffileaccess.py.

    • Added MODFLOW 6 quickstart example to front page.

    • Added lgrutil test as autotest/t063_test_lgrutil.py and implemented a get_replicated_parent_array() method to the Lgr class so that the user can pass in a parent array and get back an array that is the size of the child model.

    • Refactored much of the flopy code style to conform with Python conventions and those checked by Codacy. Added an automated Codacy check as part of the pull request and commit checks.

    • Bug fixes:

      • Fixed bug in Mt3dms.load to show correct error message when loading non-existent NAM file (#545)
      • Removed errant SFT parameter contained in Mt3dUzt.init routine (#572)
      • Fixed DISV shapefile export bug that applied layer 1 parameter values to all model layers during export (#508)
      • Updated ModflowSfr2.load to store channel_geometry and channel_flow_data (6d, 6e) by nseg instead of itmp position (#546)
      • Fixed bug in ModflowMnw2.make_node_data to be able to set multiple wells with different numbers of nodes (#556)
      • Fixed bug reading MODFLOW 6 comma separated files (#509)
      • Fixed bug constructing a grid class with MODFLOW-USG (#513)
      • Optimized performance of grid class by minimizing redundant operations through use of data result caching (#520)
      • Fixed bug passing multiple auxiliary variables for MODFLOW 6 array data (#533)
      • Fixed bug in Mt3dUzt.init; the variable ioutobs doesn't exist in the UZT package and was removed.
      • Fixed MODFLOW-LGR bug in which ascii files were not able to be created for some output. Added better testing of the MODFLOW-LGR capabilities to t035_test.py.
      • Fixed multiple issues in mfdis that resulted in incorrect row column determination when using the method get_rc_from_node_coordinates (#560). Added better testing of this to t007_test.py.
      • Fixed the export_array_contours function as contours would not export in some cases (#577). Added tests of export_array_contours and export_array to t007_test.py as these methods were not tested at all.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.11(Mar 23, 2019)

    • Added support for the drain return package.

    • Added support for pyshp version 2.x, which contains a different call signature for the writer than earlier versions.

    • Added a new flopy3_MT3DMS_examples notebook, which uses Flopy to reproduce the example problems described in the MT3DMS documentation report by Zheng and Wang (1999).

    • Pylint is now used on Travis for the Python 3.5 distribution to check for coding errors.

    • Added testing with Python 3.7 on Travis, dropped testing Python 3.4.

    • Added a new htop argument to the vtk writer, which allows cell tops to be defined by the simulated head.

    • Generalized exporting and plotting to also work with MODFLOW 6. Added a new grid class and deprecated SpatialReference class. Added new plotting interfaces, PlotMapView and PlotCrossSection. Began deprecation of ModelMap and ModelCrossSection classes.

    • Spatial reference system cache moved to epsgref.json in the user's data directory.

    • Attempts to read empty files from flopy.utils raise a IOError exception.

    • Changed interface for creating and accessing MODFLOW 6 observation, time series, and time array series packages. These packages can now be created and accessed directly from the package that references them. These changes are not backward compatible, and will require existing scripts to be modified. See the flopy3_mf6_obs_ts_tas.ipynb notebook for instructions.

    • Changed the MODFLOW 6 fname argument to be filename. This change is not backward compatible, and will require existing scripts to be modified if the fname argument was used in the package constructor.

    • Added modflow-nwt options support for ModflowWel, ModflowSfr2, and ModflowUzf1 via the OptionBlock class.

    • Bug fixes:

      • Removed variable MXUZCON from mtuzt.py that was present during the development of MT3D-USGS, but was not included in the release version of MT3D-USGS.
      • Now account for UZT -> UZT2 changes with the release of MT3D-USGS 1.0.1. Use of UZT is no longer supported.
      • Fixed bug in mfuzf1.py when reading and writing surfk when specifysurfk = True.
      • Fixed bug in ModflowStr.load(), utility would fail to load when comments were present.
      • Fixed bug in MNW2 in which nodes were not sorted correctly.
      • Ensure that external 1-D free arrays are written on one line.
      • Typos corrected for various functions, keyword arguments, property names, input file options, and documentation.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.10(Oct 19, 2018)

    • Added parameter_load variable to mbase that is set to true if parameter data are applied in the model (only used in models that support parameters). If this is set to True free_format_input is set to True (if currently False) when the write_input() method is called. This change preserves the precision of parameter data (which is free format data).

    • MODFLOW 6 model and simulation packages can not be retrieved as a MFSimulation attribute

    • Added support for multicomponent load in mfsft.py

    • Added functionality to read esri-style epsg codes from spatialreference.org.

    • Added functionality to MODFLOW 6 that will automatically replace the existing package with the one being added if it has the same name as the existing package.

    • Added separate MODFLOW 6 model classes for each model type. Model classes contain name file options.

    • Added standard run_model() method arguments to mf6 run_simulation() method.

    • some performance improvements to checking

    • SpatialReference.export_array() now writes 3-D numpy arrays to multiband GeoTiffs

    • Add load support to for MNW1; ModflowMnw1 now uses a stress_period_data Mflist to store MNW information, similar to other BC packages.

    • Added a Triangle class that is a light wrapper for the Triangle program for generating triangular meshes. Added a notebook called flopy3_triangle.ipynb that demonstrates how to use it and build a MODFLOW 6 model with a triangular mesh. The current version of this Triangle class should be considered beta functionality as it is likely to change.

    • Added support for MODPATH 7 (beta).

    • Added support for MODPATH 3 and 5 pathline and endpoint output files.

    • Added support for MODPATH timeseries output files (flopy.utils.TimeseriesFile()).

    • Added support for plotting MODPATH timeseries output data (plot_timeseries()) with ModelMap.

    • Bug fixes:

      • Fixed issue in HOB when the same layer is specified in the MLAY data (dataset 4). If the layer exists the previous fraction value is added to the current value.
      • Fixed bug in segment renumbering
      • Changed default value for ioutobs **kwargs in mtsft.py from None to 0 to prevent failure.
      • Fixed bug when passing extra components info from load to constructor in mtsft.py and mtrct.py.
      • Fixed bug in mt3ddsp load - if multidiffusion is not found, should only read one 3d array.
      • Fixed bug in zonbud utility that wasn't accumulating flow from constant heads.
      • Fixed minor bug that precluded the passing of mass-balance record names (TOTAL_IN, IN-OUT, etc.).
      • Fixed bug when writing shapefile projection (.prj) files using relative paths.
      • Fixed bugs in sfr.load() -- weight and flwtol should be cast as floats, not integers.
      • Fixed bug when SpatialReference supplied with geographic CRS.
      • Fixed bug in mfsfr.py when writing kinematic data (irtflg >0).
      • Fixed issue from change in MODFLOW 6 inspect.getargspec() method (for getting method arguments).
      • Fixed MODFLOW 6 BINARY keyword for reading binary data from a file using OPEN/CLOSE (needs parentheses around it).
      • Fixed bug in mtlkt.py when instatiating, loading, and/or writing lkt input file related to multi-species problems.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.9(Feb 19, 2018)

    • Modified MODFLOW 5 OC stress_period_data=None default behaviour. If MODFLOW 5 OC stress_period_data is not provided then binary head output is saved for the last time step of each stress period.

    • added multiple component support to mt3dusgs SFT module

    • Optimized loading and saving of MODFLOW 6 files

    • MODFLOW 6 identifiers are now zero based

    • Added remove_package method in MFSimulation and MFModel that removes MODFLOW 6 packages from the existing simulation/model

    • Changed some of the input argument names for MODFLOW 6 classes. Note that this will break some existing user scripts. For example, the stress period information was passed to the boundary package classes using the periodrecarray argument. The argument is now called stress_period_data in order to be consistent with other Flopy functionality.

    • Flopy code for MODFLOW 6 generalized to support different model types

    • Flopy code for some MODFLOW 6 arguments now have default values in order to be consistent with other Flopy functionality

    • Added ModflowSfr2.export_transient_variable method to export shapefiles of segment data variables, with stress period data as attributes

    • Added support for UZF package gages

    • Bug fixes:

      • Fixed issue with default settings for MODFLOW 5 SUB package dp dataset.
      • Fixed issue if an external BC list file has only one entry
      • Some patching for recarray issues with latest numpy release (there are more of these lurking...)
      • Fixed setting model relative path for MODFLOW 6 simulations
      • Python 2.7 compatibility issues fixed for MODFLOW 6 simulations
      • IMS file name conflicts now automatically resolved
      • Fixed issue with passing in numpy ndarrays arrays as layered data
      • Doc string formatting for MODFLOW 6 packages fixed to make doc strings easier to read
      • UZF package: fixed issues with handling of finf, pet, extdp and extwc arrays.
      • SFR package: fixed issue with reading stress period data where not all segments are listed for periods > 0.
      • SpatialReference.write_gridSpec was not converting the model origin coordinates to model length units.
      • shorted integer field lengths written to shapefiles to 18 characters; some readers may misinterpret longer field lengths as float dtypes.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.8(Dec 18, 2017)

    • Added has_package(name) method to see if a package exists. This feature goes nicely with get_package(name) method.
    • Added set_model_units() method to change model units for all files created by a model. This method can be useful when creating MODFLOW-LGR models from scratch.
    • Bug fixes:
      • Installation: Added dfn files required by MODFLOW 6 functionality to MANIFEST.in so that they are included in the distribution.
      • SFR2 package: Fixed issue reading transient data when ISFOPT is 4 or 5 for the first stress period.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.7(Dec 1, 2017)

    • Added beta support for MODFLOW 6 See here for more information.
    • Added support for retrieving time series from binary cell-by-cell files. Cell-by-cell time series are accessed in the same way they are accessed for heads and concentrations but a text string is required.
    • Added support for FORTRAN free format array data using n*value where n is the number of times value is repeated.
    • Added support for comma separators in 1D data in LPF and UPF files
    • Added support for comma separators on non array data lines in DIS, BCF, LPF, UPW, HFB, and RCH Packages.
    • Added .reset_budgetunit() method to OC package to faciltate saving cell-by-cell binary output to a single file for all packages that can save cell-by-cell output.
    • Added a .get_residual() method to the CellBudgetFile class.
    • Added support for binary stress period files (OPEN/CLOSE filename (BINARY)) in wel stress packages on load and instantiation. Will extend to other list-based MODFLOW stress packages.
    • Added a new flopy.utils.HeadUFile Class (located in binaryfile.py) for reading unstructured head files from MODFLOW-USG. The .get_data() method for this class returns a list of one-dimensional head arrays for each layer.
    • Added metadata.acdd class to fetch model metadata from ScienceBase.gov and manage CF/ACDD-complient metadata for NetCDF export
    • Added sparse export option for boundary condition stress period data, where only cells for that B.C. are exported (for example, package.stress_period_data.export('stuff.shp', sparse=True))
    • Added additional SFR2 package functionality:
      • .export_linkages() and .export_outlets() methods to export routing linkages and outlets
      • sparse shapefile export, where only cells with SFR reaches are included
      • .plot_path() method to plot streambed elevation profile along sequence of segments
      • .assign_layers() method
      • additional error checks and bug fixes
    • Added SpatialReference / GIS export functionality:
      • GeoTiff export option to SpatialReference.export_array
      • SpatialReference.export_array_contours: contours an array and then exports contours to shapefile
      • inverse option added to SpatialReference.transform
      • automatic reading of spatial reference info from .nam or usgs.model.reference files
    • Modified node numbers in SFR package and ModflowDis.get_node() from one- to zero-based.
    • Modified HYDMOD package klay variable from one- to zero-based.
    • Added .get_layer() method to DIS package.
    • Added .get_saturated_thickness() and .get_gradients() methods
    • Bug fixes:
      • OC package: Fixed bug when printing and saving data for select stress periods and timesteps. In previous versions, OC data was repeated until respecified.
      • SUB package: Fixed bug if data set 15 is passed to preserved unit numbers (i.e., use unit numbers passed on load).
      • SUB and SUB-WT packages: Fixed bugs .load() to pop original unit number.
      • BTN package: Fixed bug in obs.
      • LPF package: Fixed bug regarding when HANI is read and written.
      • UZF package: added support for MODFLOW NWT options block; fixed issue with loading files with thti/thtr options
      • SFR package: fixed bug with segment renumbering, issues with reading transient text file output,
      • Fixed issues with dynamic setting of SpatialReference parameters
      • NWT package: forgive missing value for MXITERXMD
      • MNW2 package: fix bug where ztop and zbotm were written incorrectly in get_allnode_data(). This was not affecting writing of these variables, only their values in this summary array.
      • PCGN package: fixed bug writing package.
      • Fixed issue in Util2d when non-integer cnstnt passed.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.6(Mar 19, 2017)

    • Added functionality to read binary grd file for unstructured grids.

    • Additions to SpatialReference class:

      • xll, yll input option
      • transform method to convert model coordinates to real-world coordinates
      • epsg and length_multiplier arguments
    • Export:

      • Added writing of prj files to shapefile export; prj information can be passed through spatial reference class, or given as an EPSG code or existing prj file path
      • Added NetCDF export to MNW2
    • Added MODFLOW support for:

      • FHB Package - no support for flow or head auxiliary variables (datasets 2, 3, 6, and 8)
      • HOB Package
    • New utilities:

      • flopy.utils.get_transmissivities() Computes transmissivity in each model layer at specified locations and open intervals. A saturated thickness is determined for each row, column or x, y location supplied, based on the well open interval (sctop, scbot), if supplied, otherwise the layer tops and bottoms and the water table are used.
    • Added MODFLOW-LGR support - no support for model name files in different directories than the directory with the lgr control file.

    • Additions to MODPATH:

      • shapefile export of MODPATH Pathline and Endpoint data
      • Modpath.create_mpsim() supports MNW2
      • creation of MODPATH StartingLocations files
      • Easy subsetting of endpoint and pathline results to destination cells of interest
    • New ZoneBudget class provides ZONEBUDGET functionality:

      • reads a CellBudgetFile and accumulates flows by zone
      • pass kstpkper or totim keyword arguments to retrieve a subset of available times in the CellBudgetFile
      • includes a method to write the budget recarrays to a .csv file
      • ZoneBudget objects support numerical operators to facilitate conversion of units
      • utilities are included which read/write ZONEBUDGET-style zone files to and from numpy arrays
      • pass a dictionary of {zone: "alias"} to rename fields to more descriptive names (e.g. {1: 'New York', 2: 'Delmarva'}
    • Added new precision='auto' option to flopy.utils.binaryfile for HeadFile and UcnFile readers. This will automatically try and determine the float precision for head files created by single and double precision versions of MODFLOW. 'auto' is now the default. Not implemented yet for cell by cell flow file.

    • Modified MT3D-related packages to also support MT3D-USGS

      • BTN will support the use of keywords (e.g., 'MODFLOWStyleArrays', etc.) on the first line
      • DSP will support the use of keyword NOCROSS
      • Keyword FREE now added to MT3D name file when the flow-transport link (FTL) file is formatted. Previously defaulted to unformatted only.
    • Added 3 new packages:

      • SFT: Streamflow Transport, companion transport package for use with the SFR2 package in MODFLOW
      • LKT: Lake Transport, companion transport package for use with the LAK3 package in MODFLOW
      • UZT: Unsaturated-zone Transport, companion transport package for use with the UZF1 package in MODFLOW
    • Modified LMT

      • load() functionality will now support optional PACKAGE_FLOWS line (last line of LMT input)
      • write_file() will will now insert PACKAGE_FLOWS line based on user input
    • Bug fixes:

      1. Fixed bug in parsenamefile when file path in namefile is surrounded with quotes.
      2. Fixed bug in check routine when THICKSTRT is specified as an option in the LPF and UPW packages.
      3. Fixed bug in BinaryHeader.set_values method that prevented setting of entries based on passed kwargs.
      4. Fixed bugs in reading and writing SEAWAT Viscosity package.
      5. The DENSE and VISC arrays are now Transient3d objects, so they may change by stress period.
      6. MNW2: fixed bug with k, i, j node input option and issues with loading at model level
      7. Fixed bug in ModflowDis.get_cell_volumes().
    Source code(tar.gz)
    Source code(zip)
  • 3.2.5(Jun 27, 2016)

    Version 3.2.5

    • Added support for LAK and GAGE packages - full load and write functionality supported.
    • Added support for MNW2 package. Load and write of .mnw2 package files supported. Support for .mnwi, or the results files (.qsu, .byn) not yet implemented.
    • Improved support for changing the output format of arrays and variables written to MODFLOW input files.
    • Restructued SEAWAT support so that packages can be added directly to the SEAWAT model, in addition to the approach of adding a modflow model and a mt3d model. Can now load a SEAWAT model.
    • Added load support for MT3DMS Reactions package
    • Added multi-species support for MT3DMS Reactions package
    • Added static method to Mt3dms().load_mas that reads an MT3D mass file and returns a recarray
    • Added static method to Mt3dms().load_obs that reads an MT3D mass file and returns a recarray
    • Added method to flopy.modpath.Modpath to create modpath simulation file from modflow model instance boundary conditions. Also added examples of creating modpath files and post-processing modpath pathline and endpoint files to the flopy3_MapExample notebook.
    • Bug fixes:
      1. Fixed issue with VK parameters for LPF and UPW packages.
      2. Fixed issue with MT3D ADV load in cases where empty fields were present in the first line of the file.
      3. Fixed cross-section array plotting issues.
      4. BTN observation locations must now be entered in zero-based indices (a 1 is now added to the index values written to btn file)
      5. Uploaded supporting files for SFR example notebook; fixed issue with segment_data submitted as array (instead of dict) and as 0d array(s).
      6. Fixed CHD Package so that it now supports options, and therefore, auxiliary variables can be specified.
      7. Fixed loading BTN save times when numbers are touching.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.4(Feb 6, 2016)

    Version 3.2.4

    • Added basic model checking functionality (.check()).
    • Added support for reading SWR Process observation, stage, budget, flow, reach-aquifer exchanges, and structure flows.
    • flopy.utils.HydmodObs returns a numpy recarray. Previously numpy arrays were returned except when the slurp() method was used. The slurp method has been deprecated but the same functionality is available using the get_data() method. The recarray returned from the get_data() method includes the totim value and one or all of the observations (HYDLBL).
    • Added support for MODFLOW-USG DISU package for unstructured grids.
    • Added class (Gridgen) for creating layered quadtree grids using GRIDGEN (flopy.utils.gridgen). See the flopy3_gridgen notebook for an example of how to use the Gridgen class.
    • Added user-specified control on use of OPEN/CLOSE array options (see flopy3_external_file_handling notebook).
    • Added user-specified control for array output formats (see flopy3_array_outputformat_options IPython notebook).
    • Added shapefile as optional output format to .export() method and deprecated .to_shapefile() method.
    • Bug fixes:
      1. Fixed issue with right justified format statement for array control record for MT3DMS.
      2. Fixed bug writing PHIRAMP for MODFLOW-NWT well files.
      3. Fixed bugs in NETCDF export methods.
      4. Fixed bugs in LMT and BTN classes.
    Source code(tar.gz)
    Source code(zip)
NLMpy - A Python package to create neutral landscape models

NLMpy is a Python package for the creation of neutral landscape models that are widely used by landscape ecologists to model ecological patterns

Manaaki Whenua – Landcare Research 1 Oct 8, 2022
Step by Step on how to create an vision recognition model using LOBE.ai, export the model and run the model in an Azure Function

Step by Step on how to create an vision recognition model using LOBE.ai, export the model and run the model in an Azure Function

El Bruno 3 Mar 30, 2022
A Python package to process & model ChEMBL data.

insilico: A Python package to process & model ChEMBL data. ChEMBL is a manually curated chemical database of bioactive molecules with drug-like proper

Steven Newton 0 Dec 9, 2021
This repository contains the data and code for the paper "Diverse Text Generation via Variational Encoder-Decoder Models with Gaussian Process Priors" (SPNLP@ACL2022)

GP-VAE This repository provides datasets and code for preprocessing, training and testing models for the paper: Diverse Text Generation via Variationa

Wanyu Du 18 Dec 29, 2022
Aiming at the common training datsets split, spectrum preprocessing, wavelength select and calibration models algorithm involved in the spectral analysis process

Aiming at the common training datsets split, spectrum preprocessing, wavelength select and calibration models algorithm involved in the spectral analysis process, a complete algorithm library is established, which is named opensa (openspectrum analysis).

Fu Pengyou 50 Jan 7, 2023
OCTIS: Comparing Topic Models is Simple! A python package to optimize and evaluate topic models (accepted at EACL2021 demo track)

OCTIS : Optimizing and Comparing Topic Models is Simple! OCTIS (Optimizing and Comparing Topic models Is Simple) aims at training, analyzing and compa

MIND 478 Jan 1, 2023
A tutorial showing how to train, convert, and run TensorFlow Lite object detection models on Android devices, the Raspberry Pi, and more!

A tutorial showing how to train, convert, and run TensorFlow Lite object detection models on Android devices, the Raspberry Pi, and more!

Evan 1.3k Jan 2, 2023
Node-level Graph Regression with Deep Gaussian Process Models

Node-level Graph Regression with Deep Gaussian Process Models Prerequests our implementation is mainly based on tensorflow 1.x and gpflow 1.x: python

null 1 Jan 16, 2022
QuakeLabeler is a Python package to create and manage your seismic training data, processes, and visualization in a single place — so you can focus on building the next big thing.

QuakeLabeler Quake Labeler was born from the need for seismologists and developers who are not AI specialists to easily, quickly, and independently bu

Hao Mai 15 Nov 4, 2022
An Image compression simulator that uses Source Extractor and Monte Carlo methods to examine the post compressive effects different compression algorithms have.

ImageCompressionSimulation An Image compression simulator that uses Source Extractor and Monte Carlo methods to examine the post compressive effects o

James Park 1 Dec 11, 2021
To propose and implement a multi-class classification approach to disaster assessment from the given data set of post-earthquake satellite imagery.

To propose and implement a multi-class classification approach to disaster assessment from the given data set of post-earthquake satellite imagery.

Kunal Wadhwa 2 Jan 5, 2022
Calculates carbon footprint based on fuel mix and discharge profile at the utility selected. Can create graphs and tabular output for fuel mix based on input file of series of power drawn over a period of time.

carbon-footprint-calculator Conda distribution ~/anaconda3/bin/conda install anaconda-client conda-build ~/anaconda3/bin/conda config --set anaconda_u

Seattle university Renewable energy research 7 Sep 26, 2022
Official implementation of deep Gaussian process (DGP)-based multi-speaker speech synthesis with PyTorch.

Multi-speaker DGP This repository provides official implementation of deep Gaussian process (DGP)-based multi-speaker speech synthesis with PyTorch. O

sarulab-speech 24 Sep 7, 2022
Code for our paper at ECCV 2020: Post-Training Piecewise Linear Quantization for Deep Neural Networks

PWLQ Updates 2020/07/16 - We are working on getting permission from our institution to release our source code. We will release it once we are granted

null 54 Dec 15, 2022
Ansible Automation Example: JSNAPY PRE/POST Upgrade Validation

Ansible Automation Example: JSNAPY PRE/POST Upgrade Validation Overview This example will show how to validate the status of our firewall before and a

Calvin Remsburg 1 Jan 7, 2022
Code implementation from my Medium blog post: [Transformers from Scratch in PyTorch]

transformer-from-scratch Code for my Medium blog post: Transformers from Scratch in PyTorch Note: This Transformer code does not include masked attent

Frank Odom 27 Dec 21, 2022
An Easy-to-use, Modular and Prolongable package of deep-learning based Named Entity Recognition Models.

DeepNER An Easy-to-use, Modular and Prolongable package of deep-learning based Named Entity Recognition Models. This repository contains complex Deep

Derrick 9 May 30, 2022