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,
145# and there is no parent model,
146# starting heads are set to the model top by default
147ic:
148 # optional format for writing external files
149 # e.g. (strt_001.dat)
150 # default is strt_{:03d}.dat
151 strt_filename_fmt: "strt_{:03d}.dat"
152
153# Node Property Flow Package
154npf:
155 options:
156 save_flows: True
157 griddata:
158 icelltype: 1 # variable sat. thickness in all layers
159 source_data:
160 k:
161 filenames:
162 0: 'shellmound/rasters/k0.tif' # Vicksburg-Jackson Group
163 1: 'shellmound/rasters/k1.tif' # Upper Claiborne aquifer
164 2: 'shellmound/rasters/k2.tif' # Middle Claiborne confining unit
165 3: 'shellmound/rasters/k3.tif' # Middle Claiborne aquifer
166 4: 'shellmound/rasters/k3.tif' # Middle Claiborne aquifer
167 5: 'shellmound/rasters/k3.tif' # Middle Claiborne aquifer
168 6: 'shellmound/rasters/k4.tif' # Lower Claiborne confining unit
169 7: 'shellmound/rasters/k4.tif' # Lower Claiborne confining unit
170 8: 'shellmound/rasters/k5.tif' # Lower Claiborne aquifer
171 9: 'shellmound/rasters/k6.tif' # Middle Wilcox aquifer
172 10: 'shellmound/rasters/k10.tif' # Lower Wilcox aquifer
173 11: 'shellmound/rasters/k10.tif' # Lower Wilcox aquifer
174 12: 'shellmound/rasters/k12.tif' # Lower Wilcox aquifer
175 length_units: 'feet'
176 k33:
177 filenames:
178 0: 'shellmound/rasters/k330.tif' # Vicksburg-Jackson Group
179 1: 'shellmound/rasters/k331.tif' # Upper Claiborne aquifer
180 2: 'shellmound/rasters/k332.tif' # Middle Claiborne confining unit
181 3: 'shellmound/rasters/k333.tif' # Middle Claiborne aquifer
182 4: 'shellmound/rasters/k333.tif' # Middle Claiborne aquifer
183 5: 'shellmound/rasters/k333.tif' # Middle Claiborne aquifer
184 6: 'shellmound/rasters/k334.tif' # Lower Claiborne confining unit
185 7: 'shellmound/rasters/k334.tif' # Lower Claiborne confining unit
186 8: 'shellmound/rasters/k335.tif' # Lower Claiborne aquifer
187 9: 'shellmound/rasters/k336.tif' # Middle Wilcox aquifer
188 10: 'shellmound/rasters/k3310.tif' # Lower Wilcox aquifer
189 11: 'shellmound/rasters/k3310.tif' # Lower Wilcox aquifer
190 12: 'shellmound/rasters/k3312.tif' # Lower Wilcox aquifer
191 length_units: 'feet'
192 k_filename_fmt: "k_{:03d}.dat"
193 k33_filename_fmt: "k33_{:03d}.dat"
194
195# Storage Package
196sto:
197 options:
198 save_flows: True
199 griddata:
200 iconvert: 1 # convertible layers
201 # initial global values for storage
202 sy: 0.25
203 ss: 1.e-6
204
205# Recharge Package
206rch:
207 options:
208 print_input: True
209 print_flows: False
210 save_flows: True
211 readasarrays: True
212 source_data:
213 # resample recharge from NetCDF file with time-series of grids
214 recharge:
215 filename: 'shellmound/net_infiltration__2000-01-01_to_2017-12-31__414_by_394.nc'
216 variable: 'net_infiltration'
217 length_units: 'inches'
218 time_units: 'days'
219 crs: 5070
220 resample_method: 'linear'
221 period_stats:
222 # for the first two stress periods
223 # apply mean recharge rates for dates below
224 0: ['mean', '2000-01-01', '2017-12-31']
225 1: ['mean', '2000-01-01', '2017-12-31']
226 2: 'mean' # for periods 2 on, use the mean recharge for that period
227
228# Streamflow Routing Package
229# SFR input is created using SFRmaker
230# https://github.com/usgs/sfrmaker
231sfr:
232 options:
233 save_flows: True
234 source_data:
235 flowlines:
236 filename: 'shellmound/shps/flowlines.shp'
237 id_column: 'COMID' # arguments to sfrmaker.Lines.from_shapefile
238 routing_column: 'tocomid'
239 width1_column: 'width1'
240 width2_column: 'width2'
241 up_elevation_column: 'elevupsmo'
242 dn_elevation_column: 'elevdnsmo'
243 name_column: 'GNIS_NAME'
244 width_units: 'feet' # units of source data
245 elevation_units: 'feet' # units of source data
246 # specified inflows to SFR network
247 inflows: # see sfrmaker.data.add_to_perioddata for arguments
248 filename: 'shellmound/tables/inflows.csv'
249 datetime_column: 'datetime'
250 line_id_column: 'line_id'
251 data_column: 'flow_m3d' # flows are already in cubic meters/day; can therefore skip unit input
252 category_column: 'category'
253 observations: # see sfrmaker.observations.add_observations for arguments
254 filename: shellmound/tables/observations.csv
255 obstype: [downstream-flow, 'stage'] # modflow-6 observation type
256 x_location_column: x # observation locations, in CRS coordinates
257 y_location_column: y
258 obsname_column: site_no # column for naming observations
259 # specified runoff
260 # that has been reprocessed to units of m3/day per line ID
261 runoff: # see sfrmaker.data.add_to_perioddata for arguments
262 filename: 'shellmound/tables/swb_runoff_by_nhdplus_comid_m3d.csv'
263 datetime_column: 'time'
264 line_id_column: 'comid'
265 data_column: 'runoff_m3d'
266 # modflow-setup will try to locate the inflows or runoff values
267 # using the routing information in the flowlines shapefile
268 # however, in some cases an inflow location might be just outside of the flowlines that are provided
269 # (for example, if they were clipped to the model grid, or if they are outside of the model bounding box)
270 # or a runoff value might be assigned to a line that was culled from the preprocessed flowlines
271 # the routing option allows complete routing of the original data to be supplied,
272 # so that values associated with missing lines can be assigned to the next existing downstream line
273 routing:
274 filename: 'shellmound/tables/flowline_routing.csv'
275 id_column: 'FROMCOMID' # arguments to sfrmaker.Lines.from_shapefile
276 routing_column: 'TOCOMID'
277 sfrmaker_options:
278 # the sfrmaker_options: block can include arguments to the Lines.to_sfr method in SFRmaker
279 # (see https://doi-usgs.github.io/sfrmaker/api/sfrmaker.lines.html#sfrmaker.lines.Lines.to_sfr)
280 # or other options such as set_streambed_top_elevations_from_dem (see pleasant examples)
281 # or to_riv (shellmound_tmr example)
282 one_reach_per_cell: True # consolidate SFR reaches to one per i, j location
283 add_outlets: [17957815, 17956213] # add outlets at these line numbers
284 minimum_slope: 1.e-5
285 to_riv: [18047206] # convert this line and all downstream lines to the RIV package
286
287# Constant Head Package
288chd:
289 options:
290 save_flows: True
291 source_data:
292 shapefile:
293 filename: '../../../mfsetup/tests/data/shellmound/shps/waterbodies.shp'
294 id_column: 'COMID' # shapefile attribute field with include_ids:
295 include_ids: [18046162] # features used to form the boundary
296 boundname_column: 'GNIS_NAME'
297 csvfile:
298 filename: 'shellmound/tables/chd_heads.csv'
299 id_column: 'comid'
300 datetime_column: 'start_datetime'
301 end_datetime_column: 'end_datetime'
302 head_column: 'head'
303 length_units: 'feet'
304 # how heads will be aggregated to the model stress periods
305 period_stats:
306 # apply the mean heads across a specified time period
307 # for the initial steady state
308 # (default of 'mean' uses all times in input data)
309 0: ['mean', '2000-01-01', '2017-12-31']
310 1: mean # apply the mean heads for the time period of s.p. 1
311 # the last statistic specified (mean) will also be applied to subsequent periods
312
313# Drain Package
314drn:
315 options:
316 save_flows: True
317 source_data:
318 shapefile:
319 filename: '../../../mfsetup/tests/data/shellmound/shps/waterbodies.shp'
320 id_column: 'COMID'
321 # Include all features in the above shapefile,
322 # except those associated with these COMIDs
323 exclude_ids: [18046230, 18046226, 18046238, 17953939, 18046140, 18046162]
324 boundname_column: 'COMID'
325 elev:
326 filename: 'shellmound/rasters/meras_100m_dem.tif'
327 elevation_units: 'feet'
328 cond: 1.e+3 # in model units
329
330# General Head Boundary Package
331ghb:
332 options:
333 save_flows: True
334 source_data:
335 shapefile:
336 filename: '../../../mfsetup/tests/data/shellmound/shps/waterbodies.shp'
337 id_column: 'COMID'
338 # Note: to include all features in a shapefile,
339 # simply omit the include_ids: key
340 include_ids: [18046230]
341 # argument to rasterio.features.rasterize
342 # if true, all grid cells touching the feature(s)
343 # in the shapefile will be assigned BCs, if False
344 # only the cells with centers inside the polygon
345 # will be included
346 all_touched: True
347 # Example of mixed boundary condition input, where
348 # a shapefile defines the feature extents
349 # a csvfile defines transient head values
350 # a raster defines static but spatially varying conductance
351 csvfile:
352 filename: 'shellmound/tables/chd_heads.csv'
353 id_column: 'comid'
354 datetime_column: 'start_datetime'
355 end_datetime_column: 'end_datetime'
356 bhead_column: 'head'
357 length_units: 'feet'
358 # with no period_stats: block, aggregation defaults
359 # to 'mean' for each stress period
360 cond:
361 # note: a single global value could also be specified here,
362 # as for the Drain Package
363 filename: shellmound/rasters/k330.tif
364 length_units: meters
365 time_units: days
366
367
368# River Package
369riv:
370 options:
371 save_flows: True
372 source_data:
373 shapefile:
374 filename: '../../../mfsetup/tests/data/shellmound/shps/waterbodies.shp'
375 id_column: 'COMID'
376 include_ids: [17953939]
377 # option to include feature names from the shapefile
378 # as Modflow boundnames
379 boundname_column: 'GNIS_NAME'
380 stage:
381 filename: 'shellmound/rasters/meras_100m_dem.tif'
382 elevation_units: 'feet'
383 # zonal statistic to use in sampling elevations in above GeoTIFF to grid
384 stat: 'min'
385 cond: 1.e+3
386 mfsetup_options:
387 default_rbot_thickness: 1.
388
389# Well Package
390wel:
391 options:
392 print_input: True
393 print_flows: True
394 save_flows: True
395 source_data:
396 csvfiles:
397 # pumping input from CSV files
398 filenames: ['shellmound/tables/1998-2007_avg_pumping_from_meras21_m3.csv',
399 'shellmound/tables/iwum_m3_6M.csv',
400 'shellmound/tables/sp69_pumping_from_meras21_m3.csv']
401 # 'x' and 'y' are the default names for x and y location columns
402 volume_units: 'meters'
403 time_units: 'days'
404 data_column: 'flux_m3'
405 datetime_column: 'start_datetime'
406 # end datetimes only for input data that needs upsampling;
407 # see https://aleaf.github.io/modflow-setup/api/mfsetup.tdis.html#mfsetup.tdis.aggregate_dataframe_to_stress_period
408 end_datetime_column: 'end_datetime'
409 id_column: 'node'
410 period_stats: # how fluxes will be distributed across model stress periods
411 0: none # no wells simulated in initial period
412 1: 'mean' # mean pumping rate for period 1 and subsequent periods
413 vertical_flux_distribution:
414 across_layers: False # False to put fluxes in one layer
415 # put wells in layer with thickest or most transmissive intersection with well open interval
416 distribute_by: 'transmissivity' # thickness or transmissivity
417 minimum_layer_thickness: 10. # layers must be at 10 length units thick to have a well;
418 # (any dropped wells would be recorded in shellmound_dropped_wells.csv)
419
420# Output Control Package
421oc:
422 head_fileout_fmt: '{}.hds'
423 budget_fileout_fmt: '{}.cbc'
424 # dictionary input similar to flopy
425 saverecord: {0: {head: 'last',
426 budget: 'last'}
427 }
428 # MODFLOW 6-style text input can also be used
429 # e.g.
430 # period_options: {0: ['save head last',
431 # 'save budget last' ]
432
433obs:
434 source_data:
435 filenames: ['shellmound/tables/preprocessed_head_obs_info.csv'
436 ]
437 column_mappings:
438 obsname: ['obsprefix']
439
440
441ims:
442 options:
443 print_option: 'all'
444 complexity: 'moderate'
445 'csv_output fileout': 'solver_out.csv'
446 nonlinear:
447 outer_dvclose: 1.e-1
448 outer_maximum: 200
449 under_relaxation: 'dbd'
450 under_relaxation_theta: 0.7
451 under_relaxation_kappa: 0.1
452 under_relaxation_gamma: 0.0
453 under_relaxation_momentum: 0.0
454 backtracking_number: 0
455 linear:
456 inner_maximum: 100
457 inner_dvclose: 1.e-2
458 rcloserecord: [0.0001, 'relative_rclose']
459 linear_acceleration: 'bicgstab'
460 scaling_method: None
461 reordering_method: None
462 relaxation_factor: 0.0 # either ILU(0) or ILUT preconditioning
463 number_orthogonalizations: 0
464 preconditioner_levels: 7
465 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: 553400 # lower left x-coordinate
72 yoff: 387800 # 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 # number of inset layers for each parent layer
83 # this can be an integer (vertically uniform refinement)
84 # a list (with an entry for each parent layer)
85 # or a dictionary (with entries for each parent layer that is refined;
86 # unlisted layers will default to zero)
87 layer_refinement: [1, 1, 1, 1, 1] # number of lgr model layers per parent model layer
88
89# Structured Discretization Package
90dis:
91 options:
92 length_units: 'meters'
93 dimensions:
94 # if nrow and ncol are not specified here, the entries above in setup_grid are used
95 nlay: 5
96 nrow: 25
97 ncol: 25
98 # griddata:
99 # delr and delc are developed from information above in setup_grid
100 # top and botm arrays are sampled from GeoTIFF files
101 # idomain is developed from layer pinch-outs and boundary condition locations
102 source_data:
103 top:
104 filename: 'data/pleasant/source_data/rasters/dem40m.tif' # DEM file; path relative to setup script
105 elevation_units: 'meters'
106 botm:
107 filenames:
108 1: 'data/pleasant/source_data/rasters/botm0.tif' # preprocessed surface for parent model layer 0 bottom
109 2: 'data/pleasant/source_data/rasters/botm1.tif' # preprocessed surface for parent model layer 1 bottom
110 3: 'data/pleasant/source_data/rasters/botm2.tif' # preprocessed surface for parent model layer 2 bottom
111 4: 'data/pleasant/source_data/rasters/botm3.tif' # preprocessed surface for parent model layer 3 bottom
112
113# Temporal Discretization Package
114tdis:
115 options:
116 time_units: 'days'
117 start_date_time: '2012-01-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: # monthly stress periods
129 start_date_time: '2012-01-01' # can be specified by group, otherwise start_date_time for the model (under tdis: options) will be used.
130 end_date_time: '2013-01-01' # model ends at midnight on this date (2007-03-31 would be the last day simulated)
131 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)
132 nstp: 1
133 tsmult: 1.5
134 steady: False
135
136# Initial Conditions Package
137ic:
138 # override default_source_data: True setting
139 # (to set starting heads from the parent model starting heads)
140 # set starting heads to the model top
141 source_data:
142 strt: from_model_top
143
144# Node Property Flow Package
145npf:
146 options:
147 save_flows: True
148 griddata:
149 icelltype: 1 # variable sat. thickness in all layers
150 # with parent: default_source_data: True,
151 # unspecified variables such as "k" and "k33" are resampled from parent model
152
153# Storage Package
154sto:
155 options:
156 save_flows: True
157 griddata:
158 iconvert: 1 # convertible layers
159 # with parent: default_source_data: True,
160 # unspecified variables such as "sy" and "ss" are resampled from parent model
161
162 # Well Package
163wel:
164 options:
165 print_input: True
166 print_flows: True
167 save_flows: True
168 # with parent: default_source_data: True,
169 # unspecified well fluxes are resampled from parent model
170
171# Streamflow Routing Package
172# SFR input is created using SFRmaker
173# https://github.com/usgs/sfrmaker
174sfr:
175 options:
176 save_flows: True
177 source_data:
178 flowlines:
179 # path to NHDPlus version 2 dataset
180 nhdplus_paths: ['data/pleasant/source_data/shps']
181 # if a DEM is included, streambed top elevations will be sampled
182 # from the minimum DEM values within a 100 meter buffer around each stream reach
183 dem:
184 filename: 'data/pleasant/source_data/rasters/dem40m.tif'
185 elevation_units: 'meters'
186 # SFR observations can be automatically setup from a CSV file
187 # of x, y locations and fluxes
188 observations: # see sfrmaker.observations.add_observations for arguments
189 filename: 'data/pleasant/source_data/tables/gages.csv'
190 obstype: 'downstream-flow' # modflow-6 observation type
191 x_location_column: 'x'
192 y_location_column: 'y'
193 obsname_column: 'site_no'
194 sfrmaker_options:
195 # the sfrmaker_options: block can include arguments to the Lines.to_sfr method in SFRmaker
196 # (see https://doi-usgs.github.io/sfrmaker/api/sfrmaker.lines.html#sfrmaker.lines.Lines.to_sfr)
197 # or other options such as set_streambed_top_elevations_from_dem (see pleasant examples)
198 # or to_riv (shellmound_tmr example)
199 set_streambed_top_elevations_from_dem: True
200
201# Iterative model solution
202ims:
203 options:
204 complexity: 'moderate'
205 nonlinear:
206 outer_dvclose: 1.e-2
207 outer_maximum: 200
208 linear:
209 inner_maximum: 100
210 inner_dvclose: 1.e-4
211 rcloserecord: [0.0001, 'relative_rclose']
212
213# Observation (OBS) Utility
214obs:
215 source_data:
216 # Head observations are supplied via csv files with x, y locations and observation names
217 # an observation is generated in each model layer;
218 # observations at each location can subsequently be processed
219 # to represent a given screened interval
220 # for example, using modflow-obs (https://github.com/aleaf/modflow-obs)
221 filenames: ['data/pleasant/source_data/tables/nwis_heads_info_file.csv',
222 'data/pleasant/source_data/tables/lake_sites.csv', # some lakes are high-k; obs need to be in hydmod
223 'data/pleasant/source_data/tables/wdnr_gw_sites.csv',
224 'data/pleasant/source_data/tables/uwsp_heads.csv',
225 'data/pleasant/source_data/tables/wgnhs_head_targets.csv'
226 ]
227 column_mappings:
228 obsname: ['obsprefix', 'obsnme', 'common_name']
229 mfsetup_options:
230 drop_observations: ['10019209_lk' # pleasant lake; monitored via Lake Package observations
231 ]
232
233chd:
234 perimeter_boundary:
235 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
58# Recharge and Well packages are inherited from the parent model
59# (since this is an LGR model
60# and the packages are specified in the packages: list)
61
62# Lake Package
63lak:
64 options:
65 boundnames: True
66 save_flows: True
67 surfdep: 0.1 # undulations in lake bottom that affect GW discharge. Range in online instructions is 0.01-0.5. (Value from Trout Lake)
68 source_data:
69 # initial lakebed leakance rates
70 # for thin zone around lake perimeter
71 littoral_leakance: 0.045 # 1/d
72 # for interior of lake basin
73 profundal_leakance: 0.025 # 1/d
74 # polygon shapefile of lake footprints
75 littoral_zone_buffer_width: 40
76 lakes_shapefile:
77 filename: 'data/pleasant/source_data/shps/all_lakes.shp'
78 id_column: 'HYDROID'
79 include_ids: [600059060] # pleasant lake
80 # setup lake precipitation and evaporation from PRISM data
81 climate:
82 filenames:
83 600059060: 'data/pleasant/source_data/PRISM_ppt_tmean_stable_4km_189501_201901_43.9850_-89.5522.csv'
84 format: 'prism'
85 period_stats:
86 # for period 0, use average precip and evap for dates below
87 0: ['mean', '2012-01-01', '2018-12-31'] # average daily rate for model period for initial steady state
88 # for subsequent periods,
89 # average precip and evap to period start/end dates
90 1: 'mean' # average daily rate or value for each month
91 # bathymetry file with lake depths to subtract off model top
92 bathymetry_raster:
93 filename: 'data/pleasant/source_data/rasters/pleasant_bathymetry.tif'
94 length_units: 'meters'
95 # bathymetry file with stage/area/volume relationship
96 stage_area_volume_file:
97 filename: 'data/pleasant/source_data/tables/area_stage_vol_Pleasant.csv'
98 length_units: 'meters'
99 id_column: 'hydroid'
100 column_mappings:
101 volume_m3: 'volume'
102 external_files: False # option to write connectiondata table to external file
103
104sfr:
105 options:
106 save_flows: True
107 source_data:
108 flowlines:
109 nhdplus_paths: ['data/pleasant/source_data/shps']
110 dem:
111 filename: 'data/pleasant/source_data/rasters/dem40m.tif'
112 elevation_units: 'meters'
113 sfrmaker_options:
114 set_streambed_top_elevations_from_dem: True
115
116obs:
117 # same observation data that were applied to pleasant_lgr_parent model
118 # any observations not within the LGR extent are culled
119 source_data:
120 filenames: [
121 #'data/pleasant/source_data/tables/nwis_heads_info_file.csv',
122 'data/pleasant/source_data/tables/lake_sites.csv', # some lakes are high-k; obs need to be in hydmod
123 'data/pleasant/source_data/tables/wdnr_gw_sites.csv',
124 #'data/pleasant/source_data/tables/uwsp_heads.csv',
125 #'data/pleasant/source_data/tables/wgnhs_head_targets.csv'
126 ]
127 column_mappings:
128 obsname: ['obsprefix', 'common_name']
129 mfsetup_options:
130 drop_observations: ['10019209_lk' # pleasant lake; monitored via gage package
131 ]
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'