@@ -48,17 +48,148 @@ |
public static final String PAR_STARTTIME = "startTime"; |
public static final String PAR_ENDTIME = "endTime"; |
|
- static Map<String, ObjectiveFunction> ofs = new HashMap<>(); |
+ static Map<String, ObjectiveFunction> OF = new HashMap<>(); |
|
|
static { |
- ofs.put("kge", new KGE()); |
- ofs.put("ns", new NS()); |
- ofs.put("nslog", new NS2LOG()); |
- ofs.put("rmse", new RMSE()); |
- ofs.put("trmse", new TRMSE()); |
+ OF.put("kge", new KGE()); |
+ OF.put("ns", new NS()); |
+ OF.put("nslog", new NS2LOG()); |
+ OF.put("rmse", new RMSE()); |
+ OF.put("trmse", new TRMSE()); |
} |
|
+ // required parameter |
+ String[] reqParams = { |
+ PAR_STARTTIME, |
+ PAR_ENDTIME |
+ }; |
+ |
+ // optional parameter |
+ String[] optParams = { |
+ "ACAdaptation", |
+ "BetaW", |
+ "Beta_NO3", |
+ "Beta_Ndist", |
+ "Beta_min", |
+ "Beta_rsd", |
+ "Beta_trans", |
+ "CDN", |
+ "FCAdaptation", |
+ "Ksink", |
+ "LExCoef", |
+ "N_delay_RG1", |
+ "N_delay_RG2", |
+ "NitriDelayFact", |
+ "SDNCO_new", |
+ "a_rain", |
+ "a_snow", |
+ "angstrom_a", |
+ "angstrom_b", |
+ "baseTemp", |
+ "calcSoilTemp", |
+ "calcSurfTemp", |
+ "calib_clat_fact", |
+ "ccf_factor", |
+ "defaultCO2", |
+ "denitfac", |
+ "depdr", |
+ "deposition_factor", |
+ "drrad", |
+ "drspac", |
+ "f1", |
+ "f12", |
+ "f13", |
+ "f14", |
+ "f15", |
+ "f16", |
+ "f17", |
+ "f18", |
+ "f19", |
+ "f2", |
+ "f3", |
+ "f4", |
+ "f5", |
+ "f6", |
+ "f7", |
+ "f8", |
+ "flowRouteTA", |
+ "fmt_date", |
+ "fmt_double", |
+ "g_factor", |
+ "geoMaxPerc", |
+ "gwCapRise", |
+ "gwRG1Fact", |
+ "gwRG1RG2dist", |
+ "gwRG2Fact", |
+ "halflife_RG1", |
+ "halflife_RG2", |
+ "infil_conc_factor", |
+ "initLPS", |
+ "initMPS", |
+ "initN_concRG1", |
+ "initN_concRG2", |
+ "initRG1", |
+ "initRG2", |
+ "kdiff_layer", |
+ "kf_calib", |
+ "lagRD1", |
+ "lagRD2", |
+ "locGrw", |
+ "longTZ", |
+ "nitri_delay", |
+ "opti", |
+ "piadin", |
+ "r_factor", |
+ "rootfactor", |
+ "sceno", |
+ "skipRegression", |
+ "snowCritDens", |
+ "snowDensConst", |
+ "snowFactorA", |
+ "snowFactorB", |
+ "snowFactorC", |
+ "snow_trans", |
+ "snow_trs", |
+ "soilDiffMPSLPS", |
+ "soilDistMPSLPS", |
+ "soilImpGT80", |
+ "soilImpLT80", |
+ "soilLatVertLPS", |
+ "soilLinRed", |
+ "soilMaxDPS", |
+ "soilMaxInfSnow", |
+ "soilMaxInfSummer", |
+ "soilMaxInfWinter", |
+ "soilMaxPerc", |
+ "soilOutLPS", |
+ "soilPolRed", |
+ "t_factor", |
+ "tempRes", |
+ "temp_lag", |
+ "theta_nit", |
+ "volia_delay" |
+ }; |
+ |
+ // simulation flags |
+ String[] flags = { |
+ "flagParallel", |
+ "flagRegionalization", |
+ "flagHRURouting", |
+ "flagReachRouting", |
+ "flagSort", |
+ "flagSplit", |
+ "flagInfiltration", |
+ "flagTillage", |
+ "flagTileDrain", |
+ "flagUPGM", |
+ "parallelismFactor", |
+ "parallelismThreads", |
+ "flagSaveState", |
+ "flagLoadState", |
+ "flagWB" |
+ }; |
+ |
|
@Override |
public void doProcess() throws Exception { |
@@ -67,19 +198,15 @@ |
|
// pass request param to model runtime parameter -> run.inc |
Map<String, String> agesParam = new LinkedHashMap<>(); |
- Utils.passReqQuotedParam(agesParam, parameter(), PAR_STARTTIME, PAR_ENDTIME); |
+ Utils.passReqQuotedParam(agesParam, parameter(), reqParams); |
|
// scalar parameter |
- Utils.passOptParam(agesParam, parameter(), |
- "flowRouteTA", "soilOutLPS"); |
+ Utils.passOptParam(agesParam, parameter(), optParams); |
|
// optional flags |
- Utils.passOptQuotedParam(agesParam, parameter(), |
- "flagParallel", "flagRegionalization", "flagHRURouting", "flagReachRouting", |
- "flagSort", "flagSplit", "flagInfiltration", "flagTillage", |
- "flagTileDrain", "flagUPGM", "parallelismFactor", "parallelismThreads", |
- "flagSaveState", "flagLoadState", "flagWB"); |
+ Utils.passOptQuotedParam(agesParam, parameter(), flags); |
|
+ // create parameter include file |
Utils.createParamInclude(agesParam, getWorkspaceFile(RUN_INC)); |
|
String start = parameter().getString(PAR_STARTTIME); |
@@ -95,9 +222,9 @@ |
|
Utils.runAges(d, getWorkspaceDir(), parameter(), resources(), LOG); |
|
- for (String ofName : getRequestedObjfunc(ofs.keySet())) { |
+ for (String ofName : getRequestedObjfunc(OF.keySet())) { |
String[] data = parameter().getStringArray(ofName); |
- double v = calc_of(ofs.get(ofName), data[0], data[1], start, end); |
+ double v = calc_of(OF.get(ofName), data[0], data[1], start, end); |
results().put(ofName, v); |
} |
// results().put(getWorkspaceFile("output")); |