changeset 8314:5294660df81b

merged.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 24 Sep 2014 12:02:37 +0200
parents e3a63d9c5bb1 (current diff) e3a8aa6eee32 (diff)
children d4c501d2c098
files
diffstat 6 files changed, 332 insertions(+), 342 deletions(-) [+]
line wrap: on
line diff
--- a/artifacts/doc/conf/generators/discharge-diagram-defaults.xml	Wed Sep 24 12:02:05 2014 +0200
+++ b/artifacts/doc/conf/generators/discharge-diagram-defaults.xml	Wed Sep 24 12:02:37 2014 +0200
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <discharge-defaults>
     <axis name="W"/>
+    <axis name="Transport" logarithmic="true"/>
     <domain-axis key="chart.discharge.xaxis.label" default="Q [kubikmeter]"/>
     <processor class="org.dive4elements.river.exports.process.DischargeProcessor" axis="W"/>
     <processor class="org.dive4elements.river.exports.process.MiscDischargeProcessor" axis="W"/>
@@ -8,4 +9,5 @@
     <processor class="org.dive4elements.river.exports.process.HistoricalDischargeProcessor" axis="W"/>
     <processor class="org.dive4elements.river.exports.process.FixWQProcessor" axis="W"/>
     <processor class="org.dive4elements.river.exports.process.FixDerivedProcessor" axis="W"/>
+    <processor class="org.dive4elements.river.exports.process.SQRelationProcessor" axis="Transport"/>
 </discharge-defaults>
--- a/artifacts/doc/conf/generators/sqrelation-diagram-defaults.xml	Wed Sep 24 12:02:05 2014 +0200
+++ b/artifacts/doc/conf/generators/sqrelation-diagram-defaults.xml	Wed Sep 24 12:02:37 2014 +0200
@@ -1,8 +1,15 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <sqrelation-defaults>
     <axis name="Transport" logarithmic="true"/>
+    <axis name="W"/>
     <domain-axis key="chart.sq_relation.xaxis.label" default="" logarithmic="true"/>
     <processor class="org.dive4elements.river.exports.process.SQRelationProcessor" axis="Transport"/>
+    <processor class="org.dive4elements.river.exports.process.DischargeProcessor" axis="W"/>
+    <processor class="org.dive4elements.river.exports.process.MiscDischargeProcessor" axis="W"/>
+    <processor class="org.dive4elements.river.exports.process.ComputedDischargeProcessor" axis="W"/>
+    <processor class="org.dive4elements.river.exports.process.HistoricalDischargeProcessor" axis="W"/>
+    <processor class="org.dive4elements.river.exports.process.FixWQProcessor" axis="W"/>
+    <processor class="org.dive4elements.river.exports.process.FixDerivedProcessor" axis="W"/>
     <processor class="org.dive4elements.river.exports.process.ManualPointsProcessor"
         axis="Transport"/>
     <subtitle key="chart.computed.discharge.curve.subtitle" default="-">
--- a/artifacts/doc/conf/meta-data.xml	Wed Sep 24 12:02:05 2014 +0200
+++ b/artifacts/doc/conf/meta-data.xml	Wed Sep 24 12:02:37 2014 +0200
@@ -84,7 +84,7 @@
                   <dc:when test="$out = 'computed_discharge_curve'">
                     <dc:call-macro name="mainvalues"/>
                     <dc:call-macro name="basedata_3_officials_wq"/>
-                    <dc:call-macro name="basedata_2_fixations_wqkms"/>
+                    <dc:call-macro name="basedata_2_fixations_wq"/>
                   </dc:when>
                   <dc:when test="$out = 'fix_wq_curve'">
                     <dc:call-macro name="mainvalues"/>
@@ -182,35 +182,19 @@
                   <dc:comment> Discharge curves </dc:comment>
                   <dc:when test="$out = 'historical_discharge_wq'">
                     <dc:call-macro name="discharge-curve-prototype"/>
-                    <dc:call-macro name="basedata_5_flood-protections"/>
-                    <dc:call-macro name="basedata_0"/>
-                    <dc:call-macro name="basedata_1_additionals"/>
-                    <dc:call-macro name="basedata_4_heightmarks-points"/>
-                    <computed_discharge_curve>
-                      <dc:call-macro name="mainvalues"/>
-                    </computed_discharge_curve>
                   </dc:when>
                   <dc:when test="$out = 'discharge_curve'">
-                    <dc:call-macro name="discharge-prototype"/>
-                    <computed_discharge_curve>
-                      <dc:call-macro name="mainvalues"/>
-                    </computed_discharge_curve>
+                    <dc:call-macro name="discharge-curve-prototype"/>
                   </dc:when>
                   <dc:when test="$out = 'fix_wq_curve'">
-                    <dc:call-macro name="discharge-prototype"/>
+                    <dc:call-macro name="discharge-curve-prototype"/>
                   </dc:when>
                   <dc:when test="$out = 'computed_discharge_curve'">
                     <dc:call-macro name="discharge-curve-prototype"/>
-                    <dc:call-macro name="basedata_0_wq"/>
-                    <dc:call-macro name="basedata_1_additionals_wq"/>
-                    <dc:call-macro name="basedata_5_flood-protections"/>
-                    <computed_discharge_curve>
-                      <dc:call-macro name="mainvalues"/>
-                    </computed_discharge_curve>
                   </dc:when>
                   <dc:when test="starts-with($out, 'sq_relation') or
                                  $out = 'sq_overview'">
-                    <dc:call-macro name="sqrelations"/>
+                    <dc:call-macro name="discharge-curve-prototype"/>
                   </dc:when>
                   <dc:comment> Cross sections </dc:comment>
                   <dc:when test="$out = 'cross_section'">
@@ -478,7 +462,6 @@
 
 
     <dc:macro name="historical_discharge_curve">
-      <dc:variable name="refgauge" type="number" expr="$reference_gauge"/>
       <dc:context>
         <dc:statement>
           SELECT g.id   AS gauge_id,
@@ -493,7 +476,7 @@
           WHERE g.river_id = ${river_id}
             AND dt.kind &lt;&gt; 0
             AND ((g.station = ${fromkm} AND g.station = ${tokm})
-              OR g.official_number = ${refgauge})
+              OR g.official_number = ${reference_gauge})
           ORDER BY start_time
         </dc:statement>
         <dc:if test="dc:has-result()">
@@ -1091,6 +1074,8 @@
         </dc:if>
       </dc:filter>
     </dc:macro>
+
+
     <!-- Macros to load system data -->
 
     <dc:macro name="annotations">
@@ -1144,6 +1129,89 @@
       </hyks>
     </dc:macro>
 
+
+    <!-- wst-data -->
+
+    <!-- model-waterlevels -->
+    <dc:macro name="basedata_0_macro">
+      <dc:filter expr="$kind = 0">
+        <dc:if test="dc:has-result()">
+          <basedata>
+            <dc:group expr="$wst_description">
+              <basedata name="{dc:group-key()}">
+                <dc:for-each>
+                  <dc:macro-body/>
+                </dc:for-each>
+              </basedata>
+            </dc:group>
+          </basedata>
+        </dc:if>
+      </dc:filter>
+    </dc:macro>
+
+    <dc:macro name="basedata_0">
+      <dc:call-macro name="basedata_0_macro">
+        <column name="{$wst_column_name}"
+                ids="base_data-wstv-{$wst_column_position}-{$wst_id}"
+                factory="staticwqkms" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <dc:macro name="basedata_0_wq">
+      <dc:call-macro name="basedata_0_macro">
+        <column name="{$wst_column_name}"
+                ids="base_data-wstv-{$wst_column_position}-{$wst_id}"
+                factory="wqinterpol" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <!-- additional longitudinal sections -->
+    <dc:macro name="basedata_1_additionals_macro">
+      <dc:filter expr="$kind=1">
+        <dc:if test="dc:has-result()">
+          <additionals>
+            <dc:group expr="dc:replace($wst_description, 'Zus.Längsschnitte/', '')">
+              <additional name="{dc:group-key()}">
+                <dc:for-each>
+                  <dc:macro-body/>
+                </dc:for-each>
+              </additional>
+            </dc:group>
+          </additionals>
+        </dc:if>
+      </dc:filter>
+    </dc:macro>
+
+    <dc:macro name="basedata_1_additionals">
+      <dc:call-macro name="basedata_1_additionals_macro">
+        <column name="{$wst_column_name}"
+                ids="additionals-wstv-{$wst_column_position}-{$wst_id}"
+                factory="staticwqkms" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <dc:macro name="basedata_1_additionals_wq">
+      <dc:call-macro name="basedata_1_additionals_macro">
+        <column name="{$wst_column_name}"
+                ids="base_data-wstv-{$wst_column_position}-{$wst_id}"
+                factory="wqinterpol" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <dc:macro name="basedata_1_additionals-relative_point">
+      <dc:call-macro name="basedata_1_additionals_macro">
+        <column name="{$wst_column_name}"
+                ids="additionals-wstv-{$wst_column_position}-{$wst_id}"
+                factory="staticwkms" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <!-- fixations -->
     <dc:macro name="fixings-macro">
       <dc:filter expr="$kind=2">
         <dc:if test="dc:has-result()">
@@ -1160,15 +1228,6 @@
       </dc:filter>
     </dc:macro>
 
-    <dc:macro name="basedata_2_fixations_wqkms">
-      <dc:call-macro name="fixings-macro">
-        <column name="{$wst_column_name}"
-                ids="fixations-wstv-{$wst_column_position}-{$wst_id}"
-                factory="wqinterpol" target_out="{$out}"
-                info="{$info} [km {$deffrom} - {$defto}]"/>
-      </dc:call-macro>
-    </dc:macro>
-
     <dc:macro name="basedata_2_fixations">
       <dc:call-macro name="fixings-macro">
         <column name="{$wst_column_name}"
@@ -1178,38 +1237,33 @@
       </dc:call-macro>
     </dc:macro>
 
-    <dc:macro name="basedata_3_officials">
+    <dc:macro name="basedata_2_fixations_wq">
+      <dc:call-macro name="fixings-macro">
+        <column name="{$wst_column_name}"
+                ids="fixations-wstv-{$wst_column_position}-{$wst_id}"
+                factory="wqinterpol" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <dc:macro name="basedata_2_fixations_relative_point">
+      <dc:call-macro name="fixings-macro">
+        <column name="{$wst_column_name}"
+                ids="fixations-wstv-{$wst_column_position}-{$wst_id}"
+                factory="staticwkms" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <!-- official lines -->
+    <dc:macro name="basedata_3_macro">
       <dc:filter expr="$kind=3">
         <dc:if test="dc:has-result()">
           <officiallines>
             <dc:group expr="$wst_description">
               <official name="{dc:group-key()}">
                 <dc:for-each>
-                  <column name="{$wst_column_name}"
-                          ids="additionals-wstv-{$wst_column_position}-{$wst_id}"
-                          factory="staticwqkms"
-                          target_out="{$out}"
-                          info="{$info} [km {$deffrom} - {$defto}]"/>
-                </dc:for-each>
-              </official>
-            </dc:group>
-          </officiallines>
-        </dc:if>
-      </dc:filter>
-    </dc:macro>
-
-    <dc:macro name="basedata_3_officials_wq">
-      <dc:filter expr="$kind=3">
-        <dc:if test="dc:has-result()">
-          <officiallines>
-            <dc:group expr="$wst_description">
-              <official name="{dc:group-key()}">
-                <dc:for-each>
-                  <column name="{$wst_column_name}"
-                          ids="officials_wq-wstv-{$wst_column_position}-{$wst_id}"
-                          factory="wqinterpol"
-                          target_out="{$out}"
-                          info="{$info} [km {$deffrom} - {$defto}]"/>
+                  <dc:macro-body/>
                 </dc:for-each>
               </official>
             </dc:group>
@@ -1218,17 +1272,35 @@
       </dc:filter>
     </dc:macro>
 
-    <dc:macro name="basedata_4_heightmarks-points">
+    <dc:macro name="basedata_3_officials">
+      <dc:call-macro name="basedata_3_macro">
+        <column name="{$wst_column_name}"
+                ids="additionals-wstv-{$wst_column_position}-{$wst_id}"
+                factory="staticwqkms"
+                target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <dc:macro name="basedata_3_officials_wq">
+      <dc:call-macro name="basedata_3_macro">
+        <column name="{$wst_column_name}"
+                ids="officials_wq-wstv-{$wst_column_position}-{$wst_id}"
+                factory="wqinterpol"
+                target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <!-- flood marks -->
+    <dc:macro name="basedata_4_macro">
       <dc:filter expr="$kind=4">
         <dc:if test="dc:has-result()">
           <heightmarks>
             <dc:group expr="dc:replace($wst_description, 'HW-Marken/', '')">
               <heightmark name="{dc:group-key()}">
                 <dc:for-each>
-                  <column name="{$wst_column_name}"
-                          ids="heightmarks_points-wstv-{$wst_column_position}-{$wst_id}"
-                          factory="staticwkms" target_out="{$out}"
-                          info="{$info} [km {$deffrom} - {$defto}]"/>
+                  <dc:macro-body/>
                 </dc:for-each>
               </heightmark>
             </dc:group>
@@ -1237,32 +1309,170 @@
       </dc:filter>
     </dc:macro>
 
+    <dc:macro name="basedata_4_heightmarks-points">
+      <dc:call-macro name="basedata_4_macro">
+        <column name="{$wst_column_name}"
+                ids="heightmarks_points-wstv-{$wst_column_position}-{$wst_id}"
+                factory="staticwkms" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <dc:macro name="basedata_4_heightmarks-points_wq">
+      <dc:call-macro name="basedata_4_macro">
+        <column name="{$wst_column_name}"
+                ids="heightmarks_points-wstv-{$wst_column_position}-{$wst_id}"
+                factory="wqinterpol" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
     <dc:macro name="basedata_4_heightmarks-points-relative_points">
-      <dc:filter expr="$kind=4">
+      <dc:call-macro name="basedata_4_macro">
+        <column name="{$wst_column_name}"
+                ids="heightmarks_points-wstv-{$wst_column_position}-{$wst_id}"
+                factory="staticwkms" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <!-- flood protection structures -->
+    <dc:macro name="basedata_5_macro">
+      <dc:filter expr="$kind=5">
         <dc:if test="dc:has-result()">
-          <heightmarks>
-            <dc:group expr="dc:replace($wst_description, 'HW-Marken/', '')">
-              <relativepoint name="{dc:group-key()}">
+          <flood_protections>
+            <dc:group expr="dc:replace($wst_description, 'HW-Schutzanlagen/', '')">
+              <flood_protection name="{dc:group-key()}">
                 <dc:for-each>
-                  <column name="{$wst_column_name}"
-                          ids="heightmarks_points-wstv-{$wst_column_position}-{$wst_id}"
-                          factory="staticwkms" target_out="{$out}"
-                          info="{$info} [km {$deffrom} - {$defto}]"/>
+                  <dc:macro-body/>
                 </dc:for-each>
-              </relativepoint>
+              </flood_protection>
             </dc:group>
-          </heightmarks>
+          </flood_protections>
         </dc:if>
       </dc:filter>
     </dc:macro>
 
+    <dc:macro name="basedata_5_flood-protections">
+      <dc:call-macro name="basedata_5_macro">
+        <column name="{$wst_column_name}"
+                ids="flood_protection-wstv-{$wst_column_position}-{$wst_id}"
+                factory="staticwkms" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <dc:macro name="basedata_5_flood-protections_wq">
+      <dc:call-macro name="basedata_5_macro">
+        <column name="{$wst_column_name}"
+                ids="flood_protection-wstv-{$wst_column_position}-{$wst_id}"
+                factory="wqinterpol" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <dc:macro name="basedata_5_flood-protections_relative_points">
+      <dc:call-macro name="basedata_5_macro">
+        <column name="{$wst_column_name}"
+                ids="flood_protection-wstv-{$wst_column_position}-{$wst_id}"
+                factory="staticwkms" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <!-- waterlevel differences imported from CSV-files for M-INFO -->
+    <dc:macro name="basedata_6_delta_w">
+      <dc:filter expr="$kind=6">
+        <dc:if test="dc:has-result()">
+          <delta_w>
+            <delta_w_cm>
+              <dc:filter expr="contains($wst_description, 'cm.csv')">
+                <dc:group expr="dc:replace($wst_description, 'CSV/', '')">
+                  <relativepoint name="{dc:group-key()}">
+                    <dc:for-each>
+                      <column name="{$wst_column_name}"
+                              ids="delta_w-wstv-{$wst_column_position}-{$wst_id}"
+                              factory="staticwkms"
+                              target_out="{$out}"
+                              info="{$info} [km {$deffrom} - {$defto}]"/>
+                    </dc:for-each>
+                  </relativepoint>
+                </dc:group>
+              </dc:filter>
+            </delta_w_cm>
+            <delta_w_cma>
+              <dc:filter expr="contains($wst_description, 'cm-a.csv')">
+                <dc:group expr="dc:replace($wst_description, 'CSV/', '')">
+                  <relativepoint name="{dc:group-key()}">
+                    <dc:for-each>
+                      <column name="{$wst_column_name}"
+                              ids="delta_w_cma-wstv-{$wst_column_position}-{$wst_id}"
+                              factory="staticwkms" target_out="{$out}"
+                              info="{$info} [km {$deffrom} - {$defto}]"/>
+                    </dc:for-each>
+                  </relativepoint>
+                </dc:group>
+              </dc:filter>
+            </delta_w_cma>
+          </delta_w>
+        </dc:if>
+      </dc:filter>
+    </dc:macro>
+
+    <!-- waterlevels imported from CSV-files for M-INFO -->
+    <dc:macro name="basedata_7_macro">
+      <dc:filter expr="$kind=7">
+        <dc:if test="dc:has-result()">
+          <wlevel>
+            <dc:group expr="dc:replace($wst_description, 'CSV/', '')">
+              <relativepoint name="{dc:group-key()}">
+                <dc:for-each>
+                  <dc:macro-body/>
+                </dc:for-each>
+              </relativepoint>
+            </dc:group>
+          </wlevel>
+        </dc:if>
+      </dc:filter>
+    </dc:macro>
+
+    <dc:macro name="basedata_7_waterlevels">
+      <dc:call-macro name="basedata_7_macro">
+        <column name="{$wst_column_name}"
+                ids="additionals-wstv-{$wst_column_position}-{$wst_id}"
+                factory="staticwqkms" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+    <dc:macro name="basedata_7_waterlevels_wq">
+      <dc:call-macro name="basedata_7_macro">
+        <column name="{$wst_column_name}"
+                ids="additionals-wstv-{$wst_column_position}-{$wst_id}"
+                factory="wqinterpol" target_out="{$out}"
+                info="{$info} [km {$deffrom} - {$defto}]"/>
+      </dc:call-macro>
+    </dc:macro>
+
+
+    <!-- prototypes -->
+
     <dc:macro name="discharge-curve-prototype">
-        <dc:call-macro name="discharge_table_gauge"/>
+        <computed_discharge_curve>
+          <dc:call-macro name="discharge_table_gauge"/>
+          <dc:call-macro name="mainvalues"/>
+        </computed_discharge_curve>
         <dc:call-macro name="historical_discharge_curve"/>
         <dc:call-macro name="basedata_0_wq"/>
+        <dc:call-macro name="basedata_1_additionals_wq"/>
+        <dc:call-macro name="basedata_2_fixations_wq"/>
         <dc:call-macro name="basedata_3_officials_wq"/>
-        <dc:call-macro name="basedata_2_fixations_wqkms"/>
-        <dc:call-macro name="basedata_4_heightmarks-points"/>
+        <dc:call-macro name="basedata_4_heightmarks-points_wq"/>
+        <dc:call-macro name="basedata_5_flood-protections_wq"/>
+        <minfo>
+          <dc:call-macro name="sqrelations"/>
+          <dc:call-macro name="basedata_7_waterlevels_wq"/>
+        </minfo>
     </dc:macro>
 
     <dc:macro name="longitudinal-section-prototype">
@@ -1306,25 +1516,8 @@
       <dc:call-macro name="sediment-load"/>
     </dc:macro>
 
-    <dc:macro name="discharge-prototype">
-      <dc:call-macro name="discharge-curve-prototype"/>
-      <dc:call-macro name="basedata_5_flood-protections"/>
-      <dc:call-macro name="basedata_0"/>
-      <dc:call-macro name="basedata_1_additionals"/>
-      <dc:call-macro name="basedata_1_additionals_marks"/>
-      <dc:call-macro name="basedata_4_heightmarks-points"/>
-      <dc:call-macro name="basedata_1_additionals-relative_point"/>
-      <dc:call-macro name="basedata_2_fixations_relative_point"/>
-      <dc:call-macro name="basedata_4_heightmarks-points-relative_points"/>
-      <dc:call-macro name="basedata_5_flood-protections_relative_points"/>
-      <dc:call-macro name="mainvalues"/>
-      <dc:call-macro name="annotations"/>
 
-      <computed_discharge_curve>
-        <dc:call-macro name="mainvalues"/>
-      </computed_discharge_curve>
-    </dc:macro>
-
+    <!-- porosities -->
     <dc:macro name="porosities">
       <porosities>
       <dc:context>
@@ -1390,6 +1583,7 @@
       </densities>
     </dc:macro>
 
+    <!-- sediment load -->
     <dc:macro name="load">
       <year description="{$timespan}"
             factory="sedimentload"
@@ -1543,26 +1737,7 @@
       </sedimentloads>
     </dc:macro>
 
-
-    <dc:macro name="basedata_5_flood-protections">
-      <dc:filter expr="$kind=5">
-        <dc:if test="dc:has-result()">
-          <flood_protections>
-            <dc:group expr="dc:replace($wst_description, 'HW-Schutzanlagen/', '')">
-              <flood_protection name="{dc:group-key()}">
-                <dc:for-each>
-                  <column name="{$wst_column_name}"
-                          ids="flood_protection-wstv-{$wst_column_position}-{$wst_id}"
-                          factory="staticwkms" target_out="{$out}"
-                          info="{$info} [km {$deffrom} - {$defto}]"/>
-                </dc:for-each>
-              </flood_protection>
-            </dc:group>
-          </flood_protections>
-        </dc:if>
-      </dc:filter>
-    </dc:macro>
-
+    <!-- annotations -->
     <dc:macro name="annotations_per_type">
       <annotations>
         <dc:context>
@@ -1599,122 +1774,6 @@
       </sources_sinks>
     </dc:macro>
 
-    <dc:macro name="basedata_2_fixations_relative_point">
-      <dc:filter expr="$kind=2">
-        <dc:if test="dc:has-result()">
-          <fixations>
-            <dc:group expr="dc:replace($wst_description, 'Fixierungen/', '')">
-              <relativepoint name="{dc:group-key()}">
-                <dc:for-each>
-                  <column name="{$wst_column_name}"
-                          ids="fixations-wstv-{$wst_column_position}-{$wst_id}"
-                          factory="staticwkms" target_out="{$out}"
-                          info="{$info} [km {$deffrom} - {$defto}]"/>
-                </dc:for-each>
-              </relativepoint>
-            </dc:group>
-          </fixations>
-        </dc:if>
-      </dc:filter>
-    </dc:macro>
-
-    <dc:macro name="basedata_5_flood-protections_relative_points">
-      <dc:filter expr="$kind=5">
-        <dc:if test="dc:has-result()">
-          <flood_protections>
-            <dc:group expr="$wst_description">
-              <relativepoint name="{dc:group-key()}">
-                <dc:for-each>
-                  <column name="{$wst_column_name}"
-                          ids="flood_protection-wstv-{$wst_column_position}-{$wst_id}"
-                          factory="staticwkms" target_out="{$out}"
-                          info="{$info} [km {$deffrom} - {$defto}]"/>
-                </dc:for-each>
-              </relativepoint>
-            </dc:group>
-          </flood_protections>
-        </dc:if>
-      </dc:filter>
-    </dc:macro>
-
-    <dc:macro name="basedata_1_additionals-relative_point">
-      <dc:filter expr="$kind=1">
-        <dc:if test="dc:has-result()">
-          <additionals>
-            <dc:group expr="$wst_description">
-              <relativepoint name="{dc:group-key()}">
-                <dc:for-each>
-                  <column name="{$wst_column_name}"
-                          ids="additionals-wstv-{$wst_column_position}-{$wst_id}"
-                          factory="staticwkms" target_out="{$out}"
-                          info="{$info} [km {$deffrom} - {$defto}]"/>
-                </dc:for-each>
-              </relativepoint>
-            </dc:group>
-          </additionals>
-        </dc:if>
-      </dc:filter>
-    </dc:macro>
-
-
-    <dc:macro name="basedata_7_waterlevels">
-      <dc:filter expr="$kind=7">
-        <dc:if test="dc:has-result()">
-          <wlevel>
-            <dc:group expr="dc:replace($wst_description, 'CSV/', '')">
-              <relativepoint name="{dc:group-key()}">
-                <dc:for-each>
-                  <column name="{$wst_column_name}"
-                          ids="additionals-wstv-{$wst_column_position}-{$wst_id}"
-                          factory="staticwqkms" target_out="{$out}"
-                          info="{$info} [km {$deffrom} - {$defto}]"/>
-                </dc:for-each>
-              </relativepoint>
-            </dc:group>
-          </wlevel>
-        </dc:if>
-      </dc:filter>
-    </dc:macro>
-
-
-    <dc:macro name="basedata_6_delta_w">
-      <dc:filter expr="$kind=6">
-        <dc:if test="dc:has-result()">
-          <delta_w>
-            <delta_w_cm>
-              <dc:filter expr="contains($wst_description, 'cm.csv')">
-                <dc:group expr="dc:replace($wst_description, 'CSV/', '')">
-                  <relativepoint name="{dc:group-key()}">
-                    <dc:for-each>
-                      <column name="{$wst_column_name}"
-                              ids="delta_w-wstv-{$wst_column_position}-{$wst_id}"
-                              factory="staticwkms"
-                              target_out="{$out}"
-                              info="{$info} [km {$deffrom} - {$defto}]"/>
-                    </dc:for-each>
-                  </relativepoint>
-                </dc:group>
-              </dc:filter>
-            </delta_w_cm>
-            <delta_w_cma>
-              <dc:filter expr="contains($wst_description, 'cm-a.csv')">
-                <dc:group expr="dc:replace($wst_description, 'CSV/', '')">
-                  <relativepoint name="{dc:group-key()}">
-                    <dc:for-each>
-                      <column name="{$wst_column_name}"
-                              ids="delta_w_cma-wstv-{$wst_column_position}-{$wst_id}"
-                              factory="staticwkms" target_out="{$out}"
-                              info="{$info} [km {$deffrom} - {$defto}]"/>
-                    </dc:for-each>
-                  </relativepoint>
-                </dc:group>
-              </dc:filter>
-            </delta_w_cma>
-          </delta_w>
-        </dc:if>
-      </dc:filter>
-    </dc:macro>
-
     <dc:macro name="discharge_table_gauge">
       <dc:context>
         <dc:statement>
@@ -1728,7 +1787,7 @@
           WHERE g.river_id = ${river_id}
           AND dt.kind = 0
           AND ((g.station = ${fromkm} AND g.station = ${tokm})
-          OR g.official_number = ${refgauge})
+          OR g.official_number = ${reference_gauge})
         </dc:statement>
         <dc:if test="dc:has-result()">
           <dc:for-each>
@@ -2068,7 +2127,7 @@
     <dc:macro name="sqrelations">
       <dc:context>
         <dc:statement>
-          SELECT sq.description  AS description,
+          SELECT
             ti.start_time        AS start_time,
             ti.stop_time         AS stop_time,
             ms.name              AS station_name,
@@ -2076,125 +2135,43 @@
             sqv.id               AS sqvid,
             ra.a                 AS station_km
           FROM sq_relation sq
-          JOIN time_intervals ti ON ti.id   = sq.time_interval_id
-          JOIN rivers r ON r.id = sq.river_id
+          JOIN time_intervals ti ON ti.id = sq.time_interval_id
           JOIN sq_relation_value sqv ON sqv.sq_relation_id = sq.id
           JOIN measurement_station ms ON sqv.measurement_station_id = ms.id
           JOIN ranges ra ON ms.range_id = ra.id
+          JOIN rivers r ON r.id = ra.river_id
           WHERE r.id = ${river_id}
-          ORDER BY station_km, start_time, stop_time
+          ORDER BY start_time, stop_time
         </dc:statement>
         <dc:if test="dc:has-result()">
           <sq_relations>
-            <dc:filter expr="$out = concat('sq_relation_', $parameter) or
-                             $out = 'sq_overview'">
-              <dc:group expr="concat('Parameter ', dc:uppercase($parameter))">
-                <parameter description="{dc:group-key()}">
-                  <dc:for-each>
-                    <dc:group expr="$station_km" type="number">
-                      <dc:group expr="concat('km ', $station_km, ': ',
-                                      $station_name)">
-                        <station description="{dc:group-key()}">
-                          <dc:for-each>
-                            <dc:variable name="combined_desc"
-                                         expr="concat(dc:date-format('yyyy',
-                                               $start_time), ' bis ',
-                                               dc:date-format('yyyy',
-                                               $stop_time))"/>
-                            <sqvalue factory="staticsqrelation"
-                                     target_out="{$out}"
-                                     ids="{$sqvid};{dc:uppercase($parameter)} - {$station_name}: {$combined_desc}"
-                                     description="{$combined_desc}"/>
-                          </dc:for-each>
-                        </station>
-                      </dc:group>
-                    </dc:group>
-                  </dc:for-each>
-                </parameter>
-              </dc:group>
-            </dc:filter>
+            <dc:group expr="concat('Parameter ', dc:uppercase($parameter))">
+              <parameter description="{dc:group-key()}">
+                <dc:group expr="$station_km" type="number">
+                  <dc:group expr="concat('km ', $station_km, ': ',
+                                  $station_name)">
+                    <station description="{dc:group-key()}">
+                      <dc:for-each>
+                        <dc:variable name="combined_desc"
+                                     expr="concat(dc:date-format('yyyy',
+                                           $start_time), ' bis ',
+                                           dc:date-format('yyyy',
+                                           $stop_time))"/>
+                        <sqvalue factory="staticsqrelation"
+                                 target_out="{$out}"
+                                 ids="{$sqvid};{dc:uppercase($parameter)} - {$station_name}: {$combined_desc}"
+                                 description="{$combined_desc}"/>
+                      </dc:for-each>
+                    </station>
+                  </dc:group>
+                </dc:group>
+              </parameter>
+            </dc:group>
           </sq_relations>
         </dc:if>
       </dc:context>
     </dc:macro>
 
-    <dc:macro name="basedata_0_macro">
-      <dc:filter expr="$kind = 0">
-        <dc:if test="dc:has-result()">
-          <basedata>
-            <dc:group expr="$wst_description">
-              <basedata name="{dc:group-key()}">
-                <dc:for-each>
-                  <dc:macro-body/>
-                </dc:for-each>
-              </basedata>
-            </dc:group>
-          </basedata>
-        </dc:if>
-      </dc:filter>
-    </dc:macro>
-
-    <dc:macro name="basedata_0">
-      <dc:call-macro name="basedata_0_macro">
-        <column name="{$wst_column_name}"
-                ids="base_data-wstv-{$wst_column_position}-{$wst_id}"
-                factory="staticwqkms" target_out="{$out}"
-                info="{$info} [km {$deffrom} - {$defto}]"/>
-      </dc:call-macro>
-    </dc:macro>
-
-    <dc:macro name="basedata_0_wq">
-      <dc:call-macro name="basedata_0_macro">
-        <column name="{$wst_column_name}"
-                ids="base_data-wstv-{$wst_column_position}-{$wst_id}"
-                factory="wqinterpol" target_out="{$out}"
-                info="{$info} [km {$deffrom} - {$defto}]"/>
-      </dc:call-macro>
-    </dc:macro>
-
-    <dc:macro name="basedata_1_additionals_macro">
-      <dc:filter expr="$kind=1">
-        <dc:if test="dc:has-result()">
-          <additionals>
-            <dc:group expr="dc:replace($wst_description, 'Zus.Längsschnitte/', '')">
-              <additional name="{dc:group-key()}">
-                <dc:for-each>
-                  <dc:macro-body/>
-                </dc:for-each>
-              </additional>
-            </dc:group>
-          </additionals>
-        </dc:if>
-      </dc:filter>
-    </dc:macro>
-
-    <dc:macro name="basedata_1_additionals">
-      <dc:call-macro name="basedata_1_additionals_macro">
-        <column name="{$wst_column_name}"
-                ids="additionals-wstv-{$wst_column_position}-{$wst_id}"
-                factory="staticwqkms" target_out="{$out}"
-                info="{$info} [km {$deffrom} - {$defto}]"/>
-      </dc:call-macro>
-    </dc:macro>
-
-    <dc:macro name="basedata_1_additionals_marks">
-      <dc:call-macro name="basedata_1_additionals_macro">
-        <column name="{$wst_column_name}"
-                ids="additionalsmarks-wstv-{$wst_column_position}-{$wst_id}"
-                factory="staticwkms" target_out="{$out}"
-                info="{$info} [km {$deffrom} - {$defto}]"/>
-      </dc:call-macro>
-    </dc:macro>
-
-    <dc:macro name="basedata_1_additionals_wq">
-      <dc:call-macro name="basedata_1_additionals_macro">
-        <column name="{$wst_column_name}"
-                ids="base_data-wstv-{$wst_column_position}-{$wst_id}"
-                factory="wqinterpol" target_out="{$out}"
-                info="{$info} [km {$deffrom} - {$defto}]"/>
-      </dc:call-macro>
-    </dc:macro>
-
     <!-- Floodmap part -->
     <dc:macro name="flood-map-complete">
       <dc:call-macro name="flood-map-buildings"/>
--- a/artifacts/doc/datacage_ref_de.rst	Wed Sep 24 12:02:05 2014 +0200
+++ b/artifacts/doc/datacage_ref_de.rst	Wed Sep 24 12:02:37 2014 +0200
@@ -756,3 +756,5 @@
 
 ``dc:toValue`` **TODO**
 
+``dc:coalesce`` **TODO**
+
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/access/RangeAccess.java	Wed Sep 24 12:02:05 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/access/RangeAccess.java	Wed Sep 24 12:02:37 2014 +0200
@@ -133,7 +133,7 @@
         }
 
         if (from == null) {
-            log.warn("No 'from' found. assume max of river.");
+            log.warn("No 'from' found. Assume min of river.");
             return getRiver().determineMinMaxDistance()[0];
         }
 
@@ -152,7 +152,7 @@
         }
 
         if (to == null) {
-            log.warn("No 'to' found. assume max of river.");
+            log.warn("No 'to' found. Assume max of river.");
             return getRiver().determineMinMaxDistance()[1];
         }
 
--- a/artifacts/src/main/java/org/dive4elements/river/exports/injector/ComputedDischargeInjector.java	Wed Sep 24 12:02:05 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/injector/ComputedDischargeInjector.java	Wed Sep 24 12:02:37 2014 +0200
@@ -28,7 +28,9 @@
         Document doc
     ) {
         RangeAccess access = new RangeAccess((D4EArtifact)artifact);
-        double km = access.getFrom();
-        ctx.putContextValue(CURRENT_KM, km);
+        if (access.hasFrom()) {
+            double km = access.getFrom();
+            ctx.putContextValue(CURRENT_KM, km);
+        }
     }
 }

http://dive4elements.wald.intevation.org