Configuration File Gallery¶
Below are example (valid) configuration files from the modflow-setup test suite. The yaml files and the datasets they reference can be found under modflow-setup/mfsetup/tests/data/
.
Shellmound test case¶
13 layer MODFLOW-6 model with no parent model
9 layers specified with raster surfaces; with remaining 4 layers subdividing the raster surfaces
vertical pass-through cells at locations of layer pinch-outs (
drop_thin_cells: True
option)variable time discretization
model grid aligned with the National Hydrologic Grid
recharge read from NetCDF source data
SFR network created from custom hydrography
WEL package created from CSV input
1# Configuration file for shellmound test case
2#
3# The MF6model.setup_from_yaml reads this in as a python dictionary (via the pyyaml package),
4# and attaches it to a newly created MF6model object instance (MF6model is a subclass of flopy.mf6.ModflowGwf).
5# For example, the simulation block would become
6# cfg['simulation'] = {'sim_name: 'mfsim', 'version': 'mf6': 'sim_ws'}, where cfg is the dictionary
7# made from the yaml file.
8#
9# The blocks below are then used as input to create Flopy object instances or
10# as input to other aspects of the MFsetup workflow that work on top of Flopy.
11# For example, the model block provides the input to flopy.mf6.ModflowGwf, via
12# the __init__ method for MF6model. For clarity, the items in the options block
13# are stored in their own dictionary that represents that block in the MODFLOW-6
14# name file (as opposed to the flopy.mf6.ModflowGwf signature, which includes them
15# as individual default arguments). Some items in the model block do not represent flopy
16# input. The relative_external_filepaths item is a flag for MFSetup that instructs it
17# to reference external files relative to the model workspace, to avoid broken paths
18# when the model is copied to a different location.
19#
20# In general, within blocks or subblocks that correspond to MODFLOW-6 input,
21# variables that correspond to an input variable in flopy.mf6 indicate input
22# that will be passed directly to flopy (numbers, lists, external file paths, etc.).
23#
24# In contrast, 'source_data' subblocks indicate input from general file formats
25# (shapefiles, csvs, rasters, etc.) that needs to be mapped to the model space
26# and time discretization. The source_data blocks are intended to be general across
27# input types. For example- 'filename' indicates a file path (string), regardless
28# of the type of file, and 'filenames' indicates a list or dictionary of files that
29# map to model layers or stress periods. Items with the '_units' suffix indicate
30# the units of the source data, allowing Modflow-setup to convert the values to model units
31# accordingly. '_column' Items indicate field names in the source data where the input can be found.
32
33# input for MODFLOW 6 simulation
34simulation:
35 sim_name: 'mfsim'
36 version: 'mf6'
37 sim_ws: '../tmp/shellmound'
38 options:
39 continue: True
40
41# input for MODFLOW 6 model
42model:
43 simulation: 'shellmound'
44 modelname: 'shellmound'
45 options:
46 print_input: True
47 save_flows: True
48 newton: True
49 newton_under_relaxation: False
50 # packages to build
51 # (any packages not listed or commented out will not be built,
52 # event if they have an input block below)
53 packages: ['dis',
54 'ic',
55 'npf',
56 'oc',
57 'sto',
58 'rch',
59 'sfr',
60 'chd',
61 'drn',
62 'ghb',
63 'riv',
64 'obs',
65 'wel',
66 'ims'
67 ]
68 external_path: 'external/'
69
70# parameters for setting up the horizontal configuration of the grid
71# in the context of a coordinate reference system
72setup_grid:
73 xoff: 501405 # lower left x-coordinate
74 yoff: 1175835 # lower left y-coordinate
75 rotation: 0.
76 epsg: 5070
77 # snap model to the National Hydrogeologic Grid
78 # (Clark and others, 2018)
79 snap_to_NHG: True
80
81# Structured Discretization Package
82dis:
83 options:
84 length_units: 'meters'
85 dimensions:
86 nlay: 13
87 nrow: 30
88 ncol: 35
89 griddata:
90 delr: 1000.
91 delc: 1000.
92 source_data:
93 top:
94 filename: 'shellmound/rasters/meras_100m_dem.tif' # DEM file; path relative to setup script
95 elevation_units: 'feet'
96 botm:
97 filenames:
98 0: 'shellmound/rasters/vkbg_surf.tif' # Vicksburg-Jackson Group (top)
99 1: 'shellmound/rasters/ucaq_surf.tif' # Upper Claiborne aquifer (top)
100 2: 'shellmound/rasters/mccu_surf.tif' # Middle Claiborne confining unit (top)
101 3: 'shellmound/rasters/mcaq_surf.tif' # Middle Claiborne aquifer (top)
102 6: 'shellmound/rasters/lccu_surf.tif' # Lower Claiborne confining unit (top)
103 8: 'shellmound/rasters/lcaq_surf.tif' # Lower Claiborne aquifer (top)
104 9: 'shellmound/rasters/mwaq_surf.tif' # Middle Wilcox aquifer (top)
105 10: 'shellmound/rasters/lwaq_surf.tif' # Lower Wilcox aquifer (top)
106 12: 'shellmound/rasters/mdwy_surf.tif' # Midway confining unit (top)
107 elevation_units: 'feet'
108 idomain:
109 filename: 'shellmound/shps/active_area.shp'
110 minimum_layer_thickness: 1 # layers less than this thickness are converted to vertical pass-through cells
111 drop_thin_cells: True
112
113# Temporal Discretization Package
114tdis:
115 options:
116 time_units: 'days'
117 start_date_time: '1998-04-01'
118 perioddata:
119 # time discretization info can be specified directly under the perioddata key
120 # or in groups of stress periods that are discretized in a similar way
121 group 1: # initial steady-state period (steady specified under sto package)
122 #perlen: 1 # Specify perlen as an int or list of lengths in model units, or perlen=None and 3 of start_date, end_date, nper and/or freq."
123 nper: 1
124 nstp: 1
125 tsmult: 1
126 steady: True # "steady" can be entered here; otherwise the global entry specified in the sto package is used as the default
127 # oc_saverecord: can also be specified by group here; otherwise the global entry specified in the oc package is used as the default
128 group 2: # single long period for spin-up of pumping
129 start_date_time: '1998-04-01' # can be specified by group, otherwise start_date_time for the model (under tdis: options) will be used.
130 end_date_time: '2007-04-01' # model ends at midnight on this date (2007-03-31 would be the last day simulated)
131 nper: 1
132 nstp: 10
133 tsmult: 1.5
134 steady: False
135 group 3:
136 start_date_time: '2007-04-01'
137 end_date_time: '2015-10-01' # model ends at midnight on this date (2015-09-30 would be the last day simulated)
138 freq: '6MS' # same as argument to pandas.date_range; (see "Offset Aliases" at https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#timeseries-offset-aliases)
139 nstp: 5
140 tsmult: 1.5
141 steady: False
142
143# Initial Conditions Package
144# if no starting head values are specified, they are set
145# to the model top by default
146ic:
147 # optional format for writing external files
148 # e.g. (strt_001.dat)
149 # default is strt_{:03d}.dat
150 strt_filename_fmt: "strt_{:03d}.dat"
151
152# Node Property Flow Package
153npf:
154 options:
155 save_flows: True
156 griddata:
157 icelltype: 1 # variable sat. thickness in all layers
158 source_data:
159 k:
160 filenames:
161 0: 'shellmound/rasters/k0.tif' # Vicksburg-Jackson Group
162 1: 'shellmound/rasters/k1.tif' # Upper Claiborne aquifer
163 2: 'shellmound/rasters/k2.tif' # Middle Claiborne confining unit
164 3: 'shellmound/rasters/k3.tif' # Middle Claiborne aquifer
165 4: 'shellmound/rasters/k3.tif' # Middle Claiborne aquifer
166 5: 'shellmound/rasters/k3.tif' # Middle Claiborne aquifer
167 6: 'shellmound/rasters/k4.tif' # Lower Claiborne confining unit
168 7: 'shellmound/rasters/k4.tif' # Lower Claiborne confining unit
169 8: 'shellmound/rasters/k5.tif' # Lower Claiborne aquifer
170 9: 'shellmound/rasters/k6.tif' # Middle Wilcox aquifer
171 10: 'shellmound/rasters/k10.tif' # Lower Wilcox aquifer
172 11: 'shellmound/rasters/k10.tif' # Lower Wilcox aquifer
173 12: 'shellmound/rasters/k12.tif' # Lower Wilcox aquifer
174 length_units: 'feet'
175 k33:
176 filenames:
177 0: 'shellmound/rasters/k330.tif' # Vicksburg-Jackson Group
178 1: 'shellmound/rasters/k331.tif' # Upper Claiborne aquifer
179 2: 'shellmound/rasters/k332.tif' # Middle Claiborne confining unit
180 3: 'shellmound/rasters/k333.tif' # Middle Claiborne aquifer
181 4: 'shellmound/rasters/k333.tif' # Middle Claiborne aquifer
182 5: 'shellmound/rasters/k333.tif' # Middle Claiborne aquifer
183 6: 'shellmound/rasters/k334.tif' # Lower Claiborne confining unit
184 7: 'shellmound/rasters/k334.tif' # Lower Claiborne confining unit
185 8: 'shellmound/rasters/k335.tif' # Lower Claiborne aquifer
186 9: 'shellmound/rasters/k336.tif' # Middle Wilcox aquifer
187 10: 'shellmound/rasters/k3310.tif' # Lower Wilcox aquifer
188 11: 'shellmound/rasters/k3310.tif' # Lower Wilcox aquifer
189 12: 'shellmound/rasters/k3312.tif' # Lower Wilcox aquifer
190 length_units: 'feet'
191 k_filename_fmt: "k_{:03d}.dat"
192 k33_filename_fmt: "k33_{:03d}.dat"
193
194# Storage Package
195sto:
196 options:
197 save_flows: True
198 griddata:
199 iconvert: 1 # convertible layers
200 # initial global values for storage
201 sy: 0.25
202 ss: 1.e-6
203
204# Recharge Package
205rch:
206 options:
207 print_input: True
208 print_flows: False
209 save_flows: True
210 readasarrays: True
211 source_data:
212 # resample recharge from NetCDF file with time-series of grids
213 recharge:
214 filename: 'shellmound/net_infiltration__2000-01-01_to_2017-12-31__414_by_394.nc'
215 variable: 'net_infiltration'
216 length_units: 'inches'
217 time_units: 'days'
218 crs: 5070
219 resample_method: 'linear'
220 period_stats:
221 # for the first two stress periods
222 # apply mean recharge rates for dates below
223 0: ['mean', '2000-01-01', '2017-12-31']
224 1: ['mean', '2000-01-01', '2017-12-31']
225 2: 'mean' # for periods 2 on, use the mean recharge for that period
226
227# Streamflow Routing Package
228# SFR input is created using SFRmaker
229# https://github.com/usgs/sfrmaker
230sfr:
231 options:
232 save_flows: True
233 source_data:
234 flowlines:
235 filename: 'shellmound/shps/flowlines.shp'
236 id_column: 'COMID' # arguments to sfrmaker.Lines.from_shapefile
237 routing_column: 'tocomid'
238 width1_column: 'width1'
239 width2_column: 'width2'
240 up_elevation_column: 'elevupsmo'
241 dn_elevation_column: 'elevdnsmo'
242 name_column: 'GNIS_NAME'
243 width_units: 'feet' # units of source data
244 elevation_units: 'feet' # units of source data
245 # specified inflows to SFR network
246 inflows: # see sfrmaker.data.add_to_perioddata for arguments
247 filename: 'shellmound/tables/inflows.csv'
248 datetime_column: 'datetime'
249 line_id_column: 'line_id'
250 data_column: 'flow_m3d' # flows are already in cubic meters/day; can therefore skip unit input
251 category_column: 'category'
252 observations: # see sfrmaker.observations.add_observations for arguments
253 filename: shellmound/tables/observations.csv
254 obstype: [downstream-flow, 'stage'] # modflow-6 observation type
255 x_location_column: x # observation locations, in CRS coordinates
256 y_location_column: y
257 obsname_column: site_no # column for naming observations
258 # specified runoff
259 # that has been reprocessed to units of m3/day per line ID
260 runoff: # see sfrmaker.data.add_to_perioddata for arguments
261 filename: 'shellmound/tables/swb_runoff_by_nhdplus_comid_m3d.csv'
262 datetime_column: 'time'
263 line_id_column: 'comid'
264 data_column: 'runoff_m3d'
265 # modflow-setup will try to locate the inflows or runoff values
266 # using the routing information in the flowlines shapefile
267 # however, in some cases an inflow location might be just outside of the flowlines that are provided
268 # (for example, if they were clipped to the model grid, or if they are outside of the model bounding box)
269 # or a runoff value might be assigned to a line that was culled from the preprocessed flowlines
270 # the routing option allows complete routing of the original data to be supplied,
271 # so that values associated with missing lines can be assigned to the next existing downstream line
272 routing:
273 filename: 'shellmound/tables/flowline_routing.csv'
274 id_column: 'FROMCOMID' # arguments to sfrmaker.Lines.from_shapefile
275 routing_column: 'TOCOMID'
276 sfrmaker_options:
277 # the sfrmaker_options: block can include arguments to the Lines.to_sfr method in SFRmaker
278 # (see https://doi-usgs.github.io/sfrmaker/api/sfrmaker.lines.html#sfrmaker.lines.Lines.to_sfr)
279 # or other options such as set_streambed_top_elevations_from_dem (see pleasant examples)
280 # or to_riv (shellmound_tmr example)
281 one_reach_per_cell: True # consolidate SFR reaches to one per i, j location
282 add_outlets: [17955371, 17956213] # add outlets at these line numbers
283 minimum_slope: 1.e-5
284 to_riv: [18047206] # convert this line and all downstream lines to the RIV package
285
286# Constant Head Package
287chd:
288 options:
289 save_flows: True
290 source_data:
291 shapefile:
292 filename: '../../../mfsetup/tests/data/shellmound/shps/waterbodies.shp'
293 id_column: 'COMID' # shapefile attribute field with include_ids:
294 include_ids: [18046162] # features used to form the boundary
295 boundname_column: 'GNIS_NAME'
296 csvfile:
297 filename: 'shellmound/tables/chd_heads.csv'
298 id_column: 'comid'
299 datetime_column: 'start_datetime'
300 end_datetime_column: 'end_datetime'
301 head_column: 'head'
302 length_units: 'feet'
303 # how heads will be aggregated to the model stress periods
304 period_stats:
305 # apply the mean heads across a specified time period
306 # for the initial steady state
307 # (default of 'mean' uses all times in input data)
308 0: ['mean', '2000-01-01', '2017-12-31']
309 1: mean # apply the mean heads for the time period of s.p. 1
310 # the last statistic specified (mean) will also be applied to subsequent periods
311
312# Drain Package
313drn:
314 options:
315 save_flows: True
316 source_data:
317 shapefile:
318 filename: '../../../mfsetup/tests/data/shellmound/shps/waterbodies.shp'
319 id_column: 'COMID'
320 # Note: to include all features in a shapefile,
321 # simply omit the include_ids: key
322 # id_column: can also be omitted
323 include_ids: [18047154, 18046236]
324 elev:
325 filename: 'shellmound/rasters/meras_100m_dem.tif'
326 elevation_units: 'feet'
327 cond: 1.e+3 # in model units
328
329# General Head Boundary Package
330ghb:
331 options:
332 save_flows: True
333 source_data:
334 shapefile:
335 filename: '../../../mfsetup/tests/data/shellmound/shps/waterbodies.shp'
336 id_column: 'COMID'
337 # Note: to include all features in a shapefile,
338 # simply omit the include_ids: key
339 include_ids: [18046230]
340 # argument to rasterio.features.rasterize
341 # if true, all grid cells touching the feature(s)
342 # in the shapefile will be assigned BCs, if False
343 # only the cells with centers inside the polygon
344 # will be included
345 all_touched: True
346 # Example of mixed boundary condition input, where
347 # a shapefile defines the feature extents
348 # a csvfile defines transient head values
349 # a raster defines static but spatially varying conductance
350 csvfile:
351 filename: 'shellmound/tables/chd_heads.csv'
352 id_column: 'comid'
353 datetime_column: 'start_datetime'
354 end_datetime_column: 'end_datetime'
355 bhead_column: 'head'
356 length_units: 'feet'
357 # with no period_stats: block, aggregation defaults
358 # to 'mean' for each stress period
359 cond:
360 # note: a single global value could also be specified here,
361 # as for the Drain Package
362 filename: shellmound/rasters/k330.tif
363 length_units: meters
364 time_units: days
365
366
367# River Package
368riv:
369 options:
370 save_flows: True
371 source_data:
372 shapefile:
373 filename: '../../../mfsetup/tests/data/shellmound/shps/waterbodies.shp'
374 id_column: 'COMID'
375 include_ids: [17953939]
376 # option to include feature names from the shapefile
377 # as Modflow boundnames
378 boundname_column: 'GNIS_NAME'
379 stage:
380 filename: 'shellmound/rasters/meras_100m_dem.tif'
381 elevation_units: 'feet'
382 # zonal statistic to use in sampling elevations in above GeoTIFF to grid
383 stat: 'min'
384 cond: 1.e+3
385 mfsetup_options:
386 default_rbot_thickness: 1.
387
388# Well Package
389wel:
390 options:
391 print_input: True
392 print_flows: True
393 save_flows: True
394 source_data:
395 csvfiles:
396 # pumping input from CSV files
397 filenames: ['shellmound/tables/1998-2007_avg_pumping_from_meras21_m3.csv',
398 'shellmound/tables/iwum_m3_6M.csv',
399 'shellmound/tables/sp69_pumping_from_meras21_m3.csv']
400 # 'x' and 'y' are the default names for x and y location columns
401 volume_units: 'meters'
402 time_units: 'days'
403 data_column: 'flux_m3'
404 datetime_column: 'start_datetime'
405 # end datetimes only for input data that needs upsampling;
406 # see https://aleaf.github.io/modflow-setup/api/mfsetup.tdis.html#mfsetup.tdis.aggregate_dataframe_to_stress_period
407 end_datetime_column: 'end_datetime'
408 id_column: 'node'
409 period_stats: # how fluxes will be distributed across model stress periods
410 0: none # no wells simulated in initial period
411 1: 'mean' # mean pumping rate for period 1 and subsequent periods
412 vertical_flux_distribution:
413 across_layers: False # False to put fluxes in one layer
414 # put wells in layer with thickest or most transmissive intersection with well open interval
415 distribute_by: 'transmissivity' # thickness or transmissivity
416 minimum_layer_thickness: 10. # layers must be at 10 length units thick to have a well;
417 # (any dropped wells would be recorded in shellmound_dropped_wells.csv)
418
419# Output Control Package
420oc:
421 head_fileout_fmt: '{}.hds'
422 budget_fileout_fmt: '{}.cbc'
423 # dictionary input similar to flopy
424 saverecord: {0: {head: 'last',
425 budget: 'last'}
426 }
427 # MODFLOW 6-style text input can also be used
428 # e.g.
429 # period_options: {0: ['save head last',
430 # 'save budget last' ]
431
432obs:
433 source_data:
434 filenames: ['shellmound/tables/preprocessed_head_obs_info.csv'
435 ]
436 column_mappings:
437 obsname: ['obsprefix']
438
439
440ims:
441 options:
442 print_option: 'all'
443 complexity: 'moderate'
444 'csv_output fileout': 'solver_out.csv'
445 nonlinear:
446 outer_dvclose: 1.e-1
447 outer_maximum: 200
448 under_relaxation: 'dbd'
449 under_relaxation_theta: 0.7
450 under_relaxation_kappa: 0.1
451 under_relaxation_gamma: 0.0
452 under_relaxation_momentum: 0.0
453 backtracking_number: 0
454 linear:
455 inner_maximum: 100
456 inner_dvclose: 1.e-2
457 rcloserecord: [0.0001, 'relative_rclose']
458 linear_acceleration: 'bicgstab'
459 scaling_method: None
460 reordering_method: None
461 relaxation_factor: 0.0 # either ILU(0) or ILUT preconditioning
462 number_orthogonalizations: 0
463 preconditioner_levels: 7
464 preconditioner_drop_tolerance: 0.001
Shellmound TMR inset test case¶
13 layer MODFLOW-6 Telescopic Mesh Refinement (TMR) model with a MODFLOW-6 parent model
1:1 layer mapping between parent and TMR inset (default)
parent model grid defined with a SpatialReference subblock (which overrides information in MODFLOW Namefile)
DIS package top and bottom elevations copied from parent model
IC, NPF, STO, RCH, and WEL packages copied from parent model (default if not specified in config file)
variable time discretization
model grid aligned with the National Hydrologic Grid
SFR network created from custom hydrography
1simulation:
2 sim_name: 'sm_tmr'
3 version: 'mf6'
4 sim_ws: '../tmp/shellmound_tmr_inset'
5
6model:
7 simulation: 'sm_tmr'
8 modelname: 'sm_tmr'
9 options:
10 print_input: True
11 save_flows: True
12 newton: True
13 packages: ['dis',
14 'ic',
15 'npf',
16 'oc',
17 'sto',
18 'rch',
19 'sfr',
20 'wel',
21 ]
22 external_path: 'external/'
23 relative_external_filepaths: True
24
25parent:
26 # argments to flopy.modflow.Modflow.load for parent model
27 namefile: 'shellmound.nam'
28 model_ws: 'shellmound/tmr_parent'
29 version: 'mf6'
30 default_source_data: True # if True, packages and variables that are omitted will be pulled from this model
31 copy_stress_periods: 'all'
32 start_date_time: '1998-04-01'
33 # inset_layer_mapping assumed to be 1:1 if not entered
34 length_units: 'meters'
35 time_units: 'days'
36 # parent model lower left corner location and CRS
37 # (overrides any information in name file)
38 SpatialReference:
39 xoff: 500955
40 yoff: 1175285
41 epsg: 5070
42
43setup_grid:
44 xoff: 501405 # lower left x-coordinate
45 yoff: 1175835 # lower left y-coordinate
46 rotation: 0.
47 epsg: 5070
48 snap_to_NHG: True
49
50dis:
51 remake_top: True
52 options:
53 length_units: 'meters'
54 dimensions:
55 nlay: 13
56 nrow: 30
57 ncol: 35
58 griddata:
59 delr: 1000.
60 delc: 1000.
61 source_data:
62 top: from_parent
63 botm: from_parent
64 idomain:
65 filename: 'shellmound/tmr_parent/gis/irregular_boundary.shp'
66 minimum_layer_thickness: 1 # layers less than this thickness are converted to vertical pass-through cells
67 drop_thin_cells: True
68
69tdis:
70 options:
71 time_units: 'days'
72 start_date_time: '1998-04-01'
73 perioddata:
74 csvfile:
75 filename: 'shellmound/tmr_parent/tables/stress_period_data.csv'
76 start_datetime_column: 'start_datetime'
77 end_datetime_column: 'end_datetime'
78 steady_column: 'steady'
79 nstp_column: 'nstp'
80 tsmult_column: 'tsmult'
81
82sfr:
83 options:
84 save_flows: True
85 source_data:
86 flowlines:
87 filename: 'shellmound/shps/flowlines.shp'
88 id_column: 'COMID' # arguments to sfrmaker.Lines.from_shapefile
89 routing_column: 'tocomid'
90 width1_column: 'width1'
91 width2_column: 'width2'
92 up_elevation_column: 'elevupsmo'
93 dn_elevation_column: 'elevdnsmo'
94 name_column: 'GNIS_NAME'
95 width_units: 'feet' # units of source data
96 elevation_units: 'feet' # units of source data
97 sfrmaker_options:
98 # convert reaches corresponding to these LineString identifiers
99 # (in the flowlines id_column), and all downstream reaches
100 # to the MODFLOW River package
101 to_riv: [18047212]
102
103wel:
104 perimeter_boundary:
105 shapefile: 'shellmound/tmr_parent/gis/irregular_boundary.shp'
106 parent_cell_budget_file: 'shellmound/tmr_parent/shellmound.cbc' # needed for the perimeter boundary setup
107 parent_binary_grid_file: 'shellmound/tmr_parent/shellmound.dis.grb'
108 # parent model head solution
109 # for determining boundary fluxes based on saturated thickness
110 parent_head_file: 'shellmound/tmr_parent/shellmound.hds'
Pleasant Lake test case¶
MODFLOW-6 model with local grid refinement (LGR)
LGR parent model is itself a Telescopic Mesh Refinment (TMR) inset from a MODFLOW-NWT model
Layer 1 in TMR parent model is subdivided evenly into two layers in LGR model (
botm: from_parent: 0: -0.5
). Other layers mapped explicitly between TMR parent and LGR model.starting heads from LGR parent model resampled from binary output from the TMR parent
rch, npf, sto, and wel input copied from parent model
SFR package constructed from an NHDPlus v2 dataset (path to NHDPlus files in the same structure as the downloads from the NHDPlus website)
head observations from csv files with different column names
LGR inset extent based on a buffer distance around a feature of interest
LGR inset dis, ic, npf, sto and rch packages copied from LGR parent
WEL package created from custom format
Lake package created from polygon features, bathymetry raster, stage-area-volume file and climate data from PRISM.
Lake package observations set up automatically (output file for each lake)
LGR parent model configuration¶
1# starting version number for the project (optional)
2# version reported by modflow-setup will then be
3# the start_version appended by the remaining information
4# in a pep440-post style version tag
5# (e.g. most recent git commit hash for the model repository
6# + "dirty" if the model repository has uncommited changes)
7# see https://github.com/warner/python-versioneer/blob/master/details.md
8metadata:
9 start_version: 0.1
10 longname: 'Pleasant Lake test case'
11
12# input for MODFLOW 6 simulation
13simulation:
14 sim_name: 'pleasant_lgr'
15 version: 'mf6'
16 sim_ws: 'pleasant_lgr/'
17
18# input for MODFLOW 6 model
19model:
20 simulation: 'pleasant_lgr'
21 modelname: 'plsnt_lgr_parent'
22 options:
23 print_input: True
24 save_flows: True
25 newton: True
26 newton_under_relaxation: True
27 # packages to build
28 # (any packages not listed or commented out will not be built,
29 # event if they have an input block below)
30 packages: ['dis',
31 'ic',
32 'npf',
33 'oc',
34 'sto',
35 'rch', # Note: with no recharge block below and default_source_data=True, recharge is regridded from parent model
36 'sfr',
37 'lak',
38 'obs',
39 'wel',
40 'ims',
41 'chd'
42 ]
43
44# Regional model to extract boundary conditions,
45# property arrays, and pumping data from
46parent:
47 # argments to flopy.modflow.Modflow.load for parent model
48 namefile: 'pleasant.nam'
49 model_ws: 'data/pleasant/'
50 version: 'mfnwt'
51 # information for modflow-setup
52 # note: parent model is geo-located in namfile header
53 # (only works if length_units='meters')
54 #hiKlakes_value: 1.e4 # unfortunately python yaml currently requires a dot to parse exp notation as float
55 default_source_data: True # if True, packages and variables that are omitted will be pulled from this model
56 copy_stress_periods: 'all'
57 inset_layer_mapping: # mapping between inset and parent model layers
58 0: 0 # inset: parent (inset layers 1 and 0 copied from parent layer 0)
59 1: 0
60 2: 1
61 3: 2
62 4: 3
63 start_date_time: '2012-01-01'
64 length_units: 'meters'
65 time_units: 'days'
66
67# parameters for setting up the horizontal configuration of the grid
68# in the context of a coordinate reference system
69setup_grid:
70 #remake: True
71 xoff: 553000 # lower left x-coordinate
72 yoff: 388000 # lower left y-coordinate
73 rotation: 0.
74 dxy: 200 # in CRS units of meters
75 epsg: 3070 # CRS (Wisconsin Transverse Mercator)
76 # local-grid refinement area
77 # specified in another configuration file
78 # is set up in tandem and connected in the same MODFLOW 6 simulation
79 lgr:
80 pleasant_lgr_inset:
81 filename: 'pleasant_lgr_inset.yml'
82 layer_refinement: 1 # number of lgr model layers per parent model layer
83
84# Structured Discretization Package
85dis:
86 options:
87 length_units: 'meters'
88 dimensions:
89 # if nrow and ncol are not specified here, the entries above in setup_grid are used
90 nlay: 5
91 nrow: 25
92 ncol: 25
93 # griddata:
94 # delr and delc are developed from information above in setup_grid
95 # top and botm arrays are sampled from GeoTIFF files
96 # idomain is developed from layer pinch-outs and boundary condition locations
97 source_data:
98 top:
99 filename: 'data/pleasant/source_data/rasters/dem40m.tif' # DEM file; path relative to setup script
100 elevation_units: 'meters'
101 botm:
102 filenames:
103 1: 'data/pleasant/source_data/rasters/botm0.tif' # preprocessed surface for parent model layer 0 bottom
104 2: 'data/pleasant/source_data/rasters/botm1.tif' # preprocessed surface for parent model layer 1 bottom
105 3: 'data/pleasant/source_data/rasters/botm2.tif' # preprocessed surface for parent model layer 2 bottom
106 4: 'data/pleasant/source_data/rasters/botm3.tif' # preprocessed surface for parent model layer 3 bottom
107
108# Temporal Discretization Package
109tdis:
110 options:
111 time_units: 'days'
112 start_date_time: '2012-01-01'
113 perioddata:
114 # time discretization info can be specified directly under the perioddata key
115 # or in groups of stress periods that are discretized in a similar way
116 group 1: # initial steady-state period (steady specified under sto package)
117 #perlen: 1 # Specify perlen as an int or list of lengths in model units, or perlen=None and 3 of start_date, end_date, nper and/or freq."
118 nper: 1
119 nstp: 1
120 tsmult: 1
121 steady: True # "steady" can be entered here; otherwise the global entry specified in the sto package is used as the default
122 # oc_saverecord: can also be specified by group here; otherwise the global entry specified in the oc package is used as the default
123 group 2: # monthly stress periods
124 start_date_time: '2012-01-01' # can be specified by group, otherwise start_date_time for the model (under tdis: options) will be used.
125 end_date_time: '2013-01-01' # model ends at midnight on this date (2007-03-31 would be the last day simulated)
126 freq: '1MS' # same as argument to pandas.date_range; (see "Offset Aliases" at https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#timeseries-offset-aliases)
127 nstp: 1
128 tsmult: 1.5
129 steady: False
130
131# Initial Conditions Package
132ic:
133 # starting heads sampled from parent model
134 source_data:
135 strt:
136 from_parent:
137 binaryfile: 'data/pleasant/pleasant.hds'
138 stress_period: 0
139
140# Node Property Flow Package
141npf:
142 options:
143 save_flows: True
144 griddata:
145 icelltype: 1 # variable sat. thickness in all layers
146 # with parent: default_source_data: True,
147 # unspecified variables such as "k" and "k33" are resampled from parent model
148
149# Storage Package
150sto:
151 options:
152 save_flows: True
153 griddata:
154 iconvert: 1 # convertible layers
155 # with parent: default_source_data: True,
156 # unspecified variables such as "sy" and "ss" are resampled from parent model
157
158 # Well Package
159wel:
160 options:
161 print_input: True
162 print_flows: True
163 save_flows: True
164 # with parent: default_source_data: True,
165 # unspecified well fluxes are resampled from parent model
166
167# Streamflow Routing Package
168# SFR input is created using SFRmaker
169# https://github.com/usgs/sfrmaker
170sfr:
171 options:
172 save_flows: True
173 source_data:
174 flowlines:
175 # path to NHDPlus version 2 dataset
176 nhdplus_paths: ['data/pleasant/source_data/shps']
177 # if a DEM is included, streambed top elevations will be sampled
178 # from the minimum DEM values within a 100 meter buffer around each stream reach
179 dem:
180 filename: 'data/pleasant/source_data/rasters/dem40m.tif'
181 elevation_units: 'meters'
182 # SFR observations can be automatically setup from a CSV file
183 # of x, y locations and fluxes
184 observations: # see sfrmaker.observations.add_observations for arguments
185 filename: 'data/pleasant/source_data/tables/gages.csv'
186 obstype: 'downstream-flow' # modflow-6 observation type
187 x_location_column: 'x'
188 y_location_column: 'y'
189 obsname_column: 'site_no'
190 sfrmaker_options:
191 # the sfrmaker_options: block can include arguments to the Lines.to_sfr method in SFRmaker
192 # (see https://doi-usgs.github.io/sfrmaker/api/sfrmaker.lines.html#sfrmaker.lines.Lines.to_sfr)
193 # or other options such as set_streambed_top_elevations_from_dem (see pleasant examples)
194 # or to_riv (shellmound_tmr example)
195 set_streambed_top_elevations_from_dem: True
196
197# Iterative model solution
198ims:
199 options:
200 complexity: 'moderate'
201 nonlinear:
202 outer_dvclose: 1.e-2
203 outer_maximum: 200
204 linear:
205 inner_maximum: 100
206 inner_dvclose: 1.e-4
207 rcloserecord: [0.0001, 'relative_rclose']
208
209# Observation (OBS) Utility
210obs:
211 source_data:
212 # Head observations are supplied via csv files with x, y locations and observation names
213 # an observation is generated in each model layer;
214 # observations at each location can subsequently be processed
215 # to represent a given screened interval
216 # for example, using modflow-obs (https://github.com/aleaf/modflow-obs)
217 filenames: ['data/pleasant/source_data/tables/nwis_heads_info_file.csv',
218 'data/pleasant/source_data/tables/lake_sites.csv', # some lakes are high-k; obs need to be in hydmod
219 'data/pleasant/source_data/tables/wdnr_gw_sites.csv',
220 'data/pleasant/source_data/tables/uwsp_heads.csv',
221 'data/pleasant/source_data/tables/wgnhs_head_targets.csv'
222 ]
223 column_mappings:
224 obsname: ['obsprefix', 'obsnme', 'common_name']
225 mfsetup_options:
226 drop_observations: ['10019209_lk' # pleasant lake; monitored via Lake Package observations
227 ]
228
229chd:
230 perimeter_boundary:
231 parent_head_file: 'data/pleasant/pleasant.hds' # needed for the perimeter boundary setup
pleasant_lgr_inset.yml¶
1simulation:
2 sim_name: 'pleasant_lgr'
3 version: 'mf6'
4 sim_ws: 'pleasant_lgr/'
5
6model:
7 simulation: 'pleasant_lgr'
8 modelname: 'plsnt_lgr_inset'
9 options:
10 print_input: True
11 save_flows: True
12 newton: True
13 newton_under_relaxation: True
14 external_path: 'external/'
15 packages: ['dis',
16 'ic',
17 'npf',
18 'oc',
19 'sto',
20 'rch',
21 'sfr',
22 'lak',
23 'obs',
24 'wel',
25 'ims'
26 ]
27
28# parent model block is not needed as the pleasant_lgr_inset
29# model is set up as an LGR in the context of the pleast_lgr_parent model
30
31# grid for LGR inset based on buffer distance around Pleasant Lake
32setup_grid:
33 source_data:
34 features_shapefile:
35 filename: 'data/pleasant/source_data/shps/all_lakes.shp'
36 id_column: 'HYDROID'
37 include_ids: [600059060] # pleasant lake
38 dxy: 40 # grid spacing, in CRS units (meters)
39 buffer: 1000 # distance from feature(s) of interest to model boundary, in meters
40 epsg: 3070 # CRS (Wisconsin Transverse Mercator)
41
42dis:
43 options:
44 length_units: 'meters'
45 dimensions:
46 # nrow and ncol are based on the buffer distance and grid spacing
47 nlay: 5
48 source_data:
49 top:
50 filename: 'data/pleasant/source_data/rasters/dem40m.tif' # DEM file; path relative to setup script
51 elevation_units: 'meters'
52 botm:
53 filenames:
54 1: 'data/pleasant/source_data/rasters/botm0.tif' # preprocessed surface for parent model layer 0 bottom
55 2: 'data/pleasant/source_data/rasters/botm1.tif' # preprocessed surface for parent model layer 1 bottom
56 3: 'data/pleasant/source_data/rasters/botm2.tif' # preprocessed surface for parent model layer 2 bottom
57 4: 'data/pleasant/source_data/rasters/botm3.tif' # preprocessed surface for parent model layer 3 bottom
58
59# Recharge and Well packages are inherited from the parent model
60# (since this is an LGR model
61# and the packages are specified in the packages: list)
62
63# Lake Package
64lak:
65 options:
66 boundnames: True
67 save_flows: True
68 surfdep: 0.1 # undulations in lake bottom that affect GW discharge. Range in online instructions is 0.01-0.5. (Value from Trout Lake)
69 source_data:
70 # initial lakebed leakance rates
71 # for thin zone around lake perimeter
72 littoral_leakance: 0.045 # 1/d
73 # for interior of lake basin
74 profundal_leakance: 0.025 # 1/d
75 # polygon shapefile of lake footprints
76 littoral_zone_buffer_width: 40
77 lakes_shapefile:
78 filename: 'data/pleasant/source_data/shps/all_lakes.shp'
79 id_column: 'HYDROID'
80 include_ids: [600059060] # pleasant lake
81 # setup lake precipitation and evaporation from PRISM data
82 climate:
83 filenames:
84 600059060: 'data/pleasant/source_data/PRISM_ppt_tmean_stable_4km_189501_201901_43.9850_-89.5522.csv'
85 format: 'prism'
86 period_stats:
87 # for period 0, use average precip and evap for dates below
88 0: ['mean', '2012-01-01', '2018-12-31'] # average daily rate for model period for initial steady state
89 # for subsequent periods,
90 # average precip and evap to period start/end dates
91 1: 'mean' # average daily rate or value for each month
92 # bathymetry file with lake depths to subtract off model top
93 bathymetry_raster:
94 filename: 'data/pleasant/source_data/rasters/pleasant_bathymetry.tif'
95 length_units: 'meters'
96 # bathymetry file with stage/area/volume relationship
97 stage_area_volume_file:
98 filename: 'data/pleasant/source_data/tables/area_stage_vol_Pleasant.csv'
99 length_units: 'meters'
100 id_column: 'hydroid'
101 column_mappings:
102 volume_m3: 'volume'
103 external_files: False # option to write connectiondata table to external file
104
105sfr:
106 options:
107 save_flows: True
108 source_data:
109 flowlines:
110 nhdplus_paths: ['data/pleasant/source_data/shps']
111 dem:
112 filename: 'data/pleasant/source_data/rasters/dem40m.tif'
113 elevation_units: 'meters'
114 sfrmaker_options:
115 set_streambed_top_elevations_from_dem: True
116
117obs:
118 # same observation data that were applied to pleasant_lgr_parent model
119 # any observations not within the LGR extent are culled
120 source_data:
121 filenames: [
122 #'data/pleasant/source_data/tables/nwis_heads_info_file.csv',
123 'data/pleasant/source_data/tables/lake_sites.csv', # some lakes are high-k; obs need to be in hydmod
124 'data/pleasant/source_data/tables/wdnr_gw_sites.csv',
125 #'data/pleasant/source_data/tables/uwsp_heads.csv',
126 #'data/pleasant/source_data/tables/wgnhs_head_targets.csv'
127 ]
128 column_mappings:
129 obsname: ['obsprefix', 'common_name']
130 mfsetup_options:
131 drop_observations: ['10019209_lk' # pleasant lake; monitored via gage package
132 ]
Pleasant Lake MODFLOW-NWT test case¶
MODFLOW-NWT TMR inset from a MODFLOW-NWT model
Layer 1 in parent model is subdivided evenly into two layers in the inset model (
botm: from_parent: 0: -0.5
). Other layers mapped explicitly between TMR parent and LGR model.starting heads resampled from binary output from the TMR parent
RCH, UPW and WEL input copied from parent model
SFR package constructed from an NHDPlus v2 dataset (path to NHDPlus files in the same structure as the downloads from the NHDPlus website)
HYDMOD package for head observations from csv files with different column names
WEL package created from custom format
Lake package created from polygon features, bathymetry raster, stage-area-volume file and climate data from PRISM.
Lake package observations set up automatically (output file for each lake)
GHB package created from polygon feature and DEM raster
1# argments to flopy.modflow.Modflow.__init__ or load for pfl_nwt
2model:
3 modelname: 'pleasant'
4 model_ws: '../tmp/pleasant_nwt/'
5 external_path: 'external/'
6 packages: ['dis',
7 'bas6',
8 'oc',
9 'upw',
10 'rch', # Note: with no recharge block below and default_source_data=True, recharge is regridded from parent model
11 'sfr',
12 'lak',
13 'wel',
14 'hyd',
15 'gag',
16 'nwt',
17 'chd',
18 ]
19
20parent:
21 # argments to flopy.modflow.Modflow.load for parent model
22 namefile: 'pleasant.nam'
23 model_ws: '../../../examples/data/pleasant/'
24 version: 'mfnwt'
25 # option to only load the parent packages that are needed
26 load_only: ['dis', 'bas6', 'upw', 'rch']
27 # information for modflow-setup
28 # note: parent model is geo-located in namfile header
29 # (only works if length_units='meters')
30 hiKlakes_value: 1.e4 # unfortunately python yaml currently requires a dot to parse exp notation as float
31 default_source_data: True # if True, packages and variables that are omitted will be pulled from this model
32 copy_stress_periods: 'all'
33 start_date_time: '2012-01-01'
34 length_units: 'meters'
35 time_units: 'days'
36
37# parameters for setting up the pfl_nwt grid
38# using features in features_file
39setup_grid:
40 remake: True
41 source_data:
42 features_shapefile:
43 filename: '../../../examples/data/pleasant/source_data/shps/all_lakes.shp'
44 id_column: 'HYDROID'
45 include_ids: [600059060] # pleasant lake
46 dxy: 40 # in CRS units of meters
47 buffer: 1000 # distance from feature(s) if interest to model boundary, in meters
48 grid_file: 'grid.json' # grid info will be written to this file
49 epsg: 3070
50
51# Inset model settings and
52# arguments to flopy.modflow.ModflowDis
53dis:
54 remake_top: True
55 nlay: 5
56 nstp: 1
57 length_units: 'meters' # alternatively, specify lenuni: 2
58 start_date_time: '2012-01-01'
59 time_units: 'days' # alternatively, specify itmuni: 4
60 source_data:
61 top: from_parent
62 botm:
63 from_parent:
64 0: -0.5 # bottom of layer zero in pfl_nwt is positioned at half the thickness of parent layer 1
65 1: 0 # bottom of layer 1 in pfl_nwt corresponds to bottom of layer 0 in parent
66 2: 1
67 3: 2
68 4: 3
69
70bas6:
71 source_data:
72 strt:
73 from_parent:
74 binaryfile: '../../../examples/data/pleasant/pleasant.hds'
75 stress_period: 0
76
77upw:
78 ipakcb: 53 # unit for writing cell budget output
79 hdry: -9999
80
81wel:
82 options: ['SPECIFY', '0.01']
83 source_data:
84 wdnr_dataset:
85 water_use: '../../../examples/data/pleasant/source_data/tables/master_wu.csv' # monthly water use rates from WDNR
86 water_use_points: '../../../examples/data/pleasant/source_data/shps/csls_sources_wu_pts.shp' # point locations of wells in water_use
87 period_stats: {0: ['mean', '2012-01-01', '2012-12-31'],
88 1: 'resample'}
89
90ghb:
91 options: ['SPECIFY', '0.01']
92 source_data:
93 shapefile:
94 filename: '../../../examples/data/pleasant/source_data/shps/all_lakes.shp'
95 id_column: 'HYDROID'
96 include_ids: [600059161] # pond near pleasant lake
97 bhead:
98 filename: '../../../examples/data/pleasant/source_data/rasters/dem40m.tif'
99 elevation_units: 'meters'
100 cond: 9 # m2/d
101
102lak:
103 theta: -0.7 # semi-implicit; negative value indicates that surfdep is read
104 nssitr: 800 # number of Newton iterations for solution of lake stage, for each MODFLOW iteration.
105 sscncr: 0.0000001 # lake stage convergence criterion
106 surfdep: 0.1 # undulations in lake bottom that affect GW discharge. Range in online instructions is 0.01-0.5. (Value from Trout Lake)
107 source_data:
108 littoral_leakance: 0.045 # 1/d
109 profundal_leakance: 0.025 # 1/d
110 lakes_shapefile:
111 filename: '../../../examples/data/pleasant/source_data/shps/all_lakes.shp'
112 id_column: 'HYDROID'
113 include_ids: [600059060] # pleasant lake
114 climate:
115 filenames:
116 600059060: '../../../examples/data/pleasant/source_data/PRISM_ppt_tmean_stable_4km_189501_201901_43.9850_-89.5522.csv'
117 format: 'prism'
118 period_stats:
119 0: ['mean', '2012-01-01', '2012-12-31'] # average daily rate for model period for initial steady state
120 1: 'mean' # average daily rate or value for each month
121 bathymetry_raster:
122 filename: '../../../examples/data/pleasant/source_data/rasters/pleasant_bathymetry.tif'
123 length_units: 'meters'
124 stage_area_volume_file:
125 filename: '../../../examples/data/pleasant/source_data/tables/area_stage_vol_Pleasant.csv'
126 length_units: 'meters'
127 id_column: 'hydroid'
128 column_mappings:
129 volume_m3: 'volume'
130 output_files:
131 lookup_file: 'lak_lookup.csv'
132
133sfr:
134 source_data:
135 flowlines:
136 nhdplus_paths: ['../../../examples/data/pleasant/source_data/shps']
137 observations: # see sfrmaker.observations.add_observations for arguments
138 filename: '../../../examples/data/pleasant/source_data/tables/gages.csv'
139 obstype: 'downstream-flow' # modflow-6 observation type
140 x_location_column: 'x'
141 y_location_column: 'y'
142 obsname_column: 'site_no'
143 sfrmaker_options:
144 set_streambed_top_elevations_from_dem:
145 filename: '../../../examples/data/pleasant/source_data/rasters/dem40m.tif'
146 elevation_units: 'meters'
147 buffer_distance: 50
148
149nwt:
150 #use_existing_file: 'RGN_rjh_3_23_18.NWT'
151 headtol: 1.e-2 # read remaining parameters from default cfg
152 hclosexmd: 1.e-4
153
154hyd:
155 source_data:
156 filenames: ['../../../examples/data/pleasant/source_data/tables/nwis_heads_info_file.csv',
157 '../../../examples/data/pleasant/source_data/tables/lake_sites.csv', # some lakes are high-k; obs need to be in hydmod
158 '../../../examples/data/pleasant/source_data/tables/wdnr_gw_sites.csv',
159 '../../../examples/data/pleasant/source_data/tables/uwsp_heads.csv',
160 '../../../examples/data/pleasant/source_data/tables/wgnhs_head_targets.csv'
161 ]
162 column_mappings:
163 hydlbl: ['obsprefix', 'obsnme', 'common_name']
164 mfsetup_options:
165 drop_observations: ['10019209_lk' # pleasant lake; monitored via gage package
166 ]
167
168chd:
169 perimeter_boundary:
170 parent_head_file: '../../../examples/data/pleasant/pleasant.hds'
Plainfield Lakes MODFLOW-NWT test case¶
MODFLOW-NWT TMR inset from a MODFLOW-NWT model
Layer 1 in parent model is subdivided evenly into two layers in the inset model (
botm: from_parent: 0: -0.5
). Other layers mapped explicitly between TMR parent and LGR model.starting heads resampled from binary output from the TMR parent
Temporally constant recharge specified from raster file, with multiplier
WEL package created from custom format
MNW2 package with dictionary input
UPW input copied from parent model
HYDMOD package for head observations from csv files with different column names
WEL package created from custom format and dictionary input
WEL package configured to use average for a specified period (period 0) and specified month (period 1 on)
Lake package created from polygon features, bathymetry raster, stage-area-volume file
Lake package precipitation and evaporation specified directly
Lake package observations set up automatically (output file for each lake)
1model:
2 modelname: 'pfl'
3 model_ws: '../tmp/pfl_inset/'
4 exe_name: 'mfnwt'
5 external_path: 'external/'
6 # list file path is relative to model_ws
7 list_filename_fmt: 'external/{}.list'
8 packages: ['dis',
9 'bas6',
10 'oc',
11 'upw',
12 'rch',
13 'lak',
14 'wel',
15 'mnw2',
16 'hyd',
17 'gag',
18 'nwt',
19 'chd'
20 ]
21
22parent:
23 namefile: 'pfl.nam'
24 model_ws: 'plainfieldlakes/'
25 version: 'mfnwt'
26 hiKlakes_value: 1.e4
27 copy_stress_periods: 'all'
28
29# parameters for setting up the pfl_nwt grid
30# using features in features_file
31setup_grid:
32 remake: True
33 dxy: 20 # in CRS units of meters
34 buffer: 350 # distance from feature(s) if interest to model boundary, in meters
35 epsg: 3070
36 source_data:
37 features_shapefile:
38 filename: 'plainfieldlakes/source_data/all_lakes.shp'
39 id_column: 'HYDROID'
40 include_ids: [600054357, 600054319] # plainfield lake; long lake
41
42# Inset model settings and
43# arguments to flopy.modflow.ModflowDis
44dis:
45 nper: 2
46 nlay: 5
47 perlen: [1, 10]
48 nstp: [1, 25]
49 tsmult: [1, 1.5]
50 steady: [True, False]
51 length_units: 'meters' # alternatively, specify lenuni: 2
52 time_units: 'days' # alternatively, specify itmuni: 4
53 start_date_time: '2011-01-01'
54 source_data:
55 top:
56 filename: 'plainfieldlakes/source_data/dem10m.tif'
57 elevation_units: 'meters'
58 botm:
59 from_parent:
60 0: -0.5 # bottom of layer zero in pfl_nwt is positioned at half the thickness of parent layer 1
61 1: 0 # bottom of layer 1 in pfl_nwt corresponds to bottom of layer 0 in parent
62 2: 1
63 3: 2
64 4: 3
65
66bas6:
67 source_data:
68 strt:
69 from_parent:
70 binaryfile: 'plainfieldlakes/pfl.hds'
71 stress_period: 0
72
73upw:
74 ipakcb: 53 # unit for writing cell budget output
75 hdry: -9999
76 source_data:
77 hk:
78 from_parent:
79 0: 0 # layer zero in pfl_nwt has values of parent layer zero
80 1: 0 # layer one in pfl_nwt has values of parent layer zero
81 2: 1
82 3: 2
83 4: 3
84 vka:
85 from_parent:
86 0: 0 # layer zero in pfl_nwt has values of parent layer zero
87 1: 0 # layer one in pfl_nwt has values of parent layer zero
88 2: 1
89 3: 2
90 4: 3
91 sy: 0.1
92 ss: 1.e-6
93
94
95# in lieu of an infiltration in source_dara
96# recharge can be entered directly as "rech"
97# (scalar, external file, or list of those)
98rch:
99 source_data:
100 rech:
101 filenames: # by stress period
102 0: 'plainfieldlakes/source_data/net_infiltration__2012-01-01_to_2017-12-31__1066_by_1145__SUM__INCHES_PER_YEAR.tif'
103 mult: 0.805
104 length_units: 'inches'
105 time_units: 'years'
106
107wel:
108 options: ['SPECIFY', '0.01']
109 source_data:
110 wells: # name: per, x, y or i, j location; layer (k), q (flux); or csv file with these columns
111 well1: {per: 1, x: 563343.92, y: 414988.09, k: 0, q: -2000}
112 wdnr_dataset:
113 water_use: 'plainfieldlakes/source_data/master_wu.csv' # monthly water use rates from WDNR
114 water_use_points: 'plainfieldlakes/source_data/wu_points.shp' # point locations of wells in water_use
115 period_stats: {0: ['mean', '2012-01-01', '2018-12-31'], # statistic to apply to each stress period 'mean' to average all water use data; <monthname> to average values for a given month across the period (e.g. 'august')
116 1: 'august', # use August pumping rates during test
117 }
118 output_files:
119 lookup_file: 'wel_lookup.csv' # mapping of wel package data to site numbers
120
121mnw:
122 added_wells:
123 well1: {per: 1, x: 563343.92, y: 414988.09,
124 depth: 10, # m
125 flux: -2000, # pumping rate, in model units
126 rw: 0.1, # well radius, m
127 rskin: 0.1524, # radius to outer limit of skin
128 kskin: 50 # m/day
129 }
130
131# option to simulate lakes as zones of high hydraulic conductivity
132# (see Anderson and others (2002) in the references)
133high_k_lakes:
134 simulate_high_k_lakes: True
135 high_k_value: 1.e+4
136 sy: 1.0
137 ss: 5.e-10 # (approx. compressibility of water in Pa-1 or m2/N)
138 precipitation: [0.002276, # 32.7 in/yr; from LPR report average value
139 0.003646 # average for August, 2012-2018 (4.45 in for the month)
140 ]
141 evaporation: [0.001649, # 23.7 in/yr; ballpark value from LPR report
142 0.00338, # 3.38 mm/day; average August rate for Sparkling Lake from Lenters and others (2005; table 2)
143 ]
144 source_data:
145 # shapefile defining the extents of the lakes to include
146 # Note: lakes that are also simulated with the Lake Package will be excluded
147 lakes_shapefile:
148 filename: 'plainfieldlakes/source_data/all_lakes.shp'
149
150lak:
151 theta: -0.7 # semi-implicit; negative value indicates that surfdep is read
152 nssitr: 800 # number of Newton iterations for solution of lake stage, for each MODFLOW iteration.
153 sscncr: 0.0000001 # lake stage convergence criterion
154 surfdep: 0.1 # undulations in lake bottom that affect GW discharge. Range in online instructions is 0.01-0.5. (Value from Trout Lake)
155 precipitation: [0.002276, # 32.7 in/yr; from LPR report average value
156 0.003646 # average for August, 2012-2018 (4.45 in for the month)
157 ]
158 evaporation: [0.001649, # 23.7 in/yr; ballpark value from LPR report
159 0.00338, # 3.38 mm/day; average August rate for Sparkling Lake from Lenters and others (2005; table 2)
160 ]
161 source_data:
162 littoral_leakance: 0.045 # 1/d
163 profundal_leakance: 0.025 # 1/d
164 littoral_zone_buffer_width: 20
165 lakes_shapefile:
166 filename: 'plainfieldlakes/source_data/all_lakes.shp'
167 id_column: 'HYDROID'
168 include_ids: [600054357, 600054355, 600054434, 600054319] # list of WDNR HYDROIDs
169 name_column: 'Name'
170 bathymetry_raster:
171 filename: 'plainfieldlakes/source_data/pfl_bathymetry.tif'
172 length_units: 'meters'
173 stage_area_volume_file:
174 filename: 'plainfieldlakes/source_data/all_lakes_stage_area_volume.csv' #'../../bcs/lakes/area_stage_vol_Long.csv'
175 length_units: 'meters'
176 id_column: 'hydroid'
177 column_mappings:
178 volume_m3: 'volume'
179 output_files:
180 lookup_file: 'lak_lookup.csv'
181
182nwt:
183 headtol: 1.e-6 # read remaining parameters from default cfg
184
185hyd:
186 source_data:
187 filenames: ['plainfieldlakes/source_data/nwis_heads_info_file.csv',
188 'plainfieldlakes/source_data/lake_sites.csv',
189 'plainfieldlakes/source_data/wdnr_gw_sites.csv',
190 'plainfieldlakes/source_data/uwsp_heads.csv'
191 ]
192 x_location_col: 'x_utm' # x coordinates in wtm
193 y_location_col: 'y_utm' # y coordinates in wtm
194
195chd:
196 perimeter_boundary:
197 parent_head_file: 'plainfieldlakes/pfl.hds'