Skip to content
Closed
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
3 changes: 3 additions & 0 deletions .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,9 @@ single-line-class-stmt=no
# else.
single-line-if-stmt=no

# Good variable names which should always be accepted, separated by a comma
good-names=kv,nr,nc,sy,ss,iu


[SIMILARITIES]

Expand Down
18 changes: 9 additions & 9 deletions autotest/t004_test_utilarray.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@

def test_load_txt_free():
a = np.ones((10,), dtype=np.float32) * 250.0
fp = StringIO(u"10*250.0")
fp = StringIO("10*250.0")
fa = Util2d.load_txt(a.shape, fp, a.dtype, "(FREE)")
np.testing.assert_equal(fa, a)
assert fa.dtype == a.dtype

a = np.arange(10, dtype=np.int32).reshape((2, 5))
fp = StringIO(
dedent(
u"""\
"""\
0 1,2,3, 4
5 6, 7, 8 9
"""
Expand All @@ -39,7 +39,7 @@ def test_load_txt_free():
a[1, 0] = 2.2
fp = StringIO(
dedent(
u"""\
"""\
5*1.0
2.2 2*1.0, +1E-00 1.0
"""
Expand All @@ -54,7 +54,7 @@ def test_load_txt_fixed():
a = np.arange(10, dtype=np.int32).reshape((2, 5))
fp = StringIO(
dedent(
u"""\
"""\
01234X
56789
"""
Expand All @@ -66,7 +66,7 @@ def test_load_txt_fixed():

fp = StringIO(
dedent(
u"""\
"""\
0123X
4
5678
Expand All @@ -81,7 +81,7 @@ def test_load_txt_fixed():
a = np.array([[-1, 1, -2, 2, -3], [3, -4, 4, -5, 5]], np.int32)
fp = StringIO(
dedent(
u"""\
"""\
-1 1-2 2-3
3 -44 -55
"""
Expand All @@ -96,7 +96,7 @@ def test_load_block():
a = np.ones((2, 5), dtype=np.int32) * 4
fp = StringIO(
dedent(
u"""\
"""\
1
1 2 1 5 4
"""
Expand All @@ -111,7 +111,7 @@ def test_load_block():
a[0, 2:4] = 6.0
fp = StringIO(
dedent(
u"""\
"""\
3
1 2 1 5 4.0
1 2 2 2 9.0
Expand All @@ -127,7 +127,7 @@ def test_load_block():
a[0, 2:4] = 8
fp = StringIO(
dedent(
u"""\
"""\
1
1 1 3 4 8
"""
Expand Down
29 changes: 16 additions & 13 deletions autotest/t005_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,26 @@

def test_modflow_unstructured():
import flopy
import numpy as np

mf = flopy.modflow.Modflow(
version="mfusg", structured=False, model_ws=cpth
)
assert isinstance(mf, flopy.modflow.Modflow)
mf = flopy.modflowusg.ModflowUsg(structured=False, model_ws=cpth)
assert isinstance(mf, flopy.modflowusg.ModflowUsg)

dis = flopy.modflow.ModflowDis(mf)
assert isinstance(dis, flopy.modflow.ModflowDis)
disu = flopy.modflowusg.ModflowUsgDisU(
mf, nodes=1, iac=[1], njag=1, ja=np.array([0]), cl12=[1.0], fahl=[1.0]
)
assert isinstance(disu, flopy.modflowusg.ModflowUsgDisU)

bas = flopy.modflow.ModflowBas(mf)
assert isinstance(bas, flopy.modflow.ModflowBas)

lpf = flopy.modflow.ModflowLpf(mf)
assert isinstance(lpf, flopy.modflow.ModflowLpf)
lpf = flopy.modflowusg.ModflowUsgLpf(mf)
assert isinstance(lpf, flopy.modflowusg.ModflowUsgLpf)

wel = flopy.modflow.ModflowWel(mf, stress_period_data={0: [[0, -100]]})
assert isinstance(wel, flopy.modflow.ModflowWel)
wel = flopy.modflowusg.ModflowUsgWel(
mf, stress_period_data={0: [[0, -100]]}
)
assert isinstance(wel, flopy.modflowusg.ModflowUsgWel)

ghb = flopy.modflow.ModflowGhb(
mf, stress_period_data={0: [[1, 5.9, 1000.0]]}
Expand All @@ -35,13 +38,13 @@ def test_modflow_unstructured():
oc = flopy.modflow.ModflowOc(mf)
assert isinstance(oc, flopy.modflow.ModflowOc)

sms = flopy.modflow.ModflowSms(mf)
assert isinstance(sms, flopy.modflow.ModflowSms)
sms = flopy.modflowusg.ModflowUsgSms(mf)
assert isinstance(sms, flopy.modflowusg.ModflowUsgSms)

# write well file
wel.write_file()
assert os.path.isfile(os.path.join(cpth, f"{mf.name}.wel")) is True
wel2 = flopy.modflow.ModflowWel.load(
wel2 = flopy.modflowusg.ModflowUsgWel.load(
os.path.join(cpth, f"{mf.name}.wel"), mf
)
assert wel2.stress_period_data[0] == wel.stress_period_data[0]
Expand Down
2 changes: 1 addition & 1 deletion autotest/t007_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ def test_export_array():
if "yllcorner" in line.lower():
val = float(line.strip().split()[-1])
if rotate:
assert np.abs(val - m.modelgrid.extent[1]) < 1e-6
assert np.abs(val - m.modelgrid.extent[2]) < 1e-6
else:
assert np.abs(val - m.modelgrid.yoffset) < 1e-6
if "cellsize" in line.lower():
Expand Down
64 changes: 27 additions & 37 deletions autotest/t016_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ def test_usg_disu_load():
assert os.path.isfile(fname), f"disu file not found {fname}"

# Create the model
m = flopy.modflow.Modflow(modelname="usgload", verbose=True)
m = flopy.modflowusg.ModflowUsg(modelname="usgload", verbose=True)

# Load the disu file
disu = flopy.modflow.ModflowDisU.load(fname, m)
assert isinstance(disu, flopy.modflow.ModflowDisU)
disu = flopy.modflowusg.ModflowUsgDisU.load(fname, m)
assert isinstance(disu, flopy.modflowusg.ModflowUsgDisU)

# Change where model files are written
model_ws = tpth
Expand All @@ -42,7 +42,7 @@ def test_usg_disu_load():
)

# Load disu file
disu2 = flopy.modflow.ModflowDisU.load(fname, m)
disu2 = flopy.modflowusg.ModflowUsgDisU.load(fname, m)
for (key1, value1), (key2, value2) in zip(
disu2.__dict__.items(), disu.__dict__.items()
):
Expand All @@ -67,11 +67,11 @@ def test_usg_sms_load():
assert os.path.isfile(fname), f"sms file not found {fname}"

# Create the model
m = flopy.modflow.Modflow(modelname="usgload", verbose=True)
m = flopy.modflowusg.ModflowUsg(modelname="usgload", verbose=True)

# Load the sms file
sms = flopy.modflow.ModflowSms.load(fname, m)
assert isinstance(sms, flopy.modflow.ModflowSms)
sms = flopy.modflowusg.ModflowUsgSms.load(fname, m)
assert isinstance(sms, flopy.modflowusg.ModflowUsgSms)

# Change where model files are written
model_ws = tpth
Expand All @@ -84,7 +84,7 @@ def test_usg_sms_load():
)

# Load sms file
sms2 = flopy.modflow.ModflowSms.load(fname, m)
sms2 = flopy.modflowusg.ModflowUsgSms.load(fname, m)
for (key1, value1), (key2, value2) in zip(
sms2.__dict__.items(), sms.__dict__.items()
):
Expand All @@ -96,7 +96,7 @@ def test_usg_sms_load():


def test_usg_model():
mf = flopy.modflow.Modflow(
mf = flopy.modflowusg.ModflowUsg(
version="mfusg",
structured=True,
model_ws=tpth,
Expand All @@ -105,8 +105,8 @@ def test_usg_model():
)
dis = flopy.modflow.ModflowDis(mf, nlay=1, nrow=11, ncol=11)
bas = flopy.modflow.ModflowBas(mf)
lpf = flopy.modflow.ModflowLpf(mf)
wel = flopy.modflow.ModflowWel(
lpf = flopy.modflowusg.ModflowUsgLpf(mf)
wel = flopy.modflowusg.ModflowUsgWel(
mf, stress_period_data={0: [[0, 5, 5, -1.0]]}
)
ghb = flopy.modflow.ModflowGhb(
Expand All @@ -119,7 +119,7 @@ def test_usg_model():
},
)
oc = flopy.modflow.ModflowOc(mf)
sms = flopy.modflow.ModflowSms(mf, options="complex")
sms = flopy.modflowusg.ModflowUsgSms(mf, options="complex")

# run with defaults
mf.write_input()
Expand All @@ -130,7 +130,7 @@ def test_usg_model():
# try different complexity options; all should run successfully
for complexity in ["simple", "moderate", "complex"]:
print(f"testing MFUSG with sms complexity: {complexity}")
sms = flopy.modflow.ModflowSms(mf, options=complexity)
sms = flopy.modflowusg.ModflowUsgSms(mf, options=complexity)
sms.write_file()
if run:
success, buff = mf.run_model()
Expand All @@ -148,22 +148,22 @@ def test_usg_load_01B():
assert os.path.isfile(fname), f"nam file not found {fname}"

# Create the model
m = flopy.modflow.Modflow(modelname="usgload_1b", verbose=True)
m = flopy.modflowusg.ModflowUsg(modelname="usgload_1b", verbose=True)

# Load the model, with checking
m = m.load(fname, check=True)

# assert disu, lpf, bas packages have been loaded
msg = "flopy failed on loading mfusg disu package"
assert isinstance(m.disu, flopy.modflow.mfdisu.ModflowDisU), msg
assert isinstance(m.disu, flopy.modflowusg.mfusgdisu.ModflowUsgDisU), msg
msg = "flopy failed on loading mfusg lpf package"
assert isinstance(m.lpf, flopy.modflow.mflpf.ModflowLpf), msg
assert isinstance(m.lpf, flopy.modflowusg.mfusglpf.ModflowUsgLpf), msg
msg = "flopy failed on loading mfusg bas package"
assert isinstance(m.bas6, flopy.modflow.mfbas.ModflowBas), msg
msg = "flopy failed on loading mfusg oc package"
assert isinstance(m.oc, flopy.modflow.mfoc.ModflowOc), msg
msg = "flopy failed on loading mfusg sms package"
assert isinstance(m.sms, flopy.modflow.mfsms.ModflowSms), msg
assert isinstance(m.sms, flopy.modflowusg.mfusgsms.ModflowUsgSms), msg


def test_usg_load_45usg():
Expand All @@ -173,26 +173,26 @@ def test_usg_load_45usg():
assert os.path.isfile(fname), f"nam file not found {fname}"

# Create the model
m = flopy.modflow.Modflow(modelname="45usg", verbose=True)
m = flopy.modflowusg.ModflowUsg(modelname="45usg", verbose=True)

# Load the model, with checking.
m = m.load(fname, check=True)

# assert disu, lpf, bas packages have been loaded
msg = "flopy failed on loading mfusg disu package"
assert isinstance(m.disu, flopy.modflow.mfdisu.ModflowDisU), msg
assert isinstance(m.disu, flopy.modflowusg.mfusgdisu.ModflowUsgDisU), msg
msg = "flopy failed on loading mfusg lpf package"
assert isinstance(m.lpf, flopy.modflow.mflpf.ModflowLpf), msg
assert isinstance(m.lpf, flopy.modflowusg.mfusglpf.ModflowUsgLpf), msg
msg = "flopy failed on loading mfusg bas package"
assert isinstance(m.bas6, flopy.modflow.mfbas.ModflowBas), msg
msg = "flopy failed on loading mfusg oc package"
assert isinstance(m.oc, flopy.modflow.mfoc.ModflowOc), msg
msg = "flopy failed on loading mfusg sms package"
assert isinstance(m.sms, flopy.modflow.mfsms.ModflowSms), msg
assert isinstance(m.sms, flopy.modflowusg.mfusgsms.ModflowUsgSms), msg
msg = "flopy failed on loading mfusg drn package"
assert isinstance(m.drn, flopy.modflow.mfdrn.ModflowDrn), msg
msg = "flopy failed on loading mfusg wel package"
assert isinstance(m.wel, flopy.modflow.mfwel.ModflowWel), msg
assert isinstance(m.wel, flopy.modflowusg.mfusgwel.ModflowUsgWel), msg


def test_usg_rch_evt_models01():
Expand All @@ -205,9 +205,7 @@ def test_usg_rch_evt_models01():
"..", "examples", "data", "mfusg_test", "rch_evt_tests"
)
nam = "usg_rch_evt.nam"
m = flopy.modflow.Modflow.load(
nam, model_ws=model_ws, version="mfusg", exe_name=v
)
m = flopy.modflowusg.ModflowUsg.load(nam, model_ws=model_ws, exe_name=v)
m.riv.check()
m.model_ws = tpth
m.write_input()
Expand All @@ -226,9 +224,7 @@ def test_usg_rch_evt_models02():
"..", "examples", "data", "mfusg_test", "rch_evt_tests"
)
nam = "usg_rch_evt_nrchop2.nam"
m = flopy.modflow.Modflow.load(
nam, model_ws=model_ws, version="mfusg", exe_name=v
)
m = flopy.modflowusg.ModflowUsg.load(nam, model_ws=model_ws, exe_name=v)
m.model_ws = tpth
m.write_input()
if run:
Expand All @@ -246,9 +242,7 @@ def test_usg_rch_evt_models02a():
"..", "examples", "data", "mfusg_test", "rch_evt_tests"
)
nam = "usg_rch_evt_nrchop2a.nam"
m = flopy.modflow.Modflow.load(
nam, model_ws=model_ws, version="mfusg", exe_name=v
)
m = flopy.modflowusg.ModflowUsg.load(nam, model_ws=model_ws, exe_name=v)
m.model_ws = tpth
m.write_input()
if run:
Expand All @@ -263,19 +257,15 @@ def test_usg_ss_to_tr():
"..", "examples", "data", "mfusg_test", "01A_nestedgrid_nognc"
)
nam = "flow.nam"
m = flopy.modflow.Modflow.load(
nam, model_ws=model_ws, version="mfusg", exe_name=v
)
m = flopy.modflowusg.ModflowUsg.load(nam, model_ws=model_ws, exe_name=v)
m.model_ws = tpth
m.disu.steady = [False]
m.write_input()
if run:
success, buff = m.run_model()
assert success

m = flopy.modflow.Modflow.load(
nam, model_ws=tpth, version="mfusg", exe_name=v
)
m = flopy.modflowusg.ModflowUsg.load(nam, model_ws=tpth, exe_name=v)
if run:
success, buff = m.run_model()
assert success
Expand Down
6 changes: 4 additions & 2 deletions autotest/t027_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -380,8 +380,10 @@ def test_export():
if netCDF4 is not None:
fcw = m.wel.export(os.path.join(cpth, "MNW2-Fig28_well.nc"))
fcw.write()
fcm = m.mnw2.export(os.path.join(cpth, "MNW2-Fig28.nc"))
fcm.write()
fpth = os.path.join(cpth, "MNW2-Fig28.nc")
# test context statement
with m.mnw2.export(fpth):
pass
fpth = os.path.join(cpth, "MNW2-Fig28.nc")
nc = netCDF4.Dataset(fpth)
assert np.array_equal(
Expand Down
4 changes: 2 additions & 2 deletions autotest/t038_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ def test_load_usg():

# function to load a MODFLOW-USG model and then write it back out
def load_model(namfile, model_ws):
m = flopy.modflow.Modflow.load(
namfile, model_ws=model_ws, version="mfusg", verbose=True, check=False
m = flopy.modflowusg.ModflowUsg.load(
namfile, model_ws=model_ws, verbose=True, check=False
)
assert m, f"Could not load namefile {namfile}"
assert m.load_fail is False
Expand Down
Loading