From 39eec3452de98b2a843f4b08d4e88ad10870c586 Mon Sep 17 00:00:00 2001 From: Joshua Larsen Date: Fri, 20 Aug 2021 18:40:04 -0700 Subject: [PATCH 1/3] autotest updates for deprecations and updates --- autotest/t039_test.py | 102 ------------------------------------ autotest/t054_test_mfnwt.py | 2 +- autotest/t504_test.py | 4 +- 3 files changed, 3 insertions(+), 105 deletions(-) diff --git a/autotest/t039_test.py b/autotest/t039_test.py index 7c4b12f8ee..1bb5d39ad2 100644 --- a/autotest/t039_test.py +++ b/autotest/t039_test.py @@ -257,107 +257,6 @@ def test_get_model_shape(): return -def test_zonebudget_output_to_netcdf(): - from flopy.utils import HeadFile, ZoneBudgetOutput - from flopy.modflow import Modflow - from flopy.mf6 import MFSimulation - from flopy.export.utils import output_helper - - model_ws = os.path.join( - "..", "examples", "data", "freyberg_multilayer_transient" - ) - zb_ws = os.path.join("..", "examples", "data", "zonbud_examples") - - hds = "freyberg.hds" - nam = "freyberg.nam" - zon = "zonef_mlt.zbr" - - hds = HeadFile(os.path.join(model_ws, hds)) - ml = Modflow.load(nam, model_ws=model_ws) - zone_array = ZoneBudget.read_zone_file(os.path.join(zb_ws, zon)) - - # test with standard zonebudget output - zbout = "freyberg_mlt.txt" - ncf_name = zbout + ".nc" - - zb = ZoneBudgetOutput(os.path.join(zb_ws, zbout), ml.dis, zone_array) - vdf = zb.volumetric_flux() - - netobj = zb.dataframe_to_netcdf_fmt(vdf, flux=False) - - export_dict = {"hds": hds, "zonebud": netobj} - - output_helper(os.path.join(outpth, ncf_name), ml, export_dict) - - # test with zonebudget csv 1 output - zbout = "freyberg_mlt.1.csv" - ncf_name = zbout + ".nc" - - zb = ZoneBudgetOutput(os.path.join(zb_ws, zbout), ml.dis, zone_array) - - netobj = zb.dataframe_to_netcdf_fmt(zb.dataframe) - - export_dict = {"hds": hds, "zonebud": netobj} - - output_helper(os.path.join(outpth, ncf_name), ml, export_dict) - - # test with zonebudget csv 2 output - zbout = "freyberg_mlt.2.csv" - ncf_name = zbout + ".nc" - - zb = ZoneBudgetOutput(os.path.join(zb_ws, zbout), ml.dis, zone_array) - vdf = zb.volumetric_flux(extrapolate_kper=True) - - netobj = zb.dataframe_to_netcdf_fmt(vdf, flux=False) - - export_dict = {"hds": hds, "zonebud": netobj} - - output_helper(os.path.join(outpth, ncf_name), ml, export_dict) - - # test built in export function - zbout = "freyberg_mlt.2.csv" - ncf_name = zbout + ".bi1.nc" - - zb = ZoneBudgetOutput(os.path.join(zb_ws, zbout), ml.dis, zone_array) - zb.export(os.path.join(outpth, ncf_name), ml) - - # test built in export function with NetCdf output object - zbout = "freyberg_mlt.2.csv" - ncf_name = zbout + ".bi2.nc" - - zb = ZoneBudgetOutput(os.path.join(zb_ws, zbout), ml.dis, zone_array) - export_dict = {"hds": hds} - ncfobj = output_helper(os.path.join(outpth, ncf_name), ml, export_dict) - zb.export(ncfobj, ml) - - # test with modflow6/zonebudget6 - sim_ws = os.path.join( - "..", "examples", "data", "mf6", "test005_advgw_tidal" - ) - hds = "advgw_tidal.hds" - nam = "mfsim" - zon = "zonebudget6.csv" - ncf_name = zon + ".nc" - - zone_array = np.ones((3, 15, 10), dtype=int) - zone_array = np.add.accumulate(zone_array, axis=0) - sim = MFSimulation.load(nam, sim_ws=sim_ws, exe_name="mf6") - sim.set_sim_path(outpth) - sim.write_simulation() - sim.run_simulation() - hds = HeadFile(os.path.join(outpth, hds)) - - ml = sim.get_model("gwf_1") - - zb = ZoneBudgetOutput(os.path.join(zb_ws, zon), sim.tdis, zone_array) - vdf = zb.volumetric_flux() - - netobj = zb.dataframe_to_netcdf_fmt(vdf, flux=False) - export_dict = {"hds": hds, "zbud": netobj} - - output_helper(os.path.join(outpth, ncf_name), ml, export_dict) - - def test_zonbud_active_areas_zone_zero(rtol=1e-2): try: import pandas as pd @@ -472,6 +371,5 @@ def test_zonebudget_6(): test_dataframes() test_get_budget() test_get_model_shape() - test_zonebudget_output_to_netcdf() test_zonbud_active_areas_zone_zero() test_zonebudget_6() diff --git a/autotest/t054_test_mfnwt.py b/autotest/t054_test_mfnwt.py index f9a2cfaea2..784a74cdd6 100644 --- a/autotest/t054_test_mfnwt.py +++ b/autotest/t054_test_mfnwt.py @@ -115,7 +115,7 @@ def mfnwt_model(namfile, model_ws): wel = m.get_package("WEL") wel.specify = True wel.phiramp = 1.0e-5 - wel.phiramp_unit = 2 + wel.iunitramp = 2 # change workspace and write MODFLOW-NWT model tdir = os.path.splitext(namfile)[0] diff --git a/autotest/t504_test.py b/autotest/t504_test.py index 8e5b42ca8a..8b721af7a0 100644 --- a/autotest/t504_test.py +++ b/autotest/t504_test.py @@ -1185,7 +1185,7 @@ def test_mf6_output(): if not isinstance(zonbud, flopy.utils.ZoneBudget6): raise AssertionError() - if not isinstance(lst, flopy.utils.MfListBudget): + if not isinstance(lst, flopy.utils.Mf6ListBudget): raise AssertionError() bud = ml.output.budget() @@ -1202,7 +1202,7 @@ def test_mf6_output(): if not isinstance(zonbud, flopy.utils.ZoneBudget6): raise TypeError() - if not isinstance(lst, flopy.utils.MfListBudget): + if not isinstance(lst, flopy.utils.Mf6ListBudget): raise TypeError() uzf = ml.uzf From 37665ea41b8996ba9704d6eb7ed31122a8d4de2a Mon Sep 17 00:00:00 2001 From: Joshua Larsen Date: Fri, 20 Aug 2021 18:43:36 -0700 Subject: [PATCH 2/3] updates(zonbud, output_util, mfwel, OptionBlock): updates * remove deprecated code from zonbud.py * remove deprecated code form mfwel.py * fix MF6Output.list(), update to use Mf6ListBudget * fix Package.load() for mfnwt_options, well options not passed to well file when option block detected --- flopy/mf6/utils/output_util.py | 6 +- flopy/modflow/mfwel.py | 26 --- flopy/pakbase.py | 15 +- flopy/utils/__init__.py | 3 - flopy/utils/zonbud.py | 396 ++++++++++----------------------- 5 files changed, 125 insertions(+), 321 deletions(-) diff --git a/flopy/mf6/utils/output_util.py b/flopy/mf6/utils/output_util.py index 900aaf9e55..f0e3ce2d42 100644 --- a/flopy/mf6/utils/output_util.py +++ b/flopy/mf6/utils/output_util.py @@ -5,7 +5,7 @@ Mf6Obs, ZoneBudget6, ZoneFile6, - MfListBudget, + Mf6ListBudget, ) from ...utils.observationfile import CsvFile from ...pakbase import PackageInterface @@ -319,12 +319,12 @@ def __list(self): Returns ------- - MfListBudget, MtListBudget object + Mf6ListBudget object """ if self._lst is not None: try: list_file = os.path.join(self._sim_ws, self._lst) - return MfListBudget(list_file) + return Mf6ListBudget(list_file) except (AssertionError, IOError, FileNotFoundError): return None diff --git a/flopy/modflow/mfwel.py b/flopy/modflow/mfwel.py index 17c192ed6b..1a3c8a063a 100644 --- a/flopy/modflow/mfwel.py +++ b/flopy/modflow/mfwel.py @@ -262,32 +262,6 @@ def __init__( self.parent.add_package(self) - @property - def phiramp_unit(self): - """Get phiramp unit - - Returns - ------- - iunitramp: int - unit number of phiramp file - - """ - warnings.warn( - "phiramp_unit will be replaced with iunitramp for consistency", - DeprecationWarning, - ) - return self.iunitramp - - @phiramp_unit.setter - def phiramp_unit(self, phiramp_unit): - """Set phiramp unit - - Returns - ------- - - """ - self.iunitramp = phiramp_unit - def _ncells(self): """Maximum number of cells that have wells (developed for MT3DMS SSM package). diff --git a/flopy/pakbase.py b/flopy/pakbase.py index 73d3fe9db0..958c675b76 100644 --- a/flopy/pakbase.py +++ b/flopy/pakbase.py @@ -979,13 +979,14 @@ def load(f, model, pak_type, ext_unit_dict=None, **kwargs): it += 1 # add auxillary information to nwt options - if nwt_options is not None and options: - if options[0] == "noprint": - nwt_options.noprint = True - if len(options) > 1: - nwt_options.auxillary = options[1:] - else: - nwt_options.auxillary = options + if nwt_options is not None: + if options: + if options[0] == "noprint": + nwt_options.noprint = True + if len(options) > 1: + nwt_options.auxillary = options[1:] + else: + nwt_options.auxillary = options options = nwt_options diff --git a/flopy/utils/__init__.py b/flopy/utils/__init__.py index a590583e0a..22d57688d0 100644 --- a/flopy/utils/__init__.py +++ b/flopy/utils/__init__.py @@ -53,11 +53,8 @@ from .flopy_io import read_fixed_var, write_fixed_var from .zonbud import ( ZoneBudget, - read_zbarray, - write_zbarray, ZoneFile6, ZoneBudget6, - ZoneBudgetOutput, ZBNetOutput, ) from .postprocessing import get_transmissivities, get_specific_discharge diff --git a/flopy/utils/zonbud.py b/flopy/utils/zonbud.py index 69b33a77fd..6cc3d53ab4 100644 --- a/flopy/utils/zonbud.py +++ b/flopy/utils/zonbud.py @@ -2,10 +2,8 @@ import copy import numpy as np from itertools import groupby +from collections import OrderedDict from .utils_def import totim_to_datetime -import warnings - -warnings.simplefilter("once", PendingDeprecationWarning) class ZoneBudget: @@ -38,8 +36,8 @@ class ZoneBudget: Examples -------- - >>> from flopy.utils.zonbud import ZoneBudget, read_zbarray - >>> zon = read_zbarray('zone_input_file') + >>> from flopy.utils.zonbud import ZoneBudget + >>> zon = ZoneBudget.read_zone_file('zone_input_file') >>> zb = ZoneBudget('zonebudtest.cbc', zon, kstpkper=(0, 0)) >>> zb.to_csv('zonebudtest.csv') >>> zb_mgd = zb * 7.48052 / 1000000 @@ -89,9 +87,6 @@ def __init__( self.dis = self.model.dis if "dis" in kwargs.keys(): self.dis = kwargs.pop("dis") - if "sr" in kwargs.keys(): - kwargs.pop("sr") - warnings.warn("ignoring 'sr' parameter") if len(kwargs.keys()) > 0: args = ",".join(kwargs.keys()) raise Exception("LayerFile error: unrecognized kwargs: " + args) @@ -157,7 +152,7 @@ def __init__( self.izone = izone self.allzones = np.unique(izone) - self._zonenamedict = dict( + self._zonenamedict = OrderedDict( [(z, "ZONE_{}".format(z)) for z in self.allzones] ) @@ -1349,8 +1344,8 @@ def get_dataframes( Examples -------- - >>> from flopy.utils.zonbud import ZoneBudget, read_zbarray - >>> zon = read_zbarray('zone_input_file') + >>> from flopy.utils.zonbud import ZoneBudget + >>> zon = ZoneBudget.read_zone_file('zone_input_file') >>> zb = ZoneBudget('zonebudtest.cbc', zon, kstpkper=(0, 0)) >>> df = zb.get_dataframes() @@ -1674,6 +1669,40 @@ def copy(self): """ return copy.deepcopy(self) + def export(self, f, ml, **kwargs): + """ + Method to export a netcdf file, or add zonebudget output to + an open netcdf file instance + + Parameters + ---------- + f : str or flopy.export.netcdf.NetCdf object + ml : flopy.modflow.Modflow or flopy.mf6.ModflowGwf object + **kwargs : + logger : flopy.export.netcdf.Logger instance + masked_vals : list + list of values to mask + + Returns + ------- + flopy.export.netcdf.NetCdf object + + """ + from flopy.export.utils import output_helper + + if isinstance(f, str): + if not f.endswith(".nc"): + raise AssertionError( + "File extension must end with .nc to " + "export a netcdf file" + ) + + zbncfobj = dataframe_to_netcdf_fmt( + self.get_dataframes(pivot=True), self.izone, flux=True + ) + oudic = {"zbud": zbncfobj} + return output_helper(f, ml, oudic, **kwargs) + def __deepcopy__(self, memo): """ Over-rides the default deepcopy behavior. Copy all attributes except @@ -1946,10 +1975,10 @@ def get_dataframes( Examples -------- - >>> from flopy.utils.zonbud import ZoneBudget, read_zbarray - >>> zon = read_zbarray('zone_input_file') - >>> zb = ZoneBudget('zonebudtest.cbc', zon, kstpkper=(0, 0)) - >>> df = zb.get_dataframes() + >>> from flopy.utils.zonbud import ZoneBudget6 + >>> zb6 = ZoneBudget6.load("my_nam_file", model_ws="my_model_ws") + >>> zb6.run_model() + >>> df = zb6.get_dataframes() """ recarray = self.get_budget( @@ -2108,6 +2137,40 @@ def load(nam_file, model_ws="."): return zb6 + def export(self, f, ml, **kwargs): + """ + Method to export a netcdf file, or add zonebudget output to + an open netcdf file instance + + Parameters + ---------- + f : str or flopy.export.netcdf.NetCdf object + ml : flopy.modflow.Modflow or flopy.mf6.ModflowGwf object + **kwargs : + logger : flopy.export.netcdf.Logger instance + masked_vals : list + list of values to mask + + Returns + ------- + flopy.export.netcdf.NetCdf object + + """ + from flopy.export.utils import output_helper + + if isinstance(f, str): + if not f.endswith(".nc"): + raise AssertionError( + "File extension must end with .nc to " + "export a netcdf file" + ) + + zbncfobj = dataframe_to_netcdf_fmt( + self.get_dataframes(pivot=True), self._zon.izone, flux=True + ) + oudic = {"zbud": zbncfobj} + return output_helper(f, ml, oudic, **kwargs) + class ZoneFile6: """ @@ -2137,7 +2200,7 @@ def __init__(self, model, izone, extension=".zon", aliases=None): self.filename = self._parent.name + extension self.aliases = aliases self.allzones = [int(zn) for zn in np.unique(izone) if zn != 0] - self._zonenamedict = dict( + self._zonenamedict = OrderedDict( [(zn, "ZONE_{}".format(zn)) for zn in self.allzones] ) @@ -2555,50 +2618,6 @@ def _compute_net_budget(recarray, zonenamedict): return net_budget -def write_zbarray(fname, X, fmtin=None, iprn=None): - """ - Saves a numpy array in a format readable by the zonebudget program - executable. - - File format: - line 1: nlay, nrow, ncol - line 2: INTERNAL (format) - line 3: begin data - . - . - . - - example from NACP: - 19 250 500 - INTERNAL (10I8) - 199 199 199 199 199 199 199 199 199 199 - 199 199 199 199 199 199 199 199 199 199 - ... - INTERNAL (10I8) - 199 199 199 199 199 199 199 199 199 199 - 199 199 199 199 199 199 199 199 199 199 - ... - - Parameters - ---------- - X : array - The array of zones to be written. - fname : str - The path and name of the file to be written. - fmtin : int - The number of values to write to each line. - iprn : int - Padding space to add between each value. - - """ - warnings.warn( - "Deprecation planned in version" - " 3.3.5 Use ZoneBudget.write_zone_file()", - PendingDeprecationWarning, - ) - ZoneBudget.write_zone_file(fname, X, fmtin, iprn) - - def _read_zb_zblst(fname): """Method to read zonebudget zblst output @@ -2925,29 +2944,6 @@ def _zb_dict_to_recarray(data, aliases=None): return array.view(type=np.recarray) -def read_zbarray(fname): - """ - Reads an ascii array in a format readable by the zonebudget program - executable. - - Parameters - ---------- - fname : str - The path and name of the file to be written. - - Returns - ------- - zones : numpy ndarray - An integer array of the zones. - """ - warnings.warn( - "Deprecation planned for version 3.3.5, " - "use ZoneBudget.read_zone_file()", - PendingDeprecationWarning, - ) - return ZoneBudget.read_zone_file(fname) - - def _pivot_recarray(recarray): """ Method to pivot the zb output recarray to be compatible @@ -3068,7 +3064,6 @@ def _volumetric_flux(recarray, modeltime, extrapolate_kper=False): volumetric_data[key].append(zone) else: - t = temp[zix][key] tmp = np.nanmean(temp[zix][key]) vol = tmp * perlen[per] volumetric_data[key].append(vol) @@ -3106,219 +3101,56 @@ def _volumetric_flux(recarray, modeltime, extrapolate_kper=False): return pd.DataFrame.from_dict(volumetric_data) -class ZoneBudgetOutput: +def dataframe_to_netcdf_fmt(df, zone_array, flux=True): """ - DEPRECATED: Class method to process zonebudget output into - volumetric budgets + Method to transform a volumetric zonebudget dataframe into + array format for netcdf. + + time is on axis 0 + zone is on axis 1 Parameters ---------- - f : str - zonebudget output file path - dis : flopy.modflow.ModflowDis object - zones : np.ndarray - numpy array of zones - - """ - - def __init__(self, f, dis, zones=None): - import pandas as pd - from ..modflow import ModflowDis + df : pd.DataFrame + zone_array : np.ndarray + zonebudget zones array + flux : bool + boolean flag to indicate if budget data is a flux "L^3/T" (True, + default) or if the data have been processed to + volumetric values "L^3" (False) - warnings.warn( - "ZoneBudgetOutput will be deprecated in version 3.3.5," - "Use ZoneBudget.read_output(, pivot=True)" - " or ZoneBudget6.get_budget(, pivot=True)", - PendingDeprecationWarning, - ) + Returns + ------- + ZBNetOutput object - self._filename = f - self._otype = None - self._zones = zones - self.__pd = pd + """ + zones = np.sort(np.unique(df.zone.values)) + totim = np.sort(np.unique(df.totim.values)) - if isinstance(dis, ModflowDis): - add_prefix = True - model = dis.parent + data = {} + for col in df.columns: + if col in ("totim", "zone", "kper", "kstp", "perlen"): + pass else: - add_prefix = False - modelname = list(dis.model_or_sim.model_dict.keys())[0] - model = dis.model_or_sim.model_dict[modelname] - - self._modeltime = model.modeltime - self._data = ZoneBudget.read_output(f, add_prefix=add_prefix, net=True) - - def __repr__(self): - """ - String representation of the ZoneBudgetOutput class - - """ - zones = ", ".join([str(i) for i in self.zones]) - l = [ - "ZoneBudgetOutput Class", - "----------------------\n", - "Number of zones: {}".format(len(self.zones)), - "Unique zones: {}".format(zones), - "Number of buget records: {}".format(len(self.dataframe)), + data[col] = np.zeros((totim.size, zones.size), dtype=float) + + for i, time in enumerate(totim): + tdf = df.loc[ + df.totim.isin( + [ + time, + ] + ) ] + tdf = tdf.sort_values(by=["zone"]) - return "\n".join(l) - - @property - def zone_array(self): - """ - Property method to get the zone array - - """ - warnings.warn( - "ZoneBudgetOutput will be deprecated in version 3.3.5", - PendingDeprecationWarning, - ) - return np.asarray(self._zones, dtype=int) - - @property - def zones(self): - """ - Get a unique list of zones - - """ - warnings.warn( - "ZoneBudgetOutput will be deprecated in version 3.3.5", - PendingDeprecationWarning, - ) - return np.unique(self.zone_array) - - @property - def dataframe(self): - """ - Returns a net flux dataframe of the zonebudget output - - """ - warnings.warn( - "ZoneBudgetOutput will be deprecated in version 3.3.5", - PendingDeprecationWarning, - ) - data = _pivot_recarray(self._data) - return self.__pd.DataFrame.from_records(data) - - def export(self, f, ml, **kwargs): - """ - Method to export a netcdf file, or add zonebudget output to - an open netcdf file instance - - Parameters - ---------- - f : str or flopy.export.netcdf.NetCdf object - ml : flopy.modflow.Modflow or flopy.mf6.ModflowGwf object - **kwargs : - logger : flopy.export.netcdf.Logger instance - masked_vals : list - list of values to mask - - Returns - ------- - flopy.export.netcdf.NetCdf object - - """ - warnings.warn( - "ZoneBudgetOutput will be deprecated in version 3.3.5", - PendingDeprecationWarning, - ) - from flopy.export.utils import output_helper - - if isinstance(f, str): - if not f.endswith(".nc"): - raise AssertionError( - "File extension must end with .nc to " - "export a netcdf file" - ) - - zbncfobj = self.dataframe_to_netcdf_fmt(self.dataframe) - oudic = {"zbud": zbncfobj} - return output_helper(f, ml, oudic, **kwargs) - - def volumetric_flux(self, extrapolate_kper=False): - """ - Method to generate a volumetric budget table based on flux information - - Parameters - ---------- - extrapolate_kper : bool - flag to determine if we fill in data gaps with other - timestep information from the same stress period. - if True, we assume that flux is constant throughout a stress period - and the pandas dataframe returned contains a - volumetric budget per stress period - - if False, calculates volumes from available flux data - - Returns - ------- - pd.DataFrame - - """ - warnings.warn( - "ZoneBudgetOutput.volumetric_flux()" - " will be deprecated in version 3.3.5,", - PendingDeprecationWarning, - ) - recarray = _pivot_recarray(self._data) - return _volumetric_flux(recarray, self._modeltime, extrapolate_kper) - - def dataframe_to_netcdf_fmt(self, df, flux=True): - """ - Method to transform a volumetric zonebudget dataframe into - array format for netcdf. - - time is on axis 0 - zone is on axis 1 - - Parameters - ---------- - df : pd.DataFrame - flux : bool - boolean flag to indicate if budget data is a flux "L^3/T" (True, - default) or if the data have been processed to - volumetric values "L^3" (False) - zone_array : np.ndarray - zonebudget zones array - - Returns - ------- - ZBNetOutput object - - """ - warnings.warn( - "ZoneBudgetOutput will be deprecated in version 3.3.5", - PendingDeprecationWarning, - ) - zones = np.sort(np.unique(df.zone.values)) - totim = np.sort(np.unique(df.totim.values)) - - data = {} for col in df.columns: if col in ("totim", "zone", "kper", "kstp", "perlen"): pass else: - data[col] = np.zeros((totim.size, zones.size), dtype=float) - - for i, time in enumerate(totim): - tdf = df.loc[ - df.totim.isin( - [ - time, - ] - ) - ] - tdf = tdf.sort_values(by=["zone"]) - - for col in df.columns: - if col in ("totim", "zone", "kper", "kstp", "perlen"): - pass - else: - data[col][i, :] = tdf[col].values + data[col][i, :] = tdf[col].values - return ZBNetOutput(zones, totim, data, self.zone_array, flux=flux) + return ZBNetOutput(zones, totim, data, zone_array, flux=flux) class ZBNetOutput: From c1e819f3637cc3e0b093802f9c9d688220d855c6 Mon Sep 17 00:00:00 2001 From: Joshua Larsen Date: Fri, 20 Aug 2021 18:44:21 -0700 Subject: [PATCH 3/3] Remove references to deprecated code from notebooks --- .../Notebooks/flopy3_ZoneBudget_example.ipynb | 57 +- examples/Notebooks/flopy3_export.ipynb | 2082 +++++------------ 2 files changed, 605 insertions(+), 1534 deletions(-) diff --git a/examples/Notebooks/flopy3_ZoneBudget_example.ipynb b/examples/Notebooks/flopy3_ZoneBudget_example.ipynb index cfe8bcf38a..5dc8333ba7 100644 --- a/examples/Notebooks/flopy3_ZoneBudget_example.ipynb +++ b/examples/Notebooks/flopy3_ZoneBudget_example.ipynb @@ -22,12 +22,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "3.8.10 (default, May 19 2021, 11:01:55) \n", - "[Clang 10.0.0 ]\n", - "numpy version: 1.19.2\n", - "matplotlib version: 3.4.2\n", - "pandas version: 1.0.5\n", - "flopy version: 3.3.4\n" + "3.7.4 (default, Aug 9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)]\n", + "numpy version: 1.18.1\n", + "matplotlib version: 3.1.2\n", + "pandas version: 0.25.3\n", + "flopy version: 3.3.5\n" ] } ], @@ -71,7 +70,7 @@ "metadata": {}, "source": [ "### Read File Containing Zones\n", - "Using the `read_zbarray` utility, we can import zonebudget-style array files." + "Using the `ZoneBudget.read_zone_file()` utility, we can import zonebudget-style array files." ] }, { @@ -79,17 +78,9 @@ "execution_count": 3, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:2944: PendingDeprecationWarning: Deprecation planned for version 3.3.5, use ZoneBudget.read_zone_file()\n", - " warnings.warn(\n" - ] - }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -101,10 +92,10 @@ } ], "source": [ - "from flopy.utils import read_zbarray\n", + "from flopy.utils import ZoneBudget\n", "\n", "zone_file = os.path.join(loadpth, 'zonef_mlt.zbr')\n", - "zon = read_zbarray(zone_file)\n", + "zon = ZoneBudget.read_zone_file(zone_file)\n", "nlay, nrow, ncol = zon.shape\n", "\n", "fig = plt.figure(figsize=(10, 4))\n", @@ -1327,7 +1318,7 @@ "outputs": [ { "data": { - "image/png": "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u+9nN/8uwkriMW7cuJ1LxPfq1Yt33nmHiRMnctRRRzFkyJC4y0ur008/fbe21atX07hxY2699dYYKhIRyXwa4BERERFJA3d/neTz6gB0K+ecUcCotBUlWaVGjRpcfPHFO7dPPvnkvLg1DWD9+vW7bLs7nTt35r333sPdadCgQUyVieSnkpISPvroIw477DDq1asXdzlp99lnn3HQQQdRr149lixZQnFxMW3btqVDhw5xl1YhraIlIiIiIpKBVq5cydVXX82QIUNYt24dt912Gx07dqR3796sWLEi7vLSqmHDhhx//PE7H4WFhSxfvpzjjjuOwsLdb9mTXZlZSzN71czeN7P5ZnZd2N7AzF42s4/D5/oJ59xsZgvN7EMzOzO+6iUTDB48eOfr119/nXbt2nHDDTdwzDHH8MILL8RYWfpl8wqGGuAREREREclA/fr1o127drRs2ZKuXbtSu3Ztnn/+eX70ox9x1VVXxV1eWt19990cddRRTJ06lcWLF7N48WIKCgpYvHgxixYtiru8bLANuMHdjwZOAoaYWTtgBDDT3dsAM8Ntwn19gPZAD+BBM6seS+WSEd56662dr//3f/+XZ599lldffZXXXnuNX/7ylzFWln6lKxj+61//YujQofzzn//k4Ycf5p133uGRRx6Ju7wKaYBHRERERCQDrVq1imuvvZYRI0bwxRdfMHz4cFq1asW1117Lp59+Gnd5aXXjjTcybtw4br/9doYNG8amTZu0PPoecPcV7j4nfL0JeB9oAfQExoeHjQfOD1/3BCa5+zfuvhhYCHSOtGjJWF9++SXHHXccAIcddhjbt+f29HClKxjWq1cv61Yw1Bw8WSZb7wUUERERkT2zY8eOna8vv/zyXfbl+g9YEKya9eSTT/Lcc8/RvXt3tmzZEndJWcnMWgPfB94Gmrj7CggGgcyscXhYC+CthNOWhW1l32sQMAigVatWaaxa4vbBBx/QsWNH3J0lS5awYcMG6tevz44dO9i6dWvc5aVVNq9gqAGeLFJUVMSf//xn9ttvP2688UZ++9vfcsoppzBy5EgGDBjAsGHD4i5RRERERFKkZ8+elJSUUKdOHe64446d7QsXLuSoo46KsbJonXfeeZx++ul88sknADz66KP0798/5qqyg5nVAZ4Grnf3Lyu4CirZDt+twX0sMBagsLBwt/2SO95///1dtuvUqQMEE6DffvvtcZQUmWxewVADPFmk9F7ALVu20Lp1axYtWkSjRo3YvHkzJ554ogZ4RCRt3J133nmH5cuXY2Y0b96czp0763J5EZE0Ku+HqCOOOIJzzjkn4mriVbt27Z1XrI8cOVIDPFVgZjUJBneecPdnwuZVZtYsvHqnGbA6bF8GtEw4vQD4PLpqJdMccsghSdsbNmzIBRdcEHE10crmFQw1wJNFSu8FrFWrVtbdCygi2eull15i8ODBtGnThhYtgqu1ly1bxsKFC3nwwQc544wzYq5QRCT/5PogR8eOHZO2uzurVq2KuJrsY8FvYB4G3nf3xGV/pgJ9gaLweUpC+0QzuxdoDrQB3omuYsk0X375Jb/5zW9YtmwZZ511FpdccsnOfYMHD+bBBx+Msbr0yua+a4Ani2TzvYAikr2uu+46ZsyYQevWrXdpX7x4MWefffZul/CKiEhq5PMgx6pVq5g+fTr169ffpd3ds+Y36TE7BfgZMM/M5oZttxAM7Ew2swHAZ8BFAO4+38wmAwsIVuAa4u65P9GTlKt///60adOGCy+8kEceeYSnn36aiRMnst9+++2ywlYuyua+a4Ani2TzvYAikr22bdtGQUHBbu0tWrTI+Un2RETilE2DHPe9/FFK36/193/Ew68u4LAOhbvta9r2+JR/XqKh3Y9M23tHxd1fJ/m8OgDdyjlnFDAqbUVJVvnkk094+umnATj//PMZNWoUp512GlOnTo25svTL5r5rgCeLZPO9gCKSva644gpOOOEE+vTpQ8uWwe35n332GX/9618ZMGBAzNWJiGSGdAw4xDXIkQkDHH1uuLPcfT+7+XcRViKSn7755ht27NhBtWrVALj11lspKCjgxz/+MSUlJTFXl17Z3PdqcRcgVbdy5UquvvpqhgwZwrp167jtttvo2LEjvXv3ZsWKFXGXJyI56uabb2bixIm4O2+++SZvvPEGAE888QQ333xzzNWJiOSuPjfcmXRwBzTIISLpdd555/HKK6/s0ta3b19+97vfUatWrZiqikY2911X8GSRfv36cc4557B582a6du3KpZdeyvPPP8+UKVO46qqrmDJlSuVvIiKyF44++miOPvrondurV6+mcePGMVYkIiIiIuly9913J23v0aMHt9xyS8TVRCub+x7ZFTxm1tLMXjWz981svpldF7bfZmbLzWxu+Dg74ZybzWyhmX1oZmdGVWumWrVqFddeey0jRozgiy++YPjw4bRq1Yprr72WTz/9NO7yRCRHrV+/frdH586d2bBhA+vXr4+7PBERERGJ0MiRI+MuITaZ3vcor+DZBtzg7nPM7EBgtpm9HO67z91/m3iwmbUD+gDtCZbqm2FmR+bzbO47duzY+fryyy/fZd/27Xn7xyIiadawYUMOOeSQXdqWL1/Occcdh5mxaNGimCoTERERkXTI51X8srnvkQ3wuPsKYEX4epOZvQ+0qOCUnsAkd/8GWGxmC4HOwJtpLzZD9ezZk5KSEurUqcMdd9yxs33hwoUcddRRMVYmIrns7rvvZsaMGdxzzz0cc8wxABx66KEsXrw45spEREREJB2yaRW/VMvmvscyB4+ZtQa+D7wNnAJcY2aXA8UEV/lsIBj8SVxkfhlJBoTMbBAwCKBVq1bpLTxmt99+Ox988AHLly/nxBNPpE6dOgAcccQRXHnllTFXJyK56sYbb6RPnz4MHTqUli1b8qtf/Qqz8lZeFREREZEo5fsqfqmuJZv6Xlbkq2iZWR3gaeB6d/8S+CNwONCJ4Aqf0iUBkv304Ls1uI9190J3L2zUqFF6is4QY8aMoWfPnowZM4YOHTrsMqlypk/2JCLZraCggCeffJKuXbvSvXt3tmzZEndJIiIiIpIm+byKXzb3PdIBHjOrSTC484S7PwPg7qvcfbu77wAeIrgNC4IrdlomnF4AfB5lvZlm7NixzJ49m2effZZZs2bx61//mtGjRwPB5WIiIunw9ttv8+WXXwLQrVs3fvzjH9OhQweGDx/Oxo0bY65OREREREQg2lW0DHgYeN/d701ob5Zw2H8B/wlfTwX6mNl+ZnYo0AZ4J6p6M9H27dt33pbVunVrZs2axbRp0xg2bJgGeEQkba644gr2339/AK6//nq2bt3Kbbfdxv7770///v1jrk5ERERERCDaOXhOAX4GzDOzuWHbLcDFZtaJ4ParJcDPAdx9vplNBhYQrMA1JJ9X0AJo2rQpc+fOpVOnTgDUqVOH559/niuuuIJ58+bFW5yI5KwdO3ZQo0bwv4vi4mLmzJkDwA9/+MOdeSQiIiIiIvGK7Aoed3/d3c3dO7p7p/Dxgrv/zN2PCdt/Eq62VXrOKHc/3N2PcvdpUdWaqSZMmEDTpk13aatRowYTJkzgH//4R0xViUiu69ChA48++igAxx57LMXFxQB89NFH1KxZM87SREREREQkFPkky7L3CgoKdhvgKXXKKadEXI2I5Itx48bx2muvcfjhh7NgwQJ+8IMfcNhhhzFw4EDGjRsXd3kiIiIiIkJMy6SLiEj2qFu3Lo899hibNm1i0aJFbNu2jYKCApo0aRJ3aSIiIiIiEtIATxrd9/JHcZeQEkO7Hxl3CSKSAQ488ECOPfbYuMsQEREREZEkNMAjIpJjcmVwGTTALCIiIiJSVZqDR0REREREREQky2mAR0REREREREQky2mAR0REREREREQky2mAR0REREREREQky2mAR0REREREREQky2kVLck6xcXFLF26lBo1atCmTRvatm0bd0mRyee+7wszqweMAzoADlwBfAj8FWgNLAF6u/uG8PibgQHAduAX7j498qJFRERERET2gAZ4JGu89tpr3HDDDdSrV4/Zs2dzyimnsGHDBmrWrMnjjz9Oy5Yt4y4xbfK57ykyGnjR3XuZWS1gf+AWYKa7F5nZCGAEMNzM2gF9gPZAc2CGmR3p7tvjKl5ERERERKQyukVLssb111/PtGnTmDFjBnPmzKFmzZr861//4tZbb2XAgAFxl5dW+dz3fWVmBwE/Bh4GcPdv3f0LoCcwPjxsPHB++LonMMndv3H3xcBCoHOUNYuIiIhEzcx6mNmHZrYw/OWXiGQZDfBI1ti+fTuNGjUCoFWrVnz66acAdO/eneXLl8dZWtrlc99T4DBgDfComb1nZuPM7ACgibuvAAifG4fHtwCWJpy/LGzbjZkNMrNiMytes2ZN+nogIiIikkZmVh14ADgLaAdcHF7VLCJZRAM8kjUKCwsZMGAAEydO5JJLLqFLly4AbNmyhe3bc/vumXzuewrUAI4D/uju3wc2E9yOVR5L0ubJDnT3se5e6O6FpQNwIiIiIlmoM7DQ3Re5+7fAJIKrmkUki2gOHskaf/7zn3nooYd44403OP3007niiisAMDOmT8/tOXDzue8psAxY5u5vh9tPEQzwrDKzZu6+wsyaAasTjk+c1KgA+DyyakVERESil+wK5hP39U2vv/565s6du69vUyXLNnwVyeek25T6tff4nFzpO+R3/z/t+gN+//vf79N7aIBHskbNmjUZPHjwbu21a9fmkEMOiaGi6ORz3/eVu680s6VmdpS7fwh0AxaEj75A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1u8St83stwQTg4mIpJXyR0TiovyRTFI6wHHcccfFXUqsSuciylYR5ooDB1owIlgHWA9sA04EFrr7ovDzJwE9gQXhc5fw/PHALGB4GmqTLLBq1SquvfZaAB588EGGDw/+KVx77bU8/PDDcZYWiU8++YSnn34agPPPP59Ro0Zx2mmnMXVq5n8NqMoky2XtDxyW6kJERKpA+SMicVH+SOyyfYBjXw0cODDuElItXbnyB4KBo8+BA4GfuvsOM2sBLE04bhnBoA9AE3dfAeDuK8yscbI3NrNBwCCAVq1apaF0yQQ7duzY+fryyy8vd1+u+uabb9ixYwfVqgU3PN16660UFBTw4x//mJKSkpirq1hV5uCZRzAKDMG9mo0A3X8uImmn/BGRuCh/JBPl4ADHHhk8eHDcJeyTCHPlTGAuwepchwMvm9k/gWT3+O3RqKG7jwXGAhQWFub3iGMO69mzJyUlJdSpU4c77rhjZ/vChQs58sgjY6wsGueddx6vvPIKp59++s62vn370qRJk51XNmWqqlzBc27C623AKnfflqZ6REQSKX9EJC7KH8k42T7AIenLFTMbApSOAG4AfunBJV8LzWwx0Jbgip2WCacVEFzlA7DKzJqFV+80A1anoi7JTrffnnzc8YgjjuCpp56KuJro3X333Unbe/TowccffxxxNXum3EmWzaxBOJv6poTHV8BBYbuISFoof0QkLsofEUm1KHLF3R9w907u3gn4AOgWfnYT4ChgEfAu0MbMDjWzWkAfvpsDaCrQN3zdF5iSiroke73zzju8++67ACxYsIB7772XF154IeaqopOt/a/oCp7ZBJfslXcpn+5DF5F0Uf6ISFyUPyKSalHnyq+Bx8JbwgwY7u5rAczsGmA6wS1ij7j7/PCcImCymQ0APgMuSnFNkkV+9atfMW3aNLZt20b37t15++236dKlC0VFRbz33nvceuutcZeYVtnc/3IHeNz90CgLEREppfwRkbgof0Qk1aLOFXf/HDijnH0vALtdhuDu6wiv+hF56qmnmDt3Lt988w1NmzZl2bJlHHTQQfz3f/83J554YkYPcKRCNve/SqtomdlPgB+Hm7Pc/fn0lSQi8p248sfMegCjCX7DNc7di6L4XBHJHPr+IyKpplyRbFCjRg2qV6/O/vvvz+GHH85BBx0EQO3atXeuLJXLsrn/lVZnZkXA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aQEsTdheFrYBNHH3FQDhc+Nkb2Bmg8ys2MyK16xZk9ZiRUTyUdOmTZk7d+7O7Tp16vD888+zdu1a5s2bF19hIiIiIiKyU9wDPJakbY9+HezuY9290N0LGzVqlKKyRESk1IQJE2jatOkubTVq1GDChAn84x//iKkqERERERFJlLYBHjMbYmZzw0fzcg5bBrRM2C4APg9frzKzZuF7NQNWp6tWEREpX0FBwW4DPKVOOeWUiKsREREREZFk0jbA4+4PuHun8PF5OYe9C7Qxs0PNrBbQB5ga7psK9A1f9wWmJDlfRETSbN68eZx00km0bNmSQYMGsWHDhp37OnfuHGNlIiIiIiJSKqpl0pua2TJgGPA/ZrbMzA5y923ANcB04H1gsrvPD08rArqb2ccEq2wVRVGriIjs6uqrr+a2225j3rx5HHnkkfzwhz/kk08+AWDr1q0xVyciIiIiIhDdKlorCW6/SrbvBeCFJO3rgG5pLk1ERCpRUlJCjx49ALjxxhs5/vjj6dGjB48//jhmyaZSExERERGRqEUywCMiItnL3dm4cSN169YFoGvXrjz99NNceOGFrF+/PubqREREREQE4l9FS0REMtzw4cN5//33d2lr3LgxM2fO5IILLoipKhERERERSaQreEREpEKXXHLJbm1nn302c+bM4aGHHoqhIhERERERKUtX8IiIyB5z97hLEBERERGRBBrgERGRPTZw4MC4SxARERERkQQa4BERkT02ePDguEsQEREREZEEGuAREREREREREclyGuAREREREREREclyGuAREREREREREclyGuAREREREREREclyGuAREREREREREcly5u5x15AyZrYG+DTuOiLWEFgbdxExyee+Q+b1/xB3bxR3EXFR/uSdfO47ZFb/lT3KnnyTz/3PtL4rf5Q/+SSf+w6Z1/+k+ZNTAzz5yMyK3b0w7jrikM99B/Vf4pfP/wbzue+g/ku88v3fXz73P5/7Lpkhn/8N5nPfIXv6r1u0RERERERERESynAZ4RERERERERESynAZ4st/YuAuIUT73HdR/iV8+/xvM576D+i/xyvd/f/nc/3zuu2SGfP43mM99hyzpv+bgERERERERERHJcrqCR0REREREREQky2mAR0REREREREQky2mAR0REREREREQky2mAR0REREREREQky2mAJ4uY2Z0Jr7vHWUvUzOykuGvINGZ2uJn9j5n9J+5aJLflc/aA8icZ5Y9EJZ/zR9mzO2WPREn5I4myJX80wJNdeiS8viu2KuLxYOkLM3szzkLiZGbNzOx6M3sHmA9UBy6OuSzJffmcPaD8AZQ/Ept8zh9lD8oeiZXyB+VPtuWPBngkW1jC6+/FVkVMzGygmb0CvAY0BK4EVrj7r9x9XrzVieQ85Y/yRyQOyh5lj0hclD9Zmj814i5A9khjMxtG8B9c6eud3P3eeMqKRDUzq08wKFn6emfwuPv62CqLxgPAm8Al7l4MYGYeb0mSR/I5e0D5o/yROOVz/ih7lD0SL+WP8ifr8kcDPNnlIeDAJK/zQV1gNt8Fy5yEfQ4cFnlF0WoOXATca2ZNgMlAzXhLkjySz9kDyh/lj8Qpn/NH2aPskXgpf5Q/WZc/5p4VA1FSCTM7wN03x12HpJ+ZFQB9CO7/3B/4m7vfEm9Vkq+UPflF+SOZRPmTP5Q9kmmUP/kj2/JHc/BkGTNrYWaFZlYr3G4czvD+ccylpZWZtaroEXd96WZm1yRs1nX337r78cD5wDfxVCX5JF+zB5Q/yh+JW77mj7JH2SPxU/4of8iy/NEVPFnEzK4HbgUWAvsBo4F7gQnA3e6+Ir7q0svM5hFcDpg44ZcDjYDG7l49lsIiYmZz3P24sq9FopDP2QPKH+WPxCmf80fZo+yReCl/lD9lX2cDzcGTXQYBR7n7+nDkdCHwY3d/K+a60s7dj0ncNrPWwHDgdODOOGqKkVV+iEhK5W32gPKnDOWPRC1v80fZswtlj8RB+RNS/mQPDfBkl69LZyx398/M7KN8CJhEZtaGYCT9ROB3wC/cfWu8VUWinpldQBAwdcPXO7n7M/GUJXki77MHlD8ofyQeeZ8/yh5lj8RG+aP8ybr80S1aWcTMVgOTEpr6JG67+y8iLyoiZtaBIFzaA3cDf3H37fFWFR0ze5TgskgIgibxkkl39ytiKUzyQj5nDyh/lD8Sp3zOH2WPskfipfxR/pRukkX5owGeLGJmfSva7+7jo6olama2HVgK/B3YLVxyOWABzOyGhM3S/2jXAK+7++IYSpI8ks/ZA8of5Y/EKZ/zR9mj7JF4KX+UP6Gsyh/dopVFcjlEqiBjR0kjUidJ2yHArWZ2m7tPSrJfJCXyPHtA+aP8kdjkef4oe3an7JHIKH/yWtbmj67gySJm9hzfjSASvl4LvOru/y+eqqJnZnUILo3bHHctcTOzBsCMbJrZXbKPsuc7yp/vKH8kCsqfgLLnO8oeiYryJ6D8+U425I+u4Mkuv03S1gC4zMw6uPuIqAuKkpldDdwMHBBulwB3ufuDsRYWo3BW/6ya2V2yUl5nDyh/klH+SETyOn+UPbtT9kiElD/Kn11kQ/5ogCeLuPtrydrNbCowG8jZkDGz/wFOBrq4+6Kw7TBgtJk1cPc7Yi0wJmZ2GrAh7jokt+Vz9oDypzzKH4lCPuePsic5ZY9ERfmj/CkrG/JHt2jlCDOb6+6d4q4jXczsQ+BYd/+6THtt4P/c/ch4KouGmc1j10tEIfgNwufA5e7+QfRVieR+9oDyR/kjmSrX80fZo+yRzKX8Uf5EX1XV6AqeLBLe81dWfeByYH7E5USubMCEbV+Z2Y446onYuWW2HVine2ElCvmePaD8KbOt/JHI5Hv+KHt2oeyRSCl/lD8JsiZ/NMCTXWYT/OMqve9vB7AOmAVcHVNNUVlmZt3cfWZio5l1A1bEVFNk3P3TuGuQvJbP2QPKH+WPxCmf80fZIxIv5Y/yJ+togCe7/BRY6u4rAMysL3Ah8D1y/+/yF8AUM3ud78L2BOAUoGechYnkgXzOHlD+iMQpn/NH2SMSL+WP8ifraA6eLGJmc4DTw9m7fwxMAq4FOgFHu3uvOOtLJzM7AmgKHAm0JxhJnw98DCx3909iLE8kp+Vz9oDyRyRO+Zw/yh6ReCl/lD/ZSAM8WcTM/s/djw1fPwCscffbwu1cn+jreeAWd/93mfZCYKS7nxdPZSK5L5+zB5Q/InHK5/xR9ojES/mj/MlG1eIuQPZIdTMrvRywG/BKwr5cv0ywddmAAXD3YqB19OWI5JV8zh5Q/ojEKZ/zR9kjEi/lTxnKn8yX6/8wc81fgNfMbC3wFfBP2HkJ3cY4C4vA9yrYVzuyKkTyUz5nDyh/ROKUz/mj7BGJl/InOeVPBtMtWlnGzE4CmgEvlS7TZmZHAnXcfU6sxaWRmf0FeMXdHyrTPgA4w91/Gk9lIvkhX7MHlD8iccvX/FH2iMRP+aP8yTYa4JGsYGZNgL8B3xLM5A5QCNQC/svdV8ZVm4jkNuWPiMRB2SMicVH+ZC8N8EhWMbOuQIdwc767v1LR8SIiqaL8EZE4KHtEJC7Kn+yjAR4RERERERERkSynVbRERERERERERLKcBnhERERERERERLKcBnhERERERERERLKcBnhERERERERERLLc/wdRR5z1MxE6/AAAAABJRU5ErkJggg==\n", + "image/png": "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/cvMFptZSdb4QWb2rJm9H31vGketIiKys3vvvZe+ffsyYcIEOnTowKxZO3Zuzt5hS0REREREwonrFq0NwI+BC7MHzaw+MJHMVqDLgDfMbLa7LyKzbd9cdx8bNX5KgNEx1SsiIpFJkybx5ptvUlRUxNKlS+nfvz9Lly5l5MiRuHvo8kREREREhJgaPO6+BlhjZt/f5VQ3YLG7LwEwsxlAX2BR9L179LypwDzU4BERid22bdsoKioC4IgjjmDevHn079+fDz/8UA0eEREREZE8EXoNnkOBj7MeL4vGAFq4+0qA6Hvzqn6AmV1tZqVmVrp27dqcFisikkbFxcUsWLCg8nFRURF//vOfWbduHQsXLgxYmYiIiIiIVAjd4LEqxvbqz8Hu/oC7d3H3LoccckgdlSUiIhWmTZtGcXHxTmMNGjRg2rRpvPjii4GqEhERERGRbDlr8JjZcDNbEH21quZpy4A2WY9bAyui49Vm1jL6WS2BNbmqVUREqte6devdGjwVTj/99JirERERERGRquSswePuE929U/S1opqnvQEcY2ZHmlkjYCAwOzo3GxgUHQ8CZlXxehERybGFCxdyyimn0KZNG66++mo++eSTynPdunULWJmIiIiIiFSIa5v0YjNbBtwI/IeZLTOzA9x9K3AdMAd4B5jp7m9HLxsL9DSz98nssjU2jlpFRGRn1157LbfeeisLFy7k2GOP5Tvf+Q7//ve/Afjqq68CVyciIiIiIhDfLlqryNx+VdW5p4CnqhhfD5yV49JERGQPysvL6dWrFwCjRo2ic+fO9OrVi0ceeQSzqpZSExERERGRuMXS4BERkeRyd8rKymjSpAkAPXr04LHHHqNfv35s2LAhcHUiIiIiIgLhd9ESEZE8N3r0aN55552dxpo3b87cuXO56KKLAlUlIiIiIiLZdAWPiIjU6LLLLtttrHfv3syfP59JkyYFqEhERERERHalK3hERGSvuXvoEkREREREJIsaPCIisteGDh0augQREREREcmiBo+IiOy1YcOGhS5BRERERESyqMEjIiIiIiIiIpJwavCIiIiIiIiIiCScGjwiIiIiIiIiIgmnBo+IiIiIiIiISMKpwSMiIiIiIiIiknDm7qFrqDNmthb4MHQdMWsGrAtdRCBpnjvk3/wPd/dDQhcRivInddI8d8iv+St7lD1pk+b559vclT/KnzRJ89wh/+ZfZf4UVIMnjcys1N27hK4jhDTPHTR/CS/N/wbTPHfQ/CWstP/7S/P80zx3yQ9p/jeY5rlDcuavW7RERERERERERBJODR4RERERERERkYRTgyf5HghdQEBpnjto/hJemv8NpnnuoPlLWGn/95fm+ad57pIf0vxvMM1zh4TMX2vwiIiIiIiIiIgknK7gERERERERERFJODV4REREREREREQSTg0eEREREREREZGEU4NHRERERERERCTh1OBJEDP7VdZxz5C1xM3MTgldQ74xs/3N7HIzezJ0LVLY0pw9oPypivJH4pLm/FH27E7ZI3FS/ki2pOSPGjzJ0ivreFywKsK4v+LAzF4JWUhIZtbIzC40s5nASuAs4H8ClyWFL83ZA8ofQPkjwaQ5f5Q9KHskKOUPyp+k5U+D0AWI1JJlHe8brIpAor8aXAqcC7wAPAJ0c/fBQQsTSQflj/JHJARlj7JHJBTlT0LzRw2eZGluZjeS+Q+u4riSu98VpqxY1DOzpmSuOqs4rgwed98QrLJ4zAFeAr7j7h8AmNn4sCVJiqQ5e0D5o/yRkNKcP8oeZY+EpfxR/iQuf9TgSZZJwLeqOE6DJsCb7AiW+VnnHPh27BXFqzMwEHjOzJYAM4D6YUuSFElz9oDyR/kjIaU5f5Q9yh4JS/mj/Elc/pi7h65B6oCZ7e/un4euQ3LPzE4nc8lgP2AB8Cd3fyBsVZJWyp50Uf5IPlH+pIeyR/KN8ic9kpY/avAkjJkdCrQE/uHuX5pZc+B64Ep3bxW2utwxs8NqOu/uH8VVS74ws3pAT2BgEu4HlWRLa/aA8qcqyh+JU1rzR9mzO2WPxE35UzXlT/7mjxo8CWJm1wM3A4uBfYDxwF3ANOAOd18ZsLycMrOFZC4HzF7wy4FDgObunohL5r4uM7vO3e+Ljo9397dD1yTpkebsAeWP8kdCSnP+KHuUPRKW8kf5Ex0nKn/U4EkQM1tEZqGnDVFXdTHwPXd/NXBpsTOzI4DRwNnAve4+IWhBOWZm8939pF2PReKg7NmZ8kf5I/FR/uyg7FH2SLyUPzsof5KTP/VCFyB75YuKFcujy+LeS1vAmNkxZvYw8DSZhb/aF3rAVMH2/BSROpX67AHlT0T5I3FLff4oewBlj4Sh/FH+QMLyR7toJUtrM7s363Hz7Mfu/uMANcXCzDqQuUTyeOAOYIi7bwtbVawONLOLyARMk+i4krv/MUxZkhKpzR5Q/qD8kbBSmz/KHmWPBKf8Uf4kLn90i1aCmNmgms67+9S4aombmW0DPgaeBHYLl0IOWAAzm0LmvlfIBE32PbHu7j8MUpikQpqzB5Q/yh8JKc35o+xR9khYyh/lT8VDEpQ/uoInQQo5RGohb/8jisk/s44rwmYt8Dd3/yBAPZIiKc8eUP4ofySYlOePsmcHZY/ETvmTaonNH13BkyBm9gQ7/oERHa8DXnD3/xumqviZWRGZzunnoWuJi5ndUsXwQcC5wK3uPiPmkiRFlD07KH8qKX8kFsqfDGVPJWWPxEb5k6H8qZSI/FGDJ0HM7Iwqhg8CLgfed/eSmEuKlZldC/wc2D8aKgfGufv94aoKy8wOAp5L0srukjxpzx5Q/lRF+SNxSHv+KHt2p+yRuCh/lD+7SkL+qMFTAMysPvCmu3cKXUuumNl/AKcB17n7kmjs28B44DV3vz1kfSGZ2Vvu/r9C1yHpk4bsAeVPTZQ/Ekoa8kfZUz1lj4Sk/FH+5HP+aJv0ApCSFc3/D3BRRcAARMcDgCuCVRWYmZ0JfBK6DkmnlGQPKH+qpPyRkFKSP8qeKih7JDTlj/IndB010SLLCRJdErarpmT+I3s75nJi5+5fVDG22cy2h6gnTma2kJ3vAYbMJaIrSHHISjzSnj2g/EH5I4GkPX+UPcoeCUf5o/zZZTgR+aMGT7K8yc5btG0H1gPzgGsD1RSXZWZ2lrvPzR40s7OAlYFqilOfXR47sD5Ni51JUGnOHlD+KH8kpDTnj7JnZ8oeiZvyR/lTITH5owZPslwCfOzuKwHMbBDQD9iXwv//8sfALDP7GzvCtitwOtA3ZGFxcPcPQ9cgqZbm7AHlj/JHQkpz/ih7RMJS/ih/EkeLLCeImc0Hznb3DWb2PWAGMALoBLRz9/5BC8whMzsaKAaOBY4n00l/G3gfWO7u/w5YnkhBS3P2gPJHJKQ054+yRyQs5Y/yJ4nU4EkQM/u7u3eMjicCa9391ujxggJfyf3PwE3u/o9dxrsAt7j7+WEqEyl8ac4eUP6IhJTm/FH2iISl/FH+JJF20UqW+mZWcTngWcDzWecK/TLBI3YNGAB3LwWOiL8ckVRJc/aA8kckpDTnj7JHJCzlzy6UP/mv0P9hFprfAX81s3XAZuAlqLyErixkYTHYt4ZzjWOrQiSd0pw9oPwRCSnN+aPsEQlL+VM15U8e0y1aCWNmpwAtgb9UrOJtZscCRe4+P2hxOWRmvwOed/dJu4wPAc5x90vCVCaSDmnNHlD+iISW1vxR9oiEp/xR/iSNGjySCGbWAvgT8CWZldwBugCNgP/t7qtC1SYihU35IyIhKHtEJBTlT3KpwSOJYmY9gA7Rw7fd/fmani8iUleUPyISgrJHREJR/iSPGjwiIiIiIiIiIgmnXbRERERERERERBJODR4RERERERERkYRTg0dEREREREREJOHU4BERERERERERSbj/B4JWaZb3F8TgAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] @@ -1414,18 +1405,12 @@ " writing package riv_0...\n", " writing package wel_0...\n", " writing package rch_0...\n", - "FloPy is using the following executable to run the model: /Users/jdhughes/.local/bin/mf6\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "FloPy is using the following executable to run the model: .\\mf6.exe\n", " MODFLOW 6\n", " U.S. GEOLOGICAL SURVEY MODULAR HYDROLOGIC MODEL\n", - " VERSION 6.2.2 07/30/2021\n", + " VERSION 6.2.1 02/18/2021\n", "\n", - " MODFLOW 6 compiled Aug 01 2021 12:51:08 with IFORT compiler (ver. 19.10.3)\n", + " MODFLOW 6 compiled Feb 18 2021 21:14:51 with IFORT compiler (ver. 19.10.3)\n", "\n", "This software has been approved for release by the U.S. Geological \n", "Survey (USGS). Although the software has been subjected to rigorous \n", @@ -1441,15 +1426,15 @@ "and distribution information.\n", "\n", " \n", - " Run start date and time (yyyy/mm/dd hh:mm:ss): 2021/08/06 16:18:49\n", + " Run start date and time (yyyy/mm/dd hh:mm:ss): 2021/08/20 17:28:52\n", " \n", " Writing simulation list file: mfsim.lst\n", " Using Simulation name file: mfsim.nam\n", " \n", " Solving: Stress period: 1 Time step: 1\n", " \n", - " Run end date and time (yyyy/mm/dd hh:mm:ss): 2021/08/06 16:18:49\n", - " Elapsed run time: 0.183 Seconds\n", + " Run end date and time (yyyy/mm/dd hh:mm:ss): 2021/08/20 17:28:52\n", + " Elapsed run time: 0.124 Seconds\n", " \n", " Normal termination of simulation.\n" ] @@ -1487,7 +1472,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMcAAAD8CAYAAADDuLCoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAULUlEQVR4nO3da6xdZZ3H8e+PA8hYjFhLa8WixukL0bHVNIjBBBhHLo2kMpEZiMGOgaBGEiGOkfgCnReTkKAyGlSmatNiFIcoSIOFUokGkUEoBAq1KB2sgG2oXIaLNzjn/OfFenZn93StvZ99Wfucdfbvk6ycs9f9wP73Wc961v5tRQRmdrBDZvsEzOYqF4dZBReHWQUXh1kFF4dZBReHWQUXhzWGpGWSfippp6Qdkj5Vso4kfVXSLknbJb2rbdnpkn6dll3a7XguDmuSSeDTEfFW4ATgk5KOm7HOGcDyNF0IfANA0gTwtbT8OODckm0P4OKwxoiIvRFxX/r9BWAncMyM1dYA10ThLuAoSUuB44FdEfFoRLwEfD+tW+nQQU5W0unAV4AJ4FsRcXmn9SeOXBCHLlw4yCFtxF56/ImnIuLofrc/7ZQF8fQzU1nr3rv9rzuAv7TNWhcR68rWlfQm4J3AL2csOgZ4vO31E2le2fx3dzqfvoujrZl6fzrQPZI2RcSvKg+2cCGv//TF/R7SZsHui//1d4Ns//QzU9y95disdSeWPvKXiFjVbT1JRwI/BC6OiOdnLi7ZJDrMrzRIy7G/mQKQ1GqmKovDxk8A00wPbX+SDqMojO9GxPUlqzwBLGt7/QZgD3B4xfxKg/Q5qpqvA0i6UNI2SdumXvzjAIezJgqCl2Mqa+pGkoBvAzsj4ssVq20CPpLuWp0APBcRe4F7gOWS3izpcOCctG6lQVqOrGYqXTOuA3jFscv8CPAYGmLLcSJwHvCgpPvTvM8BxwJExNXAZmA1sAv4E/DRtGxS0kXAFoo+8vqI2NHpYIMUR1XzZbZfEEwN6WMREXEH5f8ot68TwCcrlm2mKJ4sg1xW9dxM2XiaJrKmuabvlqOfZsrGTwBTc/CNn2OgcY5emykbT3OxVcgxUHGYdRPAyw39KLaLw2oVxHheVpl1FTDVzNpwcVi9ihHyZnJxWM3EVOehiTnLxWG1KjrkLg6zgxTjHC4Os1LTbjnMDuaWw6xCIKYa+mlsF4fVzpdVZiUC8VJMzPZp9MXFYbUqBgF9WWVWyh1ysxIRYirccpiVmh5SyyFpPfABYF9EvL1k+WeAD6eXhwJvBY6OiGck7QZeAKaAyZwIIBeH1arokA/tbbYBuAq4pvRYEVcAVwBIOhO4JCKeaVvllIh4KvdgLg6r1TA75BFxe0o6zHEucO0gxxs0DnQ3PTZVNn6mRjzOIemVwOnARW2zA7hVUgD/WRUz2m4YLUdPTZWNlx5HyBdJ2tb2ujIrt4szgV/MuKQ6MSL2SFoMbJX0cETc3mknvqyy2k3n3616akhXH+cw45IqIvakn/sk3UARZ9uxOAa9GGw1VfdKurBsBceBjrfiwcNDsqZhkPRq4CTgxrZ5CyS9qvU7cCrwULd9DdpydG2qHAc63gLx8pAeH5F0LXAyxeXXE8DngcNgfxQowFnArRHR/i/xEuCGImqXQ4HvRcQt3Y43aG5Vz02VjZcIhjYIGBHnZqyzgeKWb/u8R4EVvR6v77Put6mycSOmM6e5ZpCWo6+mysZLMLyWY9QGycrtq6my8eMPO5mVCOQPO5mVKaJ5mvk2a+ZZW4M41M2sVNDTCPmc4uKw2rnlMCsRIbccZmWKDrnTR8xK+DPks+pvL7lroO13XXnCkM7EZio65O5zmJXyCLlZCY+Qm3XgxEOzEhHw8rSLo7GqOvTuqA+uuKxycZiV8gi5WYkm38ptZntnDVJcVuVMXfckrZe0T1Lpx7ElnSzpOUn3p+mytmWnS/q1pF2SLs05c7ccVrshfj58Ax2ycpOfR8QH2mdImgC+BrwfeAK4R9KmiPhVp4N1LdeyapW0UNJWSY+kn6/pth8bT8Xdqomsqfu+4nbgma4rHux4YFdEPBoRLwHfB9Z02yjnsmoDRe5ou0uB2yJiOXBbem12kNYgYM5EigNtm0qDArt4j6QHJN0s6W1p3jHA423rPJHmddT1sqoi2XoNRbgWwEbgZ8Bnu+3LxlMPl1WDxoHeB7wxIl6UtBr4EbAcSk+ga8Bgvx3yJRGxFyD9XFy1ouNAx1vrblVmyzHYsSKej4gX0++bgcMkLaJoKZa1rfoGYE+3/dV+tyoi1kXEqohYNXHkgroPZ3PQsO5WdSPpdUpBapKOp3h/Pw3cAyyX9GZJh1METW/qtr9+71Y9KWlpROyVtBTY1+d+bJ6LEJNDGiHPyMr9EPAJSZPAn4FzIiKASUkXAVuACWB9ROzodrx+i2MTsBa4PP28sfPqNs6GNQjYLSs3Iq6iuNVbtmwzsLmX43UtjopqvRy4TtL5wGPA2b0c1MZHk0fIc+5WVVXr+4Z8LjZPzdviMBuEP+xk1sFc/HqBHC4Oq1UETPrDTmblfFllVsJ9DrMOwsVhVs4dcrMSEe5zmFUQU75bZVbOfQ6zEvP62SqzgUTR72giF4fVznerzEqEO+Rm1XxZZVahqXermtneWWNEFMWRM3WTEQf6YUnb03SnpBVty3ZLejDFhG7LOXe3HFa7Id7K3UDnONDfAidFxLOSzgDWAe9uW35KRDyVe7B+40C/IOn3bYG9q3MPaOMnIm/qvp/OcaARcWdEPJte3kWRT9W3fuNAAa6MiJVp6inVwcZHIKanD8maGE4caMv5wM0HnArcKune3P32Gwdqlq2Hm1WDxoECIOkUiuJ4b9vsEyNij6TFwFZJD6eWqNIgHfKLUsdnvVPWrdIQO+Q5JL0D+BawJiKe3n8aEXvSz33ADRTJ6x31WxzfAN4CrAT2Al/qcLLOyh13kTkNSNKxwPXAeRHxm7b5CyS9qvU7cCpQeserXV93qyLiybYDfxO4qcO66yjuGvCKY5c1dDjIBjHEVqFbHOhlwGuBr6fI3Ml0mbYEuCHNOxT4XkTc0u14fRVHKyc3vTyLjCq08RTA9PTI4kAvAC4omf8osOLgLTrrNw70ZEkrKf723cDHej2wjYkAGjpC3m8c6LdrOBebp/xslVkVF4dZmeHdph01F4fVzy2HWYmAGNLdqlFzcdgIuDjMyvmyyqyCi8OsxHweBDQblAcBzar4bpVZObnlMCsxpM9qzAYXh9VM7pCbVXLLYVZherZPoD8uDqtXg8c5HAdqtVPkTV330z0OVJK+KmlXSsZ5V9uy0yX9Oi27NOe8XRxWv+Glj2ygPGCw5QxgeZoupEjJQdIE8LW0/DjgXEnHdTuYi8Mao1scKLAGuCYKdwFHSVpKkVG1KyIejYiXgO+ndTvKCVhYRhHc+zqKrtW6iPiKpIXAfwFvoghZ+Ke2nNJSf/eaP3D3P1/d7ZA9O+2SlUPfJ8D/1HCuTTNx8eD76GEQcNGMBPR1Kdop1zHA422vn0jzyua3B0yXyumQTwKfjoj7UjDWvZK2Av8C3BYRl6druEuBz2b9CTY+gl4eHxk0DrTsQNFhfkddL6siYm9E3Jd+fwHYSVGJa4CNabWNwAe77cvG1IgSDylahGVtr98A7Okwv6Oe+hwpUPqdwC+BJa1gt/RzccU2++NA//D0VC+Hs3liWHerMmwCPpLuWp0APJfem/cAyyW9WdLhwDlp3Y6yxzkkHQn8ELg4Ip5P0YpdtceBrlpxREPHSm0gQ/q/nhEHuhlYDewC/gR8NC2blHQRsAWYANZHxI5ux8sqDkmHURTGdyPi+jT7yVYsaLojsC/7r5xFW/bcP9unMH6GVBwZcaABfLJi2WaK4smW881Ookg43BkRX25btAlYm35fC9zYy4FtPOReUs3Fx9pzWo4TgfOAByW1/tn9HHA5cJ2k84HHgLPrOUVrvPn6YaeIuIPqbJX3Dfd0bD6ai61CDj94aPVzcZiVmKP9iRzzojjK7kCd9vp6HimxPrg4zMqpoR928lO5ZhXcclj9fFllVsId8rnHj4nMIS4OswouDrODieberXJxWL3c5zDrwMVhVsHFYVbOl1VmVRpaHH58xOoVxd2qnClHt1hPSZ+RdH+aHpI0lTLWkLRb0oNp2baD934gtxxWv+EFLLRiPd9PEbdzj6RNEfGr/YeKuAK4Iq1/JnBJRLSnJJ4SEU/lHM8th9VuiJ8h7zXW81zg2n7POydgYZmkn0raKWmHpE+l+V+Q9Pu2Jmx1vydh81x+qNuiVsZZmi6csaequM+DSHolRej0D2ecya2S7i3Z90EGiQMFuDIivpixDxtXvaUZdosD7SXW80zgFzMuqU6MiD2SFgNbJT2cwqlLDRIHataVGOplVS+xnucw45IqIvakn/uAGygu0yoNEgcKcFH6kpD1kl5TsY3jQMfcEIsjK9ZT0quBk2jLUpO0IF35IGkBcCpQ+iU4LdnFMTMOlOKLQd4CrAT2Al8q2y4i1kXEqohYdfRrJ3IPZ/PJkIKkI2ISaMV67gSui4gdkj4u6eNtq54F3BoRf2ybtwS4Q9IDwN3AjyPilk7H6zsONCKebFv+TeCmnH3ZGBriIGBZrGfKyW1/vYHiW6Da5z0KrOjlWH3HgaZ83Jaz6NJE2Zga0zjQcyWtpPh3YTfwsVrO0JpvDr7xcwwSB9pTYrWNL3/YyazCXLxkyuHisHoN7yvNRs7FYfVzcZgdrDVC3kQuDqudpptZHS4Oq5f7HGbVfFllVsXFYVbOLYdZFReHWYnw4yNmpTzOYdZJNLM6XBxWO7ccZmUaPAjoUDer3YjjQE+W9FxbntpludvO5JbDajesu1U5caDJzyPiA31uu59bDqtXUHTIc6bueo0DHWjbnICFIyTdLemBFAf6b2n+QklbJT2SfpbmVpn1ELAwrDjQ96T3682S3tbjtvvlXFb9Ffj7iHgxRfTcIelm4B+B2yLi8nT9dinw2Yz92bgZbRzofcAb0/t1NfAjYHnmtgfIiQONiHgxvTwsTUHRJG1M8zcCH+y2Lxs/o44DjYjnW+/XlHF1mKRFOdvOlNXnkDSRYnn2AVsj4pfAkojYm05iL7C4YlvHgY6zCDSdN2XoGgcq6XUpaw1Jx1O8x5/O2XamrLtVETEFrJR0FHCDpLfnbJe2XQesA1i14oiG3vG2gQzp/3pETEpqxYFOAOtbcaBp+dXAh4BPSJoE/gycExEBlG7b6Xg93cqNiP+V9DOK7z14UtLSiNib0g/39fSX2tgY5gh5tzjQiLgKuCp3205y7lYdnVoMJP0N8A/AwxRN0tq02lraEq3N9gtgOvKmOSan5VgKbEyDKIdQJFvfJOm/gesknQ88Bpxd43lak829932WnDjQ7RTfyTFz/tPA++o4KZtf/OChWQVH85iVafBTuSMtjt9sfyWnvX7lAfO27Lm/Ym2bD4pBwGZWh1sOq58/Q25Wzi2HWRn3OcyqZD83Nee4OKx+vqzqz8y7Vy2+izVPONTNrAO3HGYVmlkbLg6rn6abeV3l4rB6BR4EHLayjro76c0jwoOAZpUaWhwOdbP6DS/ULScO9MOStqfpTkkr2pbtlvRgignd1u1YbjmsXkPsc2RGev4WOCkinpV0BkW4x7vblp8SEU/lHM/FYbUb4t2q/ZGeAJJakZ77iyMi7mxb/y6KfKq+DBIH+gVJv29Ls17d70nYfJZ5SZV3WdVrpOf5wM0Hngy3Srq3JGr0IIPEgQJcGRFfzNjHUPhRk3qV//fdNdhOW0HSeRbN6AusS7lnLdmRnpJOoSiO97bNPjEi9khaDGyV9HBE3F51MjkBCwGUxYGa5cm/quqWlZsV6SnpHcC3gDNSEAgAEbEn/dwn6QaKy7TK4hgkDhTgonRXYH1Vynp7HOjL/DXncDbPKCJrypATB3oscD1wXkT8pm3+Akmvav0OnAo81OlgWcUREVMRsZKiUo9PcaDfAN4CrAT2Al+q2HZdRKyKiFWH8Yqcw9l8M6Q+R0RMAq1Iz50UGWo7JH28FQkKXAa8Fvj6jFu2Syi6BA8AdwM/johbOh2v7zjQ9r6GpG8CN/WyLxsTETA1vOdHMuJALwAuKNnuUWDFzPmd9B0HmvJxW86iSxNlY2yIg4CjNEgc6HckraTonO8GPlbfaVqjzcE3fo5B4kDPq+WMbH5pBUk3kEfIrWYB0cxn1l0cVq9gqB3yUXJxWP3ma5+jCfzBqN5UPYZTGxeHWZm5eZs2h4vD6hWAAxbMKrjlMCsz3MdHRsnFMc+NvPM9U0B4nMOsgkfIzSq4z2FWIsJ3q8wqueUwKxPE1NRsn0RfXBwNNOt3oHrhR9bNOmjorVxn5VqtAojpyJpyZGTlStJX0/Ltkt6Vu+1MLg6rV6QPO+VMXbRl5Z4BHAecK+m4GaudASxP04UUKTm52x7Al1VWuyF2yLtm5abX16QwwrskHZXCQN6Use0BRlocL/DsUz+JH/wuvVwEZKVd92Niafd1alLr31UYMKKzN28cZOMXeHbLT+IHizJXP6JLHGhZVm57gnrVOsdkbnuAkRZHRBzd+l3Sti7Rj400X/+ufkXE6UPcXU5WbtU62Tm7Lb6ssibJycqtWufwjG0P4A65NUnXrNz0+iPprtUJwHMRsTdz2wPMZsuxrvsqjTRf/65ZFxGTklpZuRPA+lZWblp+NUVU6GqKjtmfgI922rbT8RQNfe7FrG6+rDKr4OIwqzDy4uh1CH8uS1/as0/SQ23zFkraKumR9LP0S31s7htpcfQzhD/HbQBm3se/FLgtIpYDt6XX1kCjbjn2D/9HxEtAawi/kdKXLT4zY/YaYGP6fSPwwZGelA3NqIuj16/KbaIl6b466efiWT4f69Ooi6PnIXyz2TLq4sj6qtyGe7L1lXDp575ZPh/r06iLo+ch/AbaBKxNv68FbpzFc7EBjHyEXNJq4D/4/yH8fx/pCQyRpGuBkykeU38S+DzwI+A64FjgMeDsiJjZabcG8OMjZhU8Qm5WwcVhVsHFYVbBxWFWwcVhVsHFYVbBxWFW4f8ALkio+LJ+umAAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -1519,10 +1504,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "FloPy is using the following executable to run the model: /Users/jdhughes/.local/bin/zbud6\n", + "FloPy is using the following executable to run the model: .\\zbud6.exe\n", " ZONEBUDGET Version 6\n", " U.S. GEOLOGICAL SURVEY\n", - " VERSION 6.2.2 07/30/2021\n", + " VERSION 6.2.1 02/18/2021\n", ".........\n", " \n", "Normal Termination\n" @@ -1574,7 +1559,7 @@ " (10., 0, 0, 'TO_ZONE_0', 0. , 0. ),\n", " (10., 0, 0, 'TO_ZONE_1', 0. , 0.00178624),\n", " (10., 0, 0, 'TO_ZONE_2', 0.00405829, 0. )],\n", - " dtype=[('totim', '" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "fnc = ml.export(os.path.join(pth, ml.name+'.in.nc'))\n", - "hds = flopy.utils.HeadFile(os.path.join(model_ws,\"freyberg.hds\"))\n", - "flopy.export.utils.output_helper(os.path.join(pth, ml.name+'.out.nc'), ml, {\"hds\":hds})" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### export a single array to netcdf or shapefile" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", - "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", - "initialize_geometry::nc_crs = epsg:4326\n", - "transforming coordinates using = proj=noop ellps=GRS80\n", - "wrote data/netCDF_export/top.shp\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/reference.py:2074: DeprecationWarning: crs has been deprecated and will be removed in version 3.3.5. Use CRS in shapefile_utils instead.\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "# export a 2d array\n", - "ml.dis.top.export(os.path.join(pth, 'top.nc'))\n", - "ml.dis.top.export(os.path.join(pth, 'top.shp'))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### sparse export of stress period data for a boundary condition package \n", - "* excludes cells that aren't in the package (aren't in `package.stress_period_data`) \n", - "* by default, stress periods with duplicate parameter values (e.g., stage, conductance, etc.) are omitted\n", - "(`squeeze=True`); only stress periods with different values are exported \n", - "* argue `squeeze=False` to export all stress periods" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "wrote data/netCDF_export/drn.shp\n" - ] - } - ], - "source": [ - "ml.drn.stress_period_data.export(os.path.join(pth, 'drn.shp'), sparse=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Export a 3d array" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", - "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", - "initialize_geometry::nc_crs = epsg:4326\n", - "transforming coordinates using = proj=noop ellps=GRS80\n", - "wrote data/netCDF_export/hk.shp\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/reference.py:2074: DeprecationWarning: crs has been deprecated and will be removed in version 3.3.5. Use CRS in shapefile_utils instead.\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "#export a 3d array\n", - "ml.upw.hk.export(os.path.join(pth, 'hk.nc'))\n", - "ml.upw.hk.export(os.path.join(pth, 'hk.shp'))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Export a number of things to the same netCDF file" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", - "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", - "initialize_geometry::nc_crs = epsg:4326\n", - "transforming coordinates using = proj=noop ellps=GRS80\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/reference.py:2074: DeprecationWarning: crs has been deprecated and will be removed in version 3.3.5. Use CRS in shapefile_utils instead.\n", - " warnings.warn(\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# export lots of things to the same nc file\n", - "fnc = ml.dis.botm.export(os.path.join(pth, 'test.nc'))\n", - "ml.upw.hk.export(fnc)\n", - "ml.dis.top.export(fnc)\n", - "\n", - "# export transient 2d\n", - "ml.rch.rech.export(fnc)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Export whole packages to a netCDF file" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", - "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", - "initialize_geometry::nc_crs = epsg:4326\n", - "transforming coordinates using = proj=noop ellps=GRS80\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/reference.py:2074: DeprecationWarning: crs has been deprecated and will be removed in version 3.3.5. Use CRS in shapefile_utils instead.\n", - " warnings.warn(\n", - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/modflow/mfwel.py:280: DeprecationWarning: phiramp_unit will be replaced with iunitramp for consistency\n", - " warnings.warn(\n" - ] - }, - { - "data": { - "text/plain": [ - "\n", - "root group (NETCDF4 data model, file format HDF5):\n", - " Conventions: CF-1.6, ACDD-1.3, flopy 3.3.5\n", - " date_created: 2021-08-17T18:19:00Z\n", - " geospatial_vertical_positive: up\n", - " geospatial_vertical_min: -25.0\n", - " geospatial_vertical_max: 4.832500457763672\n", - " geospatial_vertical_resolution: variable\n", - " featureType: Grid\n", - " namefile: freyberg.nam\n", - " model_ws: ../data/freyberg_multilayer_transient\n", - " exe_name: mf2005.exe\n", - " modflow_version: mfnwt\n", - " create_hostname: IGSAAAHMLT40179\n", - " create_platform: Darwin\n", - " create_directory: /Users/jdhughes/Documents/Development/flopy_git/flopy_fork/examples/Notebooks\n", - " solver_head_tolerance: -999\n", - " solver_flux_tolerance: -999\n", - " flopy_sr_xll: 123456.7\n", - " flopy_sr_yll: 765432.1\n", - " flopy_sr_rotation: 15.0\n", - " flopy_sr_proj4_str: +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", - " start_datetime: 7/4/1776\n", - " dimensions(sizes): time(1097), layer(3), y(40), x(20)\n", - " variables(dimensions): int32 crs(), float64 time(time), float64 elevation(layer, y, x), float64 longitude(y, x), float64 latitude(y, x), float64 x_proj(y, x), float64 y_proj(y, x), float32 layer(layer), float32 delc(y), float32 delr(x), |S1 VerticalTransform(), float32 wel_flux(time, layer, y, x), float32 hani(layer, y, x), float32 hk(layer, y, x), float32 ss(layer, y, x), float32 sy(layer, y, x), float32 vka(layer, y, x), float32 vkcb(layer, y, x)\n", - " groups: " - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# export mflist\n", - "fnc = ml.wel.export(os.path.join(pth, 'packages.nc'))\n", - "ml.upw.export(fnc)\n", - "fnc.nc" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Export the whole model to a netCDF" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", - "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", - "initialize_geometry::nc_crs = epsg:4326\n", - "transforming coordinates using = proj=noop ellps=GRS80\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/reference.py:2074: DeprecationWarning: crs has been deprecated and will be removed in version 3.3.5. Use CRS in shapefile_utils instead.\n", - " warnings.warn(\n", - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/modflow/mfwel.py:280: DeprecationWarning: phiramp_unit will be replaced with iunitramp for consistency\n", - " warnings.warn(\n" - ] - }, - { - "data": { - "text/plain": [ - "\n", - "root group (NETCDF4 data model, file format HDF5):\n", - " Conventions: CF-1.6, ACDD-1.3, flopy 3.3.5\n", - " date_created: 2021-08-17T18:19:00Z\n", - " geospatial_vertical_positive: up\n", - " geospatial_vertical_min: -25.0\n", - " geospatial_vertical_max: 4.832500457763672\n", - " geospatial_vertical_resolution: variable\n", - " featureType: Grid\n", - " namefile: freyberg.nam\n", - " model_ws: ../data/freyberg_multilayer_transient\n", - " exe_name: mf2005.exe\n", - " modflow_version: mfnwt\n", - " create_hostname: IGSAAAHMLT40179\n", - " create_platform: Darwin\n", - " create_directory: /Users/jdhughes/Documents/Development/flopy_git/flopy_fork/examples/Notebooks\n", - " solver_head_tolerance: -999\n", - " solver_flux_tolerance: -999\n", - " flopy_sr_xll: 123456.7\n", - " flopy_sr_yll: 765432.1\n", - " flopy_sr_rotation: 15.0\n", - " flopy_sr_proj4_str: +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", - " start_datetime: 7/4/1776\n", - " dimensions(sizes): time(1097), layer(3), y(40), x(20)\n", - " variables(dimensions): int32 crs(), float64 time(time), float64 elevation(layer, y, x), float64 longitude(y, x), float64 latitude(y, x), float64 x_proj(y, x), float64 y_proj(y, x), float32 layer(layer), float32 delc(y), float32 delr(x), |S1 VerticalTransform(), float32 botm(layer, y, x), float32 model_top(y, x), int32 ibound(layer, y, x), float32 strt(layer, y, x), float32 rech(time, layer, y, x), float32 wel_flux(time, layer, y, x), float32 hani(layer, y, x), float32 hk(layer, y, x), float32 ss(layer, y, x), float32 sy(layer, y, x), float32 vka(layer, y, x), float32 vkcb(layer, y, x), float32 drn_elev(time, layer, y, x), float32 drn_cond(time, layer, y, x)\n", - " groups: " - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "fnc = ml.export(os.path.join(pth, 'model.nc'))\n", - "fnc.nc" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Export output to netcdf\n", - "\n", - "FloPy has utilities to export model outputs to a netcdf file. Valid output types for export are MODFLOW binary head files, formatted head files, cell budget files, seawat concentration files, and zonebudget output.\n", - "\n", - "Let's use output from the Freyberg model as an example of these functions" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", - "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", - "initialize_geometry::nc_crs = epsg:4326\n", - "transforming coordinates using = proj=noop ellps=GRS80\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/reference.py:2074: DeprecationWarning: crs has been deprecated and will be removed in version 3.3.5. Use CRS in shapefile_utils instead.\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "error getting data for cell_by_cell_flowstorage at time 1.0:list index out of range\n", - "error getting data for cell_by_cell_flowstorage at time 1097.0:list index out of range\n" - ] - }, - { - "data": { - "text/plain": [ - "\n", - "root group (NETCDF4 data model, file format HDF5):\n", - " Conventions: CF-1.6, ACDD-1.3, flopy 3.3.5\n", - " date_created: 2021-08-17T18:19:00Z\n", - " geospatial_vertical_positive: up\n", - " geospatial_vertical_min: -25.0\n", - " geospatial_vertical_max: 4.832500457763672\n", - " geospatial_vertical_resolution: variable\n", - " featureType: Grid\n", - " namefile: freyberg.nam\n", - " model_ws: ../data/freyberg_multilayer_transient\n", - " exe_name: mf2005.exe\n", - " modflow_version: mfnwt\n", - " create_hostname: IGSAAAHMLT40179\n", - " create_platform: Darwin\n", - " create_directory: /Users/jdhughes/Documents/Development/flopy_git/flopy_fork/examples/Notebooks\n", - " solver_head_tolerance: -999\n", - " solver_flux_tolerance: -999\n", - " flopy_sr_xll: 123456.7\n", - " flopy_sr_yll: 765432.1\n", - " flopy_sr_rotation: 15.0\n", - " flopy_sr_proj4_str: +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", - " start_datetime: 7/4/1776\n", - " dimensions(sizes): time(1097), layer(3), y(40), x(20)\n", - " variables(dimensions): int32 crs(), float64 time(time), float64 elevation(layer, y, x), float64 longitude(y, x), float64 latitude(y, x), float64 x_proj(y, x), float64 y_proj(y, x), float32 layer(layer), float32 delc(y), float32 delr(x), |S1 VerticalTransform(), float32 head(time, layer, y, x), float32 constant_head(time, layer, y, x), float32 flow_right_face(time, layer, y, x), float32 flow_front_face(time, layer, y, x), float32 flow_lower_face(time, layer, y, x), float32 storage(time, layer, y, x)\n", - " groups: " - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# load binary head and cell budget files\n", - "fhead = os.path.join(model_ws, 'freyberg.hds')\n", - "fcbc = os.path.join(model_ws, 'freyberg.cbc')\n", - "\n", - "hds = flopy.utils.HeadFile(fhead)\n", - "cbc = flopy.utils.CellBudgetFile(fcbc)\n", - "\n", - "export_dict = {\"hds\": hds,\n", - " \"cbc\": cbc}\n", - "\n", - "# export head and cell budget outputs to netcdf\n", - "fnc = flopy.export.utils.output_helper(os.path.join(pth, \"output.nc\"), ml, export_dict)\n", - "fnc.nc" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exporting zonebudget output\n", - "\n", - "zonebudget output can be exported with other modflow outputs, and is placed in a seperate group which allows the user to post-process the zonebudget output before exporting.\n", - "\n", - "Here are two examples on how to export zonebudget output with a binary head and cell budget file\n", - "\n", - "__Example 1__: No postprocessing of the zonebudget output" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:2944: PendingDeprecationWarning: Deprecation planned for version 3.3.5, use ZoneBudget.read_zone_file()\n", - " warnings.warn(\n", - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3129: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5,Use ZoneBudget.read_output(, pivot=True) or ZoneBudget6.get_budget(, pivot=True)\n", - " warnings.warn(\n", - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3186: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5\n", - " warnings.warn(\n", - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3174: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5\n", - " warnings.warn(\n", - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3186: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5\n", - " warnings.warn(\n", - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3174: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5\n", - " warnings.warn(\n", - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3198: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5\n", - " warnings.warn(\n" - ] - }, - { - "data": { - "text/plain": [ - "ZoneBudgetOutput Class\n", - "----------------------\n", - "\n", - "Number of zones: 4\n", - "Unique zones: 0, 1, 2, 3\n", - "Number of buget records: 3291" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# load the zonebudget output file\n", - "zonbud_ws = os.path.join(\"..\", \"data\", \"zonbud_examples\")\n", - "fzonbud = os.path.join(zonbud_ws, \"freyberg_mlt.2.csv\")\n", - "zon_arrays = flopy.utils.zonbud.read_zbarray(os.path.join(zonbud_ws, \"zonef_mlt.zbr\"))\n", - "\n", - "zbout = flopy.utils.ZoneBudgetOutput(fzonbud, ml.dis, zon_arrays)\n", - "zbout" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", - "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", - "initialize_geometry::nc_crs = epsg:4326\n", - "transforming coordinates using = proj=noop ellps=GRS80\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/reference.py:2074: DeprecationWarning: crs has been deprecated and will be removed in version 3.3.5. Use CRS in shapefile_utils instead.\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "error getting data for cell_by_cell_flowstorage at time 1.0:list index out of range\n", - "error getting data for cell_by_cell_flowstorage at time 1097.0:list index out of range\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3224: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5\n", - " warnings.warn(\n", - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3198: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5\n", - " warnings.warn(\n", - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3292: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5\n", - " warnings.warn(\n", - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3174: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5\n", - " warnings.warn(\n" - ] - }, - { - "data": { - "text/plain": [ - "\n", - "root group (NETCDF4 data model, file format HDF5):\n", - " Conventions: CF-1.6, ACDD-1.3, flopy 3.3.5\n", - " date_created: 2021-08-17T18:19:00Z\n", - " geospatial_vertical_positive: up\n", - " geospatial_vertical_min: -25.0\n", - " geospatial_vertical_max: 4.832500457763672\n", - " geospatial_vertical_resolution: variable\n", - " featureType: Grid\n", - " namefile: freyberg.nam\n", - " model_ws: ../data/freyberg_multilayer_transient\n", - " exe_name: mf2005.exe\n", - " modflow_version: mfnwt\n", - " create_hostname: IGSAAAHMLT40179\n", - " create_platform: Darwin\n", - " create_directory: /Users/jdhughes/Documents/Development/flopy_git/flopy_fork/examples/Notebooks\n", - " solver_head_tolerance: -999\n", - " solver_flux_tolerance: -999\n", - " flopy_sr_xll: 123456.7\n", - " flopy_sr_yll: 765432.1\n", - " flopy_sr_rotation: 15.0\n", - " flopy_sr_proj4_str: +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", - " start_datetime: 7/4/1776\n", - " dimensions(sizes): time(1097), layer(3), y(40), x(20)\n", - " variables(dimensions): int32 crs(), float64 time(time), float64 elevation(layer, y, x), float64 longitude(y, x), float64 latitude(y, x), float64 x_proj(y, x), float64 y_proj(y, x), float32 layer(layer), float32 delc(y), float32 delr(x), |S1 VerticalTransform(), float32 head(time, layer, y, x), float32 constant_head(time, layer, y, x), float32 flow_right_face(time, layer, y, x), float32 flow_front_face(time, layer, y, x), float32 flow_lower_face(time, layer, y, x), float32 storage(time, layer, y, x), float32 budget_zones(time, layer, y, x)\n", - " groups: zonebudget" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "export_dict = {'hds': hds,\n", - " 'cbc': cbc}\n", - "\n", - "fnc = flopy.export.utils.output_helper(os.path.join(pth, \"output_with_zonebudget.nc\"),\n", - " ml, export_dict)\n", - "\n", - "fnc = zbout.export(fnc, ml)\n", - "fnc.nc" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A budget_zones variable has been added to the root group and a new zonebudget group has been added to the netcdf file which hosts all of the budget data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Example 2__: postprocessing zonebudget output then exporting" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3129: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5,Use ZoneBudget.read_output(, pivot=True) or ZoneBudget6.get_budget(, pivot=True)\n", - " warnings.warn(\n", - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3198: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5\n", - " warnings.warn(\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
totimkperkstpzoneCONSTANT_HEADOTHER_ZONESSTORAGETOTALZONE_0ZONE_1ZONE_2ZONE_3
01.0001-821.281900-1570.8210.000000-2392.1030.00.0000-1530.422-40.3993
11.0002-648.804700630.7300.000000-18.0750.01530.42200.000-899.6920
21.0003-976.232200940.0920.000000-36.1400.040.3993899.6920.0000
32.0101-816.347300-1173.221218.568500-1770.9990.00.0000-1134.937-38.2835
42.0102-643.938700433.628191.816342-18.4930.01134.93700.000-701.3090
.......................................
32861096.0109502-505.1162701113.766-626.408120-17.7580.02489.40400.000-1375.6380
32871096.0109503-801.7323761393.454-627.235750-35.5140.017.81631375.6380.0000
32881097.0109601-230.548300-152.2360.000000-382.7840.00.0000-205.82253.5856
32891097.010960215.864900-30.7960.000000-14.9310.0205.82200.000-236.6170
32901097.0109603-212.896600183.0310.000000-29.8650.0-53.5856236.6170.0000
\n", - "

3291 rows × 12 columns

\n", - "
" - ], - "text/plain": [ - " totim kper kstp zone CONSTANT_HEAD OTHER_ZONES STORAGE \\\n", - "0 1.0 0 0 1 -821.281900 -1570.821 0.000000 \n", - "1 1.0 0 0 2 -648.804700 630.730 0.000000 \n", - "2 1.0 0 0 3 -976.232200 940.092 0.000000 \n", - "3 2.0 1 0 1 -816.347300 -1173.221 218.568500 \n", - "4 2.0 1 0 2 -643.938700 433.628 191.816342 \n", - "... ... ... ... ... ... ... ... \n", - "3286 1096.0 1095 0 2 -505.116270 1113.766 -626.408120 \n", - "3287 1096.0 1095 0 3 -801.732376 1393.454 -627.235750 \n", - "3288 1097.0 1096 0 1 -230.548300 -152.236 0.000000 \n", - "3289 1097.0 1096 0 2 15.864900 -30.796 0.000000 \n", - "3290 1097.0 1096 0 3 -212.896600 183.031 0.000000 \n", - "\n", - " TOTAL ZONE_0 ZONE_1 ZONE_2 ZONE_3 \n", - "0 -2392.103 0.0 0.0000 -1530.422 -40.3993 \n", - "1 -18.075 0.0 1530.4220 0.000 -899.6920 \n", - "2 -36.140 0.0 40.3993 899.692 0.0000 \n", - "3 -1770.999 0.0 0.0000 -1134.937 -38.2835 \n", - "4 -18.493 0.0 1134.9370 0.000 -701.3090 \n", - "... ... ... ... ... ... \n", - "3286 -17.758 0.0 2489.4040 0.000 -1375.6380 \n", - "3287 -35.514 0.0 17.8163 1375.638 0.0000 \n", - "3288 -382.784 0.0 0.0000 -205.822 53.5856 \n", - "3289 -14.931 0.0 205.8220 0.000 -236.6170 \n", - "3290 -29.865 0.0 -53.5856 236.617 0.0000 \n", - "\n", - "[3291 rows x 12 columns]" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# load the zonebudget output and get the budget information\n", - "zbout = flopy.utils.ZoneBudgetOutput(fzonbud, ml.dis, zon_arrays)\n", - "df = zbout.dataframe\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's calculate a yearly volumetric budget from the zonebudget data" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3261: PendingDeprecationWarning: ZoneBudgetOutput.volumetric_flux() will be deprecated in version 3.3.5,\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " totim kper kstp zone CONSTANT_HEAD OTHER_ZONES STORAGE \\\n", - "0 1.0 0 0 1 -821.281900 -1570.821 0.000000 \n", - "1 1.0 0 0 2 -648.804700 630.730 0.000000 \n", - "2 1.0 0 0 3 -976.232200 940.092 0.000000 \n", - "3 2.0 1 0 1 -816.347300 -1173.221 218.568500 \n", - "4 2.0 1 0 2 -643.938700 433.628 191.816342 \n", - "... ... ... ... ... ... ... ... \n", - "3286 1096.0 1095 0 2 -505.116270 1113.766 -626.408120 \n", - "3287 1096.0 1095 0 3 -801.732376 1393.454 -627.235750 \n", - "3288 1097.0 1096 0 1 -230.548300 -152.236 0.000000 \n", - "3289 1097.0 1096 0 2 15.864900 -30.796 0.000000 \n", - "3290 1097.0 1096 0 3 -212.896600 183.031 0.000000 \n", - "\n", - " TOTAL ZONE_0 ZONE_1 ZONE_2 ZONE_3 year \n", - "0 -2392.103 0.0 0.0000 -1530.422 -40.3993 1776 \n", - "1 -18.075 0.0 1530.4220 0.000 -899.6920 1776 \n", - "2 -36.140 0.0 40.3993 899.692 0.0000 1776 \n", - "3 -1770.999 0.0 0.0000 -1134.937 -38.2835 1776 \n", - "4 -18.493 0.0 1134.9370 0.000 -701.3090 1776 \n", - "... ... ... ... ... ... ... \n", - "3286 -17.758 0.0 2489.4040 0.000 -1375.6380 1779 \n", - "3287 -35.514 0.0 17.8163 1375.638 0.0000 1779 \n", - "3288 -382.784 0.0 0.0000 -205.822 53.5856 1779 \n", - "3289 -14.931 0.0 205.8220 0.000 -236.6170 1779 \n", - "3290 -29.865 0.0 -53.5856 236.617 0.0000 1779 \n", - "\n", - "[3291 rows x 13 columns]\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3186: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5\n", - " warnings.warn(\n", - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3174: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5\n", - " warnings.warn(\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
yearzoneSTORAGECONSTANT_HEADOTHER_ZONESZONE_1ZONE_2ZONE_3totim
01776181203.267170-134930.451200-176631.79100.0000-172310.4031-4321.3803181.0
11776237268.485533-102758.91747362223.7540172310.40310.0000-110086.6556181.0
21776337296.183058-158237.438437114408.03854321.3803110086.65560.0000181.0
31777191777.777222-265545.355300-407281.76400.0000-398769.3120-8512.4548546.0
41777242820.852999-200142.961123150829.2320398769.31200.0000-247940.0845546.0
51777342818.153555-312276.958409256452.55198512.4548247940.08450.0000546.0
617781108226.799462-255186.105500-378440.12900.0000-371720.4820-6719.6672911.0
71778244930.564942-188836.557151137315.0100371720.48200.0000-234405.4742911.0
81778344936.970500-299267.807443241125.14286719.6672234405.47420.0000911.0
9177915348.709896-129448.085100-231291.16800.0000-227734.8190-3556.35701097.0
10177923241.895778-95653.39104088972.3010227734.81900.0000-138762.52411097.0
11177933233.272516-152427.866886142318.87673556.3570138762.52410.00001097.0
\n", - "
" - ], - "text/plain": [ - " year zone STORAGE CONSTANT_HEAD OTHER_ZONES ZONE_1 \\\n", - "0 1776 1 81203.267170 -134930.451200 -176631.7910 0.0000 \n", - "1 1776 2 37268.485533 -102758.917473 62223.7540 172310.4031 \n", - "2 1776 3 37296.183058 -158237.438437 114408.0385 4321.3803 \n", - "3 1777 1 91777.777222 -265545.355300 -407281.7640 0.0000 \n", - "4 1777 2 42820.852999 -200142.961123 150829.2320 398769.3120 \n", - "5 1777 3 42818.153555 -312276.958409 256452.5519 8512.4548 \n", - "6 1778 1 108226.799462 -255186.105500 -378440.1290 0.0000 \n", - "7 1778 2 44930.564942 -188836.557151 137315.0100 371720.4820 \n", - "8 1778 3 44936.970500 -299267.807443 241125.1428 6719.6672 \n", - "9 1779 1 5348.709896 -129448.085100 -231291.1680 0.0000 \n", - "10 1779 2 3241.895778 -95653.391040 88972.3010 227734.8190 \n", - "11 1779 3 3233.272516 -152427.866886 142318.8767 3556.3570 \n", - "\n", - " ZONE_2 ZONE_3 totim \n", - "0 -172310.4031 -4321.3803 181.0 \n", - "1 0.0000 -110086.6556 181.0 \n", - "2 110086.6556 0.0000 181.0 \n", - "3 -398769.3120 -8512.4548 546.0 \n", - "4 0.0000 -247940.0845 546.0 \n", - "5 247940.0845 0.0000 546.0 \n", - "6 -371720.4820 -6719.6672 911.0 \n", - "7 0.0000 -234405.4742 911.0 \n", - "8 234405.4742 0.0000 911.0 \n", - "9 -227734.8190 -3556.3570 1097.0 \n", - "10 0.0000 -138762.5241 1097.0 \n", - "11 138762.5241 0.0000 1097.0 " - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# get a dataframe of volumetric budget information\n", - "vol_df = zbout.volumetric_flux()\n", - "\n", - "# add a year field to the dataframe using datetime\n", - "start_date = ml.modeltime.start_datetime\n", - "start_date = datetime.datetime.strptime(start_date, \"%m/%d/%Y\")\n", - "nzones = len(zbout.zones) - 1\n", - "\n", - "year = [start_date.year] * nzones\n", - "for totim in vol_df.totim.values[:-nzones]:\n", - " t = start_date + datetime.timedelta(days=totim)\n", - " year.append(t.year)\n", - "\n", - "vol_df['year'] = year\n", - "print(vol_df)\n", - "# calculate yearly volumetric change using pandas\n", - "totim_df = vol_df.groupby(['year', 'zone'], as_index=False)['totim'].max()\n", - "yearly = vol_df.groupby(['year', 'zone'], as_index=False)[['STORAGE', 'CONSTANT_HEAD', 'OTHER_ZONES',\n", - " 'ZONE_1', 'ZONE_2', 'ZONE_3']].sum()\n", - "yearly['totim'] = totim_df['totim']\n", - "yearly" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And finally, export the pandas dataframe to netcdf" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3292: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5\n", - " warnings.warn(\n", - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/zonbud.py:3174: PendingDeprecationWarning: ZoneBudgetOutput will be deprecated in version 3.3.5\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", - "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/jdhughes/Documents/Development/flopy_git/flopy_fork/flopy/utils/reference.py:2074: DeprecationWarning: crs has been deprecated and will be removed in version 3.3.5. Use CRS in shapefile_utils instead.\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "initialize_geometry::nc_crs = epsg:4326\n", - "transforming coordinates using = proj=noop ellps=GRS80\n", - "error getting data for cell_by_cell_flowstorage at time 1.0:list index out of range\n", - "error getting data for cell_by_cell_flowstorage at time 1097.0:list index out of range\n" - ] - }, - { - "data": { - "text/plain": [ - "\n", - "root group (NETCDF4 data model, file format HDF5):\n", - " Conventions: CF-1.6, ACDD-1.3, flopy 3.3.5\n", - " date_created: 2021-08-17T18:19:00Z\n", - " geospatial_vertical_positive: up\n", - " geospatial_vertical_min: -25.0\n", - " geospatial_vertical_max: 4.832500457763672\n", - " geospatial_vertical_resolution: variable\n", - " featureType: Grid\n", - " namefile: freyberg.nam\n", - " model_ws: ../data/freyberg_multilayer_transient\n", - " exe_name: mf2005.exe\n", - " modflow_version: mfnwt\n", - " create_hostname: IGSAAAHMLT40179\n", - " create_platform: Darwin\n", - " create_directory: /Users/jdhughes/Documents/Development/flopy_git/flopy_fork/examples/Notebooks\n", - " solver_head_tolerance: -999\n", - " solver_flux_tolerance: -999\n", - " flopy_sr_xll: 123456.7\n", - " flopy_sr_yll: 765432.1\n", - " flopy_sr_rotation: 15.0\n", - " flopy_sr_proj4_str: +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", - " start_datetime: 7/4/1776\n", - " dimensions(sizes): time(1097), layer(3), y(40), x(20)\n", - " variables(dimensions): int32 crs(), float64 time(time), float64 elevation(layer, y, x), float64 longitude(y, x), float64 latitude(y, x), float64 x_proj(y, x), float64 y_proj(y, x), float32 layer(layer), float32 delc(y), float32 delr(x), |S1 VerticalTransform(), float32 head(time, layer, y, x), float32 constant_head(time, layer, y, x), float32 flow_right_face(time, layer, y, x), float32 flow_front_face(time, layer, y, x), float32 flow_lower_face(time, layer, y, x), float32 storage(time, layer, y, x), float32 budget_zones(time, layer, y, x)\n", - " groups: zonebudget" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# process the new dataframe into a format that is compatible with netcdf exporting\n", - "zbncf = zbout.dataframe_to_netcdf_fmt(yearly, flux=False)\n", - "\n", - "# export to netcdf\n", - "export_dict = {\"hds\": hds,\n", - " \"cbc\": cbc,\n", - " \"zbud\": zbncf}\n", - "\n", - "fnc = flopy.export.utils.output_helper(os.path.join(pth, \"output_with_zonebudget.2.nc\"),\n", - " ml, export_dict)\n", - "fnc.nc" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "anaconda-cloud": {}, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.11" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# FloPy\n", + "\n", + "### Demo of netCDF and shapefile export capabilities within the flopy export module. " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.7.4 (default, Aug 9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)]\n", + "flopy version: 3.3.5\n" + ] + } + ], + "source": [ + "import os\n", + "import sys\n", + "import datetime\n", + "\n", + "# run installed version of flopy or add local path\n", + "try:\n", + " import flopy\n", + "except:\n", + " fpth = os.path.abspath(os.path.join('..', '..'))\n", + " sys.path.append(fpth)\n", + " import flopy\n", + "\n", + "print(sys.version)\n", + "print('flopy version: {}'.format(flopy.__version__))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Load our old friend...the Freyberg model" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "nam_file = \"freyberg.nam\"\n", + "model_ws = os.path.join(\"..\", \"data\", \"freyberg_multilayer_transient\")\n", + "ml = flopy.modflow.Modflow.load(nam_file, model_ws=model_ws, check=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see the ``Modelgrid`` instance has generic entries, as does ``start_datetime``" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "xll:622241.1904510253; yll:3343617.741737109; rotation:15.0; proj4_str:+proj=utm +zone=14 +ellps=WGS84 +datum=WGS84 +units=m +no_defs; units:meters; lenuni:2" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ml.modelgrid" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'1/1/2015'" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ml.modeltime.start_datetime" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Setting the attributes of the ``ml.modelgrid`` is easy:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "proj4_str = \"+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\"\n", + "ml.modelgrid.set_coord_info(xoff=123456.7, yoff=765432.1, angrot=15.0, proj4=proj4_str)\n", + "ml.dis.start_datetime = '7/4/1776'" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'7/4/1776'" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ml.modeltime.start_datetime" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Some netCDF export capabilities:\n", + "\n", + "#### Export the whole model (inputs and outputs)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# make directory\n", + "pth = os.path.join('data', 'netCDF_export')\n", + "if not os.path.exists(pth):\n", + " os.makedirs(pth)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", + "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", + "initialize_geometry::nc_crs = epsg:4326\n", + "transforming coordinates using = proj=noop ellps=GRS80\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", + "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", + "initialize_geometry::nc_crs = epsg:4326\n", + "transforming coordinates using = proj=noop ellps=GRS80\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fnc = ml.export(os.path.join(pth, ml.name+'.in.nc'))\n", + "hds = flopy.utils.HeadFile(os.path.join(model_ws,\"freyberg.hds\"))\n", + "flopy.export.utils.output_helper(os.path.join(pth, ml.name+'.out.nc'), ml, {\"hds\":hds})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### export a single array to netcdf or shapefile" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", + "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", + "initialize_geometry::nc_crs = epsg:4326\n", + "transforming coordinates using = proj=noop ellps=GRS80\n", + "wrote data\\netCDF_export\\top.shp\n" + ] + } + ], + "source": [ + "# export a 2d array\n", + "ml.dis.top.export(os.path.join(pth, 'top.nc'))\n", + "ml.dis.top.export(os.path.join(pth, 'top.shp'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### sparse export of stress period data for a boundary condition package \n", + "* excludes cells that aren't in the package (aren't in `package.stress_period_data`) \n", + "* by default, stress periods with duplicate parameter values (e.g., stage, conductance, etc.) are omitted\n", + "(`squeeze=True`); only stress periods with different values are exported \n", + "* argue `squeeze=False` to export all stress periods" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "wrote data\\netCDF_export\\drn.shp\n" + ] + } + ], + "source": [ + "ml.drn.stress_period_data.export(os.path.join(pth, 'drn.shp'), sparse=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Export a 3d array" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", + "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", + "initialize_geometry::nc_crs = epsg:4326\n", + "transforming coordinates using = proj=noop ellps=GRS80\n", + "wrote data\\netCDF_export\\hk.shp\n" + ] + } + ], + "source": [ + "#export a 3d array\n", + "ml.upw.hk.export(os.path.join(pth, 'hk.nc'))\n", + "ml.upw.hk.export(os.path.join(pth, 'hk.shp'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Export a number of things to the same netCDF file" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", + "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", + "initialize_geometry::nc_crs = epsg:4326\n", + "transforming coordinates using = proj=noop ellps=GRS80\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# export lots of things to the same nc file\n", + "fnc = ml.dis.botm.export(os.path.join(pth, 'test.nc'))\n", + "ml.upw.hk.export(fnc)\n", + "ml.dis.top.export(fnc)\n", + "\n", + "# export transient 2d\n", + "ml.rch.rech.export(fnc)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Export whole packages to a netCDF file" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", + "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", + "initialize_geometry::nc_crs = epsg:4326\n", + "transforming coordinates using = proj=noop ellps=GRS80\n" + ] + }, + { + "data": { + "text/plain": [ + "\n", + "root group (NETCDF4 data model, file format HDF5):\n", + " Conventions: CF-1.6, ACDD-1.3, flopy 3.3.5\n", + " date_created: 2021-08-20T23:54:00Z\n", + " geospatial_vertical_positive: up\n", + " geospatial_vertical_min: -25.0\n", + " geospatial_vertical_max: 4.832500457763672\n", + " geospatial_vertical_resolution: variable\n", + " featureType: Grid\n", + " namefile: freyberg.nam\n", + " model_ws: ..\\data\\freyberg_multilayer_transient\n", + " exe_name: mf2005.exe\n", + " modflow_version: mfnwt\n", + " create_hostname: IGSWCAWWLT6673\n", + " create_platform: Windows\n", + " create_directory: C:\\Users\\jlarsen\\Desktop\\flopy-dev\\examples\\Notebooks\n", + " solver_head_tolerance: -999\n", + " solver_flux_tolerance: -999\n", + " flopy_sr_xll: 123456.7\n", + " flopy_sr_yll: 765432.1\n", + " flopy_sr_rotation: 15.0\n", + " flopy_sr_proj4_str: +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", + " start_datetime: 7/4/1776\n", + " dimensions(sizes): time(1097), layer(3), y(40), x(20)\n", + " variables(dimensions): int32 crs(), float64 time(time), float64 elevation(layer,y,x), float64 longitude(y,x), float64 latitude(y,x), float64 x_proj(y,x), float64 y_proj(y,x), float32 layer(layer), float32 delc(y), float32 delr(x), |S1 VerticalTransform(), float32 wel_flux(time,layer,y,x), float32 hani(layer,y,x), float32 hk(layer,y,x), float32 ss(layer,y,x), float32 sy(layer,y,x), float32 vka(layer,y,x), float32 vkcb(layer,y,x)\n", + " groups: " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# export mflist\n", + "fnc = ml.wel.export(os.path.join(pth, 'packages.nc'))\n", + "ml.upw.export(fnc)\n", + "fnc.nc" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Export the whole model to a netCDF" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", + "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", + "initialize_geometry::nc_crs = epsg:4326\n", + "transforming coordinates using = proj=noop ellps=GRS80\n" + ] + }, + { + "data": { + "text/plain": [ + "\n", + "root group (NETCDF4 data model, file format HDF5):\n", + " Conventions: CF-1.6, ACDD-1.3, flopy 3.3.5\n", + " date_created: 2021-08-20T23:54:00Z\n", + " geospatial_vertical_positive: up\n", + " geospatial_vertical_min: -25.0\n", + " geospatial_vertical_max: 4.832500457763672\n", + " geospatial_vertical_resolution: variable\n", + " featureType: Grid\n", + " namefile: freyberg.nam\n", + " model_ws: ..\\data\\freyberg_multilayer_transient\n", + " exe_name: mf2005.exe\n", + " modflow_version: mfnwt\n", + " create_hostname: IGSWCAWWLT6673\n", + " create_platform: Windows\n", + " create_directory: C:\\Users\\jlarsen\\Desktop\\flopy-dev\\examples\\Notebooks\n", + " solver_head_tolerance: -999\n", + " solver_flux_tolerance: -999\n", + " flopy_sr_xll: 123456.7\n", + " flopy_sr_yll: 765432.1\n", + " flopy_sr_rotation: 15.0\n", + " flopy_sr_proj4_str: +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", + " start_datetime: 7/4/1776\n", + " dimensions(sizes): time(1097), layer(3), y(40), x(20)\n", + " variables(dimensions): int32 crs(), float64 time(time), float64 elevation(layer,y,x), float64 longitude(y,x), float64 latitude(y,x), float64 x_proj(y,x), float64 y_proj(y,x), float32 layer(layer), float32 delc(y), float32 delr(x), |S1 VerticalTransform(), float32 botm(layer,y,x), float32 model_top(y,x), int32 ibound(layer,y,x), float32 strt(layer,y,x), float32 rech(time,layer,y,x), float32 wel_flux(time,layer,y,x), float32 hani(layer,y,x), float32 hk(layer,y,x), float32 ss(layer,y,x), float32 sy(layer,y,x), float32 vka(layer,y,x), float32 vkcb(layer,y,x), float32 drn_elev(time,layer,y,x), float32 drn_cond(time,layer,y,x)\n", + " groups: " + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fnc = ml.export(os.path.join(pth, 'model.nc'))\n", + "fnc.nc" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Export output to netcdf\n", + "\n", + "FloPy has utilities to export model outputs to a netcdf file. Valid output types for export are MODFLOW binary head files, formatted head files, cell budget files, seawat concentration files, and zonebudget output.\n", + "\n", + "Let's use output from the Freyberg model as an example of these functions" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "initialize_geometry::proj4_str = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", + "initialize_geometry::self.grid_crs = +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +type=crs\n", + "initialize_geometry::nc_crs = epsg:4326\n", + "transforming coordinates using = proj=noop ellps=GRS80\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "error getting data for cell_by_cell_flowstorage at time 1.0:list index out of range\n", + "error getting data for cell_by_cell_flowstorage at time 1097.0:list index out of range\n" + ] + }, + { + "data": { + "text/plain": [ + "\n", + "root group (NETCDF4 data model, file format HDF5):\n", + " Conventions: CF-1.6, ACDD-1.3, flopy 3.3.5\n", + " date_created: 2021-08-20T23:54:00Z\n", + " geospatial_vertical_positive: up\n", + " geospatial_vertical_min: -25.0\n", + " geospatial_vertical_max: 4.832500457763672\n", + " geospatial_vertical_resolution: variable\n", + " featureType: Grid\n", + " namefile: freyberg.nam\n", + " model_ws: ..\\data\\freyberg_multilayer_transient\n", + " exe_name: mf2005.exe\n", + " modflow_version: mfnwt\n", + " create_hostname: IGSWCAWWLT6673\n", + " create_platform: Windows\n", + " create_directory: C:\\Users\\jlarsen\\Desktop\\flopy-dev\\examples\\Notebooks\n", + " solver_head_tolerance: -999\n", + " solver_flux_tolerance: -999\n", + " flopy_sr_xll: 123456.7\n", + " flopy_sr_yll: 765432.1\n", + " flopy_sr_rotation: 15.0\n", + " flopy_sr_proj4_str: +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\n", + " start_datetime: 7/4/1776\n", + " dimensions(sizes): time(1097), layer(3), y(40), x(20)\n", + " variables(dimensions): int32 crs(), float64 time(time), float64 elevation(layer,y,x), float64 longitude(y,x), float64 latitude(y,x), float64 x_proj(y,x), float64 y_proj(y,x), float32 layer(layer), float32 delc(y), float32 delr(x), |S1 VerticalTransform(), float32 head(time,layer,y,x), float32 constant_head(time,layer,y,x), float32 flow_right_face(time,layer,y,x), float32 flow_front_face(time,layer,y,x), float32 flow_lower_face(time,layer,y,x), float32 storage(time,layer,y,x)\n", + " groups: " + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# load binary head and cell budget files\n", + "fhead = os.path.join(model_ws, 'freyberg.hds')\n", + "fcbc = os.path.join(model_ws, 'freyberg.cbc')\n", + "\n", + "hds = flopy.utils.HeadFile(fhead)\n", + "cbc = flopy.utils.CellBudgetFile(fcbc)\n", + "\n", + "export_dict = {\"hds\": hds,\n", + " \"cbc\": cbc}\n", + "\n", + "# export head and cell budget outputs to netcdf\n", + "fnc = flopy.export.utils.output_helper(os.path.join(pth, \"output.nc\"), ml, export_dict)\n", + "fnc.nc" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}