[PATCH] Main values: Reduce code duplication and correct logic to specify whether we are at gauge or not
Wald Commits
scm-commit at wald.intevation.org
Fri Sep 26 09:44:51 CEST 2014
# HG changeset patch
# User "Tom Gottfried <tom at intevation.de>"
# Date 1411717488 -7200
# Node ID 27d42c9ee367c1e59cee4f9cc28e791faff25abf
# Parent e87a993c6611eb3208041c2286f442dc9eba9033
Main values: Reduce code duplication and correct logic to specify whether we are at gauge or not.
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/doc/conf/artifacts/chart.xml
--- a/artifacts/doc/conf/artifacts/chart.xml Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/doc/conf/artifacts/chart.xml Fri Sep 26 09:44:48 2014 +0200
@@ -141,8 +141,8 @@
<facet name="empty.facet" description="Empty"/>
<facet name="computed_discharge_curve.manualpoints"/>
<facet name="computed_discharge_curve.q" description="facet.computed_discharge_curve.q"/>
- <facet name="computed_discharge_curve.mainvalues.q" description="facet.computed_discharge_curve.mainvalues.q"/>
- <facet name="computed_discharge_curve.mainvalues.w" description="facet.computed_discharge_curve.mainvalues.w"/>
+ <facet name="mainvalues.q"/>
+ <facet name="mainvalues.w"/>
<facet name="other.wqkms" description="facet.other.wqkms"/>
<facet name="other.wq" description="Point-like data like fixations"/>
<facet name="other.wq" description="Point-like data like fixations"/>
@@ -161,8 +161,8 @@
<facet name="duration_curve.manualpoints"/>
<facet name="duration_curve.w" description="facet.duration_curve.w"/>
<facet name="duration_curve.q" description="facet.duration_curve.q"/>
- <facet name="computed_discharge_curve.mainvalues.q" description="Q Main Values"/>
- <facet name="computed_discharge_curve.mainvalues.w" description="W Main Values"/>
+ <facet name="mainvalues.q" description="Q Main Values"/>
+ <facet name="mainvalues.w" description="W Main Values"/>
</facets>
</outputmode>
</outputmodes>
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/doc/conf/artifacts/gaugedischarge.xml
--- a/artifacts/doc/conf/artifacts/gaugedischarge.xml Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/doc/conf/artifacts/gaugedischarge.xml Fri Sep 26 09:44:48 2014 +0200
@@ -8,8 +8,8 @@
<outputmode name="computed_discharge_curve" description="computed_discharge_curve" mime-type="image/png" type="chart">
<facets>
<facet name="discharge_curve.curve" description="facet.discharge_curve.curve" />
- <facet name="computed_discharge_curve.mainvalues.q" description="mainvalues.q"/>
- <facet name="computed_discharge_curve.mainvalues.w" description="mainvalues.w"/>
+ <facet name="mainvalues.q"/>
+ <facet name="mainvalues.w"/>
<facet name="discharge_curve.curve" description="facet.discharge_curve.curve"/>
<facet name="heightmarks_points" description="facet.other.wqkms"/>
<facet name="other.wqkms" description="facet.other.wqkms"/>
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/doc/conf/artifacts/gaugedischargecurve.xml
--- a/artifacts/doc/conf/artifacts/gaugedischargecurve.xml Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/doc/conf/artifacts/gaugedischargecurve.xml Fri Sep 26 09:44:48 2014 +0200
@@ -16,8 +16,8 @@
<outputmode name="discharge_curve" description="output.discharge_curve" mime-type="image/png" type="chart">
<facets>
<facet name="gauge_discharge_curve"/>
- <facet name="mainvalues.q" description="mainvalues.q"/>
- <facet name="computed_discharge_curve.mainvalues.w" description="mainvalues.w"/>
+ <facet name="mainvalues.q"/>
+ <facet name="mainvalues.w"/>
<facet name="discharge_curve.curve" description="facet.discharge_curve.curve"/>
<facet name="heightmarks_points" description="facet.other.wqkms"/>
<facet name="other.wqkms" description="facet.other.wqkms"/>
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/doc/conf/artifacts/winfo.xml
--- a/artifacts/doc/conf/artifacts/winfo.xml Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/doc/conf/artifacts/winfo.xml Fri Sep 26 09:44:48 2014 +0200
@@ -298,8 +298,8 @@
<facet name="duration_curve.w" description="facet.duration_curve.w"/>
<facet name="duration_curve.q" description="facet.duration_curve.q"/>
<facet name="other.wq" description="Point-like data like fixations"/>
- <facet name="duration_curve.mainvalues.q" description="Q Main Values at optional second axis"/>
- <facet name="computed_discharge_curve.mainvalues.w" description="W Main Values"/>
+ <facet name="mainvalues.q" description="Q Main Values at optional second axis"/>
+ <facet name="mainvalues.w" description="W Main Values"/>
<facet name="duration_curve.manualpoints" description="Manuelle Punkte"/>
<facet name="relativepoint" description="Points at curve"/>
</facets>
@@ -323,8 +323,8 @@
<outputmode name="computed_discharge_curve" description="output.computed_discharge_curve" mime-type="image/png" type="chart">
<facets>
<facet name="computed_discharge_curve.q" description="facet.computed_discharge_curve.q"/>
- <facet name="computed_discharge_curve.mainvalues.q" description="facet.computed_discharge_curve.mainvalues.q"/>
- <facet name="computed_discharge_curve.mainvalues.w" description="facet.computed_discharge_curve.mainvalues.w"/>
+ <facet name="mainvalues.q" description="facet.computed_discharge_curve.mainvalues.q"/>
+ <facet name="mainvalues.w" description="facet.computed_discharge_curve.mainvalues.w"/>
<facet name="discharge_curve.curve" description="facet.discharge_curve.curve"/>
<facet name="heightmarks_points" description="facet.other.wqkms"/>
<facet name="other.wqkms.w" description="facet.other.wqkms"/>
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/doc/conf/themes.xml
--- a/artifacts/doc/conf/themes.xml Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/doc/conf/themes.xml Fri Sep 26 09:44:48 2014 +0200
@@ -150,9 +150,6 @@
<mapping from="discharge_longitudinal_section.w" to="DischargeLongitudinalSectionW" />
<mapping from="discharge_longitudinal_section.c" to="DischargeLongitudinalSectionC" />
<mapping from="discharge_longitudinal_section.q" to="DischargeLongitudinalSectionQ" />
- <mapping from="computed_discharge_curve.mainvalues.q" to="MainValuesQVerticalText" />
- <mapping from="computed_discharge_curve.mainvalues.w" to="MainValuesW" />
- <mapping from="duration_curve.mainvalues.q" to="MainValuesQ" />
<mapping from="mainvalues.q" to="MainValuesQ" />
<mapping from="mainvalues.w" to="MainValuesW" />
<mapping from="longitudinal_section.annotations" to="Annotations" />
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/doc/conf/themes/default.xml
--- a/artifacts/doc/conf/themes/default.xml Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/doc/conf/themes/default.xml Fri Sep 26 09:44:48 2014 +0200
@@ -14,20 +14,6 @@
</fields>
</theme>
- <theme name="MainValuesQVerticalText">
- <inherits>
- <inherit from="Lines" />
- </inherits>
- <fields>
- <field name="linecolor" type="Color" display="Farbe"
- default="200, 0, 15" />
- <field name="textorientation" type="boolean" display="Textausrichtung"
- default="false" />
- <field name="showlinelabel" type="boolean"
- display="Linienbeschriftung anzeigen" default="false" hints="hidden" />
- </fields>
- </theme>
-
<theme name="MainValuesW">
<inherits>
<inherit from="Lines" />
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/doc/conf/themes/second.xml
--- a/artifacts/doc/conf/themes/second.xml Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/doc/conf/themes/second.xml Fri Sep 26 09:44:48 2014 +0200
@@ -14,20 +14,6 @@
</fields>
</theme>
- <theme name="MainValuesQVerticalText">
- <inherits>
- <inherit from="Lines" />
- </inherits>
- <fields>
- <field name="linecolor" type="Color" display="Farbe"
- default="200, 0, 15" />
- <field name="textorientation" type="boolean" display="Textausrichtung"
- default="false" />
- <field name="showlinelabel" type="boolean"
- display="Linienbeschriftung anzeigen" default="false" hints="hidden" />
- </fields>
- </theme>
-
<theme name="MainValuesW">
<inherits>
<inherit from="Lines" />
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/src/main/java/org/dive4elements/river/artifacts/MainValuesArtifact.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/MainValuesArtifact.java Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/MainValuesArtifact.java Fri Sep 26 09:44:48 2014 +0200
@@ -32,6 +32,7 @@
import org.dive4elements.river.model.MainValue;
import org.dive4elements.river.model.River;
+import org.dive4elements.river.artifacts.access.RiverAccess;
import org.dive4elements.river.artifacts.access.RangeAccess;
import org.dive4elements.river.artifacts.model.Calculation;
import org.dive4elements.river.artifacts.model.FacetTypes;
@@ -44,8 +45,6 @@
import org.dive4elements.river.artifacts.states.StaticState;
import org.dive4elements.river.artifacts.resources.Resources;
-import org.dive4elements.river.utils.RiverUtils;
-
/**
* Artifact to access main and extreme values of a river.
@@ -123,58 +122,18 @@
log.debug("mainvalue restriction " + restriction);
boolean restricted = restriction.endsWith("q") || restriction.endsWith("w");
if (!restricted || restriction.endsWith("q")) {
- Facet qfacet0 = new MainValuesQFacet(
- DURATION_MAINVALUES_Q,
- Resources.getMsg(
- callMeta,
- "facet.discharge_curves.mainvalues.q"),
- false);
- Facet qfacet1 = new MainValuesQFacet(
- COMPUTED_DISCHARGE_MAINVALUES_Q,
- Resources.getMsg(
- callMeta,
- "facet.discharge_curves.mainvalues.q"),
- false);
- Facet qfacet2 = new MainValuesQFacet(
- MAINVALUES_Q,
- Resources.getMsg(
- callMeta,
- "facet.discharge_curves.mainvalues.q"),
- true);
- Facet qfacet3 = new MainValuesQFacet(
- HISTORICAL_DISCHARGE_MAINVALUES_Q,
- Resources.getMsg(
- callMeta,
- "historical_discharge.mainvalues.q"),
- false);
-
- fs.add(qfacet0);
- fs.add(qfacet1);
- fs.add(qfacet2);
- fs.add(qfacet3);
+ fs.add(new MainValuesQFacet(
+ MAINVALUES_Q,
+ Resources.getMsg(
+ callMeta,
+ "facet.discharge_curves.mainvalues.q")));
}
if (!restricted || restriction.endsWith("w")) {
- Facet wfacet1 = new MainValuesWFacet(
- COMPUTED_DISCHARGE_MAINVALUES_W,
- Resources.getMsg(
- callMeta,
- "facet.discharge_curves.mainvalues.w"),
- false);
- Facet wfacet2 = new MainValuesWFacet(
- MAINVALUES_W,
- Resources.getMsg(
- callMeta,
- "facet.discharge_curves.mainvalues.w"),
- true);
- Facet wfacet3 = new MainValuesWFacet(
- HISTORICAL_DISCHARGE_MAINVALUES_W,
- Resources.getMsg(
- callMeta,
- "historical_discharge.mainvalues.w"),
- true);
- fs.add(wfacet1);
- fs.add(wfacet2);
- fs.add(wfacet3);
+ fs.add(new MainValuesWFacet(
+ MAINVALUES_W,
+ Resources.getMsg(
+ callMeta,
+ "facet.discharge_curves.mainvalues.w")));
}
}
@@ -238,8 +197,8 @@
protected void initialize(Artifact artifact, Object context, CallMeta meta) {
log.debug("MainValuesArtifact.initialize");
D4EArtifact winfo = (D4EArtifact) artifact;
- RangeAccess rangeAccess = new RangeAccess(winfo);
- double [] locations = rangeAccess.getKmRange();
+ River river = new RiverAccess(winfo).getRiver();
+ double [] locations = new RangeAccess(winfo).getKmRange();
if (locations != null) {
double location = locations[0];
@@ -320,7 +279,7 @@
* invalid parameterization.
*/
protected Gauge getGauge(double km) {
- River river = RiverUtils.getRiver(this);
+ River river = new RiverAccess((D4EArtifact)this).getRiver();
if (river == null) {
log.error("River is null");
@@ -331,33 +290,6 @@
}
/**
- * Access the Gauge that the mainvalues are taken from.
- * @return Gauge that main values are taken from or null in case of
- * invalid parameterization.
- */
- protected Gauge getGauge() {
- River river = RiverUtils.getRiver(this);
-
- // TODO use helper to get location as double
- String locationStr = getDataAsString("ld_locations");
-
- if (river == null) {
- log.error("River is null");
- return null;
- }
-
- if (locationStr == null) {
- log.error("Locationstr is null");
- return null;
- }
-
- double location = Double.parseDouble(locationStr);
-
- return river.determineGaugeByPosition(location);
- }
-
-
- /**
* Get current location.
* @return the location.
*/
@@ -369,24 +301,34 @@
/**
* Get a list of "Q" main values.
+ * @param Array of length 1 (isn't it lovely?) giving the station for
+ * which the main values should be returned
* @return list of Q main values.
*/
- public List<NamedDouble> getMainValuesQ(double[] kms) {
- log.debug("MainValuesArtifact.getMainValuesQ(d)");
+ public List<NamedDouble> getMainValuesQ(double[] kms, Object pnpObject) {
+ if (kms.length > 1) {
+ log.error("How did you dare to give an array of lenght >1! " +
+ "DAS GEHT GARNICHT!!!! (we'll just take the first value)");
+ }
List<NamedDouble> filteredList = new ArrayList<NamedDouble>();
- boolean atGauge = false;
Gauge gauge = getGauge(kms[0]);
- WstValueTable interpolator = WstValueTableFactory.getTable(RiverUtils.getRiver(this));
+ River river = new RiverAccess((D4EArtifact)this).getRiver();
+ WstValueTable interpolator = WstValueTableFactory.getTable(river);
Calculation c = new Calculation();
double w_out[] = {0.0f};
double q_out[] = {0.0f};
+ double pnp = Double.NaN;
+
if (gauge != null) {
double gaugeStation = gauge.getStation().doubleValue();
- atGauge = Math.abs(kms[0] - gaugeStation) < 1e-4;
List<MainValue> orig = gauge.getMainValues();
+ if (pnpObject instanceof Number) {
+ pnp = Double.valueOf(pnpObject.toString());
+ }
+
for (MainValue mv : orig) {
if (mv.getMainValue().getType().getName().equals("Q")) {
- if (atGauge) {
+ if (pnpObject instanceof Number) {
q_out[0] = mv.getValue().doubleValue();
}
else {
@@ -405,68 +347,38 @@
/**
* Get a list of "Q" main values.
- * @param atGauge whether is at gauge or needs interpolation.
* @return list of Q main values.
*/
- public List<NamedDouble> getMainValuesQ(boolean atGauge) {
- log.debug("MainValuesArtifact.getMainValuesQ(b)");
+ public List<NamedDouble> getMainValuesQ(Object pnpObject) {
+ double kms[] = {getLocation()};
+ return getMainValuesQ(kms, pnpObject);
+ }
+
+
+ public List<NamedDouble> getMainValuesW(double[] kms, Object pnpObject) {
List<NamedDouble> filteredList = new ArrayList<NamedDouble>();
- Gauge gauge = getGauge();
- WstValueTable interpolator = WstValueTableFactory.getTable(RiverUtils.getRiver(this));
+ Gauge gauge = getGauge(kms[0]);
+ River river = new RiverAccess((D4EArtifact)this).getRiver();
+ WstValueTable interpolator = WstValueTableFactory.getTable(river);
Calculation c = new Calculation();
double w_out[] = {0.0f};
double q_out[] = {0.0f};
- double kms[] = {getLocation()};
+ double pnp = Double.NaN;
+
if (gauge != null) {
double gaugeStation = gauge.getStation().doubleValue();
List<MainValue> orig = gauge.getMainValues();
+ if (pnpObject instanceof Number) {
+ pnp = Double.valueOf(pnpObject.toString());
+ }
+
for (MainValue mv : orig) {
- if (mv.getMainValue().getType().getName().equals("Q")) {
- if (atGauge) {
- q_out[0] = mv.getValue().doubleValue();
- }
- else {
- interpolator.interpolate(mv.getValue().doubleValue(),
- gaugeStation, kms, w_out, q_out, c);
- }
- filteredList.add(new NamedDouble(
+ if (pnpObject instanceof Number) {
+ if (mv.getMainValue().getType().getName().equals("W")) {
+ filteredList.add(new NamedDouble(
mv.getMainValue().getName(),
- q_out[0]
- ));
- }
- }
- }
- return filteredList;
- }
-
-
- /** Get main values of km. */
- public List<NamedDouble> getMainValuesW(double[] kms) {
- List<NamedDouble> filteredList = new ArrayList<NamedDouble>();
- boolean atGauge = false;
- double gaugeDatum = 0d;
- Gauge gauge = getGauge(kms[0]);
- if (gauge == null) {
- return filteredList;
- }
- else if (Math.abs(kms[0] - gauge.getStation().doubleValue()) < 1e-4) {
- atGauge = true;
- gaugeDatum = gauge.getDatum().doubleValue();
- }
-
- WstValueTable interpolator = WstValueTableFactory.getTable(RiverUtils.getRiver(this));
- Calculation c = new Calculation();
-
- double gaugeStation = gauge.getStation().doubleValue();
- double w_out[] = {0.0f};
- double q_out[] = {0.0f};
- if (gauge != null) {
- List<MainValue> orig = gauge.getMainValues();
- for (MainValue mv : orig) {
- if (atGauge) {
- if (mv.getMainValue().getType().getName().equals("W")) {
- filteredList.add(new NamedDouble(mv.getMainValue().getName(),
- mv.getValue().doubleValue()));
+ mv.getValue().doubleValue()/100 + pnp
+ ));
}
} else
// We cannot interpolate the W values, so derive them
@@ -486,48 +398,12 @@
}
- public List<NamedDouble> getMainValuesW(boolean atGauge, double[] kms) {
- List<NamedDouble> filteredList = new ArrayList<NamedDouble>();
- Gauge gauge = getGauge();
- WstValueTable interpolator = WstValueTableFactory.getTable(RiverUtils.getRiver(this));
- Calculation c = new Calculation();
-
- double w_out[] = {0.0f};
- double q_out[] = {0.0f};
- if (gauge != null) {
- double gaugeStation = gauge.getStation().doubleValue();
- List<MainValue> orig = gauge.getMainValues();
- for (MainValue mv : orig) {
- if (atGauge) {
- if (mv.getMainValue().getType().getName().equals("W")) {
- filteredList.add(new NamedDouble(mv.getMainValue().getName(),
- mv.getValue().doubleValue()));
-
- }
- } else
- // We cannot interpolate the W values, so derive them
- // from given Q values.
- if (mv.getMainValue().getType().getName().equals("Q")) {
- interpolator.interpolate(mv.getValue().doubleValue(),
- gaugeStation, kms, w_out, q_out, c);
- filteredList.add(new NamedDouble(
- "W(" + mv.getMainValue().getName() +")",
- w_out[0]
- ));
- }
- }
- }
- return filteredList;
- }
-
-
/**
* Get a list of "W" main values.
- * @param atGauge if true, do not interpolate
* @return list of W main values.
*/
- public List<NamedDouble> getMainValuesW(boolean atGauge) {
- return getMainValuesW(atGauge, new double[] {getLocation()});
+ public List<NamedDouble> getMainValuesW(Object pnpObject) {
+ return getMainValuesW(new double[] {getLocation()}, pnpObject);
}
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/src/main/java/org/dive4elements/river/artifacts/WINFOArtifact.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/WINFOArtifact.java Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/WINFOArtifact.java Fri Sep 26 09:44:48 2014 +0200
@@ -91,8 +91,6 @@
private static final String [] INACTIVES = new String[] {
LONGITUDINAL_Q,
DURATION_Q,
- HISTORICAL_DISCHARGE_MAINVALUES_W,
- HISTORICAL_DISCHARGE_MAINVALUES_Q,
STATIC_WQKMS_Q
};
@@ -108,9 +106,7 @@
String outputName
) {
String fname = facet.getName();
- if ((fname.equals(COMPUTED_DISCHARGE_MAINVALUES_Q)
- || fname.equals(COMPUTED_DISCHARGE_MAINVALUES_W)
- || fname.equals(MAINVALUES_Q)
+ if ((fname.equals(MAINVALUES_Q)
|| fname.equals(MAINVALUES_W))
&& outputName.equals("computed_discharge_curve"))
{
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java Fri Sep 26 09:44:48 2014 +0200
@@ -241,8 +241,6 @@
String W_DIFFERENCES_FILTERED = "w_differences.filtered";
String COMPUTED_DISCHARGE_Q = "computed_discharge_curve.q";
- String COMPUTED_DISCHARGE_MAINVALUES_Q = "computed_discharge_curve.mainvalues.q";
- String COMPUTED_DISCHARGE_MAINVALUES_W = "computed_discharge_curve.mainvalues.w";
String MAINVALUES_Q = "mainvalues.q";
String MAINVALUES_W = "mainvalues.w";
@@ -258,7 +256,6 @@
String DURATION_W = "duration_curve.w";
String DURATION_Q = "duration_curve.q";
- String DURATION_MAINVALUES_Q = "duration_curve.mainvalues.q";
String MANUALPOINTS = "manualpoints";
String MANUALLINE = "manualline";
@@ -293,8 +290,6 @@
String HISTORICAL_DISCHARGE_WQ_Q = "historical_discharge.wq.q";
String HISTORICAL_DISCHARGE_WQ_W = "historical_discharge.wq.w";
String HISTORICAL_DISCHARGE_WQ_CURVE = "historical_discharge.wq.curve";
- String HISTORICAL_DISCHARGE_MAINVALUES_Q = "historical_discharge.mainvalues.q";
- String HISTORICAL_DISCHARGE_MAINVALUES_W = "historical_discharge.mainvalues.w";
String REFERENCE_CURVE = "reference_curve";
String REFERENCE_CURVE_NORMALIZED = "reference_curve_normalized";
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/src/main/java/org/dive4elements/river/artifacts/model/MainValuesQFacet.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/MainValuesQFacet.java Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/MainValuesQFacet.java Fri Sep 26 09:44:48 2014 +0200
@@ -22,10 +22,13 @@
import org.dive4elements.river.artifacts.MainValuesArtifact;
import org.dive4elements.river.jfree.RiverAnnotation;
import org.dive4elements.river.jfree.StickyAxisAnnotation;
+import org.dive4elements.river.jfree.StickyAxisAnnotation.SimpleAxis;
import org.dive4elements.river.exports.DurationCurveGenerator;
import org.dive4elements.river.exports.fixings.FixChartGenerator;
+import static org.dive4elements.river.exports.injector.InjectorConstants.PNP;
+
/**
* Facet to show Main Q Values.
@@ -38,16 +41,11 @@
/** Own log. */
private static Logger log = Logger.getLogger(MainValuesQFacet.class);
- /** Do we want MainValues at Gauge (not interpolated)? */
- protected boolean isAtGauge;
-
-
/** Trivial Constructor. */
- public MainValuesQFacet(String name, String description, boolean atGauge) {
+ public MainValuesQFacet(String name, String description) {
this.description = description;
this.name = name;
this.index = 0;
- this.isAtGauge = atGauge;
}
/**
@@ -82,23 +80,24 @@
public Object getData(Artifact artifact, CallContext context) {
MainValuesArtifact mvArtifact = (MainValuesArtifact) artifact;
- List<NamedDouble> qs = mvArtifact.getMainValuesQ(isAtGauge);
+ List<NamedDouble> qs = mvArtifact.getMainValuesQ(
+ context.getContextValue(PNP));
List<StickyAxisAnnotation> xy = new ArrayList<StickyAxisAnnotation>();
+ // Find whether a duration curve is on the blackboard.
WQDay wqdays = null;
List<DataProvider> providers = context.
getDataProvider(DurationCurveFacet.BB_DURATIONCURVE);
if (providers.size() < 1) {
- log.warn("Could not find durationcurve data provider.");
// Do we have a current km in context?
// If so, we are likely fetching data for a navigable
// diagram (i.e. in fixation branch).
Object xkm = context.getContextValue(FixChartGenerator.CURRENT_KM);
if (xkm != null) {
Double ckm = (Double)xkm;
- // Return linearly interpolated values, in m if not at gauge,
- // in cm if at gauge.
- qs = mvArtifact.getMainValuesQ(new double[] {ckm});
+ qs = mvArtifact.getMainValuesQ(
+ new double[] {ckm},
+ context.getContextValue(PNP));
}
}
else {
@@ -110,39 +109,31 @@
// Rather specific case, Q-Annotations at a maybe second yaxis.
StickyAxisAnnotation annotation = null;
- if (this.name.equals(DURATION_MAINVALUES_Q)) {
- for (NamedDouble q: qs) {
- if (Double.isNaN(q.getValue())) {
- log.warn("NaN MainValue " + q.getName());
- continue;
- }
- annotation =
- new StickyAxisAnnotation(
- q.getName(),
- (float) q.getValue(),
- StickyAxisAnnotation.SimpleAxis.Y_AXIS,
- DurationCurveGenerator.YAXIS.Q.idx);
- xy.add(annotation);
- if (wqdays != null) {
- setHitPoint(wqdays, annotation);
- }
+
+ // defaults if not drawing a duration curve
+ SimpleAxis axis = SimpleAxis.X_AXIS;
+ int axisSymbol = 0;
+
+ if (providers.size() >= 1) {
+ // for duration curve, overwrite previously given default
+ axis = SimpleAxis.Y_AXIS;
+ axisSymbol = DurationCurveGenerator.YAXIS.Q.idx;
+ }
+
+ for (NamedDouble q: qs) {
+ if (Double.isNaN(q.getValue())) {
+ log.warn("NaN MainValue " + q.getName());
+ continue;
}
- }
- else {
- for (NamedDouble q: qs) {
- if (Double.isNaN(q.getValue())) {
- log.warn("NaN MainValue " + q.getName());
- continue;
- }
- annotation =
- new StickyAxisAnnotation(
- q.getName(),
- (float) q.getValue(),
- StickyAxisAnnotation.SimpleAxis.X_AXIS);
- xy.add(annotation);
- if (wqdays != null) {
- setHitPoint(wqdays, annotation);
- }
+ annotation =
+ new StickyAxisAnnotation(
+ q.getName(),
+ (float) q.getValue(),
+ axis,
+ axisSymbol);
+ xy.add(annotation);
+ if (wqdays != null) {
+ setHitPoint(wqdays, annotation);
}
}
@@ -157,7 +148,7 @@
@Override
public MainValuesQFacet deepCopy() {
MainValuesQFacet copy = new MainValuesQFacet(this.name,
- description, this.isAtGauge);
+ description);
copy.set(this);
return copy;
}
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/src/main/java/org/dive4elements/river/artifacts/model/MainValuesWFacet.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/MainValuesWFacet.java Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/MainValuesWFacet.java Fri Sep 26 09:44:48 2014 +0200
@@ -24,6 +24,7 @@
import org.dive4elements.river.jfree.StickyAxisAnnotation;
import org.dive4elements.river.exports.fixings.FixChartGenerator;
+import static org.dive4elements.river.exports.injector.InjectorConstants.PNP;
/**
* Facet to show Main W Values.
@@ -35,15 +36,11 @@
/** Own log. */
private static Logger log = Logger.getLogger(MainValuesWFacet.class);
- /** Do we want MainValues at Gauge (not interpolated)? */
- protected boolean isAtGauge;
-
/** Trivial Constructor. */
- public MainValuesWFacet(String name, String description, boolean atGauge) {
+ public MainValuesWFacet(String name, String description) {
this.description = description;
this.name = name;
this.index = 0;
- this.isAtGauge = atGauge;
}
@@ -79,7 +76,8 @@
public Object getData(Artifact artifact, CallContext context) {
MainValuesArtifact mvArtifact = (MainValuesArtifact) artifact;
- List<NamedDouble> ws = mvArtifact.getMainValuesW(isAtGauge);
+ List<NamedDouble> ws = mvArtifact.getMainValuesW(
+ context.getContextValue(PNP));
List<StickyAxisAnnotation> xy = new ArrayList<StickyAxisAnnotation>();
// Find whether a duration curve is on the blackboard.
@@ -87,16 +85,18 @@
List<DataProvider> providers = context.
getDataProvider(DurationCurveFacet.BB_DURATIONCURVE);
if (providers.size() < 1) {
- log.warn("Could not find durationcurve data provider.");
// Do we have a current km in context?
// If so, we are likely fetching data for a navigable
// diagram (i.e. in fixation branch).
Object xkm = context.getContextValue(FixChartGenerator.CURRENT_KM);
if (xkm != null) {
Double ckm = (Double)xkm;
- // Return linearly interpolated values, in m if not at gauge,
- // in cm over datum if at gauge.
- ws = mvArtifact.getMainValuesW(new double[] {ckm});
+ // Return linearly interpolated values. Always in m, as
+ // cm over datum ist represented by a second axis.
+ ws = mvArtifact.getMainValuesW(
+ new double[] {ckm},
+ context.getContextValue(PNP)
+ );
}
}
else {
@@ -107,7 +107,6 @@
}
for (NamedDouble w: ws) {
- log.debug("W Annotation at " + w.getValue() + " ("+w.getName()+")"+ wqdays);
if (Double.isNaN(w.getValue())) {
log.warn("NaN MainValue " + w.getName());
continue;
@@ -134,7 +133,7 @@
@Override
public MainValuesWFacet deepCopy() {
MainValuesWFacet copy = new MainValuesWFacet(this.name,
- description, this.isAtGauge);
+ description);
copy.set(this);
return copy;
}
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/src/main/java/org/dive4elements/river/exports/DurationCurveGenerator.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/DurationCurveGenerator.java Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/DurationCurveGenerator.java Fri Sep 26 09:44:48 2014 +0200
@@ -197,11 +197,7 @@
attr,
visible);
}
- else if (name.equals(DURATION_MAINVALUES_Q)
- || name.equals(MAINVALUES_Q)
- || name.equals(COMPUTED_DISCHARGE_MAINVALUES_W)
- || name.equals(MAINVALUES_W)
- ) {
+ else if (name.equals(MAINVALUES_Q) || name.equals(MAINVALUES_W)) {
doAnnotations(
(RiverAnnotation) artifactFacet.getData(context),
artifactFacet,
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/src/main/java/org/dive4elements/river/exports/HistoricalDischargeWQCurveGenerator.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/HistoricalDischargeWQCurveGenerator.java Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/HistoricalDischargeWQCurveGenerator.java Fri Sep 26 09:44:48 2014 +0200
@@ -136,10 +136,7 @@
doPoints(artifactFacet.getData(context), artifactFacet, theme,
visible, YAXIS.W.idx);
}
- else if (name.equals(MAINVALUES_W) ||
- name.equals(MAINVALUES_Q) ||
- HISTORICAL_DISCHARGE_MAINVALUES_Q.equals(name) ||
- HISTORICAL_DISCHARGE_MAINVALUES_W.equals(name)) {
+ else if (name.equals(MAINVALUES_W) || name.equals(MAINVALUES_Q)) {
doAnnotations((RiverAnnotation)
artifactFacet.getData(context), artifactFacet, theme, visible);
}
diff -r e87a993c6611 -r 27d42c9ee367 artifacts/src/main/java/org/dive4elements/river/exports/process/MiscDischargeProcessor.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/MiscDischargeProcessor.java Fri Sep 26 08:40:20 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/MiscDischargeProcessor.java Fri Sep 26 09:44:48 2014 +0200
@@ -242,15 +242,11 @@
@Override
public boolean canHandle(String facetType) {
return STATIC_WQKMS_W.equals(facetType)
- || COMPUTED_DISCHARGE_MAINVALUES_Q.equals(facetType)
|| MAINVALUES_Q.equals(facetType)
- || COMPUTED_DISCHARGE_MAINVALUES_W.equals(facetType)
|| MAINVALUES_W.equals(facetType)
|| STATIC_W_INTERPOL.equals(facetType)
|| STATIC_WQ.equals(facetType)
|| STATIC_WQ_ANNOTATIONS.equals(facetType)
- || HISTORICAL_DISCHARGE_MAINVALUES_Q.equals(facetType)
- || HISTORICAL_DISCHARGE_MAINVALUES_W.equals(facetType)
|| HISTORICAL_DISCHARGE_WQ_W.equals(facetType)
|| HISTORICAL_DISCHARGE_WQ_Q.equals(facetType);
}
More information about the Dive4Elements-commits
mailing list