+
Configuring An Organic Contaminant to Include Remediation Effects
Overview
VELMA simulation configurations may include parameterizations for Organic Contaminants. Simulation configurations that do include Organic Contaminants may also include additional parameterizations for Modify-by-Map disturbances that allow simulation of decay-based and/or humus-based remediation effects for of the parameterized Organic Contaminants by providing spatially-explicitly scaling factors to boost increased decay and/or increased humus-based binding.
Configuration Steps
The overall process of adding remediation parameterization for an Organic Contaminant is as follows:
1. Add and configure an OrganicContaminantModelto your VELMA simulation configuration.
Follow the steps of the separate documentation for adding/configuring OrganicContaminantModel parameterizations to a simulation configuration.
2. Set the Organic Contaminant's setDecompositionFactorMode
value
The value of the setDecompositionFactorMode
parameter specifies the type or types of remediation factors (decay-based and/or humus-based) the Organic Contaminant will be affected by.
Desired Remediation | Value for setDecompositionFactorMode |
Simulation Effect |
---|---|---|
None | NONE | Use actual humus and chemMaxDecay values, ignore scaling factor values if present. |
Humus-based | HUMUS_ONLY | Multiply actual humus amounts by cell-specific humus scaling factor values. |
Decay-based | DECAY_ONLY | Multiply specified chemMaxDecay value by cell-specific decay scaling factor values. |
Both Humus and Decay | BOTH | Multiply both humus and chemMaxDecay values by their respective cell-specific factors. |
3. Create raster (.asc) map file(s) with cell-specific scaling factor values
The raster (.asc) map files makes cell-specific scaling factor values possible. Generate them using whatever GIS tool or software you prefer. Regardless of the method you use to create them, they must abide by the following rules:
- Each type of remediation must have a separate .asc map file, so if you specified
setDecompositionFactorMode
=BOTH
, you will need 2 files. - Each .asc map file must have the same dimensions (header row values) as the simulation's DEM map, specified as the value of the
input_dem
configuration parameter. - Each .asc map file must not contain
nodata_value
for any location in the map. - Set the value of cell loctions that are unaffected by remediation to 1.0 (not zero!).
- The file's encoding should be ASCII, or ISO-LATIN (UTF-8 is permitted, but not encouraged, UTF-16 and UTF-32 are not supported.)
4. Add and configure a Modify-by-Map disturbance for each scaling factor map
Modify-by-Map disturbances "connect" the maps of scaling factor values to a specific Organic Contaminant at a specific point in time during the simulation run.
You must provide a separate Modify-by-Map disturbance for each scaling factor map generated.
For example: if you specified setDecompositionFactorMode
=BOTH
, and created the two separate .asc map files (one with decay scaling factor values, the other with humus factor values), then you will need to configure two separate Modify-by-Map disturbances to connect the two maps to the single Organin Contaminant.
Adding and Configuring Modify-By-Map Disturbance(s) for Remediation Effects:
- Click the
Edit
-->Disturbances
-->Add a Disturbance
menu item.
(This opens the "Specify Disturbance Model Type and Name" dialog window.) - Select the
ModifySpatialDataByMapDisturbanceModel
item from the dialog window's "Disturbance Type" drop-down list. - Type a name into the "Disturbance Name" text field.
The name will become the parameterization group's Item-level identifier.
It can be any name that follows the rules and that is meaningful to you. - Click OK to accept your selections, close the dialog window, and add the parameterization group.
When the parameterization group is added, JVelma shifts the GUI to display the "All Parameters" tab, with column filtering set to show only the newly-added group.
Here is an example parameterization group:
Group | Item | Parameter | Value (examples) |
---|---|---|---|
disturbance | DecayFactorMel | modelClass | ModifySpatialDataByMapDisturbanceModel |
disturbance | DecayFactorMel | initializeActiveLoops | 1 |
disturbance | DecayFactorMel | initializeActiveYears | 2011 |
disturbance | DecayFactorMel | initializeActiveJdays | 181 |
disturbance | DecayFactorMel | occursAtStepStart | true |
disturbance | DecayFactorMel | spatialDataFileFullName | ./o_9_Disturbance/Remediation_Data.asc |
disturbance | DecayFactorMel | setCellOutcome | REPLACE |
disturbance | DecayFactorMel | setMapValueMode | FRACTION |
disturbance | DecayFactorMel | spatialDataName | CONTAMINANT_DECAY_FACTOR_MELAMINE |
disturbance | DecayFactorMel | spatialDataLayer | 1 |
Each Modify-by-Map entry you add to your simulation is a __disturbance__
Group member. The Disturbance Name" you provide becomes its' Item identifier within the Group. (In the above example, the Disturbance Name was set as DecayFactorMel
.)
The above example connects the scaling factors specified in .asc map file Remediation_Data.asc
to the OrganicContaminantModel with uniqueName
=Melamine
.
The scaling factors will be applicable during the simulation run from year 2011, Julian day 181, onwards. The scaling factors in the .asc map file will be applied to decay calculations for the contaminant.
Parameter-Specific Notes
Leave the modelClass
parameter untouched and as-is. Its value is automatically set by JVelma when you add the ModifySpatialDataByMapDisturbanceModel parameter group to the configuration.
Set the initializeActiveLoops
, initializeActiveYears
, and initializeActiveJdays
parameter values to the loop, year, and Julian day (respectively) within the simulation run when the remediation effect should become active.
Set occursAtStepStart
to true, to ensure the remediation effect begins on the date you specified, not on the day after that.
Set spatialDataFileFullName
to the name of the raster .asc data file containing the cell-specific decay or humus modification factor values.
Unless the specified filename is a fully-specified path + name, it is assumed to be relative to the directory location specified by the simulation configuration's inputDataLocationRootName
/inputDataLocationDirName
pair of parameters.
Use forward slash “/” characters as path separators. Also, be very careful with whitespace; if there is any, it must exactly match whatever whitespace is present in the actual path and filename.
Set setCellOutcome
to REPLACE
: no other value is appropriate for use as a remediation scaling factors source.
Set setMapValueMode
to VALUE
: this setting provides the most straightforward use-case for a remediation scaling factors source. Combined with setCellOutcome
=REPLACE
, setMapValueMode
=VALUE
configures the disturbance to directly set the specified map's specified values into the spatial data pool specified by spatialDataName
.
Set the spatialDataName
to the name of the appropriate spatial data pool. That name is derived from a factor-specific prefix, and the value of the uniqueName
parameter of the organic contaminant that it will affect.
Factor-specific prefix | Identifies the spatial pool for ... |
---|---|
CONTAMINANT_DECAY_FACTOR_ | cell-specific scaling values applied to decay |
CONTAMINANT_HUMUS_FACTOR_ | cell-specific scaling factor values applied to humus |
In the example parameterization above, the specified spatialDataFileFullName
map values will be the remediation factor for decay, and affect the contaminant with the uniqueName
"Melamine".
Thus, the spatialDataName
value is:
CONTAMINANT_DECAY_FACTOR_
+ MELAMINE
= CONTAMINANT_DECAY_FACTOR_MELAMINE
The spatialDataLayer
parameter's value must be set to 1.
For additional information about Modify-by-Map disturbances, see the Modifying a VELMA SpatialData Pool Using Grid ASCII Map Data "HowTo" document.
How It Works
During each VELMA simulation step, the amount of organic contaminant within a given cell of the delineated watershed is modified by the processes of:
- Hydrologic lateral transport
- Hydrologic vertical transport
- Sorption
- Decay
During the sorption calculation, if a given cell has had a HUMUS scaling factor set for it (via a Modify-by-Map), for the current simulation step, then the actual amount of humus carbon in the cell is multiplied by the scaling factor, effectively "boosting" the humus-based sorption.
During the decay calculation, if a given cell has had a DECAY scaling factor set for it (via a Modify-by-Map), for the current simulation step, then the setChemMaxDecay
value specified for the Organic Contaminant is multiplied by the scaling factor and the product of the two (max-decay fraction * decay scaling factor)
is used as the maximum decay multiplier instead of the max-decay fraction alone.
Be mindful of the similar, yet distinctly different behaviors of HUMUS and DECAY scaling factors. In both cases, the scaling factor is used as a multiplier, but for sorption/HUMUS, it is multiplying an amount, while for DECAY it is multiplying a fraction.
For DECAY calculations, this means that a sufficiently large DECAY scaling fraction may result in calculating a decayed amount that is larger then the actual amount present in the cell. VELMA treats this situation as "all of the contaminant has decayed", and zeroes the amount of contaminant remaining in the cell. If this zeroing not the intent, careful pairing of the Organic Contaminant's setChemMaxDecay
value with the cell-specific DECAY map's values is required.
Example:
Suppose an Organic Contaminant's setChemMaxDecay
=0.75
, the DECAY scaling factor at a given cell is 1.5, and the cell contains 100.0mg of contaminant.
The maximum decay amount will be calculated as: (0.75 * 1.5) * 100.0 = 112.5
.
The entire decay/decomposition process might result in an amount less than 112.5, but if that amount is still more than 100.0 at the end of the contaminant decay/decomposition process, the cell's contaminant result will be zeroed, and the full amount that the cell had available (100.0mg) will be reported as decayed -- not the amount greater than 100.0 that was calculated from the max-decay fraction and scaling factor.
Additional Information
Disturbance Name Rules
The name you provide for a disturbance parameterization group must follow these rules:
- Must begin with a letter
- After the first letter, must consist entirely of letter, digit, dash ("-"), and underscore characters ("_").
No other characters are allowed.
Do NOT include whitespace or other punctuation characters (e.g. ":") in Disturbance Names. - Must be unique to a given disturbance parameterization group.