# HG changeset patch # User Sascha L. Teichmann # Date 1383072401 -3600 # Node ID 2733b4aae74ba0d9d648a75cbbefac0f0ff0ad46 # Parent 9434437a1ef5b0682cf199aab0803010ec9c9ec6 flys/issue1625: Changed default sediment density factor from 1.8 to 1.9 . The value can be changed by adusting conf.xml (/artifact-databae/options/sediment-density-factor/text()). diff -r 9434437a1ef5 -r 2733b4aae74b artifacts/doc/conf/conf.xml --- a/artifacts/doc/conf/conf.xml Tue Oct 29 19:17:28 2013 +0100 +++ b/artifacts/doc/conf/conf.xml Tue Oct 29 19:46:41 2013 +0100 @@ -340,6 +340,8 @@ /path/to/rivers/ + + 1.9 diff -r 9434437a1ef5 -r 2733b4aae74b artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentDensity.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentDensity.java Tue Oct 29 19:17:28 2013 +0100 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentDensity.java Tue Oct 29 19:46:41 2013 +0100 @@ -8,6 +8,8 @@ package org.dive4elements.river.artifacts.model.minfo; +import java.io.Serializable; + import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -16,9 +18,9 @@ import java.util.Set; import java.util.TreeMap; -import java.io.Serializable; +import org.apache.log4j.Logger; -import org.apache.log4j.Logger; +import org.dive4elements.artifacts.common.utils.Config; /** Sediment Densities for multiple years. */ @@ -27,9 +29,40 @@ private static final Logger logger = Logger .getLogger(SedimentDensity.class); + public static final double DEFAULT_SEDIMNET_DENSITY_FACTOR = 1.9; + + public static String SEDIMENT_DENSITY_FACTOR_XPATH = + "/artifact-database/options/sediment-density-factor/text()"; + + public static final double SEDIMNET_DENSITY_FACTOR = + getSedimentDensityFactor(); + private Map> densities; private List years; + + /** Figures out the sediment density factor from global config. */ + private static final double getSedimentDensityFactor() { + + double factor = DEFAULT_SEDIMNET_DENSITY_FACTOR; + + String factorString = + Config.getStringXPath(SEDIMENT_DENSITY_FACTOR_XPATH); + + if (factorString != null) { + try { + factor = Double.parseDouble(factorString.trim()); + } + catch (NumberFormatException nfe) { + logger.error(nfe); + } + } + + logger.info("Sedmiment density factor: " + factor); + + return factor; + } + public SedimentDensity() { this.densities = new HashMap>(); this.years = new ArrayList(); @@ -80,7 +113,7 @@ logger.debug("get density from year " + year + " at km " + km); return getDensityAtKm(densities.get(years.get(0)), km); } - else if (this.years.size() > 1) { + if (this.years.size() > 1) { for (int i = 0, I = years.size()-1; i < I; i++) { int y1 = years.get(i); int y2 = years.get(i + 1); @@ -92,7 +125,7 @@ } } } - return 1.8d; + return SEDIMNET_DENSITY_FACTOR; } /** Get (sorted) map of km to density of all years. */