Skip to content

feat(dis_properties): add grid method to get discretization properties - #2795

Open
jlarsen-usgs wants to merge 11 commits into
modflowpy:developfrom
jlarsen-usgs:develop
Open

feat(dis_properties): add grid method to get discretization properties#2795
jlarsen-usgs wants to merge 11 commits into
modflowpy:developfrom
jlarsen-usgs:develop

Conversation

@jlarsen-usgs

Copy link
Copy Markdown
Contributor
  • returns dictionary of keyword arguments to build DIS, DISV, and DISU depending on grid type
  • added cell .area calculation via shoelace algorithm to Grid
  • remove deprecated flopy.mf6.utils/reference.py which housed "pre-modelgrid" spatial reference support for MF6 models

Mirrors support outlined in removed PR #2700

* replace numpy .shape = with .reshape() in Raster
* replace .utcfromtimestamp with fromtimestamp(timestamp, timezone.utc) in ModelTime
* numpy will be deprecating `.shape =` reshaping, migrating to reshape convention to prevent DeprecationWarnings
* returns dictionary of keyword arguments to build DIS, DISV, and DISU depending on grid type
* added cell `.area` calculation via shoelace algorithm to `Grid`
* remove deprecated flopy.mf6.utils/reference.py which housed "pre-modelgrid" spatial reference support for MF6 models
@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 94.00000% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 73.3%. Comparing base (556c088) to head (32a5609).
⚠️ Report is 197 commits behind head on develop.

Files with missing lines Patch % Lines
flopy/discretization/unstructuredgrid.py 90.4% 2 Missing ⚠️
flopy/discretization/vertexgrid.py 83.3% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #2795      +/-   ##
===========================================
+ Coverage     55.5%    73.3%   +17.7%     
===========================================
  Files          644      659      +15     
  Lines       124135   132157    +8022     
===========================================
+ Hits         68947    96913   +27966     
+ Misses       55188    35244   -19944     
Files with missing lines Coverage Δ
flopy/discretization/grid.py 75.4% <100.0%> (-0.6%) ⬇️
flopy/discretization/structuredgrid.py 54.5% <100.0%> (+7.1%) ⬆️
flopy/utils/voronoi.py 81.6% <100.0%> (+12.2%) ⬆️
flopy/discretization/vertexgrid.py 80.1% <83.3%> (-3.6%) ⬇️
flopy/discretization/unstructuredgrid.py 83.1% <90.4%> (+1.6%) ⬆️

... and 580 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jlarsen-usgs

Copy link
Copy Markdown
Contributor Author

PR will close
#2388
#2661

@jdhughes-dev jdhughes-dev left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The grid methods and the cell area calculation look good. I checked area against areas I could work out by hand and it is right for a structured grid with variable row and column spacing and for a vertex grid holding a square and a triangle.

Removing flopy/mf6/utils/reference.py is overdue. It was deprecated in 3.9 for removal in 3.10+, we are at 3.11, and nothing in flopy imports it.

Two things before this goes in:

  • .docs/code.rst still lists ./source/flopy.mf6.utils.reference.rst. The files under source/ are written by sphinx-apidoc at build time, so once the module is gone that line points at a document that is never generated. Read the Docs is not set to fail on warnings and the docs are not built on a pull request, so this will not turn up until after the merge.
  • Patch coverage is 55%, mostly the new get_dis*_kwargs paths.

Should this go in the release that accompanies MODFLOW 6 6.8.0, or wait for the one after?

@jlarsen-usgs

Copy link
Copy Markdown
Contributor Author

@jdhughes-dev

I'll work on some additional testing and clean up the docs for the removed reference.py module.

There isn't a big rush to get this one in, so feel free to move forward with the release if this PR isn't completed in time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants