Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
include flopy/export/longnames.json
include flopy/export/unitsformat.json
include flopy/mf6/data/dfn/*.dfn
include flopy/plot/mplstyle/*.mplstyle
26 changes: 26 additions & 0 deletions autotest/t600_pyinstaller_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import os
import pathlib

import flopy

root_folder = pathlib.Path(__file__).parent.parent
flopy_folder = pathlib.Path(flopy.__file__).parent
dfn_path = flopy_folder / "mf6" / "data" / "dfn"
rename_path = flopy_folder / "mf6" / "data" / "no-dfn"


def test_flopy_runs_without_dfn_folder():
""" Test to ensure that flopy can load a modflow 6 simulation without dfn files being present. """
exists = dfn_path.exists()
if exists:
if rename_path.exists():
os.rmdir(rename_path)
os.rename(dfn_path, rename_path)
try:
# run built executable
sim_path = root_folder / 'examples' / 'data' / 'mf6' / 'test006_gwf3'

flopy.mf6.MFSimulation.load(sim_ws=str(sim_path))
finally:
if exists and rename_path.exists():
os.rename(rename_path, dfn_path)
78 changes: 0 additions & 78 deletions flopy/export/longnames.json

This file was deleted.

85 changes: 85 additions & 0 deletions flopy/export/longnames.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
""" Human readable long names for netCDF variables. """

NC_LONG_NAMES = {
"botm": "Model layer bottom elevations",
"crs": "Coordinate reference system",
"delc": "Model grid cell spacing along a column",
"delr": "Model grid cell spacing along a row",
"drn_cond": "Drain package conductance",
"drn_elev": "Drain package elevation",
"elevation": "Elevation",
"ghb_bhead": "General head boundary package head",
"ghb_cond": "General head boundary package conductance",
"hani": "Horizontal hydraulic conductivity anisotropy",
"hk": "Horizontal hydraulic conductivity",
"ibound": "Flow model active area array",
"icbund": "Transport model active array",
"latitude": "Latitude",
"layer": "Model layer",
"longitude": "Longitude",
"mnw2_B": "MultiNode well package B coefficient",
"mnw2_C": "MultiNode well package C coefficient",
"mnw2_P": "MultiNode well package P coefficient",
"mnw2_capmult": "MultiNode well package head capacity relation multiplier",
"mnw2_cprime": "MultiNode well package injected fluid concentration",
"mnw2_cwc": "MultiNode well package cell to well conductance",
"mnw2_hlift": "MultiNode well package reference head for well discharge point",
"mnw2_hlim": "MultiNode well package limiting head for well",
"mnw2_hwtol": "MultiNode well package water level solution tolerance",
"mnw2_kskin": "MultiNode well package well skin hydraulic conductivity",
"mnw2_liftn": "MultiNode well package known value of lift at discharge n",
"mnw2_liftq0": "MultiNode well package maximum lift of pump",
"mnw2_liftqmax": "MultiNode well package lift at maximum pumping rate",
"mnw2_pp": "MultiNode well package fraction of partial penetration",
"mnw2_ppflag": "MultiNode well package partial penetration adjustment flag",
"mnw2_pumpcap": "MultiNode well package pump lift adjustment flag",
"mnw2_pumpcol": "MultiNode well package pump intake column",
"mnw2_pumplay": "MultiNode well package pump intake layer",
"mnw2_pumploc": "MultiNode well package pump location flag",
"mnw2_pumprow": "MultiNode well package pump intake row",
"mnw2_qcut": "MultiNode well package pump limits flag",
"mnw2_qdes": "MultiNode well package desired volumetric pumping rate",
"mnw2_qfrcmn": "MultiNode well package minimum fraction of "
"original pumping rate for well to remain active",
"mnw2_qfrcmx": "MultiNode well package minimum fraction of "
"original pumping rate for well to reactivate",
"mnw2_qlimit": "MultiNode well package pumping constraint flag",
"mnw2_qn": "MultiNode well package known value of discharge n",
"mnw2_rskin": "MultiNode well package radius of well skin outer edge",
"mnw2_rw": "MultiNode well package radius of well",
"mnw2_zbotm": "MultiNode well package botm of well open interval",
"mnw2_zpump": "MultiNode well package pump elevation",
"mnw2_ztop": "MultiNode well package top of open interval",
"model_top": "Model top",
"prsity": "Porosity",
"rech": "Simulated groundwater recharge rates",
"riv_cond": "River package bed conductance",
"riv_rbot": "River package bottom elevation",
"riv_stage": "River package stage",
"sconc1": "Starting concentration",
"sfr_eps": "Streamflow Routing Package Brooks Corey exponent",
"sfr_ireach": "Streamflow Routing Package reach number",
"sfr_iseg": "Streamflow Routing Package segment number",
"sfr_j": "Streamflow Routing Package reach column",
"sfr_outreach": "Streamflow Routing Package downstream reach",
"sfr_rchlen": "Streamflow Routing Package reach length",
"sfr_reachID": "Streamflow Routing Package reach ID",
"sfr_slope": "Streamflow Routing Package streambed slope",
"sfr_strhc1": "Streamflow Routing Package streambed hydraulic conductivity",
"sfr_strthick": "Streamflow Routing Package streambed thickness",
"sfr_strtop": "Streamflow Routing Package streambed top",
"sfr_thti": "Streamflow Routing Package unsaturated zone "
"initial volumetric water content",
"sfr_thts": "Streamflow Routing Package unsaturated zone "
"saturated volumetric water content",
"sfr_uhc": "Streamflow Routing Package unsaturated zone "
"saturated vertical hydraulic conductivity",
"ss": "Specific storage",
"strt": "Starting heads",
"sy": "Specific yield",
"thickness": "Layer thickness",
"time": "time",
"vka": "Vertical hydraulic conductivity or vertical anisotropy",
"vkcb": "Vertical hydraulic conductivity of quasi3d confining bed",
"wel_flux": "Well package flux",
}
17 changes: 6 additions & 11 deletions flopy/export/netcdf.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from .metadata import acdd

from ..utils import import_optional_dependency
from .longnames import NC_LONG_NAMES

# globals
FILLVALUE = -99999.9
Expand All @@ -24,10 +25,6 @@

STANDARD_VARS = ["longitude", "latitude", "layer", "elevation", "time"]

path = os.path.split(__file__)[0]
with open(path + "/longnames.json") as f:
NC_LONG_NAMES = json.load(f)


class Logger:
"""
Expand Down Expand Up @@ -1388,7 +1385,7 @@ def _check_vs_sciencebase(self, md):
assert md.geospatial_vertical_min - self.vbounds[0] < tol
assert md.geospatial_vertical_max - self.vbounds[1] < tol

def get_longnames_from_docstrings(self, outfile="longnames.json"):
def get_longnames_from_docstrings(self, outfile="longnames.py"):
"""
This is experimental.

Expand Down Expand Up @@ -1440,7 +1437,7 @@ def get_entries(ds):
attr = [v.split("_")[-1] for v in self.nc.variables]

# parse docstrings to get long names
longnames = {}
longnames = dict.fromkeys(attr, "")
for pkg in packages:
# parse the docstring
obj = pkg[-1]
Expand All @@ -1453,10 +1450,8 @@ def get_entries(ds):
if k in attr:
longnames[k] = v.split(". ")[0]

# add in any variables that weren't found
for var in attr:
if var not in longnames.keys():
longnames[var] = ""
longnames_dict = json.dumps(longnames, sort_keys=True, indent=4)
with open(outfile, "w") as output:
json.dump(longnames, output, sort_keys=True, indent=2)
output.write("NC_LONG_NAMES = ")
output.write(longnames_dict)
return longnames
74 changes: 0 additions & 74 deletions flopy/export/unitsformat.json

This file was deleted.

Loading