From 4f65dcdf8702c052b0afe6deb12540bc70bf5257 Mon Sep 17 00:00:00 2001 From: spaulins-usgs Date: Tue, 8 Oct 2019 13:26:49 -0700 Subject: [PATCH 1/2] fix(#659): Model grid caching changed to cache existing grid unless the grid is incomplete or user explicitly requests a new grid. --- flopy/discretization/grid.py | 17 ++++++++++++++--- flopy/discretization/structuredgrid.py | 21 ++++++++++++++++----- flopy/discretization/unstructuredgrid.py | 12 ++++++++++++ flopy/discretization/vertexgrid.py | 17 +++++++++++++---- flopy/mbase.py | 11 ++++++++--- flopy/mf6/mfmodel.py | 3 +-- flopy/mf6/mfpackage.py | 1 - flopy/modflow/mf.py | 2 ++ flopy/mt3d/mt.py | 2 +- flopy/pakbase.py | 2 -- flopy/seawat/swt.py | 1 + 11 files changed, 68 insertions(+), 21 deletions(-) diff --git a/flopy/discretization/grid.py b/flopy/discretization/grid.py index 6ce62680ec..5d71e89aa3 100644 --- a/flopy/discretization/grid.py +++ b/flopy/discretization/grid.py @@ -176,6 +176,17 @@ def __repr__(self): s += "lenuni:{0}; ".format(self.lenuni) return s + @property + def is_valid(self): + return True + + @property + def is_complete(self): + if self._top is not None and self._botm is not None and \ + self._idomain is not None: + return True + return False + @property def grid_type(self): return self._grid_type @@ -237,11 +248,11 @@ def prj(self, prj): @property def top(self): - return self._top + return copy.deepcopy(self._top) @property def botm(self): - return self._botm + return copy.deepcopy(self._botm) @property def top_botm(self): @@ -258,7 +269,7 @@ def lenuni(self): @property def idomain(self): - return self._idomain + return copy.deepcopy(self._idomain) @property def shape(self): diff --git a/flopy/discretization/structuredgrid.py b/flopy/discretization/structuredgrid.py index e5bf62395b..fdab4e9551 100644 --- a/flopy/discretization/structuredgrid.py +++ b/flopy/discretization/structuredgrid.py @@ -1,3 +1,4 @@ +import copy import numpy as np from .grid import Grid, CachedData @@ -61,6 +62,19 @@ def __init__(self, delc=None, delr=None, top=None, botm=None, idomain=None, #################### # Properties #################### + @property + def is_valid(self): + if self.__delc is not None and self.__delr is not None: + return True + return False + + @property + def is_complete(self): + if self.__delc is not None and self.__delr is not None and \ + super(StructuredGrid, self).is_complete: + return True + return False + @property def nlay(self): return self.__nlay @@ -87,11 +101,11 @@ def extent(self): @property def delc(self): - return self.__delc + return copy.deepcopy(self.__delc) @property def delr(self): - return self.__delr + return copy.deepcopy(self.__delr) @property def xyzvertices(self): @@ -410,8 +424,6 @@ def write_shapefile(self, filename='grid.shp', epsg=None, prj=None): #extent = t.extent grid = t.grid_lines - #print('break') - t.use_ref_coords = True sr_x = t.xvertices sr_y = t.yvertices @@ -422,4 +434,3 @@ def write_shapefile(self, filename='grid.shp', epsg=None, prj=None): print(sr_grid) #t.plot_grid_lines() #plt.show() - #print('break') \ No newline at end of file diff --git a/flopy/discretization/unstructuredgrid.py b/flopy/discretization/unstructuredgrid.py index fbb4d6f0b0..0885d2172d 100644 --- a/flopy/discretization/unstructuredgrid.py +++ b/flopy/discretization/unstructuredgrid.py @@ -55,6 +55,18 @@ def __init__(self, vertices=None, iverts=None, xcenters=None, ycenters=None, assert np.array(self.xcellcenters).shape[0] == self.ncpl assert np.array(self.ycellcenters).shape[0] == self.ncpl + @property + def is_valid(self): + if self._nodes is not None: + return True + return False + + @property + def is_complete(self): + if self._nodes is not None and \ + super(UnstructuredGrid, self).is_complete: + return True + return False @property def grid_type(self): diff --git a/flopy/discretization/vertexgrid.py b/flopy/discretization/vertexgrid.py index 7d752df429..1dd4514374 100644 --- a/flopy/discretization/vertexgrid.py +++ b/flopy/discretization/vertexgrid.py @@ -50,6 +50,19 @@ def __init__(self, vertices=None, cell2d=None, top=None, botm=None, idomain=None self._nlay = None self._ncpl = None + @property + def is_valid(self): + if self._vertices is not None and self._cell2d is not None: + return True + return False + + @property + def is_complete(self): + if self._vertices is not None and self._cell2d is not None and \ + super(VertexGrid, self).is_complete: + return True + return False + @property def nlay(self): if self._botm is not None: @@ -296,8 +309,6 @@ def _build_grid_geometry_info(self): sr_lc = t.grid_lines sr_e = t.extent - print('break') - t.use_ref_coords = False x = t.xvertices y = t.yvertices @@ -307,5 +318,3 @@ def _build_grid_geometry_info(self): zc = t.zcellcenters lc = t.grid_lines e = t.extent - - print('break') \ No newline at end of file diff --git a/flopy/mbase.py b/flopy/mbase.py index 200cc549a0..aa87503678 100644 --- a/flopy/mbase.py +++ b/flopy/mbase.py @@ -66,6 +66,14 @@ def __init__(self): self._mg_resync = True self._modelgrid = None + def update_modelgrid(self): + if self._modelgrid is not None: + self._modelgrid = Grid(proj4=self._modelgrid.proj4, + xoff=self._modelgrid.xoffset, + yoff=self._modelgrid.yoffset, + angrot=self._modelgrid.angrot) + self._mg_resync = True + @property @abc.abstractmethod def modelgrid(self): @@ -1146,12 +1154,10 @@ def _set_name(self, value): p.fn_path = os.path.join(self.model_ws, p.file_name[0]) def __setattr__(self, key, value): - if key == "free_format_input": # if self.bas6 is not None: # self.bas6.ifrefm = value super(BaseModel, self).__setattr__(key, value) - elif key == "name": self._set_name(value) elif key == "model_ws": @@ -1181,7 +1187,6 @@ def __setattr__(self, key, value): else: raise Exception("cannot set start_datetime -" "ModflowDis not found") - else: super(BaseModel, self).__setattr__(key, value) diff --git a/flopy/mf6/mfmodel.py b/flopy/mf6/mfmodel.py index 69da4cf6a3..43fc099b57 100644 --- a/flopy/mf6/mfmodel.py +++ b/flopy/mf6/mfmodel.py @@ -279,7 +279,6 @@ def modeldiscrit(self): def modelgrid(self): if not self._mg_resync: return self._modelgrid - if self.get_grid_type() == DiscretizationType.DIS: dis = self.get_package('dis') if not hasattr(dis, '_init_complete'): @@ -400,7 +399,7 @@ def modelgrid(self): self._modelgrid.set_coord_info(xorig, yorig, angrot, self._modelgrid.epsg, self._modelgrid.proj4) - + self._mg_resync = not self._modelgrid.is_complete return self._modelgrid @property diff --git a/flopy/mf6/mfpackage.py b/flopy/mf6/mfpackage.py index d46eeab4e4..6d93135793 100644 --- a/flopy/mf6/mfpackage.py +++ b/flopy/mf6/mfpackage.py @@ -1195,7 +1195,6 @@ def __setattr__(self, name, value): if hasattr(self, name) and getattr(self, name) is not None: attribute = object.__getattribute__(self, name) if attribute is not None and isinstance(attribute, mfdata.MFData): - self.parent._mg_resync = True try: if isinstance(attribute, mfdatalist.MFList): attribute.set_data(value, autofill=True) diff --git a/flopy/modflow/mf.py b/flopy/modflow/mf.py index d10f377dc6..800fa734c8 100644 --- a/flopy/modflow/mf.py +++ b/flopy/modflow/mf.py @@ -300,10 +300,12 @@ def modelgrid(self): self._modelgrid.set_coord_info(xoff, yoff, self._modelgrid.angrot, self._modelgrid.epsg, self._modelgrid.proj4) + self._mg_resync = not self._modelgrid.is_complete return self._modelgrid @modelgrid.setter def modelgrid(self, value): + self._mg_resync = False self._modelgrid = value @property diff --git a/flopy/mt3d/mt.py b/flopy/mt3d/mt.py index 558d36fd0c..26d098ffbb 100644 --- a/flopy/mt3d/mt.py +++ b/flopy/mt3d/mt.py @@ -414,7 +414,7 @@ def modelgrid(self): angrot = 0.0 self._modelgrid.set_coord_info(xoff, yoff, angrot, epsg, proj4) - + self._mg_resync = not self._modelgrid.is_complete return self._modelgrid @property diff --git a/flopy/pakbase.py b/flopy/pakbase.py index 5dc0832723..1f14d86aaf 100644 --- a/flopy/pakbase.py +++ b/flopy/pakbase.py @@ -174,8 +174,6 @@ def __setitem__(self, key, value): def __setattr__(self, key, value): var_dict = vars(self) if key in list(var_dict.keys()): - if hasattr(self, 'parent'): - self.parent._mg_resync = True old_value = var_dict[key] if isinstance(old_value, Util2d): value = Util2d(self.parent, old_value.shape, diff --git a/flopy/seawat/swt.py b/flopy/seawat/swt.py index 6b147e0691..df2173ff46 100644 --- a/flopy/seawat/swt.py +++ b/flopy/seawat/swt.py @@ -193,6 +193,7 @@ def modelgrid(self): self._modelgrid.set_coord_info(xoff, yoff, self._modelgrid.angrot, self._modelgrid.epsg, self._modelgrid.proj4) + self._mg_resync = not self._modelgrid.is_complete return self._modelgrid @property From 10e9ad8ea04f2fefc06e524506958d52b5759392 Mon Sep 17 00:00:00 2001 From: spaulins-usgs Date: Tue, 8 Oct 2019 13:29:42 -0700 Subject: [PATCH 2/2] feat(update model grid): Added section explaining how to get and update a model grid. --- .../flopy3_demo_of_modelgrid_classes.ipynb | 337 +++++------------- 1 file changed, 99 insertions(+), 238 deletions(-) diff --git a/examples/Notebooks/flopy3_demo_of_modelgrid_classes.ipynb b/examples/Notebooks/flopy3_demo_of_modelgrid_classes.ipynb index 048e2fed12..16990e95d2 100644 --- a/examples/Notebooks/flopy3_demo_of_modelgrid_classes.ipynb +++ b/examples/Notebooks/flopy3_demo_of_modelgrid_classes.ipynb @@ -11,22 +11,9 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "flopy is installed in /Users/jdhughes/Documents/Development/flopy_git/flopy_us/flopy\n", - "3.7.3 (default, Mar 27 2019, 16:54:48) \n", - "[Clang 4.0.1 (tags/RELEASE_401/final)]\n", - "numpy version: 1.16.2\n", - "matplotlib version: 3.0.3\n", - "flopy version: 3.2.12\n" - ] - } - ], + "outputs": [], "source": [ "import os\n", "import sys\n", @@ -60,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -79,40 +66,18 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(15.976724774602399, 22.81712764111577)" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "mg.get_coords(10, 10)" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(3.0479999999999983, 3.048000000000002)" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "mg.get_local_coords(11.82170571129881, 13.906660505012088)" ] @@ -126,72 +91,27 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "14.140523437626127" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "mg.xcellcenters[1, 7] # x-coordinate at row 1, column 7" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([14.14052344, 14.82456372])" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "mg.xcellcenters[[1, 3], [7, 7]]" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.scatter(mg.xcellcenters.ravel(), mg.ycellcenters.ravel())\n", "plt.scatter(mg.xyzvertices[0].ravel(), mg.xyzvertices[1].ravel(), s=10)" @@ -208,32 +128,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "mg.set_coord_info()\n", "plt.scatter(mg.xcellcenters.ravel(), mg.ycellcenters.ravel())\n", @@ -249,7 +146,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -261,32 +158,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(11, -1)" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plot_lines(mg.grid_lines)\n", "plt.ylim(11, -1)" @@ -294,32 +168,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "mg.set_coord_info(xoff=10, yoff=10, angrot=20, epsg=26715)\n", "plot_lines(mg.grid_lines)\n", @@ -335,30 +186,9 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],\n", - " [ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],\n", - " [ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],\n", - " [ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],\n", - " [ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],\n", - " [ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],\n", - " [ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],\n", - " [ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],\n", - " [ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],\n", - " [ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],\n", - " [ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]])" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "mg.set_coord_info()\n", "mg.xyzvertices[0]" @@ -366,56 +196,87 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[ 6.57979857, 7.51949119, 8.45918381, 9.39887643, 10.33856905,\n", - " 11.27826167, 12.21795429, 13.15764691, 14.09733953, 15.03703215,\n", - " 15.97672477],\n", - " [ 6.92181871, 7.86151133, 8.80120395, 9.74089657, 10.68058919,\n", - " 11.62028181, 12.55997443, 13.49966706, 14.43935968, 15.3790523 ,\n", - " 16.31874492],\n", - " [ 7.26383885, 8.20353147, 9.14322409, 10.08291672, 11.02260934,\n", - " 11.96230196, 12.90199458, 13.8416872 , 14.78137982, 15.72107244,\n", - " 16.66076506],\n", - " [ 7.605859 , 8.54555162, 9.48524424, 10.42493686, 11.36462948,\n", - " 12.3043221 , 13.24401472, 14.18370734, 15.12339996, 16.06309258,\n", - " 17.0027852 ],\n", - " [ 7.94787914, 8.88757176, 9.82726438, 10.766957 , 11.70664962,\n", - " 12.64634224, 13.58603486, 14.52572749, 15.46542011, 16.40511273,\n", - " 17.34480535],\n", - " [ 8.28989928, 9.2295919 , 10.16928452, 11.10897715, 12.04866977,\n", - " 12.98836239, 13.92805501, 14.86774763, 15.80744025, 16.74713287,\n", - " 17.68682549],\n", - " [ 8.63191943, 9.57161205, 10.51130467, 11.45099729, 12.39068991,\n", - " 13.33038253, 14.27007515, 15.20976777, 16.14946039, 17.08915301,\n", - " 18.02884563],\n", - " [ 8.97393957, 9.91363219, 10.85332481, 11.79301743, 12.73271005,\n", - " 13.67240267, 14.61209529, 15.55178792, 16.49148054, 17.43117316,\n", - " 18.37086578],\n", - " [ 9.31595971, 10.25565233, 11.19534495, 12.13503758, 13.0747302 ,\n", - " 14.01442282, 14.95411544, 15.89380806, 16.83350068, 17.7731933 ,\n", - " 18.71288592],\n", - " [ 9.65797986, 10.59767248, 11.5373651 , 12.47705772, 13.41675034,\n", - " 14.35644296, 15.29613558, 16.2358282 , 17.17552082, 18.11521344,\n", - " 19.05490606],\n", - " [10. , 10.93969262, 11.87938524, 12.81907786, 13.75877048,\n", - " 14.6984631 , 15.63815572, 16.57784835, 17.51754097, 18.45723359,\n", - " 19.39692621]])" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "mg.set_coord_info(xoff=10, yoff=10, angrot=20, epsg=26715)\n", "mg.xyzvertices[0]" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Getting the Model Grid from the Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ml = flopy.modflow.Modflow(modelname='new_model', exe_name='mf2005', \n", + " version='mf2005', model_ws=os.path.join('data'))\n", + "\n", + "dis = flopy.modflow.ModflowDis(ml,nlay=5,nrow=5,ncol=5,delr=[50,50,50,50,50],\n", + " delc=[50,50,50,50,50],top=0.0,botm=-50.0,laycbd=0) \n", + "\n", + "ibound = np.ones((5, 5, 5), dtype=np.int)\n", + "start = np.zeros((5, 5, 5), dtype=np.float)\n", + "bas = flopy.modflow.ModflowBas(ml,ibound=ibound,strt=start)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Use the .modelgrid attribute to get the model grid from the model. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ml.modelgrid.xyzvertices[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By default the flopy model class caches the model grid. If you later modify model discritization information the model grid can end up out of sync with the model discritization information." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dis.delr=[10,10,10,10,10]\n", + "ml.modelgrid.xyzvertices[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To resync the model grid with the latest model discritization information call update_modelgrid. Calling the update_modelgrid method clears the cached model grid and forces flopy to create a new model grid object on the next call to modelgrid. The current model discritization information is used to create the new model grid." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ml.update_modelgrid()\n", + "ml.modelgrid.xyzvertices[0]" + ] } ], "metadata": { @@ -434,7 +295,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.6.5" } }, "nbformat": 4,