Skip to content

Commit e536392

Browse files
mjrenomjreno
mjreno
authored and
mjreno
committed
support mf6 utility ncf package options
1 parent f280aa7 commit e536392

26 files changed

+661
-168
lines changed

autotest/regression/test_model_netcdf.py

Lines changed: 204 additions & 120 deletions
Large diffs are not rendered by default.
Binary file not shown.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
END options
4+
5+
BEGIN dimensions
6+
MAXBOUND 2
7+
END dimensions
8+
9+
BEGIN period 1
10+
1 1 1.00000000E+00
11+
1 9 0.00000000E+00
12+
END period 1
13+
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
EXPORT_ARRAY_NETCDF
4+
NCF6 FILEIN disv01b.disv.ncf
5+
END options
6+
7+
BEGIN dimensions
8+
NLAY 3
9+
NCPL 9
10+
NVERT 16
11+
END dimensions
12+
13+
BEGIN griddata
14+
top
15+
INTERNAL FACTOR 1.0
16+
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
17+
botm LAYERED
18+
INTERNAL FACTOR 1.0
19+
-10.00000000 -10.00000000 -10.00000000 -10.00000000 -10.00000000 -10.00000000 -10.00000000 -10.00000000 -10.00000000
20+
INTERNAL FACTOR 1.0
21+
-20.00000000 -20.00000000 -20.00000000 -20.00000000 -20.00000000 -20.00000000 -20.00000000 -20.00000000 -20.00000000
22+
INTERNAL FACTOR 1.0
23+
-30.00000000 -30.00000000 -30.00000000 -30.00000000 -30.00000000 -30.00000000 -30.00000000 -30.00000000 -30.00000000
24+
idomain LAYERED
25+
INTERNAL FACTOR 1
26+
1 0 1 1 1 1 1 1 1
27+
INTERNAL FACTOR 1
28+
1 1 1 1 1 1 1 1 1
29+
INTERNAL FACTOR 1
30+
1 1 1 1 1 1 1 1 1
31+
END griddata
32+
33+
BEGIN vertices
34+
1 1.00000000E+08 1.00000030E+08
35+
2 1.00000010E+08 1.00000030E+08
36+
3 1.00000020E+08 1.00000030E+08
37+
4 1.00000030E+08 1.00000030E+08
38+
5 1.00000000E+08 1.00000020E+08
39+
6 1.00000010E+08 1.00000020E+08
40+
7 1.00000020E+08 1.00000020E+08
41+
8 1.00000030E+08 1.00000020E+08
42+
9 1.00000000E+08 1.00000010E+08
43+
10 1.00000010E+08 1.00000010E+08
44+
11 1.00000020E+08 1.00000010E+08
45+
12 1.00000030E+08 1.00000010E+08
46+
13 1.00000000E+08 1.00000000E+08
47+
14 1.00000010E+08 1.00000000E+08
48+
15 1.00000020E+08 1.00000000E+08
49+
16 1.00000030E+08 1.00000000E+08
50+
END vertices
51+
52+
BEGIN cell2d
53+
1 1.00000005E+08 1.00000025E+08 4 1 2 6 5
54+
2 1.00000015E+08 1.00000025E+08 4 2 3 7 6
55+
3 1.00000025E+08 1.00000025E+08 4 3 4 8 7
56+
4 1.00000005E+08 1.00000015E+08 4 5 6 10 9
57+
5 1.00000015E+08 1.00000015E+08 4 6 7 11 10
58+
6 1.00000025E+08 1.00000015E+08 4 7 8 12 11
59+
7 1.00000005E+08 1.00000005E+08 4 9 10 14 13
60+
8 1.00000015E+08 1.00000005E+08 4 10 11 15 14
61+
9 1.00000025E+08 1.00000005E+08 4 11 12 16 15
62+
END cell2d
63+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
wkt 'PROJCS["NAD83 / UTM zone 18N", GEOGCS["NAD83", DATUM["North_American_Datum_1983", SPHEROID["GRS 1980",6378137,298.257222101], TOWGS84[0,0,0,0,0,0,0]], PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]], UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4269"]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin",0], PARAMETER["central_meridian",-75], PARAMETER["scale_factor",0.9996], PARAMETER["false_easting",500000], PARAMETER["false_northing",0], UNIT["metre",1,AUTHORITY["EPSG","9001"]], AXIS["Easting",EAST], AXIS["Northing",NORTH], AUTHORITY["EPSG","26918"]]'
4+
DEFLATE 9
5+
SHUFFLE
6+
CHUNK_TIME 1
7+
CHUNK_FACE 3
8+
END options
9+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
EXPORT_ARRAY_NETCDF
4+
END options
5+
6+
BEGIN griddata
7+
strt
8+
CONSTANT 0.00000000
9+
END griddata
10+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
PRINT_OPTION summary
4+
END options
5+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
END options
4+
5+
BEGIN packages
6+
DISV6 disv01b.disv disv
7+
IC6 disv01b.ic ic
8+
NPF6 disv01b.npf npf
9+
CHD6 disv01b.chd chd_0
10+
OC6 disv01b.oc oc
11+
END packages
12+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
EXPORT_ARRAY_NETCDF
4+
END options
5+
6+
BEGIN griddata
7+
icelltype
8+
CONSTANT 0
9+
k
10+
CONSTANT 1.00000000
11+
END griddata
12+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
HEAD FILEOUT disv01b.hds
4+
END options
5+
6+
BEGIN period 1
7+
SAVE HEAD ALL
8+
END period 1
9+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
START_DATE_TIME 2041-01-01t00:00:00-05:00
4+
END options
5+
6+
BEGIN dimensions
7+
NPER 1
8+
END dimensions
9+
10+
BEGIN perioddata
11+
1.00000000 1 1.00000000
12+
END perioddata
13+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
END options
4+
5+
BEGIN timing
6+
TDIS6 disv01b.tdis
7+
END timing
8+
9+
BEGIN models
10+
gwf6 disv01b.nam disv01b
11+
END models
12+
13+
BEGIN exchanges
14+
END exchanges
15+
16+
BEGIN solutiongroup 1
17+
ims6 disv01b.ims disv01b
18+
END solutiongroup 1
19+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
END options
4+
5+
BEGIN dimensions
6+
MAXBOUND 2
7+
END dimensions
8+
9+
BEGIN period 1
10+
1 1 1.00000000E+00
11+
1 9 0.00000000E+00
12+
END period 1
13+
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# NOT generated by Flopy
2+
BEGIN options
3+
EXPORT_ARRAY_NETCDF
4+
NCF6 FILEIN disv01b.disv.ncf
5+
END options
6+
7+
BEGIN dimensions
8+
NLAY 3
9+
NCPL 9
10+
NVERT 16
11+
END dimensions
12+
13+
BEGIN griddata
14+
top NETCDF
15+
botm NETCDF
16+
idomain NETCDF
17+
END griddata
18+
19+
BEGIN vertices
20+
1 1.00000000E+08 1.00000030E+08
21+
2 1.00000010E+08 1.00000030E+08
22+
3 1.00000020E+08 1.00000030E+08
23+
4 1.00000030E+08 1.00000030E+08
24+
5 1.00000000E+08 1.00000020E+08
25+
6 1.00000010E+08 1.00000020E+08
26+
7 1.00000020E+08 1.00000020E+08
27+
8 1.00000030E+08 1.00000020E+08
28+
9 1.00000000E+08 1.00000010E+08
29+
10 1.00000010E+08 1.00000010E+08
30+
11 1.00000020E+08 1.00000010E+08
31+
12 1.00000030E+08 1.00000010E+08
32+
13 1.00000000E+08 1.00000000E+08
33+
14 1.00000010E+08 1.00000000E+08
34+
15 1.00000020E+08 1.00000000E+08
35+
16 1.00000030E+08 1.00000000E+08
36+
END vertices
37+
38+
BEGIN cell2d
39+
1 1.00000005E+08 1.00000025E+08 4 1 2 6 5
40+
2 1.00000015E+08 1.00000025E+08 4 2 3 7 6
41+
3 1.00000025E+08 1.00000025E+08 4 3 4 8 7
42+
4 1.00000005E+08 1.00000015E+08 4 5 6 10 9
43+
5 1.00000015E+08 1.00000015E+08 4 6 7 11 10
44+
6 1.00000025E+08 1.00000015E+08 4 7 8 12 11
45+
7 1.00000005E+08 1.00000005E+08 4 9 10 14 13
46+
8 1.00000015E+08 1.00000005E+08 4 10 11 15 14
47+
9 1.00000025E+08 1.00000005E+08 4 11 12 16 15
48+
END cell2d
49+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
wkt 'PROJCS["NAD83 / UTM zone 18N", GEOGCS["NAD83", DATUM["North_American_Datum_1983", SPHEROID["GRS 1980",6378137,298.257222101], TOWGS84[0,0,0,0,0,0,0]], PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]], UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4269"]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin",0], PARAMETER["central_meridian",-75], PARAMETER["scale_factor",0.9996], PARAMETER["false_easting",500000], PARAMETER["false_northing",0], UNIT["metre",1,AUTHORITY["EPSG","9001"]], AXIS["Easting",EAST], AXIS["Northing",NORTH], AUTHORITY["EPSG","26918"]]'
4+
DEFLATE 9
5+
SHUFFLE
6+
CHUNK_TIME 1
7+
CHUNK_FACE 3
8+
END options
9+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# NOT generated by Flopy
2+
BEGIN options
3+
EXPORT_ARRAY_NETCDF
4+
END options
5+
6+
BEGIN griddata
7+
strt NETCDF
8+
END griddata
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
PRINT_OPTION summary
4+
END options
5+
Binary file not shown.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# NOT generated by Flopy
2+
BEGIN options
3+
NETCDF FILEIN disv01b.in.nc
4+
END options
5+
6+
BEGIN packages
7+
DISV6 disv01b.disv disv
8+
IC6 disv01b.ic ic
9+
NPF6 disv01b.npf npf
10+
CHD6 disv01b.chd chd_0
11+
OC6 disv01b.oc oc
12+
END packages
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# NOT generated by Flopy
2+
BEGIN options
3+
EXPORT_ARRAY_NETCDF
4+
END options
5+
6+
BEGIN griddata
7+
icelltype NETCDF
8+
k NETCDF
9+
END griddata
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
HEAD FILEOUT disv01b.hds
4+
END options
5+
6+
BEGIN period 1
7+
SAVE HEAD ALL
8+
END period 1
9+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
START_DATE_TIME 2041-01-01t00:00:00-05:00
4+
END options
5+
6+
BEGIN dimensions
7+
NPER 1
8+
END dimensions
9+
10+
BEGIN perioddata
11+
1.00000000 1 1.00000000
12+
END perioddata
13+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# File generated by Flopy version 3.10.0.dev1 on 02/05/2025 at 13:05:06.
2+
BEGIN options
3+
END options
4+
5+
BEGIN timing
6+
TDIS6 disv01b.tdis
7+
END timing
8+
9+
BEGIN models
10+
gwf6 disv01b.nam disv01b
11+
END models
12+
13+
BEGIN exchanges
14+
END exchanges
15+
16+
BEGIN solutiongroup 1
17+
ims6 disv01b.ims disv01b
18+
END solutiongroup 1
19+

flopy/mf6/mfmodel.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -949,6 +949,8 @@ def load_base(
949949
break
950950
if dis_type and dis_type in dis_str:
951951
nc_fpth = os.path.join(instance.model_ws, nc_filerecord[0][0])
952+
# TODO: verify a partial dataset (not all griddata vars) don't
953+
# break everything
952954
instance._nc_dataset = open_dataset(nc_fpth, dis_type=dis_str[dis_type])
953955
else:
954956
message = (
@@ -1333,7 +1335,6 @@ def write(
13331335
self,
13341336
ext_file_action=ExtFileAction.copy_relative_paths,
13351337
netcdf=None,
1336-
to_cdl=False,
13371338
):
13381339
"""
13391340
Writes out model's package files.
@@ -1347,13 +1348,11 @@ def write(
13471348
netcdf : str
13481349
Create model NetCDF file, of type specified, in which to store
13491350
package griddata. 'mesh2d' and 'structured' are supported types.
1350-
to_cdl : bool
1351-
Generate text version of netcdf file (debug feature)
1352-
13531351
"""
13541352

13551353
# write netcdf file
13561354
if netcdf or self._nc_dataset is not None:
1355+
kwargs = {}
13571356
if self._nc_dataset is None:
13581357
from ..utils.model_netcdf import create_dataset
13591358

@@ -1370,10 +1369,21 @@ def write(
13701369

13711370
# reset data storage and populate netcdf file
13721371
for pp in self.packagelist:
1373-
pp._set_netcdf_storage(self._nc_dataset, create=True)
1372+
if pp.package_type == "ncf":
1373+
kwargs["shuffle"] = pp.shuffle.get_data()
1374+
kwargs["deflate"] = pp.deflate.get_data()
1375+
kwargs["chunk_time"] = pp.chunk_time.get_data()
1376+
kwargs["chunk_face"] = pp.chunk_face.get_data()
1377+
kwargs["chunk_x"] = pp.chunk_x.get_data()
1378+
kwargs["chunk_y"] = pp.chunk_y.get_data()
1379+
kwargs["chunk_z"] = pp.chunk_z.get_data()
1380+
kwargs["wkt"] = pp.wkt.get_data()
1381+
pp._set_netcdf_storage(
1382+
self._nc_dataset, create=True
1383+
)
13741384

13751385
# write the dataset to netcdf
1376-
self._nc_dataset.write(self.model_ws)
1386+
self._nc_dataset.write(self.model_ws, **kwargs)
13771387

13781388
# write name file
13791389
if (

0 commit comments

Comments
 (0)