[Dive4elements-commits] [PATCH 2 of 3] Merged
Wald Commits
scm-commit at wald.intevation.org
Sun Apr 21 10:59:29 CEST 2013
# HG changeset patch
# User Sascha L. Teichmann <teichmann at intevation.de>
# Date 1366534019 -7200
# Node ID e95427ed80e5dbdba737afe8ea67fb66817156a9
# Parent 1126b9e00378a158630cbac4729d98770c4c8a69
# Parent 300c0270c5763a7cd8d564090d9488ecc04c0107
Merged
diff -r 1126b9e00378 -r e95427ed80e5 .hgtags
--- a/.hgtags Sun Apr 21 10:46:06 2013 +0200
+++ b/.hgtags Sun Apr 21 10:46:59 2013 +0200
@@ -41,3 +41,5 @@
2fa6da26a1421932608ab8c71ef51f260ad77acd 2.9.16
3e8f7b4bdf20f2f96edaab593dfaaefe2add46f5 2.9.17
8128622e4b2893d91a30bdd52f7e426f6098ba0c 2.9.18
+c4162d8378a1333f891b584228c9d00b0e367401 2.9.19
+280093510e1d726e034244275a6098f873b7bc9a 3.0.0
diff -r 1126b9e00378 -r e95427ed80e5 contrib/make_flys_release/bin/run.sh
--- a/contrib/make_flys_release/bin/run.sh Sun Apr 21 10:46:06 2013 +0200
+++ b/contrib/make_flys_release/bin/run.sh Sun Apr 21 10:46:59 2013 +0200
@@ -12,7 +12,7 @@
export CLASSPATH
-exec java -Xmx256m \
+exec java -Xmx1024m \
-server \
-Djava.awt.headless=true \
-Dflys.datacage.recommendations.development=false \
diff -r 1126b9e00378 -r e95427ed80e5 contrib/make_flys_release/make_release.sh
--- a/contrib/make_flys_release/make_release.sh Sun Apr 21 10:46:06 2013 +0200
+++ b/contrib/make_flys_release/make_release.sh Sun Apr 21 10:46:59 2013 +0200
@@ -65,7 +65,7 @@
# --seddb-pass Sediment db password. Default: $SEDDBPASS
# --seddb-back Sediment db backend. Default: $SEDDBBACK
TOMCAT_PORT=${TOMCAT_PORT:-8282}
-MAPSERVER_URL=${MAPSERVER_URL:-flys-devel.intevation.de}
+MAPSERVER_URL=${MAPSERVER_URL:-http://flys-devel.intevation.de}
WIKI_URL=${WIKI_URL:-https://flys-intern.intevation.de/Flys-3.0}
# Prefix to FreeSans.ttf
FONT_PATH=${FONT_PATH:-/opt/flys}
@@ -187,6 +187,11 @@
echo "[INFO]: Preparing configuration of web client"
echo "[INFO]: Tomcat Port: $TOMCAT_PORT"
echo "[INFO]: Artifact Port: $ARTIFACT_PORT"
+
+#Needs to be done before the tomcat replacement below
+sed -i -e "s at http://localhost:8888/flys/mapfish-print at https://localhost/flys-${VERSION}/flys/mapfish-print at g" \
+ $FLYS_SOURCE_DIR/flys/flys-client/src/main/webapp/WEB-INF/web.xml
+
sed -i -e "s at http://localhost:8181 at http://localhost:$ARTIFACT_PORT at g" \
-e "s at http://localhost:8888 at http://localhost:$TOMCAT_PORT at g" \
$FLYS_SOURCE_DIR/flys/flys-client/src/main/webapp/WEB-INF/web.xml
@@ -194,12 +199,13 @@
sed -i -e "s@/tmp/flys-client.log@${LOG_DIR}/client-${VERSION}.log at g" \
$FLYS_SOURCE_DIR/flys/flys-client/src/main/webapp/WEB-INF/log4j.properties
-find $FLYS_SOURCE_DIR/flys/flys-artifacts/src/main/resources/ -name messages\*.properties | \
- xargs sed -i "s at https://flys-intern.intevation.de/Flys-3.0@${WIKI_URL}@g";
-
+# XXX: Are they really used at runtime?
find $FLYS_SOURCE_DIR/flys/ -name \*.properties -o -name \*.xsl | \
xargs sed -i "s at https://flys-intern.intevation.de@${WIKI_URL}@g";
+sed -i -e "s@/usr/share/fonts/truetype/freefont@${FONT_PATH}@g" \
+ $FLYS_SOURCE_DIR/flys/flys-client/src/main/webapp/WEB-INF/config.yaml
+
if [ ! -f $FLYS_SOURCE_DIR/OpenLayers-2.11.tar.gz ]; then
echo "INFO: download OpenLayers-2.11 for client"
cd $FLYS_SOURCE_DIR
@@ -264,10 +270,10 @@
sed -i "s/8181/$ARTIFACT_PORT/g" \
$WORK_DIR/server/conf/rest-server.xml
-sed -i -e "s at http://example.com/@http://${MAPSERVER_URL}/@g" \
+sed -i -e "s at http://example.com/@${MAPSERVER_URL}/@g" \
$WORK_DIR/server/conf/floodmap.xml
-sed -i -e "s at http://example.com/@http://${MAPSERVER_URL}/@g" \
+sed -i -e "s at http://example.com/@${MAPSERVER_URL}/@g" \
$WORK_DIR/server/conf/rivermap.xml
sed -i -e "s@/usr/share/fonts/truetype/freefont@${FONT_PATH}@g" \
@@ -284,6 +290,7 @@
> $WORK_DIR/server/conf/log4j.properties
sed -i -e "s@<dgm-path>/path/to/rivers/</dgm-path>@<dgm-path>${DGM_PATH}</dgm-path>@g" \
+ -e "s@<help-url>http://example.com</help-url>@<help-url>${WIKI_URL}</help-url>@g" \
$WORK_DIR/server/conf/conf.xml
cat > $WORK_DIR/server/conf/seddb-db.xml << EOF
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/doc/conf/artifacts/fixanalysis.xml
--- a/flys-artifacts/doc/conf/artifacts/fixanalysis.xml Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/doc/conf/artifacts/fixanalysis.xml Sun Apr 21 10:46:59 2013 +0200
@@ -284,6 +284,7 @@
<facet name="fix_wq_curve" description="WQ curve"/>
<facet name="fix_outlier" description="The outliers"/>
<facet name="qsectors" description="qsectors."/>
+ <facet name="fix_events_wqkms" description="WQKMS-Type of data" />
<facet name="other.wqkms.q" description="W-Type of data" />
<facet name="other.wqkms.w" description="W-Type of data" />
<facet name="other.wkms" description="facet.other.wqkms"/>
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/doc/conf/artifacts/minfo.xml
--- a/flys-artifacts/doc/conf/artifacts/minfo.xml Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/doc/conf/artifacts/minfo.xml Sun Apr 21 10:46:59 2013 +0200
@@ -179,6 +179,17 @@
<facet name="longitudinal_section.w" description="Datacage facet"/>
<facet name="bedheight_middle.manualpoints" description="points"/>
<facet name="bedheight" description="Datacage facet"/>
+ <facet name="discharge_longitudinal_section.w"/>
+ <facet name="other.wqkms.w"/>
+ <facet name="other.wq"/>
+ <facet name="other.wqkms.q"/>
+ <facet name="other.wqkms"/>
+ <facet name="other.wkms"/>
+ <facet name="heightmarks_points"/>
+ <facet name="longitudinal_section.annotations"/>
+ <facet name="longitudinal_section.w"/>
+ <facet name="longitudinal_section.q"/>
+ <facet name="other.wkms.interpol" description="Height over km, like flood protections."/>
</facets>
</outputmode>
<outputmode name="bedheight_middle_export" description="output.bedheight_middle_export" mime-type="text/plain" type="export">
@@ -225,6 +236,19 @@
<facet name="fix_sector_average_ls_3" description="Datacage facet"/>
<facet name="fix_analysis_events_ls" description="Datacage facet"/>
<facet name="fix_reference_events_ls" description="Datacage facet"/>
+ <facet name="discharge_longitudinal_section.w"/>
+ <facet name="other.wqkms.w"/>
+ <facet name="other.wq"/>
+ <facet name="other.wqkms.q"/>
+ <facet name="other.wqkms"/>
+ <facet name="other.wkms"/>
+ <facet name="heightmarks_points"/>
+ <facet name="longitudinal_section.annotations"/>
+ <facet name="longitudinal_section.w"/>
+ <facet name="longitudinal_section.q"/>
+ <facet name="w_differences" description="facet.w_differences"/>
+ <facet name="other.wkms.interpol" description="Height over km, like flood protections."/>
+ <facet name="morph-width" description="morphologic width, not sounding width!"/>
</facets>
</outputmode>
<outputmode name="bed_difference_epoch" description="output.difference_epoch" mime-type="img/png" type="chart">
@@ -240,6 +264,19 @@
<facet name="fix_sector_average_ls_3" description="Datacage facet"/>
<facet name="fix_analysis_events_ls" description="Datacage facet"/>
<facet name="fix_reference_events_ls" description="Datacage facet"/>
+ <facet name="discharge_longitudinal_section.w"/>
+ <facet name="other.wqkms.w"/>
+ <facet name="other.wq"/>
+ <facet name="other.wqkms.q"/>
+ <facet name="other.wqkms"/>
+ <facet name="other.wkms"/>
+ <facet name="heightmarks_points"/>
+ <facet name="longitudinal_section.annotations"/>
+ <facet name="longitudinal_section.w"/>
+ <facet name="longitudinal_section.q"/>
+ <facet name="w_differences" description="facet.w_differences"/>
+ <facet name="other.wkms.interpol" description="Height over km, like flood protections."/>
+ <facet name="morph-width" description="morphologic width, not sounding width!"/>
</facets>
</outputmode>
</outputmodes>
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/doc/conf/conf.xml
--- a/flys-artifacts/doc/conf/conf.xml Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/doc/conf/conf.xml Sun Apr 21 10:46:59 2013 +0200
@@ -128,6 +128,9 @@
<artifact-factory name="staticsqrelation" description="Factory to create an artifact that generates sq relations from db."
ttl="3600000"
artifact="de.intevation.flys.artifacts.SQRelationArtifact">de.intevation.artifactdatabase.DefaultArtifactFactory</artifact-factory>
+ <artifact-factory name="morph-width" description="Factory to create an artifact used in minfo datacage."
+ ttl="3600000"
+ artifact="de.intevation.flys.artifacts.StaticMorphWidthArtifact">de.intevation.artifactdatabase.DefaultArtifactFactory</artifact-factory>
<artifact-factory name="gaugedischargecurve" description="Factory to create an artifact to show a discharge curve for a gauge."
ttl="3600000"
@@ -409,8 +412,14 @@
<zoom-scale river="Elbe" range="50" radius="1" />
<zoom-scale river="Elbe" range="100" radius="5" />
<zoom-scale river="Elbe" range="500" radius="10" />
+ <zoom-scale river="Rhein" range="50" radius="1" />
+ <zoom-scale river="Rhein" range="100" radius="5" />
+ <zoom-scale river="Rhein" range="500" radius="10" />
</zoom-scales>
<dgm-path>/path/to/rivers/</dgm-path>
</options>
+
+ <!-- base url for online help. -->
+ <help-url>http://example.com</help-url>
</artifact-database>
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/doc/conf/floodmap.xml
--- a/flys-artifacts/doc/conf/floodmap.xml Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/doc/conf/floodmap.xml Sun Apr 21 10:46:59 2013 +0200
@@ -36,28 +36,28 @@
<river-wms url="http://example.com/cgi-bin/river-wms" layers="Donau"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Donaurna">
+ <river name="Donau (Regensburg Nordarm)">
<srid value="31467"/>
<dgm-srid value="25833"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Donaurna"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Donau (Regensburg Nordarm)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="DonauSK">
+ <river name="Donau (Schleusenkanäle)">
<srid value="31467"/>
<dgm-srid value="25833"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="DonauSK"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Donau (Schleusenkanäle)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Fulda">
+ <river name="Fulda (Winter)">
<srid value="31467"/>
<dgm-srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Fulda"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Fulda (Winter)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Fulda-Sommer">
+ <river name="Fulda (Sommer)">
<srid value="31467"/>
<dgm-srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Fulda-Sommer"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Fulda (Sommer)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
<river name="Lahn">
@@ -72,16 +72,16 @@
<river-wms url="http://example.com/cgi-bin/river-wms" layers="Main"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Main-Wehrarm-Limbach">
+ <river name="Main (Wehrarm Limbach)">
<srid value="31467"/>
<dgm-srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Main-Wehrarm-Limbach"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Main (Wehrarm Limbach)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Main-Wehrarm-Volkach">
+ <river name="Main (Wehrarm Volkach)">
<srid value="31467"/>
<dgm-srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Main-Wehrarm-Volkach"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Main (Wehrarm Volkach)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
<river name="Neckar">
@@ -90,10 +90,10 @@
<river-wms url="http://example.com/cgi-bin/river-wms" layers="Neckar"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Neckar-über-Wehrarme">
+ <river name="Neckar (über Wehrarme)">
<srid value="31467"/>
<dgm-srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Neckar-über-Wehrarme"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Neckar (über Wehrarme)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
<river name="Rhein">
@@ -114,22 +114,22 @@
<river-wms url="http://example.com/cgi-bin/river-wms" layers="Saale-Thüringen"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Saar-Wilt-Bogen">
+ <river name="Saar (Wiltinger Bogen)">
<srid value="31467"/>
<dgm-srid value="31466"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Saar-Wilt-Bogen"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Saar (Wiltinger Bogen)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Werra">
+ <river name="Werra (Winter)">
<srid value="31467"/>
<dgm-srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Werra"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Werra (Winter)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Werra-Sommer">
+ <river name="Werra (Sommer)">
<srid value="31467"/>
<dgm-srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Werra-Sommer"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Werra (Sommer)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
<river name="Weser">
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/doc/conf/meta-data.xml
--- a/flys-artifacts/doc/conf/meta-data.xml Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/doc/conf/meta-data.xml Sun Apr 21 10:46:59 2013 +0200
@@ -161,7 +161,7 @@
FROM wsts WHERE kind = 1 AND river_id = ${river_id}
</dc:statement>
<dc:for-each>
- <additional name="{$prot_description}">
+ <additional name="{dc:replace($prot_description, 'Zus.Längsschnitte/', '')}">
<dc:context>
<dc:call-macro name="SQL-wst_columns_statement"/>
<dc:for-each>
@@ -383,7 +383,7 @@
FROM wsts WHERE kind = 4 AND river_id = ${river_id}
</dc:statement>
<dc:for-each>
- <heightmark name="{$prot_description}">
+ <heightmark name="{dc:replace($prot_description, 'HW-Marken/', '')}">
<dc:context>
<dc:call-macro name="SQL-wst_columns_statement"/>
<dc:for-each>
@@ -410,7 +410,8 @@
FROM wsts WHERE kind = 4 AND river_id = ${river_id}
</dc:statement>
<dc:for-each>
- <heightmark name="{$prot_description}"><dc:context>
+ <heightmark name="{$prot_description}">
+ <dc:context>
<dc:call-macro name="SQL-wst_columns_statement"/>
<dc:for-each>
<column name="{$prot_column_name}"
@@ -466,7 +467,7 @@
FROM wsts WHERE kind = 5 AND river_id = ${river_id}
</dc:statement>
<dc:for-each>
- <flood_protection name="{$prot_description}"
+ <flood_protection name="{dc:replace($prot_description, 'HW-Schutzanlagen/', '')}"
db-id="{$prot_id}"
factory="staticwkms">
<dc:context>
@@ -612,7 +613,7 @@
</dc:macro>
<dc:macro name="morph_width">
- <morph-width>
+ <morph_width>
<dc:context>
<dc:statement>
SELECT id AS width_id
@@ -635,7 +636,7 @@
</dc:context>
</dc:for-each>
</dc:context>
- </morph-width>
+ </morph_width>
</dc:macro>
<dc:macro name="longitudinal-section-prototype">
@@ -673,6 +674,7 @@
</dc:if>
<dc:if test="dc:contains($artifact-outs, 'computed_discharge_curve')">
<dc:call-macro name="mainvalues"/>
+ <dc:call-macro name="basedata_2_fixations_wst"/>
</dc:if>
<dc:if test="dc:contains($artifact-outs, 'duration_curve')">
<dc:call-macro name="mainvalues"/>
@@ -768,6 +770,20 @@
</dc:comment>
<dc:if test="dc:contains($artifact-outs, 'bedheight_middle')">
<dc:call-macro name="sounding-width"/>
+ <dc:call-macro name="basedata_0"/>
+ <dc:call-macro name="basedata_1_additionals"/>
+ <dc:call-macro name="basedata_2_fixations"/>
+ <dc:call-macro name="basedata_3_officials"/>
+ <dc:call-macro name="annotations_per_type"/>
+ </dc:if>
+ <dc:if test="dc:contains($artifact-outs, 'bed_difference_year') or
+ dc:contains($artifact-outs, 'bed_difference_epoch')">
+ <dc:call-macro name="basedata_0"/>
+ <dc:call-macro name="basedata_1_additionals"/>
+ <dc:call-macro name="basedata_2_fixations"/>
+ <dc:call-macro name="basedata_3_officials"/>
+ <dc:call-macro name="annotations_per_type"/>
+ <dc:call-macro name="morph_width"/>
</dc:if>
<dc:comment comment="--- non-recommendations---"/>
</dc:otherwise>
@@ -792,13 +808,6 @@
</dc:if>
- <dc:comment><!-- XXX: Why is this taken out?
- <dc:if test="dc:contains($artifact-outs, 'computed_discharge_curve') and (dc:contains($parameters, 'recommended'))">
- <dc:call-macro name="basedata_2_fixations_wst"/>
- </dc:if>
- -->
- </dc:comment>
-
<dc:if test="dc:contains($artifact-outs, 'computed_discharge_curve') and not (dc:contains($parameters, 'recommended'))">
<discharge_table_nn>
<discharge_table_gauge>
@@ -1216,6 +1225,22 @@
</sobek_flooded>
</dc:if>
</dc:context>
+ <dc:context>
+ <dc:statement>
+ SELECT DISTINCT
+ b.name AS name
+ FROM hydr_boundaries_poly b
+ WHERE b.river_id = ${river_id}
+ AND b.kind = 1
+ AND b.sobek IS NULL
+ AND b.sectie is NULL
+ </dc:statement>
+ <dc:for-each>
+ <boundary name="{$name}"
+ factory="wmshydrboundariespolyfactory"
+ ids="{$river_id};{$name}"/>
+ </dc:for-each>
+ </dc:context>
</dc:macro>
<dc:macro name="flood-map-hydr-boundaries">
@@ -1779,9 +1804,14 @@
<dc:macro name="flood-map-complete">
<buildings>
<dc:call-macro name="flood-map-buildings"/>
- </buildings>
- <catchments factory="externalwmsfactory"
- ids="http://geoportal.bafg.de/wmsproxy/INSPIRE/DrainageBasin;HY.PHYSICALWATERS.CATCHMENTS;Einzugsgebiet"/>
+ </buildings>
+ <catchments>
+ <catchment_wms factory="externalwmsfactory"
+ ids="http://geoportal.bafg.de/wmsproxy/INSPIRE/DrainageBasin;HY.PHYSICALWATERS.CATCHMENTS;Einzugsgebiete (WMS)" />
+ <gaugelocations>
+ <dc:call-macro name="flood-map-gaugelocations"/>
+ </gaugelocations>
+ </catchments>
<dc:call-macro name="floodmarks"/>
<hws>
<dc:call-macro name="hwslines"/>
@@ -1795,12 +1825,6 @@
<dc:call-macro name="flood-map-hydr-boundaries"/>
</hydrboundaries>
<dc:call-macro name="flood-map-uesk"/>
- <gaugelocations>
- <dc:call-macro name="flood-map-gaugelocations"/>
- </gaugelocations>
- <background factory="wmsbackground" ids="{$river_id}"/>
- <pegel_had_measurement_points factory="externalwmsfactory"
- ids="http://geoportal.bafg.de/wmsproxy/HAD/HAD_31;0;HAD Abflussmessstellen"/>
</dc:macro>
</dc:if>
@@ -1904,7 +1928,7 @@
</dc:if>
</dc:for-each>
</dc:macro>
-
+
<!-- OFFICIAL LINES -->
<dc:if test="dc:contains($artifact-outs, 'longitudinal_section')">
<dc:comment comment=".wst -------------------------------"/>
@@ -2219,6 +2243,47 @@
</waterlevels>
</dc:macro>
+ <dc:macro name="delta-wt-ls">
+ <waterlevels>
+ <dc:for-each>
+ <dc:context>
+ <dc:call-macro name="range-filter">
+ <dc:context>
+ <dc:statement>
+ SELECT id AS out_id
+ FROM outs
+ WHERE artifact_id = ${a_id} AND name = 'fix_deltawt_curve'
+ </dc:statement>
+ <dc:for-each>
+ <dc:context>
+ <dc:statement>
+ SELECT name AS facet_name, num AS facet_num, description AS facet_description
+ FROM facets
+ WHERE out_id = ${out_id} and (
+ name LIKE 'fix_sector_average_dwt%' OR
+ name LIKE 'fix_deviation_dwt%')
+ ORDER BY num ASC, name DESC
+ </dc:statement>
+ <waterlevels description="{$river} {$a_creation} {$collection_name}">
+ <dc:for-each>
+ <dc:element name="${facet_name}">
+ <dc:attribute name="description" value="${facet_description}"/>
+ <dc:attribute name="ids" value="${facet_num}"/>
+ <dc:attribute name="factory" value="fixanalysis"/>
+ <dc:attribute name="artifact-id" value="${a_gid}"/>
+ <dc:attribute name="out" value="fix_deltawt_curve"/>
+ </dc:element>
+ </dc:for-each>
+ </waterlevels>
+ </dc:context>
+ </dc:for-each>
+ </dc:context>
+ </dc:call-macro>
+ </dc:context>
+ </dc:for-each>
+ </waterlevels>
+ </dc:macro>
+
<dc:macro name="fix-derivate-curve">
<waterlevels>
<dc:for-each>
@@ -2420,50 +2485,6 @@
</dc:macro>
<dc:comment>
- MINFO bedheight difference
- </dc:comment>
-
- <dc:macro name="bed-difference">
- <fix_longitudinal_section_curve>
- <dc:for-each>
- <dc:context>
- <dc:call-macro name="range-filter">
- <dc:context>
- <dc:statement>
- SELECT a.gid AS aid,
- f.id AS fid,
- f.name AS facet_name,
- f.num AS facet_num,
- f.description AS facet_description
- FROM outs AS o, facets AS f, artifacts AS a
- WHERE (
- f.name = 'fix_sector_average_ls_0' OR
- f.name = 'fix_sector_average_ls_1' OR
- f.name = 'fix_sector_average_ls_2' OR
- f.name = 'fix_sector_average_ls_3' OR
- f.name = 'fix_analysis_events_ls' OR
- f.name = 'fix_reference_events_ls'
- ) AND f.out_id = o.id AND o.artifact_id = ${a_id} AND a.id = ${a_id}
- </dc:statement>
- <fix_longitudinal_section_curve description="{$river} {$a_creation} {$collection_name}">
- <dc:for-each>
- <dc:element name="${facet_name}">
- <dc:attribute name="description" value="${facet_description}"/>
- <dc:attribute name="factory" value="fixanalysis"/>
- <dc:attribute name="artifact-id" value="${aid}"/>
- <dc:attribute name="ids" value="${facet_num}"/>
- <dc:attribute name="out" value="fix_longitudinal_section_curve"/>
- </dc:element>
- </dc:for-each>
- </fix_longitudinal_section_curve>
- </dc:context>
- </dc:call-macro>
- </dc:context>
- </dc:for-each>
- </fix_longitudinal_section_curve>
- </dc:macro>
-
- <dc:comment>
MINFO bedheight middle
</dc:comment>
@@ -2884,6 +2905,99 @@
</bedheight-differences>
</dc:macro>
+ <dc:macro name="fixings-year">
+ <fixings>
+ <dc:for-each>
+ <dc:context>
+ <dc:call-macro name="range-filter">
+ <dc:context>
+ <dc:statement>
+ SELECT ou.id AS oid
+ FROM outs AS ou, artifacts AS ar
+ WHERE
+ ar.state = 'state.fix.vollmer.compute' AND
+ ou.name = 'longitudinal_section'
+ </dc:statement>
+ <dc:for-each>
+ <fix description="{$river} {$a_id} {$a_creation} {$collection_name}">
+ <dc:context>
+ <dc:statement>
+ SELECT a.gid AS aid,
+ f.id AS fid,
+ f.name AS facet_name,
+ f.num AS facet_num,
+ f.description AS facet_description
+ FROM outs AS o, facets AS f, artifacts AS a
+ WHERE f.name = 'longitudinal_section.w' AND
+ f.out_id = o.id AND
+ o.artifact_id = ${a_id} AND
+ a.id = ${a_id}
+ </dc:statement>
+ <dc:for-each>
+ <dc:element name="${facet_name}">
+ <dc:attribute name="factory" value="fixanalysis"/>
+ <dc:attribute name="description" value="${facet_description}"/>
+ <dc:attribute name="ids" value="${facet_num}-${facet_name}"/>
+ <dc:attribute name="artifact-id" value="${aid}"/>
+ <dc:attribute name="out" value="longitudinal_section"/>
+ </dc:element>
+ </dc:for-each>
+ </dc:context>
+ </fix>
+ </dc:for-each>
+ </dc:context>
+ </dc:call-macro>
+ </dc:context>
+ </dc:for-each>
+ </fixings>
+ </dc:macro>
+
+ <dc:macro name="waterlevels-discharge">
+ <waterlevels-discharge>
+ <dc:for-each>
+ <dc:context>
+ <dc:call-macro name="range-filter">
+ <dc:context>
+ <dc:statement>
+ SELECT id AS oid
+ FROM outs AS o
+ WHERE
+ o.artifact_id = ${a_id} AND
+ o.name = 'discharge_longitudinal_section'
+ </dc:statement>
+ <dc:for-each>
+ <discharge description="{$oid} {$river} {$a_id} {$a_creation} {$collection_name}">
+ <dc:context>
+ <dc:statement>
+ SELECT a.gid AS aid,
+ f.id AS fid,
+ f.name AS facet_name,
+ f.num AS facet_num,
+ f.description AS facet_description
+ FROM outs AS o, facets AS f, artifacts AS a
+ WHERE f.name = 'discharge_longitudinal_section.w' AND
+ f.out_id = o.id AND
+ o.artifact_id = ${a_id} AND
+ a.id = ${a_id}
+ </dc:statement>
+ <dc:for-each>
+ <dc:element name="${facet_name}">
+ <dc:attribute name="factory" value="winfo"/>
+ <dc:attribute name="description" value="${facet_description}"/>
+ <dc:attribute name="ids" value="${facet_num}-${facet_name}"/>
+ <dc:attribute name="artifact-id" value="${aid}"/>
+ <dc:attribute name="out" value="longitudinal_section"/>
+ </dc:element>
+ </dc:for-each>
+ </dc:context>
+ </discharge>
+ </dc:for-each>
+ </dc:context>
+ </dc:call-macro>
+ </dc:context>
+ </dc:for-each>
+ </waterlevels-discharge>
+ </dc:macro>
<dc:if test="dc:contains($artifact-outs, 'longitudinal_section') or (dc:contains($artifact-outs, 'discharge_longitudinal_section') or (dc:contains($artifact-outs, 'w_differences')))">
<dc:call-macro name="longitudinal"/>
@@ -2921,11 +3035,9 @@
<dc:if test="dc:contains($artifact-outs, 'floodmap') or dc:contains($artifact-outs, 'map')">
<dc:call-macro name="flood-map"/>
</dc:if>
- <dc:if test="dc:contains($artifact-outs, 'bed_difference_year') or dc:contains($artifact-outs, 'bed_difference_height_year')">
- <dc:call-macro name="bed-difference"/>
- </dc:if>
<dc:if test="dc:contains($artifact-outs, 'bedheight_middle')">
- <dc:call-macro name="bed-height"/>
+ <dc:call-macro name="waterlevels-discharge"/>
+ <dc:call-macro name="waterlevels-fix"/>
</dc:if>
<dc:if test="dc:contains($artifact-outs, 'floodmap-hws')">
<dc:call-macro name="floodmap-hws-user"/>
@@ -2946,6 +3058,14 @@
<dc:call-macro name="flow-velocity"/>
<dc:call-macro name="sediment-load"/>
</dc:if>
+ <dc:if test="dc:contains($artifact-outs, 'bed_difference_year') or
+ dc:contains($artifact-outs, 'bed_difference_epoch')">
+ <dc:call-macro name="waterlevels-discharge"/>
+ <dc:call-macro name="bedheight-differences"/>
+ <dc:call-macro name="differences"/>
+ <dc:call-macro name="waterlevels-fix"/>
+ <dc:call-macro name="delta-wt-ls"/>
+ </dc:if>
</dc:context>
</dc:call-macro>
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/doc/conf/rivermap.xml
--- a/flys-artifacts/doc/conf/rivermap.xml Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/doc/conf/rivermap.xml Sun Apr 21 10:46:59 2013 +0200
@@ -32,24 +32,24 @@
<river-wms url="http://example.com/cgi-bin/river-wms" layers="Donau"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Donaurna">
+ <river name="Donau (Regensburg Nordarm)">
<srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Donaurna"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Donau (Regensburg Nordarm)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="DonauSK">
+ <river name="Donau (Schleusenkanäle)">
<srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="DonauSK"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Donau (Schleusenkanäle)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Fulda">
+ <river name="Fulda (Winter)">
<srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Fulda"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Fulda (Winter)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Fulda-Sommer">
+ <river name="Fulda (Sommer)">
<srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Fulda-Sommer"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Fulda (Sommer)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
<river name="Lahn">
@@ -62,14 +62,14 @@
<river-wms url="http://example.com/cgi-bin/river-wms" layers="Main"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Main-Wehrarm-Limbach">
+ <river name="Main (Wehrarm Limbach)">
<srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Main-Wehrarm-Limbach"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Main (Wehrarm Limbach)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Main-Wehrarm-Volkach">
+ <river name="Main (Wehrarm Volkach)">
<srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Main-Wehrarm-Volkach"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Main (Wehrarm Volkach)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
<river name="Neckar">
@@ -77,9 +77,9 @@
<river-wms url="http://example.com/cgi-bin/river-wms" layers="Neckar"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Neckar-über-Wehrarme">
+ <river name="Neckar (über Wehrarme)">
<srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Neckar-über-Wehrarme"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Neckar (über Wehrarme)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
<river name="Rhein">
@@ -97,19 +97,19 @@
<river-wms url="http://example.com/cgi-bin/river-wms" layers="Saale-Thüringen"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Saar-Wilt-Bogen">
+ <river name="Saar (Wiltinger Bogen)">
<srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Saar-Wilt-Bogen"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Saar (Wiltinger Bogen)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Werra">
+ <river name="Werra (Winter)">
<srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Werra"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Werra (Winter)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
- <river name="Werra-Sommer">
+ <river name="Werra (Sommer)">
<srid value="31467"/>
- <river-wms url="http://example.com/cgi-bin/river-wms" layers="Werra-Sommer"/>
+ <river-wms url="http://example.com/cgi-bin/river-wms" layers="Werra (Sommer)"/>
<background-wms url="http://osm.intevation.de/mapcache/?" layers="OSM-WMS-Dienst"/>
</river>
<river name="Weser">
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/doc/conf/themes.xml
--- a/flys-artifacts/doc/conf/themes.xml Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/doc/conf/themes.xml Sun Apr 21 10:46:59 2013 +0200
@@ -273,6 +273,7 @@
<mapping from="bedheight_difference.epoch.height1.filtered" to="BedheightDiffAbsHeight1"/>
<mapping from="bedheight_difference.epoch.height2.filtered" to="BedheightDiffAbsHeight2"/>
<mapping from="bedheight_difference.height_year.filtered" to="BedheightDiffHeightYear"/>
+ <mapping from="morph-width" to="MorphologicWidth"/>
<mapping from="relativepoint" to="RelativePoint" />
<mapping from="sq_a_measurement" to="SQMeasurements" />
<mapping from="sq_a_outlier" to="SQOutliers" />
@@ -344,7 +345,7 @@
<mapping from="sedimentload.sand" to="SedimentLoadSand" />
<mapping from="sedimentload.susp_sand" to="SedimentLoadSuspSand" />
<mapping from="sedimentload.susp_sand_bed" to="SedimentLoadSuspSandBed" />
- <mapping from="sedimentload.sudp_sediment" to="SedimentLoadSediment" />
+ <mapping from="sedimentload.susp_sediment" to="SedimentLoadSediment" />
<mapping from="sedimentload.total_load" to="SedimentLoadTotalLoad" />
<mapping from="sedimentload.total" to="SedimentLoadTotal" />
</mappings>
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/doc/conf/themes/default/longitudinal-section.xml
--- a/flys-artifacts/doc/conf/themes/default/longitudinal-section.xml Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/doc/conf/themes/default/longitudinal-section.xml Sun Apr 21 10:46:59 2013 +0200
@@ -829,6 +829,16 @@
</fields>
</theme>
+ <theme name="MorphologicWidth">
+ <inherits>
+ <inherit from="LongitudinalSection" />
+ </inherits>
+ <fields>
+ <field name="linecolor" type="Color" default="0, 100, 200" />
+ <field name="showlinelabel" type="boolean"
+ display="Beschriftung anzeigen" default="false" hints="h" />
+ </fields>
+ </theme>
<!-- Flow velocity -->
<theme name="FlowVelocityVMainChannel">
<inherits>
@@ -934,7 +944,7 @@
display="Beschriftung anzeigen" default="false" hints="h" />
</fields>
</theme>
- <theme name="SedimentLoadTotal">
+ <theme name="SedimentLoadTotal">
<inherits>
<inherit from="LongitudinalSection" />
</inherits>
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/StaticMorphWidthArtifact.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/StaticMorphWidthArtifact.java Sun Apr 21 10:46:59 2013 +0200
@@ -0,0 +1,110 @@
+package de.intevation.flys.artifacts;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.w3c.dom.Document;
+
+import de.intevation.artifactdatabase.state.DefaultOutput;
+import de.intevation.artifactdatabase.state.Facet;
+import de.intevation.artifactdatabase.state.FacetActivity;
+import de.intevation.artifacts.ArtifactFactory;
+import de.intevation.artifacts.Artifact;
+import de.intevation.artifacts.CallMeta;
+import de.intevation.artifacts.common.utils.XMLUtils;
+import de.intevation.flys.artifacts.model.minfo.BedHeightFacet;
+import de.intevation.flys.artifacts.model.minfo.BedHeightFactory;
+import de.intevation.flys.artifacts.model.minfo.MorphologicWidthFacet;
+import de.intevation.flys.artifacts.resources.Resources;
+import de.intevation.flys.artifacts.states.StaticState;
+
+public class StaticMorphWidthArtifact
+extends AbstractStaticStateArtifact
+{
+ /** The logger for this class. */
+ private static Logger logger =
+ Logger.getLogger(StaticMorphWidthArtifact.class);
+
+ private static final String NAME = "morph-width";
+ private static final String STATIC_FACET_NAME = "morph-width";
+
+ static {
+ // TODO: Move to configuration.
+ FacetActivity.Registry.getInstance()
+ .register(NAME, FacetActivity.INACTIVE);
+ }
+
+ public static final String STATIC_STATE_NAME =
+ "state.morph-width.static";
+
+ /**
+ * Trivial Constructor.
+ */
+ public StaticMorphWidthArtifact() {
+ }
+
+ @Override
+ public String getName() {
+ return NAME;
+ }
+
+ /**
+ * Gets called from factory, to set things up.
+ */
+ @Override
+ public void setup(
+ String identifier,
+ ArtifactFactory factory,
+ Object context,
+ CallMeta callMeta,
+ Document data)
+ {
+ logger.debug("setup");
+
+ if (logger.isDebugEnabled()) {
+ logger.debug(XMLUtils.toString(data));
+ }
+
+ String code = getDatacageIDValue(data);
+
+ if (code != null) {
+ Facet facet = new MorphologicWidthFacet(
+ STATIC_FACET_NAME,
+ Resources.getMsg(
+ callMeta,
+ "facet.morphologic.width",
+ "morphologische Breite"));
+ addStringData("width_id", code);
+ ArrayList<Facet> facets = new ArrayList<Facet>(1);
+ facets.add(facet);
+
+ addFacets(STATIC_STATE_NAME, facets);
+ }
+ super.setup(identifier, factory, context, callMeta, data);
+ }
+
+ @Override
+ protected void initStaticState() {
+
+ logger.debug("initStaticState " + getName() + " " + identifier());
+
+ StaticState state = new StaticState(STATIC_STATE_NAME);
+ DefaultOutput output = new DefaultOutput(
+ "general",
+ "general",
+ "image/png",
+ "chart");
+
+ List<Facet> facets = getFacets(STATIC_STATE_NAME);
+ output.addFacets(facets);
+ state.addOutput(output);
+
+ setStaticState(state);
+ }
+
+ @Override
+ protected void initialize(Artifact artifact, Object context, CallMeta meta) {
+ }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/RangeAccess.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/RangeAccess.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/RangeAccess.java Sun Apr 21 10:46:59 2013 +0200
@@ -78,6 +78,13 @@
winfo.getReferenceEndKms()[0]
};
}
+ else if (winfo.getReferenceStartKm() != null) {
+ return new double[]
+ {
+ winfo.getReferenceStartKm().doubleValue(),
+ winfo.getReferenceStartKm().doubleValue()
+ };
+ }
}
return null;
}
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/MovingAverage.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/MovingAverage.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/MovingAverage.java Sun Apr 21 10:46:59 2013 +0200
@@ -64,3 +64,4 @@
return map;
}
}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java Sun Apr 21 10:46:59 2013 +0200
@@ -103,6 +103,9 @@
return false;
}
+ public static boolean SEDIMENT_LOAD(String type) {
+ return type.startsWith("sedimentload");
+ }
public static boolean SEDIMENT_LOAD_NO_FLOAT(String type) {
return type.startsWith("sedimentload") && !type.contains("susp");
}
@@ -286,6 +289,7 @@
String BED_DIFFERENCE_EPOCH_HEIGHT2 = "bedheight_difference.epoch.height2";
String BED_DIFFERENCE_EPOCH_HEIGHT1_FILTERED = "bedheight_difference.epoch.height1.filtered";
String BED_DIFFERENCE_EPOCH_HEIGHT2_FILTERED = "bedheight_difference.epoch.height2.filtered";
+ String MORPHOLOGIC_WIDTH = "morph-width";
String SEDIMENT_LOAD_COARSE = "sedimentload.coarse";
String SEDIMENT_LOAD_SAND = "sedimentload.sand";
@@ -340,6 +344,8 @@
String FIX_ANALYSIS_EVENTS_LS = "fix_analysis_events_ls";
String FIX_ANALYSIS_EVENTS_WQ = "fix_analysis_events_wq";
+ String FIX_EVENTS = "fix_events_wqkms";
+
String FIX_REFERENCE_EVENTS_DWT = "fix_reference_events_dwt";
String FIX_REFERENCE_EVENTS_LS = "fix_reference_events_ls";
String FIX_REFERENCE_EVENTS_WQ = "fix_reference_events_wq";
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsOverview.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsOverview.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsOverview.java Sun Apr 21 10:46:59 2013 +0200
@@ -39,6 +39,7 @@
"WHERE" +
" name = :name";
+ /** All kind-2 wsts from given river. */
public static final String SQL_FIXINGS =
"SELECT" +
" id AS wst_id," +
@@ -47,6 +48,7 @@
"WHERE" +
" river_id = :river_id AND kind = 2";
+ /** All columns from given wst. */
public static final String SQL_FIXING_COLUMNS =
"SELECT" +
" wc.id AS wst_column_id," +
@@ -327,6 +329,11 @@
}
}
+ /**
+ * @param allColumns[out] Columns will be put here.
+ * @param range can be null.
+ * @param filter filter to apply.
+ */
public void addAllColumns(
List<Column> allColumns,
Range range,
@@ -562,6 +569,7 @@
}
} // class IdFilter
+ /** Accept Fixing columns whose id is in id list. */
public static class IdsFilter implements Fixing.Filter {
protected int [] columnIds;
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/StaticMorphoWidthCacheKey.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/StaticMorphoWidthCacheKey.java Sun Apr 21 10:46:59 2013 +0200
@@ -0,0 +1,29 @@
+package de.intevation.flys.artifacts.model;
+
+
+public class StaticMorphoWidthCacheKey
+{
+ public static final String CACHE_NAME = "morpho-width-table-static";
+
+ private int width_id;
+
+ public StaticMorphoWidthCacheKey(
+ int width_id
+ ) {
+ this.width_id = width_id;
+ }
+
+ @Override
+ public int hashCode() {
+ return (String.valueOf(width_id)).hashCode();
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (!(other instanceof StaticMorphoWidthCacheKey)) {
+ return false;
+ }
+ StaticMorphoWidthCacheKey o = (StaticMorphoWidthCacheKey) other;
+ return this.width_id == o.width_id;
+ }
+}
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQKmsFactory.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQKmsFactory.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQKmsFactory.java Sun Apr 21 10:46:59 2013 +0200
@@ -29,11 +29,15 @@
"SELECT position, w, q FROM wst_value_table " +
"WHERE wst_id = :wst_id AND column_pos = :column_pos";
+ /** Get wst_id and position from wst_columns. */
+ public static final String SQL_SELECT_COLUMN =
+ "SELECT wst_id, position FROM wst_columns WHERE id = :column_id";
+
/** Query to get name for wst_id and column_pos. */
public static final String SQL_SELECT_NAME =
"SELECT name " +
"FROM wst_columns "+
- "WHERE wst_id = :wst_id AND position = :column_pos";
+ "WHERE id = :column_id";
/** Hidden constructor, use static methods instead. */
@@ -42,16 +46,16 @@
/**
- * Get WKms for given column and wst_id, caring about the cache.
+ * Get WKms for given column (pos) and wst_id, caring about the cache.
*/
- public static WQKms getWQKms(int column, int wst_id) {
+ public static WQKms getWQKms(int columnPos, int wst_id) {
log.debug("WQKmsFactory.getWQKms");
Cache cache = CacheFactory.getCache(StaticWQKmsCacheKey.CACHE_NAME);
StaticWQKmsCacheKey cacheKey;
if (cache != null) {
- cacheKey = new StaticWQKmsCacheKey(wst_id, column);
+ cacheKey = new StaticWQKmsCacheKey(wst_id, columnPos);
Element element = cache.get(cacheKey);
if (element != null) {
log.debug("Got static wst values from cache");
@@ -62,7 +66,41 @@
cacheKey = null;
}
- WQKms values = getWQKmsUncached(column, wst_id);
+ WQKms values = getWQKmsUncached(columnPos, wst_id);
+
+ if (values != null && cacheKey != null) {
+ log.debug("Store static wst values in cache.");
+ Element element = new Element(cacheKey, values);
+ cache.put(element);
+ }
+ return values;
+ }
+
+ /**
+ * Get WKms for given column (id), caring about the cache.
+ */
+ public static WQKms getWQKmsCID(int columnID) {
+ log.debug("WQKmsFactory.getWQKms");
+ Cache cache = CacheFactory.getCache(StaticWQKmsCacheKey.CACHE_NAME);
+
+ StaticWQKmsCacheKey cacheKey;
+
+ if (cache != null) {
+ cacheKey = new StaticWQKmsCacheKey(-columnID, -columnID);
+ Element element = cache.get(cacheKey);
+ if (element != null) {
+ log.debug("Got static wst values from cache");
+ return (WQKms)element.getValue();
+ }
+ }
+ else {
+ cacheKey = null;
+ }
+
+ int[] cInfo = getColumn(columnID);
+ if (cInfo == null) return null;
+ WQKms values = getWQKmsUncached(cInfo[1], cInfo[0]);
+
if (values != null && cacheKey != null) {
log.debug("Store static wst values in cache.");
@@ -106,5 +144,56 @@
return wqkms;
}
+
+
+ /**
+ * Get WQKms from db.
+ * @param columnID the columns database id value
+ * @param wst_id database id of the wst
+ * @return respective WQKms.
+ */
+ public static int[] getColumn(int columnID) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("WQKmsFactory.getColumn, columnID "
+ + columnID);
+ }
+
+ Session session = SessionHolder.HOLDER.get();
+
+ SQLQuery sqlQuery = session.createSQLQuery(SQL_SELECT_COLUMN)
+ .addScalar("wst_id", StandardBasicTypes.INTEGER)
+ .addScalar("position", StandardBasicTypes.INTEGER);
+ sqlQuery.setInteger("column_id", columnID);
+
+ List<Object []> results = sqlQuery.list();
+
+ for (int i = 0, N = results.size(); i < N; i++) {
+ Object[] row = results.get(i);
+ return new int[] {(Integer)row[0], (Integer)row[1]};
+ }
+
+ return null;
+ }
+
+
+ /** Get name for a WKms. */
+ public static String getWQKmsName(int columnID) {
+ log.debug("WQKmsFactory.getWQKmsName c/" + columnID);
+
+ String name = null;
+ Session session = SessionHolder.HOLDER.get();
+
+ SQLQuery nameQuery = session.createSQLQuery(SQL_SELECT_NAME)
+ .addScalar("name", StandardBasicTypes.STRING);
+ nameQuery.setInteger("column_id", columnID);
+
+ List<String> names = nameQuery.list();
+ if (names.size() >= 1) {
+ name = names.get(0);
+ }
+
+ return name;
+ }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java Sun Apr 21 10:46:59 2013 +0200
@@ -237,6 +237,10 @@
return sb.toString();
}
+
+ /** Create filter to accept only the chosen events.
+ * This factored out out to be overwritten.
+ */
protected Filter createFilter() {
return new IdsFilter(events);
}
@@ -267,6 +271,7 @@
return columns;
}
+ // Fit a function to the given points from fixation.
protected FitResult doFitting(
FixingsOverview overview,
ColumnCache cc,
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixEventFacet.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixEventFacet.java Sun Apr 21 10:46:59 2013 +0200
@@ -0,0 +1,62 @@
+package de.intevation.flys.artifacts.model.fixings;
+
+import org.apache.log4j.Logger;
+
+import de.intevation.artifacts.Artifact;
+import de.intevation.artifacts.CallContext;
+
+import de.intevation.flys.artifacts.FLYSArtifact;
+import de.intevation.flys.artifacts.model.DataFacet;
+import de.intevation.flys.artifacts.model.FacetTypes;
+import de.intevation.flys.artifacts.model.WQKmsFactory;
+import de.intevation.flys.artifacts.access.FixRealizingAccess;
+
+import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
+
+
+/**
+ * Facet to show W|Q|km Values.
+ */
+public class FixEventFacet
+extends DataFacet
+implements FacetTypes {
+
+ /** House logger. */
+ private static Logger logger = Logger.getLogger(FixEventFacet.class);
+
+
+ public FixEventFacet(int index, String name, String description) {
+ super(index, name, description, ComputeType.FEED, null, null);
+ }
+
+
+ /**
+ * Returns the data this facet requires.
+ *
+ * @param artifact the owner artifact.
+ * @param context the CallContext (ignored).
+ *
+ * @return the data.
+ */
+ @Override
+ public Object getData(Artifact artifact, CallContext context) {
+ logger.debug("FixEventFacet.getData");
+
+ FixRealizingAccess access = new FixRealizingAccess((FLYSArtifact) artifact, context);
+ int wstColID = access.getEvents()[index];
+ return WQKmsFactory.getWQKmsCID(wstColID);
+ }
+
+
+ /**
+ * Create a deep copy of this Facet.
+ * @return a deep copy.
+ */
+ @Override
+ public FixEventFacet deepCopy() {
+ FixEventFacet copy = new FixEventFacet(index, name, description);
+ copy.set(this);
+ return copy;
+ }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/MorphologicWidth.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/MorphologicWidth.java Sun Apr 21 10:46:59 2013 +0200
@@ -0,0 +1,50 @@
+package de.intevation.flys.artifacts.model.minfo;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import de.intevation.flys.jfree.DoubleBounds;
+
+
+public class MorphologicWidth
+{
+
+ private Map<Double, Double> pairs;
+
+
+ public MorphologicWidth() {
+ pairs = new HashMap<Double, Double>();
+ }
+
+ public void add(double station, double width) {
+ this.pairs.put(station, width);
+ }
+
+ public Map<Double, Double> getAll() {
+ return this.pairs;
+ }
+
+ public double[][] getAsArray() {
+ double [][] array = new double[2][pairs.size()];
+ Double[] kms = pairs.keySet().toArray(new Double[pairs.size()]);
+ Double[] width = pairs.values().toArray(new Double[pairs.size()]);
+ int realIndex = 0;
+ for (int i = 0; i < kms.length; i++) {
+ if (kms[i] == null || width[i] == null) {
+ continue;
+ }
+ array[0][realIndex] = kms[i];
+ array[1][realIndex] = width[i];
+ realIndex++;
+ }
+ return array;
+ }
+
+
+ public Double getWidth(double station) {
+ if (this.pairs.containsKey(station)) {
+ return this.pairs.get(station);
+ }
+ return null;
+ }
+}
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/MorphologicWidthFacet.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/MorphologicWidthFacet.java Sun Apr 21 10:46:59 2013 +0200
@@ -0,0 +1,54 @@
+package de.intevation.flys.artifacts.model.minfo;
+
+import org.apache.log4j.Logger;
+
+import de.intevation.artifactdatabase.state.Facet;
+import de.intevation.artifacts.Artifact;
+import de.intevation.artifacts.CallContext;
+import de.intevation.flys.artifacts.FLYSArtifact;
+import de.intevation.flys.artifacts.model.DataFacet;
+import de.intevation.flys.artifacts.model.FacetTypes;
+import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
+
+
+public class MorphologicWidthFacet
+extends DataFacet
+implements FacetTypes
+{
+ private static Logger logger = Logger.getLogger(SedimentLoadFacet.class);
+
+
+ public MorphologicWidthFacet() {
+ }
+
+ public MorphologicWidthFacet(String facetName, String description) {
+ super(facetName, description);
+ }
+
+ public MorphologicWidthFacet(int idx, String name, String description,
+ ComputeType type, String stateId, String hash) {
+ super(idx, name, description, type, hash, stateId);
+ }
+
+ public Object getData(Artifact artifact, CallContext context) {
+
+ FLYSArtifact flys = (FLYSArtifact) artifact;
+ String width_id = flys.getDataAsString("width_id");
+
+ MorphologicWidth width =
+ MorphologicWidthFactory.getWidth(Integer.valueOf(width_id));
+
+ return width;
+ }
+
+ /** Copy deeply. */
+ @Override
+ public Facet deepCopy() {
+ MorphologicWidthFacet copy = new MorphologicWidthFacet();
+ copy.set(this);
+ copy.type = type;
+ copy.hash = hash;
+ copy.stateId = stateId;
+ return copy;
+ }
+}
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/MorphologicWidthFactory.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/MorphologicWidthFactory.java Sun Apr 21 10:46:59 2013 +0200
@@ -0,0 +1,87 @@
+package de.intevation.flys.artifacts.model.minfo;
+
+import java.util.List;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.Element;
+
+import org.apache.log4j.Logger;
+import org.hibernate.SQLQuery;
+import org.hibernate.Session;
+import org.hibernate.type.StandardBasicTypes;
+
+import de.intevation.flys.artifacts.cache.CacheFactory;
+import de.intevation.flys.artifacts.model.StaticMorphoWidthCacheKey;
+import de.intevation.flys.backend.SessionHolder;
+
+
+public class MorphologicWidthFactory
+{
+ /** Private logger to use here. */
+ private static Logger log = Logger.getLogger(MorphologicWidthFactory.class);
+
+ public static final String SQL_SELECT =
+ "SELECT mwv.station AS station, mwv.width AS width " +
+ " FROM morphologic_width mw" +
+ " JOIN morphologic_width_values mwv on mwv.morphologic_width_id = mw.id" +
+ " WHERE mw.id = :width_id";
+
+ private MorphologicWidthFactory() {
+ }
+
+
+ /**
+ * Get WKms for given column and wst_id, caring about the cache.
+ */
+ public static MorphologicWidth getWidth(int width_id) {
+ log.debug("MorphologicWidthFactory.getWidth");
+ Cache cache = CacheFactory.getCache(StaticMorphoWidthCacheKey.CACHE_NAME);
+
+ StaticMorphoWidthCacheKey cacheKey;
+
+ if (cache != null) {
+ cacheKey = new StaticMorphoWidthCacheKey(width_id);
+ Element element = cache.get(cacheKey);
+ if (element != null) {
+ log.debug("Got static bedheight values from cache");
+ return (MorphologicWidth)element.getValue();
+ }
+ }
+ else {
+ cacheKey = null;
+ }
+
+ MorphologicWidth values = getWidthUncached(width_id);
+
+ if (values != null && cacheKey != null) {
+ log.debug("Store static morphologic width values in cache.");
+ Element element = new Element(cacheKey, values);
+ cache.put(element);
+ }
+ return values;
+ }
+
+ private static MorphologicWidth getWidthUncached(int width_id) {
+ if (log.isDebugEnabled()) {
+ log.debug("MorphologicWidthFactory.getWidthUncached");
+ }
+
+ Session session = SessionHolder.HOLDER.get();
+ SQLQuery sqlQuery = session.createSQLQuery(SQL_SELECT)
+ .addScalar("station", StandardBasicTypes.DOUBLE)
+ .addScalar("width", StandardBasicTypes.DOUBLE);
+ sqlQuery.setInteger("width_id", width_id);
+ List<Object []> results = sqlQuery.list();
+
+ MorphologicWidth widths = new MorphologicWidth();
+ for (int i = 0; i < results.size(); i++) {
+ Object[] row = results.get(i);
+ log.debug("got station: " + (Double)row[0]);
+ widths.add(
+ (Double) row[0],
+ (Double) row[1]);
+ }
+ return widths;
+ }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentDensity.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentDensity.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentDensity.java Sun Apr 21 10:46:59 2013 +0200
@@ -78,7 +78,7 @@
}
}
}
- return -1d;
+ return 1.8d;
}
private double getDensityAtKm(
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentDensityFactory.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentDensityFactory.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentDensityFactory.java Sun Apr 21 10:46:59 2013 +0200
@@ -81,7 +81,9 @@
results = sqlQuery.list();
SedimentDensity density = new SedimentDensity();
for (Object[] row : results) {
- density.addDensity((Double)row[0], (Double)row[1], (Integer)row[2]);
+ if (row[0] != null && row[1] != null && row[2] != null) {
+ density.addDensity((Double)row[0], (Double)row[1], (Integer)row[2]);
+ }
}
density.cleanUp();
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoad.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoad.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoad.java Sun Apr 21 10:46:59 2013 +0200
@@ -223,3 +223,4 @@
return false;
}
}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoadCalculation.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoadCalculation.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoadCalculation.java Sun Apr 21 10:46:59 2013 +0200
@@ -115,7 +115,7 @@
private SedimentLoadResult calculateEpoch(int i) {
List<SedimentLoad> epochLoads = new ArrayList<SedimentLoad>();
for (int j = epoch[i][0]; j < epoch[i][1]; j++) {
- epochLoads.add(SedimentLoadFactory.getLoadwithData(
+ epochLoads.add(SedimentLoadFactory.getLoadWithData(
this.river,
this.yearEpoch,
this.kmLow,
@@ -207,7 +207,7 @@
}
private SedimentLoadResult calculateOffEpoch(int i) {
- SedimentLoad load = SedimentLoadFactory.getLoadwithData(
+ SedimentLoad load = SedimentLoadFactory.getLoadWithData(
this.river,
this.yearEpoch,
kmLow,
@@ -234,7 +234,7 @@
}
private SedimentLoadResult calculateYear(int y) {
- SedimentLoad load = SedimentLoadFactory.getLoadwithData(
+ SedimentLoad load = SedimentLoadFactory.getLoadWithData(
this.river,
this.yearEpoch,
this.kmLow,
@@ -256,22 +256,29 @@
private SedimentLoad calculateTotalLoad(SedimentLoad load, int year) {
logger.debug("calculateTotalLoad");
+ boolean problemThisYear = false;
if (!load.hasCoarse()) {
- addProblem(year, "missing.fraction.coarse");
+ addProblem("missing.fraction.coarse", Integer.toString(year));
+ problemThisYear = true;
}
if (!load.hasFineMiddle()) {
- addProblem(year, "missing.fraction.fine_middle");
+ addProblem("missing.fraction.fine_middle", Integer.toString(year));
+ problemThisYear = true;
}
if (!load.hasSand()) {
- addProblem(year, "missing.fraction.sand");
+ addProblem("missing.fraction.sand", Integer.toString(year));
+ problemThisYear = true;
}
if (!load.hasSuspSand()) {
- addProblem(year, "missing.fraction.susp_sand");
+ addProblem("missing.fraction.susp_sand", Integer.toString(year));
+ problemThisYear = true;
}
if (!load.hasSuspSediment()) {
- addProblem(year, "missing.fraction.susp_sediment");
+ addProblem("missing.fraction.susp_sediment", Integer.toString(year));
+ problemThisYear = true;
}
- if (hasProblems()) {
+ if (problemThisYear) {
+ logger.warn("Some problem, not calculating total load.");
return load;
}
for(double km : load.getKms()) {
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoadFacet.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoadFacet.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoadFacet.java Sun Apr 21 10:46:59 2013 +0200
@@ -3,7 +3,12 @@
import org.apache.log4j.Logger;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
import de.intevation.artifactdatabase.state.Facet;
import de.intevation.artifacts.Artifact;
@@ -54,6 +59,7 @@
return null;
}
+ List<Double> sortedStarts = new ArrayList<Double>();
// Filter stations according to type.
List<MeasurementStation> stations = new ArrayList<MeasurementStation>();
for (MeasurementStation station: allStations) {
@@ -61,43 +67,72 @@
continue;
}
if (FacetTypes.IS.SEDIMENT_LOAD_NO_FLOAT(this.getName())
- && station.getMeasurementType().equals("Geschiebe"))
+ && station.getMeasurementType().equals("Geschiebe")) {
stations.add(station);
+ sortedStarts.add(station.getStation());
+ }
else if (!FacetTypes.IS.SEDIMENT_LOAD_NO_FLOAT(this.getName())
- && station.getMeasurementType().equals("Schwebstoff"))
+ && station.getMeasurementType().equals("Schwebstoff")) {
stations.add(station);
+ sortedStarts.add(station.getStation());
+ }
}
+ Collections.sort(sortedStarts);
// Access data according to type.
double[][] sd = getLoadData(result);
+ // Sort by km.
+ TreeMap<Double, Double> sortData = new TreeMap<Double,Double>();
+
double[] km = sd[0];
double[] load = sd[1];
+ for (int i = 0 ; i < km.length; i++) {
+ sortData.put(km[i], load[i]);
+ }
+
double[][] values = new double[2][];
- values[0] = new double[km.length*2];
- values[1] = new double[km.length*2];
+ values[0] = new double[km.length*3];
+ values[1] = new double[km.length*3];
+
+ List<double[]> kmWithoutStation = new ArrayList<double[]>();
// Find station via its station (km).
- // TODO what to do with gaps in measurement stations.
- for (int i = 0; i < km.length; i++) {
+ // TODO use a binarySearch instead of linear absdiff approach
+ int i = 0;
+ for (Map.Entry<Double, Double> entry: sortData.entrySet()) {
boolean matchFound = false;
+ // For now, ignore overlaps like (B> next A)
for (MeasurementStation station: stations) {
- if (Math.abs(station.getStation() - km[i]) < EPSILON) {
- values[0][i*2] = station.getRange().getA().doubleValue();
- values[1][i*2] = load[i];
- values[0][i*2+1] = station.getRange().getB().doubleValue();
- values[1][i*2+1] = load[i];
+ if (Math.abs(station.getStation() - entry.getKey()) < EPSILON ||
+ station.getRange().containsTolerant(entry.getKey())) {
+ // TODO: In rare cases, two matches can be found.
+ values[0][i*3] = station.getRange().getA().doubleValue() + EPSILON;
+ values[1][i*3] = entry.getValue();
+ values[0][i*3+1] = station.getRange().getB().doubleValue() - EPSILON;
+ values[1][i*3+1] = entry.getValue();
+ values[0][i*3+2] = station.getRange().getB().doubleValue();
+ values[1][i*3+2] = entry.getValue();
matchFound = true;
}
}
- // For now, add point if no matching measurement station found.
+ // Store points without match for later assessment.
if (!matchFound) {
- values[0][i*2] = km[i];
- values[1][i*2] = load[i];
- logger.debug("No measurement station for km " + km[i]);
+ logger.warn("measurement without station ("+entry.getKey()+")!");
+ }
+ i++;
+ }
+
+ for (int x = 0; x < values[0].length-1; x++) {
+ // Introduce gaps where no data in measurement station.
+ if (Math.abs(values[0][x+1] - values[0][x]) > 3*EPSILON
+ && values[1][x+1] != values[1][x]) {
+ values[0][x] = Double.NaN;
+ values[1][x] = Double.NaN;
}
}
+
return values;
}
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoadFactory.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoadFactory.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/SedimentLoadFactory.java Sun Apr 21 10:46:59 2013 +0200
@@ -18,7 +18,7 @@
import de.intevation.flys.artifacts.model.StaticSedimentLoadCacheKey;
import de.intevation.flys.backend.SessionHolder;
-
+/** Pull Sediment Loads out of db. */
public class SedimentLoadFactory
{
/** Private logger to use here. */
@@ -130,7 +130,7 @@
return values;
}
- public static SedimentLoad getLoadwithData(
+ public static SedimentLoad getLoadWithData(
String river,
String type,
double startKm,
@@ -337,9 +337,7 @@
return new SedimentLoad();
}
- /**
- *
- */
+
protected static void getValues (
String fraction,
SQLQuery query,
@@ -375,3 +373,4 @@
}
}
}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/fixation/FixRealizingCompute.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/fixation/FixRealizingCompute.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/fixation/FixRealizingCompute.java Sun Apr 21 10:46:59 2013 +0200
@@ -16,9 +16,11 @@
import de.intevation.flys.artifacts.model.ReportFacet;
import de.intevation.flys.artifacts.model.WQCKms;
import de.intevation.flys.artifacts.model.WQKms;
+import de.intevation.flys.artifacts.model.WQKmsFactory;
import de.intevation.flys.artifacts.model.fixings.FixOutlierFacet;
import de.intevation.flys.artifacts.model.fixings.FixRealizingCalculation;
import de.intevation.flys.artifacts.model.fixings.FixRealizingResult;
+import de.intevation.flys.artifacts.model.fixings.FixEventFacet;
import de.intevation.flys.artifacts.model.fixings.FixReferenceEventsFacet;
import de.intevation.flys.artifacts.model.fixings.FixWQCurveFacet;
import de.intevation.flys.artifacts.model.fixings.FixWaterlevelFacet;
@@ -122,6 +124,13 @@
}
}
+ // Add one facet per event.
+ int i = 0;
+ for (int event: access.getEvents()) {
+ facets.add(new FixEventFacet(i, FIX_EVENTS, WQKmsFactory.getWQKmsName(event)));
+ i++;
+ }
+
if (wqkms.length > 0) {
facets.add(
new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id));
@@ -137,7 +146,9 @@
new DataFacet(AT, "AT data", ComputeType.ADVANCE, hash, id));
facets.add(new FixWQCurveFacet(
- 0, Resources.getMsg(meta, I18N_WQ_CURVE, I18N_WQ_CURVE)));
+ 0,
+ Resources.getMsg(meta, I18N_WQ_CURVE, I18N_WQ_CURVE) + " ("
+ + access.getFunction() + ")"));
facets.add(new FixReferenceEventsFacet(
0,
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/SedimentLoadYearSelect.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/SedimentLoadYearSelect.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/SedimentLoadYearSelect.java Sun Apr 21 10:46:59 2013 +0200
@@ -2,9 +2,15 @@
import org.apache.log4j.Logger;
+import de.intevation.artifacts.Artifact;
+
+import de.intevation.flys.artifacts.FLYSArtifact;
+
+import de.intevation.flys.artifacts.access.SedimentLoadAccess;
import de.intevation.flys.artifacts.states.DefaultState;
+/** State in which to fetch years for sedminent load calculation. */
public class SedimentLoadYearSelect
extends DefaultState
{
@@ -18,9 +24,25 @@
public SedimentLoadYearSelect() {
}
+
+ /** Year Select Widget. */
@Override
protected String getUIProvider() {
return "minfo.sedimentload_year_select";
}
+
+ @Override
+ public boolean validate(Artifact artifact)
+ throws IllegalArgumentException
+ {
+ SedimentLoadAccess access = new SedimentLoadAccess((FLYSArtifact) artifact, null);
+
+ // Second year should be later than first.
+ if (access.getPeriod() != null && access.getPeriod()[1] < access.getPeriod()[0])
+ throw new IllegalArgumentException("error_years_wrong");
+
+ return true;
+ }
}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/exports/MapGenerator.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/MapGenerator.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/MapGenerator.java Sun Apr 21 10:46:59 2013 +0200
@@ -2,6 +2,7 @@
import com.vividsolutions.jts.geom.Envelope;
+import de.intevation.artifactdatabase.data.StateData;
import de.intevation.artifactdatabase.state.ArtifactAndFacet;
import de.intevation.artifactdatabase.state.Facet;
import de.intevation.artifactdatabase.state.Settings;
@@ -15,6 +16,7 @@
import de.intevation.flys.artifacts.model.map.WMSDBLayerFacet;
import de.intevation.flys.artifacts.model.map.WMSLayerFacet;
import de.intevation.flys.artifacts.model.map.WSPLGENLayerFacet;
+import de.intevation.flys.artifacts.states.WaterlevelGroundDifferences;
import de.intevation.flys.collections.FLYSArtifactCollection;
import de.intevation.flys.utils.ArtifactMapfileGenerator;
import de.intevation.flys.utils.GeometryUtils;
@@ -134,11 +136,24 @@
) {
try {
if(wms instanceof WSPLGENLayerFacet) {
+ // Retrieve waterlevel ground differences from artifact
+ StateData dFrom = flys.getData(WaterlevelGroundDifferences.LOWER_FIELD);
+ StateData dTo = flys.getData(WaterlevelGroundDifferences.UPPER_FIELD);
+ StateData dStep = flys.getData(WaterlevelGroundDifferences.DIFF_FIELD);
+
+ String fromStr = dFrom != null ? (String) dFrom.getValue() : null;
+ String toStr = dTo != null ? (String) dTo.getValue() : null;
+ String stepStr = dStep != null ? (String) dStep.getValue() : null;
+
+ float from = Float.parseFloat(fromStr);
+ float to = Float.parseFloat(toStr);
+ float step = Float.parseFloat(stepStr);
+
ArtifactMapfileGenerator mfg = new ArtifactMapfileGenerator();
mfg.createUeskLayer(
flys,
(WSPLGENLayerFacet) wms,
- ThemeUtil.createDynamicMapserverStyle(attr),
+ ThemeUtil.createDynamicMapserverStyle(attr, from, to, step),
context);
}
else {
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/exports/MiddleBedHeightGenerator.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/MiddleBedHeightGenerator.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/MiddleBedHeightGenerator.java Sun Apr 21 10:46:59 2013 +0200
@@ -120,7 +120,13 @@
label = getHAxisLabel();
}
else if (index == YAXIS.W.idx) {
- label = msg(I18N_W_YAXIS_LABEL, I18N_W_YAXIS_LABEL_DEFAULT);
+ FLYSArtifact flys = (FLYSArtifact) master;
+ String unit = FLYSUtils.getRiver(flys).getWstUnit().getName();
+
+ label = msg(
+ I18N_W_YAXIS_LABEL,
+ I18N_W_YAXIS_LABEL_DEFAULT,
+ new Object[] { unit });
}
else if (index == YAXIS.P.idx) {
label = msg(I18N_P_YAXIS_LABEL, I18N_P_YAXIS_LABEL_DEFAULT);
@@ -166,7 +172,10 @@
Processor woutp = new WOutProcessor();
Processor bedp = new BedheightProcessor();
-
+ WOutProcessor processor = new WOutProcessor();
+ if (processor.canHandle(name)) {
+ processor.doOut(this, artifactAndFacet, attr, visible, YAXIS.W.idx);
+ }
if (name.equals(MIDDLE_BED_HEIGHT_SINGLE) || name.equals(MIDDLE_BED_HEIGHT_EPOCH)) {
doHeightOut(
(MiddleBedHeightData) artifactAndFacet.getData(context),
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/exports/XYChartGenerator.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/XYChartGenerator.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/XYChartGenerator.java Sun Apr 21 10:46:59 2013 +0200
@@ -19,6 +19,7 @@
import org.jfree.chart.annotations.XYTextAnnotation;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
+import org.jfree.chart.axis.LogarithmicAxis;
import org.jfree.chart.plot.Marker;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
@@ -214,7 +215,8 @@
false);
XYPlot plot = (XYPlot) chart.getPlot();
- plot.setDomainAxis(createXAxis(getXAxisLabel()));
+ ValueAxis axis = createXAxis(getXAxisLabel());
+ plot.setDomainAxis(axis);
chart.setBackgroundPaint(Color.WHITE);
plot.setBackgroundPaint(Color.WHITE);
@@ -236,7 +238,14 @@
localizeAxes(plot);
adjustAxes(plot);
- autoZoom(plot);
+ if (!(axis instanceof LogarithmicAxis)) {
+ // XXX:
+ // The auto zoom without a range tries
+ // to include 0 in a logarithmic axis
+ // which triggers a bug in jfreechart that causes
+ // the values to be drawn carthesian
+ autoZoom(plot);
+ }
//debugAxis(plot);
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixWQCurveGenerator.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixWQCurveGenerator.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixWQCurveGenerator.java Sun Apr 21 10:46:59 2013 +0200
@@ -83,6 +83,8 @@
public static final String I18N_YAXIS_LABEL_DEFAULT =
"W [NN + m]";
+ public static final double EPSILON = 0.001d;
+
public static enum YAXIS {
W(0),
Q(1);
@@ -130,6 +132,9 @@
else if(QSECTOR.equals(name)) {
doQSectorOut(aaf, doc, visible);
}
+ else if(FIX_EVENTS.equals(name)) {
+ doEventsOut(aaf, doc, visible);
+ }
else if(/*STATIC_WKMS_INTERPOL.equals(name) ||*/
STATIC_WKMS_MARKS.equals(name) ||
STATIC_WKMS.equals(name) ||
@@ -245,6 +250,35 @@
}
+ private void addPointFromWQKms(WQKms wqkms,
+ String title,
+ Document theme,
+ boolean visible
+ ) {
+ XYSeries series = new StyledXYSeries(title, theme);
+ Double ckm = (Double) context.getContextValue(CURRENT_KM);
+ if (wqkms == null || wqkms.getKms().length == 0 || ckm == null) {
+ logger.info("addPointFromWQKms: No event data to show.");
+ return;
+ }
+ double[] kms = wqkms.getKms();
+ for (int i = 0 ; i< kms.length; i++) {
+ if (Math.abs(kms[i] - ckm) <= EPSILON) {
+ series.add(wqkms.getQ(i), wqkms.getW(i));
+ addAxisSeries(series, YAXIS.W.idx, visible);
+ return;
+ }
+ }
+ }
+
+ protected void doEventsOut(ArtifactAndFacet aaf, Document doc, boolean visible) {
+ logger.debug("doEventsOut");
+ // Find W/Q at km.
+ addPointFromWQKms((WQKms) aaf.getData(context),
+ aaf.getFacetDescription(), doc, visible);
+ }
+
+
protected void doWQCurveOut(ArtifactAndFacet aaf, Document doc, boolean visible) {
logger.debug("doWQCurveOut");
@@ -435,14 +469,14 @@
) {
logger.debug("FixWQCurveGenerator: doWQOut");
if (wqkms instanceof WQKms) {
- WQKms data = (WQKms) wqkms;
+ // TODO As in doEventsOut, the value-searching should
+ // be delivered by the facet already (instead of in the Generator).
+ logger.debug("FixWQCurveGenerator: doWQOut: WQKms");
- XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme);
- StyledSeriesBuilder.addPointsQW(series, data);
-
- addAxisSeries(series, YAXIS.W.idx, visible);
+ addPointFromWQKms((WQKms) aaf.getData(context), aaf.getFacetDescription(), theme, visible);
}
else {
+ logger.debug("FixWQCurveGenerator: doWQOut: double[][]");
double [][] data = (double [][]) wqkms;
XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme);
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/exports/minfo/BedDifferenceEpochGenerator.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/minfo/BedDifferenceEpochGenerator.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/minfo/BedDifferenceEpochGenerator.java Sun Apr 21 10:46:59 2013 +0200
@@ -9,15 +9,18 @@
import de.intevation.flys.artifacts.FLYSArtifact;
import de.intevation.flys.artifacts.access.FlowVelocityAccess;
import de.intevation.flys.artifacts.model.FacetTypes;
+import de.intevation.flys.artifacts.model.WKms;
import de.intevation.flys.artifacts.model.minfo.BedDiffEpochResult;
import de.intevation.flys.exports.StyledSeriesBuilder;
import de.intevation.flys.exports.fixings.FixChartGenerator;
import de.intevation.flys.exports.process.KMIndexProcessor;
import de.intevation.flys.exports.process.Processor;
+import de.intevation.flys.exports.process.WOutProcessor;
import de.intevation.flys.jfree.Bounds;
import de.intevation.flys.jfree.DoubleBounds;
import de.intevation.flys.jfree.FLYSAnnotation;
import de.intevation.flys.jfree.StyledXYSeries;
+import de.intevation.flys.utils.DataUtil;
public class BedDifferenceEpochGenerator
@@ -25,7 +28,7 @@
implements FacetTypes
{
public enum YAXIS {
- D(0), H(1), dW(2);
+ D(0), H(1), dW(2), W(3);
protected int idx;
@@ -51,6 +54,10 @@
public static final String I18N_DW_YAXIS_LABEL =
"chart.fixings.longitudinalsection.yaxis.label";
+ private static final String I18N_W_YAXIS_LABEL =
+ "chart.longitudinal.section.yaxis.label";
+ private static final String I18N_W_YAXIS_LABEL_DEFAULT = "W [NN + m]";
+
@Override
protected YAxisWalker getYAxisWalker() {
@@ -112,6 +119,7 @@
context.putContextValue("endkm", bounds.getUpper());
}
Processor processor = new KMIndexProcessor();
+ Processor woutp = new WOutProcessor();
if (name.equals(BED_DIFFERENCE_EPOCH)) {
doBedDifferenceEpochOut(
(BedDiffEpochResult) bundle.getData(context),
@@ -141,6 +149,16 @@
else if (processor.canHandle(name)) {
processor.doOut(this, bundle, attr, visible, YAXIS.dW.idx);
}
+ else if (woutp.canHandle(name)) {
+ woutp.doOut(this, bundle, attr, visible, YAXIS.W.idx);
+ }
+ else if (name.equals(W_DIFFERENCES)) {
+ doWDifferencesOut(
+ (WKms) bundle.getData(context),
+ bundle,
+ attr,
+ visible);
+ }
else if (name.equals(LONGITUDINAL_ANNOTATION)) {
doAnnotations(
(FLYSAnnotation) bundle.getData(context),
@@ -175,7 +193,9 @@
else if (pos == YAXIS.dW.idx) {
return msg(I18N_DW_YAXIS_LABEL, I18N_DW_YAXIS_LABEL_DEFAULT);
}
-
+ else if (pos == YAXIS.W.idx) {
+ return msg(I18N_W_YAXIS_LABEL, I18N_W_YAXIS_LABEL_DEFAULT);
+ }
return label;
}
@@ -206,4 +226,24 @@
addAxisSeries(series, YAXIS.H.idx, visible);
}
+
+ protected void doWDifferencesOut(
+ WKms wkms,
+ ArtifactAndFacet aandf,
+ Document theme,
+ boolean visible
+ ) {
+ if (wkms == null) {
+ logger.warn("No data to add to WDifferencesChart.");
+ return;
+ }
+
+ XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
+ StyledSeriesBuilder.addPoints(series, wkms);
+
+ addAxisSeries(series, YAXIS.D.idx, visible);
+ if (DataUtil.guessWaterIncreasing(wkms.allWs())) {
+ setInverted(true);
+ }
+ }
}
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/exports/minfo/BedDifferenceYearGenerator.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/minfo/BedDifferenceYearGenerator.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/minfo/BedDifferenceYearGenerator.java Sun Apr 21 10:46:59 2013 +0200
@@ -7,16 +7,20 @@
import de.intevation.artifactdatabase.state.ArtifactAndFacet;
import de.intevation.artifactdatabase.state.Facet;
import de.intevation.flys.artifacts.model.FacetTypes;
+import de.intevation.flys.artifacts.model.WKms;
import de.intevation.flys.artifacts.model.minfo.BedDiffYearResult;
import de.intevation.flys.artifacts.model.minfo.BedDifferencesResult;
+import de.intevation.flys.artifacts.model.minfo.MorphologicWidth;
import de.intevation.flys.exports.StyledSeriesBuilder;
import de.intevation.flys.exports.fixings.FixChartGenerator;
import de.intevation.flys.exports.process.KMIndexProcessor;
import de.intevation.flys.exports.process.Processor;
+import de.intevation.flys.exports.process.WOutProcessor;
import de.intevation.flys.jfree.Bounds;
import de.intevation.flys.jfree.DoubleBounds;
import de.intevation.flys.jfree.FLYSAnnotation;
import de.intevation.flys.jfree.StyledXYSeries;
+import de.intevation.flys.utils.DataUtil;
public class BedDifferenceYearGenerator
@@ -24,7 +28,7 @@
implements FacetTypes
{
public enum YAXIS {
- D(0), M(1), H(2), dW(3);
+ D(0), M(1), H(2), dW(3), W(4);
protected int idx;
@@ -45,12 +49,15 @@
public static final String I18N_CHART_TITLE_DEFAULT = "Sohlenhöhen Differenz";
public static final String I18N_XAXIS_LABEL_DEFAULT = "Fluss-Km";
public static final String I18N_YAXIS_LABEL_DEFAULT = "delta S [m]";
- public static final String I18N_SECOND_YAXIS_LABEL_DEFAULT = "Morph. Breite [m]";
+ public static final String I18N_SECOND_YAXIS_LABEL_DEFAULT = "Breite [m]";
public static final String I18N_THIRD_YAXIS_LABEL_DEFAULT = "Höhe [m]";
public static final String I18N_DW_YAXIS_LABEL_DEFAULT =
"delta W [cm]";
public static final String I18N_DW_YAXIS_LABEL =
"chart.fixings.longitudinalsection.yaxis.label";
+ private static final String I18N_W_YAXIS_LABEL =
+ "chart.longitudinal.section.yaxis.label";
+ private static final String I18N_W_YAXIS_LABEL_DEFAULT = "W [NN + m]";
@Override
protected YAxisWalker getYAxisWalker() {
@@ -110,6 +117,7 @@
context.putContextValue("endkm", bounds.getUpper());
}
Processor processor = new KMIndexProcessor();
+ Processor woutp = new WOutProcessor();
if (name.equals(BED_DIFFERENCE_YEAR)) {
doBedDifferenceYearOut(
(BedDiffYearResult) bundle.getData(context),
@@ -145,6 +153,14 @@
(BedDiffYearResult)bundle.getData(context),
bundle, attr, visible, 1);
}
+ else if (name.equals(MORPHOLOGIC_WIDTH)) {
+ doMorphologicWidthOut(
+ (MorphologicWidth)bundle.getData(context),
+ bundle,
+ attr,
+ visible,
+ 0);
+ }
else if (processor.canHandle(name)) {
processor.doOut(this, bundle, attr, visible, YAXIS.dW.idx);
}
@@ -155,14 +171,33 @@
attr,
visible);
}
- else if (processor.canHandle(name)) {
- processor.doOut(this, bundle, attr, visible, YAXIS.dW.idx);
+ else if (woutp.canHandle(name)) {
+ woutp.doOut(this, bundle, attr, visible, YAXIS.W.idx);
+ }
+ else if (name.equals(W_DIFFERENCES)) {
+ doWDifferencesOut(
+ (WKms) bundle.getData(context),
+ bundle,
+ attr,
+ visible);
}
else {
logger.warn("Unknown facet name " + name);
}
}
+ private void doMorphologicWidthOut(
+ MorphologicWidth data,
+ ArtifactAndFacet bundle,
+ Document attr,
+ boolean visible,
+ int i) {
+ XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), attr);
+ StyledSeriesBuilder.addPoints(series, data.getAsArray(), true);
+
+ addAxisSeries(series, YAXIS.M.idx, visible);
+ }
+
private void doBedDifferenceHeightsOut(
BedDiffYearResult data,
ArtifactAndFacet bundle,
@@ -207,6 +242,10 @@
else if (pos == YAXIS.dW.idx) {
label = msg(I18N_DW_YAXIS_LABEL, I18N_DW_YAXIS_LABEL_DEFAULT);
}
+ else if (pos == YAXIS.W.idx) {
+ return msg(I18N_W_YAXIS_LABEL, I18N_W_YAXIS_LABEL_DEFAULT);
+ }
+
return label;
}
@@ -229,4 +268,24 @@
addAxisSeries(series, YAXIS.M.idx, visible);
}
-}
+
+ protected void doWDifferencesOut(
+ WKms wkms,
+ ArtifactAndFacet aandf,
+ Document theme,
+ boolean visible
+ ) {
+ if (wkms == null) {
+ logger.warn("No data to add to WDifferencesChart.");
+ return;
+ }
+
+ XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
+ StyledSeriesBuilder.addPoints(series, wkms);
+
+ addAxisSeries(series, YAXIS.D.idx, visible);
+ if (DataUtil.guessWaterIncreasing(wkms.allWs())) {
+ setInverted(true);
+ }
+ }
+}
\ No newline at end of file
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/exports/minfo/SedimentLoadLSGenerator.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/minfo/SedimentLoadLSGenerator.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/minfo/SedimentLoadLSGenerator.java Sun Apr 21 10:46:59 2013 +0200
@@ -124,57 +124,8 @@
context.putContextValue("startkm", bounds.getLower());
context.putContextValue("endkm", bounds.getUpper());
}
- if (name.equals(SEDIMENT_LOAD_COARSE)) {
- doSedimentLoadCoarseOut(
- (double[][]) bundle.getData(context),
- bundle,
- attr,
- visible);
- }
- else if (name.equals(SEDIMENT_LOAD_SAND)) {
- doSedimentLoadSandOut(
- (double[][]) bundle.getData(context),
- bundle,
- attr,
- visible);
- }
- else if (name.equals(SEDIMENT_LOAD_FINEMIDDLE)) {
- doSedimentLoadFineMiddleOut(
- (double[][]) bundle.getData(context),
- bundle,
- attr,
- visible);
- }
- else if (name.equals(SEDIMENT_LOAD_SUSP_SAND)) {
- doSedimentLoadSuspSandOut(
- (double[][]) bundle.getData(context),
- bundle,
- attr,
- visible);
- }
- else if (name.equals(SEDIMENT_LOAD_SUSP_SAND_BED)) {
- doSedimentLoadSuspSandBedOut(
- (double[][]) bundle.getData(context),
- bundle,
- attr,
- visible);
- }
- else if (name.equals(SEDIMENT_LOAD_SUSP_SEDIMENT)) {
- doSedimentLoadSuspSedimentOut(
- (double[][]) bundle.getData(context),
- bundle,
- attr,
- visible);
- }
- else if (name.equals(SEDIMENT_LOAD_TOTAL_LOAD)) {
- doSedimentLoadTotalLoadOut(
- (double[][]) bundle.getData(context),
- bundle,
- attr,
- visible);
- }
- else if (name.equals(SEDIMENT_LOAD_TOTAL)) {
- doSedimentLoadTotalOut(
+ if (FacetTypes.IS.SEDIMENT_LOAD(SEDIMENT_LOAD_COARSE)) {
+ doSedimentLoadOut(
(double[][]) bundle.getData(context),
bundle,
attr,
@@ -288,75 +239,12 @@
return label;
}
- // TODO all double[][] eating *Out() can be subsumed.
- protected void doSedimentLoadCoarseOut(double[][] data,
+ protected void doSedimentLoadOut(double[][] data,
ArtifactAndFacet aandf, Document theme, boolean visible) {
- XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
- StyledSeriesBuilder.addPoints(series, data, true);
-
- addAxisSeries(series, YAXIS.L.idx, visible);
- }
-
- protected void doSedimentLoadSandOut(double[][] data,
- ArtifactAndFacet aandf, Document theme, boolean visible) {
-
- XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
- StyledSeriesBuilder.addPoints(series, data, true);
-
- addAxisSeries(series, YAXIS.L.idx, visible);
- }
-
- protected void doSedimentLoadFineMiddleOut(double[][] data,
- ArtifactAndFacet aandf, Document theme, boolean visible) {
-
- XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
- StyledSeriesBuilder.addPoints(series, data, true);
-
- addAxisSeries(series, YAXIS.L.idx, visible);
- }
-
- protected void doSedimentLoadSuspSandOut(double[][] data,
- ArtifactAndFacet aandf, Document theme, boolean visible) {
-
- XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
- StyledSeriesBuilder.addPoints(series, data, true);
-
- addAxisSeries(series, YAXIS.L.idx, visible);
- }
-
- protected void doSedimentLoadSuspSandBedOut(double[][] data,
- ArtifactAndFacet aandf, Document theme, boolean visible) {
-
- XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
- StyledSeriesBuilder.addPoints(series, data, true);
-
- addAxisSeries(series, YAXIS.L.idx, visible);
- }
-
- protected void doSedimentLoadSuspSedimentOut(double[][] data,
- ArtifactAndFacet aandf, Document theme, boolean visible) {
-
- XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
- StyledSeriesBuilder.addPoints(series, data, true);
-
- addAxisSeries(series, YAXIS.L.idx, visible);
- }
-
- protected void doSedimentLoadTotalLoadOut(double[][] data,
- ArtifactAndFacet aandf, Document theme, boolean visible) {
-
- XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
- StyledSeriesBuilder.addPoints(series, data, true);
-
- addAxisSeries(series, YAXIS.L.idx, visible);
- }
-
- protected void doSedimentLoadTotalOut(double[][] data,
- ArtifactAndFacet aandf, Document theme, boolean visible) {
-
- XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
- StyledSeriesBuilder.addPoints(series, data, true);
+ // Allow for gaps (NaNs).
+ XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), false, theme);
+ StyledSeriesBuilder.addPoints(series, data, false);
addAxisSeries(series, YAXIS.L.idx, visible);
}
@@ -434,5 +322,4 @@
setInverted(true);
}
}
-
}
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/jfree/DoubleBounds.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/jfree/DoubleBounds.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/jfree/DoubleBounds.java Sun Apr 21 10:46:59 2013 +0200
@@ -2,6 +2,7 @@
import org.jfree.chart.axis.ValueAxis;
+import org.jfree.chart.axis.LogarithmicAxis;
import org.jfree.data.Range;
@@ -50,7 +51,12 @@
@Override
public void applyBounds(ValueAxis axis, int percent) {
double space = (upper - lower) / 100 * percent;
- axis.setRange(new Range(lower-space, upper+space));
+ if (axis instanceof LogarithmicAxis) {
+ axis.setRange(new Range(Math.max(lower-space, 0.0001),
+ Math.max(upper+space, 0.0002)));
+ } else {
+ axis.setRange(new Range(lower-space, upper+space));
+ }
}
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/java/de/intevation/flys/utils/ThemeUtil.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/utils/ThemeUtil.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/utils/ThemeUtil.java Sun Apr 21 10:46:59 2013 +0200
@@ -660,22 +660,35 @@
* @param theme
* @return String representation of the MapserverStyle
*/
- public static String createDynamicMapserverStyle(Document theme) {
+ public static String createDynamicMapserverStyle(Document theme,
+ float from, float to, float step)
+ {
MapserverStyle ms = new MapserverStyle();
String strStartColor = XMLUtils.xpathString(theme, XPATH_WSPLGEN_STARTCOLOR, null);
Color startColor = strStartColor != null ? parseColor(strStartColor) : new Color(178, 201, 215);
String strEndColor = XMLUtils.xpathString(theme, XPATH_WSPLGEN_ENDCOLOR, null);
Color endColor = strEndColor != null? parseColor(strEndColor) : new Color(2, 27, 42);
+/*
String strNumClasses = XMLUtils.xpathString(theme, XPATH_WSPLGEN_NUMCLASSES, null);
- int numClasses = strNumClasses != null ? Integer.parseInt(strNumClasses) : 5;
+ int numClasses;
+ if (strNumClasses != null) {
+ numClasses = Integer.parseInt(strNumClasses);
+ }
+ else {
+ numClasses = 5;
+ logger.warn("createDynamicMapserverStyle(): strNumClasses is null");
+ }
if (numClasses < 5) {
numClasses = 5;
}
else if (numClasses > 20) {
numClasses = 20;
- }
+ }*/
+
+
+ int numClasses = (int)((to - from) / step);
float rd = (endColor.getRed() - startColor.getRed()) / (float)numClasses;
float gd = (endColor.getGreen() - startColor.getGreen()) / (float)numClasses;
@@ -689,7 +702,7 @@
newColor.append(' ');
newColor.append(startColor.getBlue() + Math.round(n * bd));
- String expr = createWSPLGENExpression(n + 1, numClasses);
+ String expr = createWSPLGENExpression(from + n * step, step, n + 1, numClasses);
Clazz c = new Clazz(expr);
Style s = new Style();
@@ -706,13 +719,12 @@
}
- protected static String createWSPLGENExpression(int idx, int maxIdx) {
+ protected static String createWSPLGENExpression(float val, float step, int idx, int maxIdx) {
if (idx < maxIdx) {
- int lower = idx - 1;
- return "[DIFF] >= " + lower + " AND [DIFF] < " + idx;
+ return "[DIFF] >= " + val + " AND [DIFF] < " + (val + step);
}
else {
- return "[DIFF] >= " + (maxIdx - 1);
+ return "[DIFF] >= " + val;
}
}
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/resources/messages.properties
--- a/flys-artifacts/src/main/resources/messages.properties Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/resources/messages.properties Sun Apr 21 10:46:59 2013 +0200
@@ -246,11 +246,11 @@
facet.sedimentload.susp_sediment = Sediment
facet.sedimentload.total = Total
facet.sedimentload.total_load = Total bed load
-missing.fraction.coarse = Missing coarse fraction
-missing.fraction.fine_middle = Missing fine/middle fraction
-missing.fraction.sand = Missing sand fraction
-missing.fraction.susp_sand = Missing susp. sand fraction
-missing.fraction.susp_sediment = Missing susp. sediment fraction
+missing.fraction.coarse = Year {0}: Missing coarse fraction
+missing.fraction.fine_middle = Year {0}: Missing fine/middle fraction
+missing.fraction.sand = Year {0}: Missing sand fraction
+missing.fraction.susp_sand = Year {0}: Missing susp. sand fraction
+missing.fraction.susp_sediment = Year {0}: Missing susp. sediment fraction
missing.data.coarse = Missing coarse data at
missing.data.fine_middle = Missing fine/middle data at
missing.data.sand = Missing sand data at
@@ -281,7 +281,7 @@
bedquality.toplayer = 0.0m - 0.3m
bedquality.sublayer = 0.1m - 0.5m
facet.bedheight.diff.year = Bedheight Difference {0}
-facet.bedheight.diff.morph = Morphologic Width {0}
+facet.bedheight.diff.morph = sounding Width {0}
facet.bedheight.diff.height1 = Original Height Minuend {0}
facet.bedheight.diff.height2 = Original Height Subtrahend {0}
facet.bedheight.diff.absolute = Bedheight Difference/Year {0}
@@ -296,6 +296,7 @@
facet.gauge_discharge_curve.reference_gauge = Gauge official number
facet.gauge_discharge_curve.gauge_name = Name of the gauge
facet.gauge_discharge_curve.gauge_location = Location of the gauge
+facet.morphologic.width = morphologic Width
chart.beddifference.height.title = Bedheight Difference
chart.beddifference.height.xaxis.label = River-Km [km]
@@ -305,7 +306,7 @@
chart.beddifference.yaxis.label.diff = Difference [m]
chart.beddifference.yaxis.label.height = Absolute Height [m]
chart.beddifference.year.title = Bedheight Difference
-chart.beddifference.yaxis.label.morph = Morphologic Width [m]
+chart.beddifference.yaxis.label.morph = Width [m]
chart.beddifference.yaxis.label.heights = Absolute Height [m]
@@ -471,54 +472,54 @@
no.reference.end.kms = No reference end station(s) given.
waterlevels = Waterlevels
-help.index=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe
-help.state.winfo=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO
-help.state.winfo.river=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.river
-help.state.winfo.calculation_mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.calculation_mode
-help.state.winfo.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.location
-help.state.winfo.distance_only=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.distance_only
-help.state.winfo.distance=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.distance
-help.state.winfo.location_distance=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.location_distance
-help.state.winfo.wq=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.wq
-help.state.winfo.wq_adapted=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.wq_adapted
-help.state.winfo.waterlevel_pair_select=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.waterlevel_pair_select
-help.state.winfo.reference.curve.input.start=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.start
-help.state.winfo.reference.curve.input.end=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.end
-help.state.winfo.uesk.wsp=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.wsp
-help.state.winfo.uesk.dgm=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.dgm
-help.state.winfo.uesk.profiles=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.profiles
-help.state.winfo.uesk.floodplain=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.floodplain
-help.state.winfo.uesk.differences=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.differences
-help.state.winfo.uesk.scenario=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.uesk.dc-hws=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.uesk.user-rgd=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.uesk.barriers=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.historicalq.reference_gauge=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.historicalq.reference_gauge
-help.state.winfo.historicalq.timerange=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.historicalq.timerange
-help.state.winfo.historicalq.mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.historicalq.mode
-help.state.winfo.function_select=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.function_select
-help.state.winfo.extreme.percent=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.extreme.percent
-help.state.winfo.extreme.qinput=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.extreme.qinput
+help.index=${help.url}/OnlineHilfe
+help.state.winfo=${help.url}/OnlineHilfe/WINFO
+help.state.winfo.river=${help.url}/OnlineHilfe/WINFO#help.state.winfo.river
+help.state.winfo.calculation_mode=${help.url}/OnlineHilfe/WINFO#help.state.winfo.calculation_mode
+help.state.winfo.location=${help.url}/OnlineHilfe/WINFO#help.state.winfo.location
+help.state.winfo.distance_only=${help.url}/OnlineHilfe/WINFO#help.state.winfo.distance_only
+help.state.winfo.distance=${help.url}/OnlineHilfe/WINFO#help.state.winfo.distance
+help.state.winfo.location_distance=${help.url}/OnlineHilfe/WINFO#help.state.winfo.location_distance
+help.state.winfo.wq=${help.url}/OnlineHilfe/WINFO#help.state.winfo.wq
+help.state.winfo.wq_adapted=${help.url}/OnlineHilfe/WINFO#help.state.winfo.wq_adapted
+help.state.winfo.waterlevel_pair_select=${help.url}/OnlineHilfe/WINFO#help.state.winfo.waterlevel_pair_select
+help.state.winfo.reference.curve.input.start=${help.url}/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.start
+help.state.winfo.reference.curve.input.end=${help.url}/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.end
+help.state.winfo.uesk.wsp=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.wsp
+help.state.winfo.uesk.dgm=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.dgm
+help.state.winfo.uesk.profiles=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.profiles
+help.state.winfo.uesk.floodplain=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.floodplain
+help.state.winfo.uesk.differences=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.differences
+help.state.winfo.uesk.scenario=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.uesk.dc-hws=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.uesk.user-rgd=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.uesk.barriers=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.historicalq.reference_gauge=${help.url}/OnlineHilfe/WINFO#help.state.winfo.historicalq.reference_gauge
+help.state.winfo.historicalq.timerange=${help.url}/OnlineHilfe/WINFO#help.state.winfo.historicalq.timerange
+help.state.winfo.historicalq.mode=${help.url}/OnlineHilfe/WINFO#help.state.winfo.historicalq.mode
+help.state.winfo.function_select=${help.url}/OnlineHilfe/WINFO#help.state.winfo.function_select
+help.state.winfo.extreme.percent=${help.url}/OnlineHilfe/WINFO#help.state.winfo.extreme.percent
+help.state.winfo.extreme.qinput=${help.url}/OnlineHilfe/WINFO#help.state.winfo.extreme.qinput
-help.state.minfo.river=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.river
-help.state.minfo.calculation_mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.calculation_mode
-help.state.minfo.distance_only=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.distance_only
-help.state.minfo.bed.year_epoch=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.year_epoch
-help.state.minfo.sq.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sq.location
-help.state.minfo.bed.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.location
-help.state.minfo.dischargestate=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.dischargestate
-help.state.minfo.soundings=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.soundings
-help.state.minfo.bed.difference_select=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.difference_select
-help.state.minfo.sq.outliers=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sq.outliers
-help.state.minfo.sediment.load.year_epoch=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.year_epoch
-help.state.minfo.sediment.load.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.location
-help.state.minfo.bed.periods=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.periods
-help.state.minfo.bed.char_diameter=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.char_diameter
-help.state.minfo.sediment.load.period=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.period
-help.state.minfo.sediment.load.epochs=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.epochs
-help.state.minfo.sediment.load.off_epochs=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.off_epochs
-help.state.minfo.sediment.load.unit=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.unit
-help.state.minfo.sq.period=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sq.period
+help.state.minfo.river=${help.url}/OnlineHilfe/MINFO#help.state.minfo.river
+help.state.minfo.calculation_mode=${help.url}/OnlineHilfe/MINFO#help.state.minfo.calculation_mode
+help.state.minfo.distance_only=${help.url}/OnlineHilfe/MINFO#help.state.minfo.distance_only
+help.state.minfo.bed.year_epoch=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.year_epoch
+help.state.minfo.sq.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.location
+help.state.minfo.bed.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.location
+help.state.minfo.dischargestate=${help.url}/OnlineHilfe/MINFO#help.state.minfo.dischargestate
+help.state.minfo.soundings=${help.url}/OnlineHilfe/MINFO#help.state.minfo.soundings
+help.state.minfo.bed.difference_select=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.difference_select
+help.state.minfo.sq.outliers=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.outliers
+help.state.minfo.sediment.load.year_epoch=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.year_epoch
+help.state.minfo.sediment.load.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.location
+help.state.minfo.bed.periods=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.periods
+help.state.minfo.bed.char_diameter=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.char_diameter
+help.state.minfo.sediment.load.period=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.period
+help.state.minfo.sediment.load.epochs=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.epochs
+help.state.minfo.sediment.load.off_epochs=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.off_epochs
+help.state.minfo.sediment.load.unit=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.unit
+help.state.minfo.sq.period=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.period
fix.reference.period=Reference period
@@ -614,18 +615,18 @@
gauge.discharge.service.chart.series.title = Discharge Curve {0,date,short} - {1,date,short}
gauge.discharge.service.chart.series.title.master = Current Discharge Curve since {0,date,short}
-help.state.fix.river=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.river
-help.state.fix.calculation.mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.calculation.mode
-help.state.fix.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.location
-help.state.fix.period=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.period
-help.state.fix.gaugerange=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.gaugerange
-help.state.fix.eventselect=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.eventselect
-help.state.fix.analysis.referenceperiod=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.referenceperiod
-help.state.fix.analysis.analysisperiods=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.analysisperiods
-help.state.fix.analysis.function=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.function
-help.state.fix.analysis.preprocessing=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.preprocessing
-help.state.fix.analysis.compute=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.compute
-help.state.fix.vollmer.function=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.function
-help.state.fix.vollmer.preprocessing=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.preprocessing
-help.state.fix.vollmer.qs=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.qs
-help.state.fix.vollmer.compute=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.compute
+help.state.fix.river=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.river
+help.state.fix.calculation.mode=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.calculation.mode
+help.state.fix.location=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.location
+help.state.fix.period=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.period
+help.state.fix.gaugerange=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.gaugerange
+help.state.fix.eventselect=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.eventselect
+help.state.fix.analysis.referenceperiod=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.referenceperiod
+help.state.fix.analysis.analysisperiods=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.analysisperiods
+help.state.fix.analysis.function=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.function
+help.state.fix.analysis.preprocessing=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.preprocessing
+help.state.fix.analysis.compute=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.compute
+help.state.fix.vollmer.function=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.function
+help.state.fix.vollmer.preprocessing=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.preprocessing
+help.state.fix.vollmer.qs=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.qs
+help.state.fix.vollmer.compute=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.compute
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/resources/messages_de.properties
--- a/flys-artifacts/src/main/resources/messages_de.properties Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/resources/messages_de.properties Sun Apr 21 10:46:59 2013 +0200
@@ -247,11 +247,11 @@
facet.sedimentload.susp_sediment = Schwebstoff
facet.sedimentload.total = Gesamt
facet.sedimentload.total_load = Gesamt Geschiebe
-missing.fraction.coarse = Fehlende Fraktion: grober Kies
-missing.fraction.fine_middle = Fehlende Fraktion: fein/mittlerer Kies
-missing.fraction.sand = Fehlende Fraktion: Sand
-missing.fraction.susp_sand = Fehlende Fraktion: susp. Sand
-missing.fraction.susp_sediment = Fehlende Fraktion: Schwebstoffe
+missing.fraction.coarse = Jahr {0}: Fehlende Fraktion: grober Kies
+missing.fraction.fine_middle = Jahr {0}: Fehlende Fraktion: fein/mittlerer Kies
+missing.fraction.sand = Jahr {0}: Fehlende Fraktion: Sand
+missing.fraction.susp_sand = Jahr {0}: Fehlende Fraktion: susp. Sand
+missing.fraction.susp_sediment = Jahr {0}: Fehlende Fraktion: Schwebstoffe
missing.data.coarse = Fehlende Daten bei grobem Kies
missing.data.fine_middle = Fehlende Daten bei fein/mittlerem Kies
missing.data.sand = Fehlende Daten bei Sand
@@ -281,13 +281,13 @@
facet.bedquality.bedload.diameter = {0}_Geschiebe
bedquality.toplayer = 0,0m - 0,3m
bedquality.sublayer = 0,1m - 0,5m
-facet.bedheight.diff.year = Sohlh\u00f6hendiffernez {0}
-facet.bedheight.diff.morph = Morphologische Breite {0}
+facet.bedheight.diff.year = Sohlh\u00f6hendifferenz {0}
+facet.bedheight.diff.morph = gepeilte Breite {0}
facet.bedheight.diff.height1 = H\u00f6he Minuend {0}
facet.bedheight.diff.height2 = H\u00f6he Subtrahend {0}
facet.bedheight.diff.absolute = Sohlh\u00f6hendifferenz/Jahr {0}
facet.bedheight.diff.epoch = Sohlh\u00f6hendifferenz {0}
-facet.bedheight.diff.year.raw = Sohlh\u00f6hendiffernez {0} (Rohdaten)
+facet.bedheight.diff.year.raw = Sohlh\u00f6hendifferenz {0} (Rohdaten)
facet.bedheight.diff.height1.raw = H\u00f6he Minuend {0} (Rohdaten)
facet.bedheight.diff.height2.raw = H\u00f6he Subtrahend {0} (Rohdaten)
facet.bedheight.diff.absolute.raw = Sohlh\u00f6hendifferenz/Jahr {0} (Rohdaten)
@@ -297,6 +297,7 @@
facet.gauge_discharge_curve.reference_gauge = Pegelnummer
facet.gauge_discharge_curve.gauge_name = Pegelname
facet.gauge_discharge_curve.gauge_location = Pegelort
+facet.morphologic.width = Morphologische Breite
chart.beddifference.height.title = Sohlh\u00f6hendifferenz
chart.beddifference.height.xaxis.label = Fluss-Km [km]
@@ -306,7 +307,7 @@
chart.beddifference.yaxis.label.diff = Differenz [m]
chart.beddifference.yaxis.label.height = Absolute H\u00f6he [m]
chart.beddifference.year.title = Sohlh\u00f6hendifferenz
-chart.beddifference.yaxis.label.morph = Morphologische Breite [m]
+chart.beddifference.yaxis.label.morph = Breite [m]
chart.beddifference.yaxis.label.heights = Absolute H\u00f6he [m]
export.waterlevel.csv.header.km = Fluss-Km
@@ -473,54 +474,54 @@
no.reference.end.kms = Keine Endkilometerstation(en) angegeben.
waterlevels = Wasserst\u00e4nde
-help.index=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe
-help.state.winfo=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO
-help.state.winfo.river=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.river
-help.state.winfo.calculation_mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.calculation_mode
-help.state.winfo.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.location
-help.state.winfo.distance_only=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.distance_only
-help.state.winfo.distance=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.distance
-help.state.winfo.location_distance=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.location_distance
-help.state.winfo.wq=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.wq
-help.state.winfo.wq_adapted=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.wq_adapted
-help.state.winfo.waterlevel_pair_select=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.waterlevel_pair_select
-help.state.winfo.reference.curve.input.start=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.start
-help.state.winfo.reference.curve.input.end=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.end
-help.state.winfo.uesk.wsp=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.wsp
-help.state.winfo.uesk.dgm=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.dgm
-help.state.winfo.uesk.profiles=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.profiles
-help.state.winfo.uesk.floodplain=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.floodplain
-help.state.winfo.uesk.differences=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.differences
-help.state.winfo.uesk.scenario=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.uesk.dc-hws=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.uesk.user-rgd=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.uesk.barriers=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.historicalq.reference_gauge=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.historicalq.reference_gauge
-help.state.winfo.historicalq.timerange=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.historicalq.timerange
-help.state.winfo.historicalq.mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.historicalq.mode
-help.state.winfo.function_select=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.function_select
-help.state.winfo.extreme.percent=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.extreme.percent
-help.state.winfo.extreme.qinput=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.extreme.qinput
+help.index=${help.url}/OnlineHilfe
+help.state.winfo=${help.url}/OnlineHilfe/WINFO
+help.state.winfo.river=${help.url}/OnlineHilfe/WINFO#help.state.winfo.river
+help.state.winfo.calculation_mode=${help.url}/OnlineHilfe/WINFO#help.state.winfo.calculation_mode
+help.state.winfo.location=${help.url}/OnlineHilfe/WINFO#help.state.winfo.location
+help.state.winfo.distance_only=${help.url}/OnlineHilfe/WINFO#help.state.winfo.distance_only
+help.state.winfo.distance=${help.url}/OnlineHilfe/WINFO#help.state.winfo.distance
+help.state.winfo.location_distance=${help.url}/OnlineHilfe/WINFO#help.state.winfo.location_distance
+help.state.winfo.wq=${help.url}/OnlineHilfe/WINFO#help.state.winfo.wq
+help.state.winfo.wq_adapted=${help.url}/OnlineHilfe/WINFO#help.state.winfo.wq_adapted
+help.state.winfo.waterlevel_pair_select=${help.url}/OnlineHilfe/WINFO#help.state.winfo.waterlevel_pair_select
+help.state.winfo.reference.curve.input.start=${help.url}/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.start
+help.state.winfo.reference.curve.input.end=${help.url}/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.end
+help.state.winfo.uesk.wsp=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.wsp
+help.state.winfo.uesk.dgm=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.dgm
+help.state.winfo.uesk.profiles=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.profiles
+help.state.winfo.uesk.floodplain=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.floodplain
+help.state.winfo.uesk.differences=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.differences
+help.state.winfo.uesk.scenario=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.uesk.dc-hws=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.uesk.user-rgd=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.uesk.barriers=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.historicalq.reference_gauge=${help.url}/OnlineHilfe/WINFO#help.state.winfo.historicalq.reference_gauge
+help.state.winfo.historicalq.timerange=${help.url}/OnlineHilfe/WINFO#help.state.winfo.historicalq.timerange
+help.state.winfo.historicalq.mode=${help.url}/OnlineHilfe/WINFO#help.state.winfo.historicalq.mode
+help.state.winfo.function_select=${help.url}/OnlineHilfe/WINFO#help.state.winfo.function_select
+help.state.winfo.extreme.percent=${help.url}/OnlineHilfe/WINFO#help.state.winfo.extreme.percent
+help.state.winfo.extreme.qinput=${help.url}/OnlineHilfe/WINFO#help.state.winfo.extreme.qinput
-help.state.minfo.river=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.river
-help.state.minfo.calculation_mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.calculation_mode
-help.state.minfo.distance_only=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.distance_only
-help.state.minfo.bed.year_epoch=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.year_epoch
-help.state.minfo.sq.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sq.location
-help.state.minfo.bed.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.location
-help.state.minfo.dischargestate=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.dischargestate
-help.state.minfo.soundings=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.soundings
-help.state.minfo.bed.difference_select=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.difference_select
-help.state.minfo.sq.outliers=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sq.outliers
-help.state.minfo.sediment.load.year_epoch=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.year_epoch
-help.state.minfo.sediment.load.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.location
-help.state.minfo.bed.periods=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.periods
-help.state.minfo.bed.char_diameter=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.char_diameter
-help.state.minfo.sediment.load.period=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.period
-help.state.minfo.sediment.load.epochs=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.epochs
-help.state.minfo.sediment.load.off_epochs=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.off_epochs
-help.state.minfo.sediment.load.unit=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.unit
-help.state.minfo.sq.period=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sq.period
+help.state.minfo.river=${help.url}/OnlineHilfe/MINFO#help.state.minfo.river
+help.state.minfo.calculation_mode=${help.url}/OnlineHilfe/MINFO#help.state.minfo.calculation_mode
+help.state.minfo.distance_only=${help.url}/OnlineHilfe/MINFO#help.state.minfo.distance_only
+help.state.minfo.bed.year_epoch=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.year_epoch
+help.state.minfo.sq.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.location
+help.state.minfo.bed.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.location
+help.state.minfo.dischargestate=${help.url}/OnlineHilfe/MINFO#help.state.minfo.dischargestate
+help.state.minfo.soundings=${help.url}/OnlineHilfe/MINFO#help.state.minfo.soundings
+help.state.minfo.bed.difference_select=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.difference_select
+help.state.minfo.sq.outliers=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.outliers
+help.state.minfo.sediment.load.year_epoch=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.year_epoch
+help.state.minfo.sediment.load.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.location
+help.state.minfo.bed.periods=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.periods
+help.state.minfo.bed.char_diameter=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.char_diameter
+help.state.minfo.sediment.load.period=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.period
+help.state.minfo.sediment.load.epochs=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.epochs
+help.state.minfo.sediment.load.off_epochs=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.off_epochs
+help.state.minfo.sediment.load.unit=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.unit
+help.state.minfo.sq.period=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.period
fix.reference.period=Bezugszeitraum
@@ -617,18 +618,18 @@
gauge.discharge.service.chart.series.title = Abflusskurve {0,date,short} - {1,date,short}
gauge.discharge.service.chart.series.title.master = Aktuelle Abflusskurve ab {0,date,short}
-help.state.fix.river=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.river
-help.state.fix.calculation.mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.calculation.mode
-help.state.fix.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.location
-help.state.fix.period=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.period
-help.state.fix.gaugerange=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.gaugerange
-help.state.fix.eventselect=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.eventselect
-help.state.fix.analysis.referenceperiod=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.referenceperiod
-help.state.fix.analysis.analysisperiods=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.analysisperiods
-help.state.fix.analysis.function=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.function
-help.state.fix.analysis.preprocessing=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.preprocessing
-help.state.fix.analysis.compute=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.compute
-help.state.fix.vollmer.function=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.function
-help.state.fix.vollmer.preprocessing=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.preprocessing
-help.state.fix.vollmer.qs=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.qs
-help.state.fix.vollmer.compute=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.compute
+help.state.fix.river=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.river
+help.state.fix.calculation.mode=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.calculation.mode
+help.state.fix.location=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.location
+help.state.fix.period=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.period
+help.state.fix.gaugerange=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.gaugerange
+help.state.fix.eventselect=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.eventselect
+help.state.fix.analysis.referenceperiod=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.referenceperiod
+help.state.fix.analysis.analysisperiods=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.analysisperiods
+help.state.fix.analysis.function=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.function
+help.state.fix.analysis.preprocessing=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.preprocessing
+help.state.fix.analysis.compute=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.compute
+help.state.fix.vollmer.function=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.function
+help.state.fix.vollmer.preprocessing=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.preprocessing
+help.state.fix.vollmer.qs=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.qs
+help.state.fix.vollmer.compute=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.compute
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/resources/messages_de_DE.properties
--- a/flys-artifacts/src/main/resources/messages_de_DE.properties Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/resources/messages_de_DE.properties Sun Apr 21 10:46:59 2013 +0200
@@ -244,11 +244,11 @@
facet.sedimentload.susp_sediment = Schwebstoff
facet.sedimentload.total = Gesamt
facet.sedimentload.total_load = Gesamt Geschiebe
-missing.fraction.coarse = Fehlende Fraktion: grober Kies
-missing.fraction.fine_middle = Fehlende Fraktion: fein/mittlerer Kies
-missing.fraction.sand = Fehlende Fraktion: Sand
-missing.fraction.susp_sand = Fehlende Fraktion: susp. Sand
-missing.fraction.susp_sediment = Fehlende Fraktion: Schwebstoffe
+missing.fraction.coarse = Jahr {0}: Fehlende Fraktion: grober Kies
+missing.fraction.fine_middle = Jahr {0}: Fehlende Fraktion: fein/mittlerer Kies
+missing.fraction.sand = Jahr {0}: Fehlende Fraktion: Sand
+missing.fraction.susp_sand = Jahr {0}: Fehlende Fraktion: susp. Sand
+missing.fraction.susp_sediment = Jahr {0}: Fehlende Fraktion: Schwebstoffe
missing.data.coarse = Fehlende Daten bei grobem Kies
missing.data.fine_middle = Fehlende Daten bei fein/mittlerem Kies
missing.data.sand = Fehlende Daten bei Sand
@@ -278,9 +278,9 @@
facet.bedquality.bedload.diameter = {0}_Geschiebe
bedquality.toplayer = 0,0m - 0,3m
bedquality.sublayer = 0,1m - 0,5m
-facet.bedheight.diff.year = Sohlh\u00f6hendiffernez {0}
-facet.bedheight.diff.year.raw = Sohlh\u00f6hendiffernez {0} (Rohdaten)
-facet.bedheight.diff.morph = Morphologische Breite {0}
+facet.bedheight.diff.year = Sohlh\u00f6hendifferenz {0}
+facet.bedheight.diff.year.raw = Sohlh\u00f6hendifferenz {0} (Rohdaten)
+facet.bedheight.diff.morph = gepeilte Breite {0}
facet.bedheight.diff.height1 = H\u00f6he Minuend {0}
facet.bedheight.diff.height2 = H\u00f6he Subtrahend {0}
facet.bedheight.diff.absolute = Sohlh\u00f6hendifferenz/Jahr {0}
@@ -294,6 +294,7 @@
facet.gauge_discharge_curve.reference_gauge = Pegelnummer
facet.gauge_discharge_curve.gauge_name = Pegelname
facet.gauge_discharge_curve.gauge_location = Pegelort
+facet.morphologic.width = Morphologische Breite
chart.beddifference.height.title = Sohlh\u00f6hendifferenz
chart.beddifference.height.xaxis.label = Fluss-Km [km]
@@ -303,7 +304,7 @@
chart.beddifference.yaxis.label.diff = Differenz [m]
chart.beddifference.yaxis.label.height = Absolute H\u00f6he [m]
chart.beddifference.year.title = Sohlh\u00f6hendifferenz
-chart.beddifference.yaxis.label.morph = Morphologische Breite [m]
+chart.beddifference.yaxis.label.morph = Breite [m]
chart.beddifference.yaxis.label.heights = Absolute H\u00f6he [m]
export.waterlevel.csv.header.km = Fluss-Km
@@ -469,54 +470,54 @@
no.reference.end.kms = Keine Endkilometerstation(en) angegeben.
waterlevels = Wasserst\u00e4nde
-help.index=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe
-help.state.winfo=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO
-help.state.winfo.river=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.river
-help.state.winfo.calculation_mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.calculation_mode
-help.state.winfo.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.location
-help.state.winfo.distance_only=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.distance_only
-help.state.winfo.distance=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.distance
-help.state.winfo.location_distance=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.location_distance
-help.state.winfo.wq=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.wq
-help.state.winfo.wq_adapted=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.wq_adapted
-help.state.winfo.waterlevel_pair_select=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.waterlevel_pair_select
-help.state.winfo.reference.curve.input.start=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.start
-help.state.winfo.reference.curve.input.end=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.end
-help.state.winfo.uesk.wsp=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.wsp
-help.state.winfo.uesk.dgm=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.dgm
-help.state.winfo.uesk.profiles=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.profiles
-help.state.winfo.uesk.floodplain=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.floodplain
-help.state.winfo.uesk.differences=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.differences
-help.state.winfo.uesk.scenario=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.uesk.dc-hws=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.uesk.user-rgd=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.uesk.barriers=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.historicalq.reference_gauge=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.historicalq.reference_gauge
-help.state.winfo.historicalq.timerange=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.historicalq.timerange
-help.state.winfo.historicalq.mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.historicalq.mode
-help.state.winfo.function_select=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.function_select
-help.state.winfo.extreme.percent=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.extreme.percent
-help.state.winfo.extreme.qinput=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.extreme.qinput
+help.index=${help.url}/OnlineHilfe
+help.state.winfo=${help.url}/OnlineHilfe/WINFO
+help.state.winfo.river=${help.url}/OnlineHilfe/WINFO#help.state.winfo.river
+help.state.winfo.calculation_mode=${help.url}/OnlineHilfe/WINFO#help.state.winfo.calculation_mode
+help.state.winfo.location=${help.url}/OnlineHilfe/WINFO#help.state.winfo.location
+help.state.winfo.distance_only=${help.url}/OnlineHilfe/WINFO#help.state.winfo.distance_only
+help.state.winfo.distance=${help.url}/OnlineHilfe/WINFO#help.state.winfo.distance
+help.state.winfo.location_distance=${help.url}/OnlineHilfe/WINFO#help.state.winfo.location_distance
+help.state.winfo.wq=${help.url}/OnlineHilfe/WINFO#help.state.winfo.wq
+help.state.winfo.wq_adapted=${help.url}/OnlineHilfe/WINFO#help.state.winfo.wq_adapted
+help.state.winfo.waterlevel_pair_select=${help.url}/OnlineHilfe/WINFO#help.state.winfo.waterlevel_pair_select
+help.state.winfo.reference.curve.input.start=${help.url}/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.start
+help.state.winfo.reference.curve.input.end=${help.url}/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.end
+help.state.winfo.uesk.wsp=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.wsp
+help.state.winfo.uesk.dgm=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.dgm
+help.state.winfo.uesk.profiles=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.profiles
+help.state.winfo.uesk.floodplain=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.floodplain
+help.state.winfo.uesk.differences=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.differences
+help.state.winfo.uesk.scenario=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.uesk.dc-hws=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.uesk.user-rgd=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.uesk.barriers=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.historicalq.reference_gauge=${help.url}/OnlineHilfe/WINFO#help.state.winfo.historicalq.reference_gauge
+help.state.winfo.historicalq.timerange=${help.url}/OnlineHilfe/WINFO#help.state.winfo.historicalq.timerange
+help.state.winfo.historicalq.mode=${help.url}/OnlineHilfe/WINFO#help.state.winfo.historicalq.mode
+help.state.winfo.function_select=${help.url}/OnlineHilfe/WINFO#help.state.winfo.function_select
+help.state.winfo.extreme.percent=${help.url}/OnlineHilfe/WINFO#help.state.winfo.extreme.percent
+help.state.winfo.extreme.qinput=${help.url}/OnlineHilfe/WINFO#help.state.winfo.extreme.qinput
-help.state.minfo.river=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.river
-help.state.minfo.calculation_mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.calculation_mode
-help.state.minfo.distance_only=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.distance_only
-help.state.minfo.bed.year_epoch=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.year_epoch
-help.state.minfo.sq.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sq.location
-help.state.minfo.bed.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.location
-help.state.minfo.dischargestate=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.dischargestate
-help.state.minfo.soundings=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.soundings
-help.state.minfo.bed.difference_select=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.difference_select
-help.state.minfo.sq.outliers=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sq.outliers
-help.state.minfo.sediment.load.year_epoch=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.year_epoch
-help.state.minfo.sediment.load.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.location
-help.state.minfo.bed.periods=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.periods
-help.state.minfo.bed.char_diameter=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.char_diameter
-help.state.minfo.sediment.load.period=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.period
-help.state.minfo.sediment.load.epochs=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.epochs
-help.state.minfo.sediment.load.off_epochs=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.off_epochs
-help.state.minfo.sediment.load.unit=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.unit
-help.state.minfo.sq.period=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sq.period
+help.state.minfo.river=${help.url}/OnlineHilfe/MINFO#help.state.minfo.river
+help.state.minfo.calculation_mode=${help.url}/OnlineHilfe/MINFO#help.state.minfo.calculation_mode
+help.state.minfo.distance_only=${help.url}/OnlineHilfe/MINFO#help.state.minfo.distance_only
+help.state.minfo.bed.year_epoch=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.year_epoch
+help.state.minfo.sq.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.location
+help.state.minfo.bed.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.location
+help.state.minfo.dischargestate=${help.url}/OnlineHilfe/MINFO#help.state.minfo.dischargestate
+help.state.minfo.soundings=${help.url}/OnlineHilfe/MINFO#help.state.minfo.soundings
+help.state.minfo.bed.difference_select=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.difference_select
+help.state.minfo.sq.outliers=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.outliers
+help.state.minfo.sediment.load.year_epoch=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.year_epoch
+help.state.minfo.sediment.load.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.location
+help.state.minfo.bed.periods=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.periods
+help.state.minfo.bed.char_diameter=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.char_diameter
+help.state.minfo.sediment.load.period=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.period
+help.state.minfo.sediment.load.epochs=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.epochs
+help.state.minfo.sediment.load.off_epochs=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.off_epochs
+help.state.minfo.sediment.load.unit=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.unit
+help.state.minfo.sq.period=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.period
fix.reference.period=Bezugszeitraum
@@ -615,18 +616,18 @@
gauge.discharge.service.chart.series.title = Abflusskurve {0,date,short} - {1,date,short}
gauge.discharge.service.chart.series.title.master = Aktuelle Abflusskurve ab {0,date,short}
-help.state.fix.river=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.river
-help.state.fix.calculation.mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.calculation.mode
-help.state.fix.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.location
-help.state.fix.period=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.period
-help.state.fix.gaugerange=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.gaugerange
-help.state.fix.eventselect=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.eventselect
-help.state.fix.analysis.referenceperiod=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.referenceperiod
-help.state.fix.analysis.analysisperiods=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.analysisperiods
-help.state.fix.analysis.function=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.function
-help.state.fix.analysis.preprocessing=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.preprocessing
-help.state.fix.analysis.compute=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.compute
-help.state.fix.vollmer.function=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.function
-help.state.fix.vollmer.preprocessing=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.preprocessing
-help.state.fix.vollmer.qs=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.qs
-help.state.fix.vollmer.compute=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.compute
+help.state.fix.river=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.river
+help.state.fix.calculation.mode=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.calculation.mode
+help.state.fix.location=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.location
+help.state.fix.period=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.period
+help.state.fix.gaugerange=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.gaugerange
+help.state.fix.eventselect=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.eventselect
+help.state.fix.analysis.referenceperiod=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.referenceperiod
+help.state.fix.analysis.analysisperiods=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.analysisperiods
+help.state.fix.analysis.function=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.function
+help.state.fix.analysis.preprocessing=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.preprocessing
+help.state.fix.analysis.compute=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.compute
+help.state.fix.vollmer.function=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.function
+help.state.fix.vollmer.preprocessing=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.preprocessing
+help.state.fix.vollmer.qs=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.qs
+help.state.fix.vollmer.compute=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.compute
diff -r 1126b9e00378 -r e95427ed80e5 flys-artifacts/src/main/resources/messages_en.properties
--- a/flys-artifacts/src/main/resources/messages_en.properties Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-artifacts/src/main/resources/messages_en.properties Sun Apr 21 10:46:59 2013 +0200
@@ -248,11 +248,11 @@
facet.sedimentload.susp_sediment = Sediement
facet.sedimentload.total = Total
facet.sedimentload.total_load = Total bed load
-missing.fraction.coarse = Missing coarse fraction
-missing.fraction.fine_middle = Missing fine/middle fraction
-missing.fraction.sand = Missing sand fraction
-missing.fraction.susp_sand = Missing susp. sand fraction
-missing.fraction.susp_sediment = Missing susp. sediment fraction
+missing.fraction.coarse = Year {0}: Missing coarse fraction
+missing.fraction.fine_middle = Year {0}: Missing fine/middle fraction
+missing.fraction.sand = Year {0}: Missing sand fraction
+missing.fraction.susp_sand = Year {0}: Missing susp. sand fraction
+missing.fraction.susp_sediment = Year {0}: Missing susp. sediment fraction
missing.data.coarse = Missing coarse data at
missing.data.fine_middle = Missing fine/middle data at
missing.data.sand = Missing sand data at
@@ -284,7 +284,7 @@
bedquality.toplayer = 0.0m - 0.3m
bedquality.sublayer = 0.1m - 0.5m
facet.bedheight.diff.year = Bedheight Difference {0}
-facet.bedheight.diff.morph = Morphologic Width {0}
+facet.bedheight.diff.morph = sounding Width {0}
facet.bedheight.diff.height1 = Original Height Minuend {0}
facet.bedheight.diff.height2 = Original Height Subtrahend {0}
facet.bedheight.diff.absolute = Bedheight Difference/Year {0}
@@ -299,6 +299,7 @@
facet.gauge_discharge_curve.reference_gauge = Gauge official number
facet.gauge_discharge_curve.gauge_name = Name of the gauge
facet.gauge_discharge_curve.gauge_location = Location of the gauge
+facet.morphologic.width = morphologic Width
chart.beddifference.height.title = Bedheight Difference
chart.beddifference.height.xaxis.label = River-Km [km]
@@ -308,7 +309,7 @@
chart.beddifference.yaxis.label.diff = Difference [m]
chart.beddifference.yaxis.label.height = Absolute Height [m]
chart.beddifference.year.title = Bedheight Difference
-chart.beddifference.yaxis.label.morph = Morphologic Width [m]
+chart.beddifference.yaxis.label.morph = Width [m]
chart.beddifference.yaxis.label.heights = Absolute Height [m]
export.waterlevel.csv.header.km = River-Km
@@ -474,54 +475,54 @@
no.reference.end.kms = No reference end station(s) given.
waterlevels = Waterlevels
-help.index=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe
-help.state.winfo=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO
-help.state.winfo.river=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.river
-help.state.winfo.calculation_mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.calculation_mode
-help.state.winfo.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.location
-help.state.winfo.distance_only=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.distance_only
-help.state.winfo.distance=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.distance
-help.state.winfo.location_distance=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.location_distance
-help.state.winfo.wq=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.wq
-help.state.winfo.wq_adapted=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.wq_adapted
-help.state.winfo.waterlevel_pair_select=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.waterlevel_pair_select
-help.state.winfo.reference.curve.input.start=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.start
-help.state.winfo.reference.curve.input.end=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.end
-help.state.winfo.uesk.wsp=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.wsp
-help.state.winfo.uesk.dgm=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.dgm
-help.state.winfo.uesk.profiles=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.profiles
-help.state.winfo.uesk.floodplain=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.floodplain
-help.state.winfo.uesk.differences=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.differences
-help.state.winfo.uesk.scenario=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.uesk.dc-hws=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.uesk.user-rgd=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.uesk.barriers=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
-help.state.winfo.historicalq.reference_gauge=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.historicalq.reference_gauge
-help.state.winfo.historicalq.timerange=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.historicalq.timerange
-help.state.winfo.historicalq.mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.historicalq.mode
-help.state.winfo.function_select=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.function_select
-help.state.winfo.extreme.percent=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.extreme.percent
-help.state.winfo.extreme.qinput=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/WINFO#help.state.winfo.extreme.qinput
+help.index=${help.url}/OnlineHilfe
+help.state.winfo=${help.url}/OnlineHilfe/WINFO
+help.state.winfo.river=${help.url}/OnlineHilfe/WINFO#help.state.winfo.river
+help.state.winfo.calculation_mode=${help.url}/OnlineHilfe/WINFO#help.state.winfo.calculation_mode
+help.state.winfo.location=${help.url}/OnlineHilfe/WINFO#help.state.winfo.location
+help.state.winfo.distance_only=${help.url}/OnlineHilfe/WINFO#help.state.winfo.distance_only
+help.state.winfo.distance=${help.url}/OnlineHilfe/WINFO#help.state.winfo.distance
+help.state.winfo.location_distance=${help.url}/OnlineHilfe/WINFO#help.state.winfo.location_distance
+help.state.winfo.wq=${help.url}/OnlineHilfe/WINFO#help.state.winfo.wq
+help.state.winfo.wq_adapted=${help.url}/OnlineHilfe/WINFO#help.state.winfo.wq_adapted
+help.state.winfo.waterlevel_pair_select=${help.url}/OnlineHilfe/WINFO#help.state.winfo.waterlevel_pair_select
+help.state.winfo.reference.curve.input.start=${help.url}/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.start
+help.state.winfo.reference.curve.input.end=${help.url}/OnlineHilfe/WINFO#help.state.winfo.reference.curve.input.end
+help.state.winfo.uesk.wsp=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.wsp
+help.state.winfo.uesk.dgm=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.dgm
+help.state.winfo.uesk.profiles=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.profiles
+help.state.winfo.uesk.floodplain=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.floodplain
+help.state.winfo.uesk.differences=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.differences
+help.state.winfo.uesk.scenario=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.uesk.dc-hws=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.uesk.user-rgd=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.uesk.barriers=${help.url}/OnlineHilfe/WINFO#help.state.winfo.uesk.scenario
+help.state.winfo.historicalq.reference_gauge=${help.url}/OnlineHilfe/WINFO#help.state.winfo.historicalq.reference_gauge
+help.state.winfo.historicalq.timerange=${help.url}/OnlineHilfe/WINFO#help.state.winfo.historicalq.timerange
+help.state.winfo.historicalq.mode=${help.url}/OnlineHilfe/WINFO#help.state.winfo.historicalq.mode
+help.state.winfo.function_select=${help.url}/OnlineHilfe/WINFO#help.state.winfo.function_select
+help.state.winfo.extreme.percent=${help.url}/OnlineHilfe/WINFO#help.state.winfo.extreme.percent
+help.state.winfo.extreme.qinput=${help.url}/OnlineHilfe/WINFO#help.state.winfo.extreme.qinput
-help.state.minfo.river=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.river
-help.state.minfo.calculation_mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.calculation_mode
-help.state.minfo.distance_only=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.distance_only
-help.state.minfo.bed.year_epoch=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.year_epoch
-help.state.minfo.sq.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sq.location
-help.state.minfo.bed.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.location
-help.state.minfo.dischargestate=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.dischargestate
-help.state.minfo.soundings=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.soundings
-help.state.minfo.bed.difference_select=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.difference_select
-help.state.minfo.sq.outliers=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sq.outliers
-help.state.minfo.sediment.load.year_epoch=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.year_epoch
-help.state.minfo.sediment.load.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.location
-help.state.minfo.bed.periods=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.periods
-help.state.minfo.bed.char_diameter=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.bed.char_diameter
-help.state.minfo.sediment.load.period=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.period
-help.state.minfo.sediment.load.epochs=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.epochs
-help.state.minfo.sediment.load.off_epochs=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.off_epochs
-help.state.minfo.sediment.load.unit=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sediment.load.unit
-help.state.minfo.sq.period=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/MINFO#help.state.minfo.sq.period
+help.state.minfo.river=${help.url}/OnlineHilfe/MINFO#help.state.minfo.river
+help.state.minfo.calculation_mode=${help.url}/OnlineHilfe/MINFO#help.state.minfo.calculation_mode
+help.state.minfo.distance_only=${help.url}/OnlineHilfe/MINFO#help.state.minfo.distance_only
+help.state.minfo.bed.year_epoch=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.year_epoch
+help.state.minfo.sq.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.location
+help.state.minfo.bed.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.location
+help.state.minfo.dischargestate=${help.url}/OnlineHilfe/MINFO#help.state.minfo.dischargestate
+help.state.minfo.soundings=${help.url}/OnlineHilfe/MINFO#help.state.minfo.soundings
+help.state.minfo.bed.difference_select=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.difference_select
+help.state.minfo.sq.outliers=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.outliers
+help.state.minfo.sediment.load.year_epoch=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.year_epoch
+help.state.minfo.sediment.load.location=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.location
+help.state.minfo.bed.periods=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.periods
+help.state.minfo.bed.char_diameter=${help.url}/OnlineHilfe/MINFO#help.state.minfo.bed.char_diameter
+help.state.minfo.sediment.load.period=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.period
+help.state.minfo.sediment.load.epochs=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.epochs
+help.state.minfo.sediment.load.off_epochs=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.off_epochs
+help.state.minfo.sediment.load.unit=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sediment.load.unit
+help.state.minfo.sq.period=${help.url}/OnlineHilfe/MINFO#help.state.minfo.sq.period
fix.reference.period=Reference period
@@ -615,18 +616,18 @@
gauge.discharge.service.chart.series.title = Discharge Curve {0,date,short} - {1,date,short}
gauge.discharge.service.chart.series.title.master = Current Discharge Curve since {0,date,short}
-help.state.fix.river=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.river
-help.state.fix.calculation.mode=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.calculation.mode
-help.state.fix.location=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.location
-help.state.fix.period=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.period
-help.state.fix.gaugerange=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.gaugerange
-help.state.fix.eventselect=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.eventselect
-help.state.fix.analysis.referenceperiod=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.referenceperiod
-help.state.fix.analysis.analysisperiods=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.analysisperiods
-help.state.fix.analysis.function=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.function
-help.state.fix.analysis.preprocessing=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.preprocessing
-help.state.fix.analysis.compute=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.compute
-help.state.fix.vollmer.function=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.function
-help.state.fix.vollmer.preprocessing=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.preprocessing
-help.state.fix.vollmer.qs=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.qs
-help.state.fix.vollmer.compute=https://flys-intern.intevation.de/Flys-3.0/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.compute
+help.state.fix.river=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.river
+help.state.fix.calculation.mode=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.calculation.mode
+help.state.fix.location=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.location
+help.state.fix.period=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.period
+help.state.fix.gaugerange=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.gaugerange
+help.state.fix.eventselect=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.eventselect
+help.state.fix.analysis.referenceperiod=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.referenceperiod
+help.state.fix.analysis.analysisperiods=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.analysisperiods
+help.state.fix.analysis.function=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.function
+help.state.fix.analysis.preprocessing=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.preprocessing
+help.state.fix.analysis.compute=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.analysis.compute
+help.state.fix.vollmer.function=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.function
+help.state.fix.vollmer.preprocessing=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.preprocessing
+help.state.fix.vollmer.qs=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.qs
+help.state.fix.vollmer.compute=${help.url}/OnlineHilfe/Fixierungsanalyse#help.state.fix.vollmer.compute
diff -r 1126b9e00378 -r e95427ed80e5 flys-backend/contrib/shpimporter/boundaries.py
--- a/flys-backend/contrib/shpimporter/boundaries.py Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-backend/contrib/shpimporter/boundaries.py Sun Apr 21 10:46:59 2013 +0200
@@ -59,13 +59,9 @@
newFeat.SetField("kind", kind)
if self.IsFieldSet(feat, "SECTIE"):
newFeat.SetField("sectie", feat.GetField("SECTIE"))
- else:
- newFeat.SetField("sectie", 0)
- if self.IsFieldSet(feat, "SOBEK"):
- newFeat.SetField("sobek", feat.GetField("SOBEK"))
- else:
- newFeat.SetField("sobek", 0)
+ if self.IsFieldSet(feat, "STROVOER"):
+ newFeat.SetField("sobek", feat.GetField("STROVOER"))
if self.IsFieldSet(feat, "river_id"):
newFeat.SetField("river_id", feat.GetField("river_id"))
@@ -106,13 +102,9 @@
if self.IsFieldSet(feat, "SECTIE"):
newFeat.SetField("sectie", feat.GetField("SECTIE"))
- else:
- newFeat.SetField("sectie", 0)
if self.IsFieldSet(feat, "SOBEK"):
newFeat.SetField("sobek", feat.GetField("SOBEK"))
- else:
- newFeat.SetField("sobek", 0)
if self.IsFieldSet(feat, "river_id"):
newFeat.SetField("river_id", feat.GetField("river_id"))
diff -r 1126b9e00378 -r e95427ed80e5 flys-backend/doc/schema/oracle-minfo.sql
--- a/flys-backend/doc/schema/oracle-minfo.sql Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-backend/doc/schema/oracle-minfo.sql Sun Apr 21 10:46:59 2013 +0200
@@ -207,6 +207,7 @@
main_channel NUMBER(38,3) NOT NULL,
shear_stress NUMBER(38,3) NOT NULL,
PRIMARY KEY(id),
+ UNIQUE (station, flow_velocity_model_id),
CONSTRAINT fk_fvv_flow_velocity_model_id FOREIGN KEY (flow_velocity_model_id) REFERENCES flow_velocity_model(id) ON DELETE CASCADE
);
@@ -331,5 +332,5 @@
cduan NUMBER(38,20),
PRIMARY KEY (id),
CONSTRAINT fk_sqr_id FOREIGN KEY (sq_relation_id) REFERENCES sq_relation(id) ON DELETE CASCADE,
- CONSTRAINT fk_mstation_id FOREIGN KEY (measurement_station_id) REFERENCES measurement_station(id)
+ CONSTRAINT fk_mstation_id FOREIGN KEY (measurement_station_id) REFERENCES measurement_station(id) ON DELETE CASCADE
);
diff -r 1126b9e00378 -r e95427ed80e5 flys-backend/doc/schema/oracle-spatial.sql
--- a/flys-backend/doc/schema/oracle-spatial.sql Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-backend/doc/schema/oracle-spatial.sql Sun Apr 21 10:46:59 2013 +0200
@@ -237,23 +237,23 @@
SELECT HWS_LINES_ID_SEQ.nextval INTO :new.id FROM dual;
END;
/
--- HWS Points lookup tables
+
CREATE TABLE sectie_kinds (
id NUMBER PRIMARY KEY NOT NULL,
name VARCHAR(64) NOT NULL
);
-INSERT INTO sectie_kinds (id, name) VALUES (0, 'SECTIE Unbekannt');
-INSERT INTO sectie_kinds (id, name) VALUES (1, 'Flussschlauch');
-INSERT INTO sectie_kinds (id, name) VALUES (2, 'Uferbank');
-INSERT INTO sectie_kinds (id, name) VALUES (3, 'Überflutungsbereich');
+INSERT INTO sectie_kinds (id, name) VALUES (0, 'nicht berücksichtigt');
+INSERT INTO sectie_kinds (id, name) VALUES (1, 'Hauptgerinne');
+INSERT INTO sectie_kinds (id, name) VALUES (2, 'Uferbereich');
+INSERT INTO sectie_kinds (id, name) VALUES (3, 'Vorland');
CREATE TABLE sobek_kinds (
id NUMBER PRIMARY KEY NOT NULL,
name VARCHAR(64) NOT NULL
);
-INSERT INTO sobek_kinds (id, name) VALUES (0, 'SOBEK Unbekannt');
-INSERT INTO sobek_kinds (id, name) VALUES (1, 'Stromführend');
-INSERT INTO sobek_kinds (id, name) VALUES (2, 'Stromspeichernd');
+INSERT INTO sobek_kinds (id, name) VALUES (0, 'nicht berücksichtigt');
+INSERT INTO sobek_kinds (id, name) VALUES (1, 'durchströmt');
+INSERT INTO sobek_kinds (id, name) VALUES (2, 'nicht durchströmt');
CREATE TABLE boundary_kinds (
id NUMBER PRIMARY KEY NOT NULL,
@@ -338,8 +338,8 @@
river_id NUMBER(38) REFERENCES rivers(id) ON DELETE CASCADE,
name VARCHAR(255),
kind NUMBER(38) DEFAULT 0 NOT NULL REFERENCES boundary_kinds(id),
- sectie NUMBER(38) DEFAULT 0 NOT NULL REFERENCES sectie_kinds(id),
- sobek NUMBER(38) DEFAULT 0 NOT NULL REFERENCES sobek_kinds(id),
+ sectie NUMBER(38) REFERENCES sectie_kinds(id),
+ sobek NUMBER(38) REFERENCES sobek_kinds(id),
path VARCHAR(256),
id NUMBER PRIMARY KEY NOT NULL
);
@@ -357,8 +357,8 @@
river_id NUMBER(38) REFERENCES rivers(id) ON DELETE CASCADE,
name VARCHAR(255),
kind NUMBER(38) DEFAULT 0 NOT NULL REFERENCES boundary_kinds(id),
- sectie NUMBER(38) DEFAULT 0 NOT NULL REFERENCES sectie_kinds(id),
- sobek NUMBER(38) DEFAULT 0 NOT NULL REFERENCES sobek_kinds(id),
+ sectie NUMBER(38) REFERENCES sectie_kinds(id),
+ sobek NUMBER(38) REFERENCES sobek_kinds(id),
path VARCHAR(256),
id NUMBER PRIMARY KEY NOT NULL
);
diff -r 1126b9e00378 -r e95427ed80e5 flys-backend/doc/schema/oracle.sql
--- a/flys-backend/doc/schema/oracle.sql Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-backend/doc/schema/oracle.sql Sun Apr 21 10:46:59 2013 +0200
@@ -220,7 +220,7 @@
CREATE TABLE named_main_values (
id NUMBER(38,0) NOT NULL,
- name VARCHAR2(255),
+ name VARCHAR2(256) NOT NULL UNIQUE,
type_id NUMBER(38,0),
PRIMARY KEY (id)
);
diff -r 1126b9e00378 -r e95427ed80e5 flys-backend/doc/schema/postgresql-minfo.sql
--- a/flys-backend/doc/schema/postgresql-minfo.sql Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-backend/doc/schema/postgresql-minfo.sql Sun Apr 21 10:46:59 2013 +0200
@@ -207,6 +207,7 @@
main_channel NUMERIC NOT NULL,
shear_stress NUMERIC NOT NULL,
PRIMARY KEY(id),
+ UNIQUE (station, flow_velocity_model_id),
CONSTRAINT fk_fvv_flow_velocity_model_id FOREIGN KEY (flow_velocity_model_id) REFERENCES flow_velocity_model(id) ON DELETE CASCADE
);
@@ -331,6 +332,6 @@
cduan NUMERIC,
PRIMARY KEY (id),
CONSTRAINT fk_sqr_id FOREIGN KEY (sq_relation_id) REFERENCES sq_relation(id) ON DELETE CASCADE,
- CONSTRAINT fk_mstation_id FOREIGN KEY (measurement_station_id) REFERENCES measurement_station(id)
+ CONSTRAINT fk_mstation_id FOREIGN KEY (measurement_station_id) REFERENCES measurement_station(id) ON DELETE CASCADE
);
COMMIT;
diff -r 1126b9e00378 -r e95427ed80e5 flys-backend/doc/schema/postgresql-spatial.sql
--- a/flys-backend/doc/schema/postgresql-spatial.sql Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-backend/doc/schema/postgresql-spatial.sql Sun Apr 21 10:46:59 2013 +0200
@@ -250,18 +250,18 @@
id int PRIMARY KEY NOT NULL,
name VARCHAR(64) NOT NULL
);
-INSERT INTO sectie_kinds (id, name) VALUES (0, 'SECTIE Unbekannt');
-INSERT INTO sectie_kinds (id, name) VALUES (1, 'Flussschlauch');
-INSERT INTO sectie_kinds (id, name) VALUES (2, 'Uferbank');
-INSERT INTO sectie_kinds (id, name) VALUES (3, 'Überflutungsbereich');
+INSERT INTO sectie_kinds (id, name) VALUES (0, 'nicht berücksichtigt');
+INSERT INTO sectie_kinds (id, name) VALUES (1, 'Hauptgerinne');
+INSERT INTO sectie_kinds (id, name) VALUES (2, 'Uferbereich');
+INSERT INTO sectie_kinds (id, name) VALUES (3, 'Vorland');
CREATE TABLE sobek_kinds (
id int PRIMARY KEY NOT NULL,
name VARCHAR(64) NOT NULL
);
-INSERT INTO sobek_kinds (id, name) VALUES (0, 'SOBEK Unbekannt');
-INSERT INTO sobek_kinds (id, name) VALUES (1, 'Stromführend');
-INSERT INTO sobek_kinds (id, name) VALUES (2, 'Stromspeichernd');
+INSERT INTO sobek_kinds (id, name) VALUES (0, 'nicht berücksichtigt');
+INSERT INTO sobek_kinds (id, name) VALUES (1, 'durchströmt');
+INSERT INTO sobek_kinds (id, name) VALUES (2, 'nicht durchströmt');
CREATE TABLE boundary_kinds (
id int PRIMARY KEY NOT NULL,
@@ -278,8 +278,8 @@
river_id int REFERENCES rivers(id) ON DELETE CASCADE,
name VARCHAR(255),
kind int REFERENCES boundary_kinds(id) NOT NULL DEFAULT 0,
- sectie int REFERENCES sectie_kinds(id) NOT NULL DEFAULT 0,
- sobek int REFERENCES sobek_kinds(id) NOT NULL DEFAULT 0,
+ sectie int REFERENCES sectie_kinds(id),
+ sobek int REFERENCES sobek_kinds(id),
path VARCHAR(256)
);
SELECT AddGeometryColumn('hydr_boundaries','geom',31467,'MULTILINESTRING',3);
@@ -292,8 +292,8 @@
river_id int REFERENCES rivers(id) ON DELETE CASCADE,
name VARCHAR(255),
kind int REFERENCES boundary_kinds(id) NOT NULL DEFAULT 0,
- sectie int REFERENCES sectie_kinds(id) NOT NULL DEFAULT 0,
- sobek int REFERENCES sobek_kinds(id) NOT NULL DEFAULT 0,
+ sectie int REFERENCES sectie_kinds(id),
+ sobek int REFERENCES sobek_kinds(id),
path VARCHAR(256)
);
SELECT AddGeometryColumn('hydr_boundaries_poly','geom',31467,'MULTIPOLYGON',3);
diff -r 1126b9e00378 -r e95427ed80e5 flys-backend/doc/schema/postgresql.sql
--- a/flys-backend/doc/schema/postgresql.sql Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-backend/doc/schema/postgresql.sql Sun Apr 21 10:46:59 2013 +0200
@@ -111,8 +111,7 @@
CREATE TABLE named_main_values (
id int PRIMARY KEY NOT NULL,
name VARCHAR(256) NOT NULL UNIQUE,
- type_id int NOT NULL REFERENCES main_value_types(id),
- UNIQUE (name, type_id)
+ type_id int NOT NULL REFERENCES main_value_types(id)
);
-- Table for time intervals
diff -r 1126b9e00378 -r e95427ed80e5 flys-backend/src/main/java/de/intevation/flys/importer/ImportFlowVelocityModel.java
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportFlowVelocityModel.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportFlowVelocityModel.java Sun Apr 21 10:46:59 2013 +0200
@@ -30,6 +30,12 @@
values = new ArrayList<ImportFlowVelocityModelValue>();
}
+ public ImportFlowVelocityModel(String description) {
+ this();
+
+ this.description = description;
+ }
+
public ImportFlowVelocityModel(ImportDischargeZone dischargeZone,
String description) {
this();
@@ -84,14 +90,12 @@
Query query = session.createQuery("from FlowVelocityModel where "
+ " dischargeZone=:dischargeZone");
- //query.setParameter("river", river);
query.setParameter("dischargeZone", zone);
List<FlowVelocityModel> model = query.list();
if (model.isEmpty()) {
- //peer = new FlowVelocityModel(river, zone);
- peer = new FlowVelocityModel(zone);
+ peer = new FlowVelocityModel(zone, description);
session.save(peer);
}
else {
diff -r 1126b9e00378 -r e95427ed80e5 flys-backend/src/main/java/de/intevation/flys/importer/ImportFlowVelocityModelValue.java
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportFlowVelocityModelValue.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportFlowVelocityModelValue.java Sun Apr 21 10:46:59 2013 +0200
@@ -49,11 +49,11 @@
Query query = session.createQuery(
"from FlowVelocityModelValue where " +
" flowVelocity=:model and " +
- " station=:station"
+ " station between :station - 0.00001 and :station + 0.00001"
);
query.setParameter("model", model);
- query.setParameter("station", station);
+ query.setParameter("station", station.doubleValue());
List<FlowVelocityModelValue> values = query.list();
diff -r 1126b9e00378 -r e95427ed80e5 flys-backend/src/main/java/de/intevation/flys/importer/ImportMainValue.java
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportMainValue.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportMainValue.java Sun Apr 21 10:46:59 2013 +0200
@@ -8,6 +8,7 @@
import de.intevation.flys.model.Gauge;
import de.intevation.flys.model.River;
import de.intevation.flys.model.NamedMainValue;
+import de.intevation.flys.model.TimeInterval;
import org.hibernate.Session;
import org.hibernate.Query;
@@ -17,6 +18,7 @@
protected ImportGauge gauge;
protected ImportNamedMainValue mainValue;
protected BigDecimal value;
+ protected ImportTimeInterval timeInterval;
protected MainValue peer;
@@ -26,11 +28,13 @@
public ImportMainValue(
ImportGauge gauge,
ImportNamedMainValue mainValue,
- BigDecimal value
+ BigDecimal value,
+ ImportTimeInterval timeInterval
) {
- this.gauge = gauge;
- this.mainValue = mainValue;
- this.value = value;
+ this.gauge = gauge;
+ this.mainValue = mainValue;
+ this.value = value;
+ this.timeInterval = timeInterval;
}
public ImportGauge getGauge() {
@@ -62,12 +66,17 @@
Session session = ImporterSession.getInstance().getDatabaseSession();
Query query = session.createQuery("from MainValue where "
+ "gauge.id=:gauge_id and mainValue.id=:name_id "
+ + "and timeInterval = :time "
+ "and value=:value");
Gauge g = gauge.getPeer(river);
NamedMainValue n = mainValue.getPeer();
+ TimeInterval t = timeInterval != null
+ ? timeInterval.getPeer()
+ : null;
query.setParameter("gauge_id", g.getId());
query.setParameter("name_id", n.getId());
query.setParameter("value", value);
+ query.setParameter("time", t);
List<MainValue> values = query.list();
if (values.isEmpty()) {
peer = new MainValue(g, n, value, null);
diff -r 1126b9e00378 -r e95427ed80e5 flys-backend/src/main/java/de/intevation/flys/importer/ImportTimeInterval.java
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportTimeInterval.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportTimeInterval.java Sun Apr 21 10:46:59 2013 +0200
@@ -27,8 +27,14 @@
}
public ImportTimeInterval(Date startTime, Date stopTime) {
- this.startTime = startTime;
- this.stopTime = stopTime;
+ if (startTime.after(stopTime)) {
+ this.stopTime = startTime;
+ this.startTime = stopTime;
+ }
+ else {
+ this.startTime = startTime;
+ this.stopTime = stopTime;
+ }
}
public Date getStartTime() {
diff -r 1126b9e00378 -r e95427ed80e5 flys-backend/src/main/java/de/intevation/flys/importer/parsers/FlowVelocityModelParser.java
--- a/flys-backend/src/main/java/de/intevation/flys/importer/parsers/FlowVelocityModelParser.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/parsers/FlowVelocityModelParser.java Sun Apr 21 10:46:59 2013 +0200
@@ -1,10 +1,14 @@
package de.intevation.flys.importer.parsers;
+import java.io.File;
+import java.io.IOException;
+
import java.math.BigDecimal;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
+import java.util.TreeSet;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -13,6 +17,7 @@
import de.intevation.flys.importer.ImportDischargeZone;
import de.intevation.flys.importer.ImportFlowVelocityModel;
import de.intevation.flys.importer.ImportFlowVelocityModelValue;
+import de.intevation.flys.utils.EpsilonComparator;
public class FlowVelocityModelParser extends LineParser {
@@ -49,9 +54,14 @@
private ImportFlowVelocityModel current;
+ protected String description;
+
+ protected TreeSet<Double> kmExists;
+
public FlowVelocityModelParser() {
models = new ArrayList<ImportFlowVelocityModel>();
+ kmExists = new TreeSet<Double>(EpsilonComparator.CMP);
}
@@ -60,14 +70,24 @@
}
@Override
+ public void parse(File file) throws IOException {
+ description = file.getName();
+
+ super.parse(file);
+ }
+
+ @Override
protected void reset() {
- current = new ImportFlowVelocityModel();
+ current = new ImportFlowVelocityModel(description);
+ kmExists.clear();
}
@Override
protected void finish() {
models.add(current);
+
+ // description = null;
}
@@ -217,7 +237,15 @@
}
try {
- double km = nf.parse(cols[0]).doubleValue();
+ double km = nf.parse(cols[0]).doubleValue();
+
+ Double key = Double.valueOf(km);
+
+ if (kmExists.contains(key)) {
+ log.warn("duplicate stattion '" + km + "': -> ignored");
+ return;
+ }
+
double q = nf.parse(cols[1]).doubleValue();
double total = nf.parse(cols[2]).doubleValue();
double main = nf.parse(cols[3]).doubleValue();
@@ -230,6 +258,8 @@
new BigDecimal(main),
new BigDecimal(stress)
));
+
+ kmExists.add(key);
}
catch (ParseException pe) {
log.warn("Unparseable flow velocity values:", pe);
diff -r 1126b9e00378 -r e95427ed80e5 flys-backend/src/main/java/de/intevation/flys/importer/parsers/StaFileParser.java
--- a/flys-backend/src/main/java/de/intevation/flys/importer/parsers/StaFileParser.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/parsers/StaFileParser.java Sun Apr 21 10:46:59 2013 +0200
@@ -11,8 +11,10 @@
import java.util.regex.Pattern;
import java.util.regex.Matcher;
+import java.util.Date;
import java.util.HashMap;
import java.util.ArrayList;
+import java.util.List;
import org.apache.log4j.Logger;
@@ -20,6 +22,8 @@
import de.intevation.flys.importer.ImportMainValue;
import de.intevation.flys.importer.ImportNamedMainValue;
import de.intevation.flys.importer.ImportGauge;
+import de.intevation.flys.importer.ImportTimeInterval;
+import de.intevation.flys.utils.DateGuesser;
public class StaFileParser
{
@@ -37,6 +41,28 @@
Pattern.compile("\\s*([^\\s]+)\\s+([^\\s]+)\\s+([" +
Pattern.quote(TYPES) + "]).*");
+ public static final class NameAndTimeInterval {
+ private String name;
+ private ImportTimeInterval timeInterval;
+
+ public NameAndTimeInterval(String name) {
+ this(name, null);
+ }
+
+ public NameAndTimeInterval(String name, ImportTimeInterval timeInterval) {
+ this.name = name;
+ this.timeInterval = timeInterval;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public ImportTimeInterval getTimeInterval() {
+ return timeInterval;
+ }
+ } // class NameAndTimeInterval
+
public StaFileParser() {
}
@@ -64,7 +90,7 @@
return false;
}
- String gaugeName = line.substring(16, 37).trim();
+ String gaugeName = line.substring(16, 28).trim();
Long gaugeNumber = null;
@@ -160,12 +186,16 @@
types.put(typeString, type);
}
String name = m.group(1);
+ NameAndTimeInterval nat = parseName(name);
ImportNamedMainValue namedMainValue =
- new ImportNamedMainValue(type, name);
+ new ImportNamedMainValue(type, nat.getName());
namedMainValues.add(namedMainValue);
- ImportMainValue mainValue =
- new ImportMainValue(gauge, namedMainValue, value);
+ ImportMainValue mainValue = new ImportMainValue(
+ gauge,
+ namedMainValue,
+ value,
+ nat.getTimeInterval());
mainValues.add(mainValue);
}
@@ -186,5 +216,123 @@
log.info("finished parsing STA file: " + file);
return true;
}
+
+ protected NameAndTimeInterval parseName(String name) {
+ List<String> result = new ArrayList<String>();
+
+ unbracket(name, 0, result);
+
+ int length = result.size();
+
+ if (length < 1) { // Should not happen.
+ return new NameAndTimeInterval(name);
+ }
+
+ if (length == 1) { // No date at all -> use first part.
+ return new NameAndTimeInterval(result.get(0).trim());
+ }
+
+ if (length == 2) { // e.g. W(1994) or W(1994 - 1999)
+ String type = result.get(0).trim();
+
+ ImportTimeInterval timeInterval = getTimeInterval(
+ result.get(1).trim());
+
+ if (timeInterval == null) { // No date at all.
+ type = name;
+ }
+
+ return new NameAndTimeInterval(type, timeInterval);
+ }
+
+ if (length == 3) { // e.g W(Q(1994)) or W(Q(1994 - 1999))
+
+ String type =
+ result.get(0).trim() + "(" +
+ result.get(1).trim() + ")";
+
+ ImportTimeInterval timeInterval = getTimeInterval(
+ result.get(2).trim());
+
+ if (timeInterval == null) { // No date at all.
+ type = name;
+ }
+
+ return new NameAndTimeInterval(type, timeInterval);
+ }
+
+ // more than 3 elements return unmodified.
+
+ return new NameAndTimeInterval(name);
+ }
+
+ private static ImportTimeInterval getTimeInterval(String datePart) {
+
+ int minus = datePart.indexOf('-');
+
+ if (minus < 0) { // '-' not found
+
+ Date date = null;
+ try {
+ date = DateGuesser.guessDate(datePart);
+ }
+ catch (IllegalArgumentException iae) {
+ log.warn("STA: Invalid date '" + datePart + "'");
+ return null;
+ }
+
+ return new ImportTimeInterval(date);
+ }
+
+ // Found '-' so we have <from> - <to>
+ String startPart = datePart.substring(0, minus).trim();
+ String endPart = datePart.substring(minus).trim();
+
+ Date startDate = null;
+ Date endDate = null;
+
+ try {
+ startDate = DateGuesser.guessDate(startPart);
+ }
+ catch (IllegalArgumentException iae) {
+ log.warn("STA: Invalid start date '" + startPart + "'");
+ }
+
+ try {
+ endDate = DateGuesser.guessDate(endPart);
+ }
+ catch (IllegalArgumentException iae) {
+ log.warn("STA: Invalid end date '" + endPart + "'");
+ }
+
+ if (startDate == null) {
+ log.warn("STA: Need start date.");
+ return null;
+ }
+
+ return new ImportTimeInterval(startDate, endDate);
+ }
+
+ private static int unbracket(String s, int index, List<String> result) {
+ StringBuilder sb = new StringBuilder();
+ int length = s.length();
+ while (index < length) {
+ char c = s.charAt(index);
+ switch (c) {
+ case '(':
+ index = unbracket(s, index+1, result);
+ break;
+ case ')':
+ result.add(0, sb.toString());
+ return index+1;
+ default:
+ sb.append(c);
+ ++index;
+ }
+ }
+ result.add(0, sb.toString());
+
+ return index;
+ }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 1126b9e00378 -r e95427ed80e5 flys-backend/src/main/java/de/intevation/flys/model/Range.java
--- a/flys-backend/src/main/java/de/intevation/flys/model/Range.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-backend/src/main/java/de/intevation/flys/model/Range.java Sun Apr 21 10:46:59 2013 +0200
@@ -19,6 +19,7 @@
public class Range
implements Serializable
{
+ public static final double EPSILON = 1e-5;
private Integer id;
private BigDecimal a;
private BigDecimal b;
@@ -73,6 +74,22 @@
this.b = b;
}
+ public boolean containsTolerant(double x) {
+ return containsTolerant(x, EPSILON);
+ }
+
+ public boolean containsTolerant(double x, double tolerance) {
+ BigDecimal b = this.b != null ? this.b : a;
+ double av = a.doubleValue();
+ double bv = b.doubleValue();
+ if (av > bv) {
+ double t = av;
+ av = bv;
+ bv = t;
+ }
+ return x+tolerance >= av && x-tolerance <= bv;
+ }
+
public boolean contains(double x) {
BigDecimal b = this.b != null ? this.b : a;
double av = a.doubleValue();
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants.java
--- a/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants.java Sun Apr 21 10:46:59 2013 +0200
@@ -594,6 +594,8 @@
// ERRORS
+ String error_years_wrong();
+
String error_read_minmax_values();
String error_validate_range();
@@ -822,6 +824,8 @@
String annotations();
+ String all_annotations();
+
String flowvelocitymeasurement();
String bed_quality_bed();
@@ -844,6 +848,8 @@
String catchments();
+ String catchment_wms();
+
String floodplain();
String lines();
@@ -878,6 +884,10 @@
String mainvalues();
+ String wmainvalue();
+
+ String qmainvalue();
+
String show_mainvalues();
String dems();
@@ -892,6 +902,8 @@
String bedheights();
+ String morph_width();
+
String datacage();
String datacage_add_pair();
@@ -1210,5 +1222,39 @@
String printWindowTitle();
+ String mapfish_data_range();
+
+ String mapfish_data_subtitle();
+
+ String mapfish_data_strech();
+
+ String mapfish_data_institution();
+
+ String mapfish_data_source();
+
+ String mapfish_data_creator();
+
+ String mapfish_data_dateplace();
+
+ String mapfish_data_river();
+
+ String mapTitle();
+
+ String mapSubtitle();
+
+ String mapRange();
+
+ String mapStretch();
+
+ String mapCreator();
+
+ String mapInstitution();
+
+ String mapSource();
+
+ String mapDate();
+
+ String mapLogo();
+
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants.properties
--- a/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants.properties Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants.properties Sun Apr 21 10:46:59 2013 +0200
@@ -307,6 +307,7 @@
ele_window_geometry_error = The geometry is not supported:
unexpected_exception = There occured an unexpected exception
+error_years_wrong = The second year needs to be bigger than the first year.
error_read_minmax_values = Error while reading min/max values for the location input.
error_validate_range = The value $1 needs to be smaller than $3 and bigger than $2.
error_validate_date_range = Start date needs to be before end date.
@@ -426,6 +427,7 @@
columns = Columns
annotation = Annotations
annotations = Annotations
+all_annotations = All annotations
flowvelocitymeasurement = Flowvelocity measurements
bed_quality_bed = Quality - Bed
bed_quality_load = Quality - Load
@@ -437,6 +439,7 @@
qps = Crosssection Tracks
hws = Floodplain Protection Work
catchments = Catchments
+catchment_wms = Catchments (WMS)
floodplain = Floodplain
lines = Lines
buildings = Buildings
@@ -454,6 +457,8 @@
discharge_table_gauge = Discharge Table at Gauge
mainvalue = Mainvalue
mainvalues = Mainvalues
+wmainvalue = Mainvalues (W)
+qmainvalue = Mainvalues (Q)
show_mainvalues = Show Mainvalues
dems = Digital Elevation Models
hydrboundaries = Hydrological Boundaries
@@ -461,6 +466,7 @@
single = Year
epoch = Epoch
bedheights = Bedheights
+morph_width = morphologic Width
datacage = Datacage
official = Offical
inofficial = Inofficiall
@@ -629,3 +635,29 @@
measurement_station_url = https://flys-intern.intevation.de/MessstellenInfo/
measurement_station_info_link = Measurement Station Info
measurement_station_gauge_name = Reference Gauge
+
+# The prefix is used to classify them and will be stripped
+# If the payload part sarts with a number it will be sorted
+# By this number and the number will be stripped.
+# Number must be a single digit 0-9. This hack was made necessary
+# by the usage of an attribute table in mapfish
+
+mapfish_data_range = mapfish_data_3Range
+mapfish_data_subtitle = mapfish_data_0Subtitle
+mapfish_data_strech = mapfish_data_2Stretch
+mapfish_data_institution = mapfish_data_5Institution
+mapfish_data_source = mapfish_data_6Source
+mapfish_data_creator = mapfish_data_5Creator
+mapfish_data_dateplace = mapfish_data_7Place, Date
+mapfish_data_river = mapfish_data_1River
+
+mapTitle = Title
+mapSubtitle = Subtitle
+mapRange = Range
+mapStretch = Stretch
+mapCreator = Creator
+mapInstitution = Institution
+mapSource = Source
+mapDate = Place, Date
+mapLogo = Logo
+
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants_de.properties
--- a/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants_de.properties Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants_de.properties Sun Apr 21 10:46:59 2013 +0200
@@ -151,7 +151,7 @@
wqTitle = Eingabe f\u00fcr W/Q Daten
wqadaptedTitle = Eingabe f\u00fcr W/Q Daten
wqHistorical = Auswahl der Analyseart
-calcTableTitle = Werte
+calcTableTitle = Ergebnisausgabe
helperPanelTitle = Eingabeunterst\u00fctzung
gaugePanelTitle = Gew\u00e4sser/Pegel-Info
measurementStationPanelTitle = Gew\u00e4sser/Messstellen-Info
@@ -307,6 +307,7 @@
ele_window_geometry_error = Die Geometrie wird nicht unterst\u00fctzt:
unexpected_exception = Ein unerwarteter Fehler ist aufgetreten
+error_years_wrong = Das zweite Jahr muss gr\u00f6\u00dfer als das erste sein.
error_read_minmax_values = Fehler beim Lesen der min/max Werte. Es kann keine Validierung der eingegebenen Strecke durchgef\u00fchrt werden.
error_validate_range = Der Wert $1 muss kleiner als $3 und gr\u00f6\u00dfer als $2 sein.
error_validate_date_range = Anfangsdatum muss fr\u00fcher sein als Enddatum.
@@ -428,19 +429,21 @@
annotation = Streckenfavoriten
annotation = Streckenfavoriten - Typen
annotations = Streckenfavoriten
+all_annotations = Alle Streckenfavoriten
flowvelocitymeasurement = gemessene Flie\u00dfgeschwindigkeiten
bed_quality_bed = Sohlbeschaffenheit - Sohle
bed_quality_load = Sohlbeschaffenheit - Geschiebe
additionals = Zus\u00e4tzliche L\u00e4ngsschnitte
differences = Differenzen
-kilometrage = Kilometrierung
+kilometrage = Stationierung
riveraxis = Flussachse
km = Km
qps = Querprofilspuren
hws = Hochwasserschutzanlagen
-catchments = Einzugsgebiete (WMS)
+catchments = Einzugsgebiete
+catchment_wms = Einzugsgebiete (WMS)
floodplain = Talaue
-lines = Linien
+lines = Darstellungstyp: Linien
buildings = Bauwerke
fixpoints = Festpunkte
uesk = \u00dcberschwemmungsfl\u00e4chen
@@ -456,13 +459,16 @@
discharge_table_gauge = Abflusstafel am Pegel
mainvalue = Hauptwerte
mainvalues = Hauptwerte
+wmainvalue = Hauptwerte (W)
+qmainvalue = Hauptwerte (Q)
show_mainvalues = Hauptwerte anzeigen
dems = Digitale Gel\u00e4ndemodelle
hydrboundaries = Hydrologische Grenzen
-gaugelocations = Pegellagen (WMS)
+gaugelocations = PEGELONLINE aktuell (WMS)
single = Jahr
epoch = Epoche
bedheights = Sohlh\u00f6hen
+morph_width = Morphologische Breite
datacage = Datenkorb
official = Offiziell
inofficial = Inoffiziell
@@ -476,16 +482,16 @@
axis = Achse
bfg_model = BfG-Modell
federal = Bundesländer
-areas = Flächen
+areas = Darstellungstyp: Flächen
sobek_flooded = SOBEK-Grenzlinie durchflutet / nicht durchflutet
sobek_areas = SOBEK-Bereiche
measurements = Messungen
floodmarks = HW-Marken
pegel_had_measurement_points = HAD Abflussmessstellen (WMS)
-gauge_points = Pegelpunkte (WSV)
-gauge_level = Aktueller Wasserstand (WSV)
-gauge_names = Pegelnamen (WSV)
-gauge_tendency = Tendenz des Wasserstands (WSV)
+gauge_points = Pegelmessstelle (WMS)
+gauge_level = Wasserstand (WMS)
+gauge_names = Pegelname (WMS)
+gauge_tendency = Tendenz des Wasserstands (WMS)
startcolor = Farbverlauf Startfarbe
endcolor = Farbverlauf Endfarbe
@@ -628,3 +634,28 @@
measurement_station_url = https://flys-intern.intevation.de/MessstellenInfo/
measurement_station_info_link = Messstelleninfo
measurement_station_gauge_name = hydrologischer Bezugspegel
+
+# The prefix is used to classify them and will be stripped
+# If the payload part sarts with a number it will be sorted
+# By this number and the number will be stripped.
+# Number must be a single digit 0-9. This hack was made necessary
+# by the usage of an attribute table in mapfish
+
+mapfish_data_range = mapfish_data_3Bereich
+mapfish_data_subtitle = mapfish_data_0Untertitel
+mapfish_data_strech = mapfish_data_2Strecke
+mapfish_data_institution = mapfish_data_5Institution
+mapfish_data_source = mapfish_data_6Datenquelle
+mapfish_data_creator = mapfish_data_4Bearbeiter
+mapfish_data_dateplace = mapfish_data_7Ort, Datum
+mapfish_data_river = mapfish_data_1Gew\u00e4sser
+
+mapTitle = Titel
+mapSubtitle = Untertitel
+mapRange = Bereich
+mapStretch = Strecke
+mapCreator = Bearbeiter
+mapInstitution = Institution
+mapSource = Datenquelle
+mapDate = Ort, Datum
+mapLogo = Logo
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants_en.properties
--- a/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants_en.properties Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants_en.properties Sun Apr 21 10:46:59 2013 +0200
@@ -305,6 +305,7 @@
ele_window_geometry_error = The geometry is not supported:
unexpected_exception = There occured an unexpected exception
+error_years_wrong = The second year needs to be bigger than the first year.
error_read_minmax_values = Error while reading min/max values for the location input.
error_validate_range = The value $1 needs to be smaller than $3 and bigger than $2.
error_validate_date_range = Start date needs to be before end date.
@@ -425,6 +426,7 @@
columns = Columns
annotation = Annotations
annotations = Annotations
+all_annotations = All annotations
flowvelocitymeasurement = Flowvelocity measurements
bed_quality_bed = Quality - Bed
bed_quality_load = Quality - Load
@@ -435,7 +437,8 @@
km = Km
qps = Crosssection Tracks
hws = Floodplain Protection Work
-catchments = Catchments (WMS)
+catchments = Catchments
+catchment_wms = Catchment (WMS)
floodplain = Floodplain
lines = Lines
buildings = Buildings
@@ -453,6 +456,8 @@
discharge_table_gauge = Discharge Table at Gauge
mainvalue = Mainvalue
mainvalues = Mainvalues
+wmainvalue = Mainvalues (W)
+qmainvalue = Mainvalues (Q)
show_mainvalues = Show Mainvalues
dems = Digital Elevation Models
hydrboundaries = Hydrological Boundaries
@@ -460,6 +465,7 @@
single = Year
epoch = Epoch
bedheights = Bedheights
+morph_width = morphologic Width
datacage = Datacage
startcolor = Colorrange start color
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/java/de/intevation/flys/client/client/ui/AbstractUIProvider.java
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/AbstractUIProvider.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/AbstractUIProvider.java Sun Apr 21 10:46:59 2013 +0200
@@ -300,7 +300,7 @@
public List<String> validate() {
- return new ArrayList<String>();
+ return new ArrayList<String>(); // FIXME: What's this?
}
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/java/de/intevation/flys/client/client/ui/StyleEditorWindow.java
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/StyleEditorWindow.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/StyleEditorWindow.java Sun Apr 21 10:46:59 2013 +0200
@@ -2,6 +2,7 @@
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
+
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.Button;
@@ -327,7 +328,9 @@
set.getName(),
set.getType(),
set.getDefaultValue());
- vl.addMember(property);
+ if (property != null) {
+ vl.addMember(property);
+ }
}
// Add settings not in whitelist above.
@@ -345,7 +348,9 @@
set.getName(),
set.getType(),
set.getDefaultValue());
- vl.addMember(property);
+ if (property != null) {
+ vl.addMember(property);
+ }
}
return vl;
@@ -434,6 +439,8 @@
valueMap.put("20", "20");
f.setValueMap(valueMap);
f.setValue(value);
+ // FIXME: Make that work again
+ return null;
}
else if (name.contains("transparency")) {
LinkedHashMap<String, String> valueMap = new LinkedHashMap<String, String>();
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/java/de/intevation/flys/client/client/ui/WQAdaptedInputPanel.java
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/WQAdaptedInputPanel.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/WQAdaptedInputPanel.java Sun Apr 21 10:46:59 2013 +0200
@@ -98,20 +98,23 @@
/** List of doubleArrayPanels shown. */
protected ArrayList<DoubleArrayPanel> doubleArrayPanels;
- /** Stores the min/max values for each q range.*/
+ /** [startkm,endkm] per gauge in selected range. */
+ protected double[][] gaugeRanges;
+
+ /** Stores the min/max values for each q range (gauge). */
protected Map<String, double[]> qranges;
- /** Stores the min/max values for each w range. */
+ /** Stores the min/max values for each w range (gauge). */
protected Map<String, double[]> wranges;
/** The RadioGroupItem that determines the w/q input mode. */
protected DynamicForm modes;
- /** Table holding Q and D values. */
- protected QDTable qdTable;
+ /** List of wTables in inputhelper section. */
+ protected List<WTable> wTables;
- /** Table holding W values. */
- protected WTable wTable;
+ /** List of QDTables in inputhelper section. */
+ protected List<QDTable> qdTables;
/** Tabs in inputhelper area. */
protected TabSet tabs;
@@ -125,14 +128,14 @@
doubleArrayPanels = new ArrayList<DoubleArrayPanel>();
qranges = new HashMap<String, double[]>();
wranges = new HashMap<String, double[]>();
- qdTable = new QDTable();
- wTable = new WTable();
- initTableListeners();
+ wTables = new ArrayList<WTable>();
+ qdTables = new ArrayList<QDTable>();
}
@Override
public Canvas create(DataList data) {
+ readGaugeRanges(data);
initHelperPanel();
Canvas submit = getNextButton();
@@ -149,6 +152,10 @@
layout.addMember(widget);
layout.addMember(submit);
+ fetchWQData();
+
+ initTableListeners();
+
return layout;
}
@@ -160,19 +167,30 @@
tabs.setWidth100();
tabs.setHeight100();
- Tab wTab = new Tab(MESSAGE.wq_table_w());
- Tab qTab = new Tab(MESSAGE.wq_table_q());
+ // For each gauge, add two tabs with helper tables.
- qdTable.showSelect();
- wTab.setPane(wTable);
- qTab.setPane(qdTable);
+ for (int i = 0; i< gaugeRanges.length; i++) {
+ // Later the tabs title will get adjusted to include gauges name.
+ // TODO the tabs title becomes rather long through that (i18n).
+ Tab wTab = new Tab(MESSAGE.wq_table_w());
+ Tab qTab = new Tab(MESSAGE.wq_table_q());
- tabs.addTab(wTab, 0);
- tabs.addTab(qTab, 1);
+ QDTable qdTable = new QDTable();
+ WTable wTable = new WTable();
+
+ wTables.add(wTable);
+ qdTables.add(qdTable);
+
+ qdTable.showSelect();
+ //wTable.showSelect();
+ wTab.setPane(wTable);
+ qTab.setPane(qdTable);
+
+ tabs.addTab(wTab, i*2+0);
+ tabs.addTab(qTab, i*2+1);
+ }
helperContainer.addMember(tabs);
-
- fetchWQData();
}
@@ -181,32 +199,57 @@
*/
// TODO dupe from WQInputPanel
protected void initTableListeners() {
- CellClickHandler handler = new CellClickHandler() {
- @Override
- public void onCellClick(CellClickEvent e) {
- if (isWMode() || qdTable.isLocked()) {
- return;
- }
+ int i = 0;
+ for (QDTable qdTable: qdTables) {
+ // Register listener such that values are filled in on click.
+ final QDTable table = qdTable;
+ final int fi = i;
+ CellClickHandler handler = new CellClickHandler() {
+ @Override
+ public void onCellClick(CellClickEvent e) {
+ if (isWMode() || table.isLocked()) {
+ return;
+ }
- int idx = e.getColNum();
- Record r = e.getRecord();
- double val = r.getAttributeAsDouble("value");
+ int idx = e.getColNum();
+ Record r = e.getRecord();
+ double val = r.getAttributeAsDouble("value");
- if (itemWithFocus != null) {
- itemWithFocus.setValues(new double[]{val});
- // TODO 1133, show different data for each doublearraypanel
- int i = doubleArrayPanels.indexOf(itemWithFocus);
- if (i == doubleArrayPanels.size()-1) {
- doubleArrayPanels.get(0).focusInItem(1);
+ doubleArrayPanels.get(fi).setValues(new double[]{val});
+ // If a named value for first gauge is chosen, try to find and set
+ // the values to the other panels too.
+ if (fi == 0) {
+ String valueName = r.getAttribute("name");
+ int oi = 0;
+ // TODO instead of oi use random access.
+ for (QDTable otherQDTable: qdTables) {
+ if (oi == 0) {
+ oi++;
+ continue;
+ }
+ Double value = otherQDTable.findRecordValue(valueName);
+ if (value == null) {
+ // TODO i18n
+ SC.warn("No Value for <name> at <gauge>");
+ }
+ else {
+ doubleArrayPanels.get(oi).setValues(new double[]{value});
+ }
+ oi++;
+ }
}
else {
- doubleArrayPanels.get(i+1).focusInItem(1);
+ // Focus next.
+ if (fi != doubleArrayPanels.size()-1) {
+ doubleArrayPanels.get(fi+1).focusInItem(1);
+ }
}
}
- }
- };
+ };
- qdTable.addCellClickHandler(handler);
+ qdTable.addCellClickHandler(handler);
+ i++;
+ }
}
@@ -294,6 +337,7 @@
}
+ /** Create non-input helper part of the UI. */
protected Canvas createWidget(DataList dataList) {
VLayout layout = new VLayout();
@@ -468,15 +512,40 @@
}
}
+ /** Populate Gauge Ranges array. */
+ private void readGaugeRanges(DataList dataList) {
+ DataItem[] items = getWQItems(dataList);
+ gaugeRanges = new double[items.length][2];
+
+ int i = 0;
+
+ for (DataItem item: items) {
+ String[] startEndKm = item.getLabel().split(";");
+
+ gaugeRanges[i][0] = Double.parseDouble(startEndKm[0]);
+ gaugeRanges[i][1] = Double.parseDouble(startEndKm[1]);
+ i++;
+ }
+ }
+
protected Canvas createList(DataList dataList) {
VLayout layout = new VLayout();
DataItem[] items = getWQItems(dataList);
+ int i = 0;
+
for (DataItem item: items) {
- String title = item.getLabel();
+ String title = item.getLabel(); // of form: 70.5;112.0
String label = item.getStringValue();
+
+ // Rename W and Q tab to include gauges name.
+ tabs.getTab(i*2).setTitle(tabs.getTab(i*2).getTitle()
+ + " (" + label + ")");
+ tabs.getTab(i*2+1).setTitle(tabs.getTab(i*2+1).getTitle()
+ + " (" + label + ")");
+
DoubleArrayPanel dap = new DoubleArrayPanel(
label, null, this, this, TitleOrientation.LEFT);
@@ -493,6 +562,7 @@
}
layout.addMember(dap);
+ i++;
}
layout.setHeight(items.length * ROW_HEIGHT);
@@ -650,10 +720,14 @@
}
- /** Store the currently focussed DoubleArrayPanel. */
+ /** Store the currently focussed DoubleArrayPanel and focus helper tab. */
@Override
public void onFocus(FocusEvent event) {
itemWithFocus = (DoubleArrayPanel) event.getForm();
+ // Switch to respective tab.
+ // TODO which makes a focus loss
+ int inputIndex = doubleArrayPanels.indexOf(itemWithFocus);
+ tabs.selectTab(inputIndex*2 + (isWMode() ? 0 : 1));
}
@@ -664,7 +738,7 @@
}
- /** Get the WQD data from servide and stuck them up that tables. */
+ /** Get the WQD data from service and stuck them up that tables. */
protected void fetchWQData() {
Config config = Config.getInstance();
String locale = config.getLocale ();
@@ -675,39 +749,49 @@
double[] mm = getMinMaxKM(data);
String river = getRiverName(data);
- wqInfoService.getWQInfo(locale, river, mm[0], mm[0],
- new AsyncCallback<WQInfoObject[]>() {
- @Override
- public void onFailure(Throwable caught) {
- GWT.log("Could not recieve wq informations.");
- SC.warn(caught.getMessage());
- }
+ int i = 0;
- @Override
- public void onSuccess(WQInfoObject[] wqi) {
- int num = wqi != null ? wqi.length :0;
- GWT.log("Recieved " + num + " wq informations.");
-
- if (num == 0) {
- return;
+ // Get Data for respective gauge.
+ for (double[] range : gaugeRanges){
+ // Gauge ranges overlap, move start and end a bit closer to each other.
+ final double rDiff = (range[1] - range[0]) / 10d;
+ final int fi = i;
+ wqInfoService.getWQInfo(locale, river, range[0]+rDiff, range[1]-rDiff,
+ new AsyncCallback<WQInfoObject[]>() {
+ @Override
+ public void onFailure(Throwable caught) {
+ GWT.log("Could not recieve wq informations.");
+ SC.warn(caught.getMessage());
}
- addWQInfo(wqi);
+ @Override
+ public void onSuccess(WQInfoObject[] wqi) {
+ int num = wqi != null ? wqi.length :0;
+ GWT.log("Received " + num + " wq informations (" + fi + ".");
+
+ if (num == 0) {
+ return;
+ }
+
+ addWQInfo(wqi, fi);
+ }
}
- }
- );
+ );
+ i++;
+ }
}
- protected void addWQInfo (WQInfoObject[] wqi) {
+ /** Add Info to helper table for gauge at index gaugeIdx. */
+ protected void addWQInfo (WQInfoObject[] wqi, int gaugeIdx) {
for(WQInfoObject wi: wqi) {
WQInfoRecord rec = new WQInfoRecord(wi);
if (wi.getType().equals("W")) {
- wTable.addData(rec);
+ wTables.get(gaugeIdx).addData(rec);
}
else {
- qdTable.addData(rec);
+ qdTables.get(gaugeIdx).addData(rec);
}
}
}
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapPrintPanel.java
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapPrintPanel.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapPrintPanel.java Sun Apr 21 10:46:59 2013 +0200
@@ -9,6 +9,7 @@
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.form.fields.ButtonItem;
+import com.smartgwt.client.widgets.form.fields.SelectItem;
import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
import com.smartgwt.client.types.Alignment;
@@ -25,21 +26,30 @@
import de.intevation.flys.client.shared.model.Property;
import de.intevation.flys.client.shared.model.PropertySetting;
import de.intevation.flys.client.shared.model.Settings;
+import de.intevation.flys.client.shared.model.Artifact;
+import de.intevation.flys.client.shared.model.ArtifactDescription;
+import de.intevation.flys.client.shared.model.Data;
+import de.intevation.flys.client.shared.model.DataItem;
+import de.intevation.flys.client.shared.model.DataList;
+
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
+import java.util.MissingResourceException;
public class MapPrintPanel extends Canvas {
- private static final String MAPFISH_MAPTITLE = "mapfish-mapTitle";
- private static final String MAPFISH_RANGE = "mapfish-data-range";
- private static final String MAPFISH_SUBTITLE = "mapfish-data-subtitle";
- private static final String MAPFISH_STRETCH = "mapfish-data-strech";
- private static final String MAPFISH_CREATED = "mapfish-data-created";
- private static final String MAPFISH_SOURCE = "mapfish-data-source";
- private static final String MAPFISH_CREATOR = "mapfish-data-creator";
- private static final String MAPFISH_DATEPLACE = "mapfish-data-dateplace";
+ private static final String MAPFISH_MAPTITLE = "mapfish_mapTitle";
+ private static final String MAPFISH_RANGE = "mapfish_data_range";
+ private static final String MAPFISH_SUBTITLE = "mapfish_data_subtitle";
+ private static final String MAPFISH_STRETCH = "mapfish_data_strech";
+ private static final String MAPFISH_INSTITUTION = "mapfish_data_institution";
+ private static final String MAPFISH_SOURCE = "mapfish_data_source";
+ private static final String MAPFISH_CREATOR = "mapfish_data_creator";
+ private static final String MAPFISH_DATEPLACE = "mapfish_data_dateplace";
+ private static final String MAPFISH_RIVER = "mapfish_data_river";
+ private static final String MAPFISH_LOGO = "mapfish_logo";
protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
@@ -53,11 +63,12 @@
protected TextItem pageTitle = new TextItem();
protected TextItem pageRange = new TextItem();
protected TextItem pageSubtitle = new TextItem();
- protected TextItem pageStrech = new TextItem();
- protected TextItem pageCreated = new TextItem();
+ protected TextItem pageStretch = new TextItem();
+ protected TextItem pageInstitution = new TextItem();
protected TextItem pageSource = new TextItem();
protected TextItem pageCreator = new TextItem();
protected TextItem pageDatePlace = new TextItem();
+ protected SelectItem pageLogo = createPageLogoSelectItem();
// protected SelectItem pageFormat = createPageFormatSelectItem();
protected MapToolbar mapToolbar;
protected MapPrintWindow parent;
@@ -88,10 +99,10 @@
this.pageSubtitle.setValue(props.getValue());
}
else if (props.getName().equals(MAPFISH_STRETCH)) {
- this.pageStrech.setValue(props.getValue());
+ this.pageStretch.setValue(props.getValue());
}
- else if (props.getName().equals(MAPFISH_CREATED)) {
- this.pageCreated.setValue(props.getValue());
+ else if (props.getName().equals(MAPFISH_INSTITUTION)) {
+ this.pageInstitution.setValue(props.getValue());
}
else if (props.getName().equals(MAPFISH_SOURCE)) {
this.pageSource.setValue(props.getValue());
@@ -110,15 +121,23 @@
protected void initLayout() {
// TODO: i18n
- this.pageTitle.setTitle("Titel");
- this.pageSubtitle.setTitle("Untertitel");
- this.pageRange.setTitle("Bereich");
- this.pageStrech.setTitle("Strecke");
- this.pageCreated.setTitle("Aufgestellt");
- this.pageSource.setTitle("Datenquelle");
- this.pageCreator.setTitle("Ersteller");
- this.pageDatePlace.setTitle("Ort, Datum");
+ this.pageTitle.setTitle(MSG.mapTitle());
+ this.pageSubtitle.setTitle(MSG.mapSubtitle());
+ this.pageRange.setTitle(MSG.mapRange());
+ this.pageStretch.setTitle(MSG.mapStretch());
+ this.pageInstitution.setTitle(MSG.mapInstitution());
+ this.pageSource.setTitle(MSG.mapSource());
+ this.pageCreator.setTitle(MSG.mapCreator());
+ this.pageDatePlace.setTitle(MSG.mapDate());
+ pageTitle.setLength(30);
+ pageSubtitle.setLength(30);
+ pageRange.setLength(30);
+ pageStretch.setLength(30);
+ pageInstitution.setLength(30);
+ pageSource.setLength(30);
+ pageCreator.setLength(30);
+ pageDatePlace.setLength(30);
ButtonItem printButton = createPrintButtonItem();
printButton.setAlign(Alignment.RIGHT);
@@ -129,15 +148,29 @@
this.pageTitle,
this.pageSubtitle,
this.pageRange,
- this.pageStrech,
- this.pageCreated,
+ this.pageStretch,
+ this.pageInstitution,
this.pageSource,
this.pageCreator,
this.pageDatePlace,
+ this.pageLogo,
printButton);
addChild(df);
}
+ protected SelectItem createPageLogoSelectItem() {
+ LinkedHashMap values = new LinkedHashMap();
+ // TODO: this should be configurable
+ values.put(MSG.bfgLogo(), "BfG Logo");
+
+ SelectItem selItem = new SelectItem();
+ selItem.setTitle(MSG.mapLogo());
+ selItem.setValueMap(values);
+ selItem.setDefaultToFirstOption(true);
+
+ return selItem;
+ }
+
/*
* Commented out because we only provide a layout for A4 Landscape atm
@@ -158,11 +191,9 @@
*/
protected ButtonItem createPrintButtonItem() {
ButtonItem btn = new ButtonItem();
- GWT.log("Button created");
btn.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
- GWT.log("Print Button Click");
updateCollection();
Window.open(createPrintUrl(), "_blank", "");
parent.destroy();
@@ -229,11 +260,65 @@
for (Property prop : properties) {
PropertySetting props = (PropertySetting)prop;
url.append("&");
- url.append(props.getName());
+ String localized;
+ try {
+ localized = MSG.getString(props.getName());
+ }
+ catch (MissingResourceException mre) {
+ localized = props.getName();
+ }
+ url.append(toJavaEncodedString(localized));
url.append("=");
url.append(props.getValue());
}
}
+ // O.o
+ String river = findRiver(((MapOutputTab)mapToolbar.getOutputTab()
+ ).getCollectionView().getArtifact());
+ url.append("&" + toJavaEncodedString(MSG.getString(MAPFISH_RIVER)) + "=" + river);
+ }
+
+ // Copy of DatacageWindow's findRiver
+ protected String findRiver(Artifact artifact) {
+ ArtifactDescription adescr = artifact.getArtifactDescription();
+ DataList [] data = adescr.getOldData();
+
+ if (data != null && data.length > 0) {
+ for (int i = 0; i < data.length; i++) {
+ DataList dl = data[i];
+ if (dl.getState().equals("state.winfo.river")) {
+ for (int j = dl.size()-1; j >= 0; --j) {
+ Data d = dl.get(j);
+ DataItem [] di = d.getItems();
+ if (di != null && di.length == 1) {
+ return d.getItems()[0].getStringValue();
+ }
+ }
+ }
+ }
+ }
+
+ return "";
+ }
+
+ public static String toJavaEncodedString(String str) {
+ if (str == null) {
+ return null;
+ }
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0, len = str.length(); i < len; i++) {
+ int unipoint = Character.codePointAt(str, i);
+ if ((unipoint < 32) || (unipoint > 127)) {
+ sb.append("\\u");
+ sb.append(Integer.toHexString((unipoint >> 3*4) & 0xf));
+ sb.append(Integer.toHexString((unipoint >> 2*4) & 0xf));
+ sb.append(Integer.toHexString((unipoint >> 1*4) & 0xf));
+ sb.append(Integer.toHexString((unipoint >> 0*4) & 0xf));
+ } else {
+ sb.append(str.charAt(i));
+ }
+ }
+ return sb.toString();
}
protected void updateCollection() {
@@ -243,15 +328,16 @@
GWT.log("MapPrintPanel.updateCollection via RPC now");
List<Property> properties = new ArrayList<Property>();
- properties.add(new PropertySetting(MAPFISH_MAPTITLE, this.pageTitle.getValueAsString()));
-// properties.add(new PropertySetting(MAPFISH_LAYOUT, this.pageFormat.getValueAsString()));
- properties.add(new PropertySetting(MAPFISH_SUBTITLE, this.pageSubtitle.getValueAsString()));
- properties.add(new PropertySetting(MAPFISH_RANGE, this.pageRange.getValueAsString()));
- properties.add(new PropertySetting(MAPFISH_STRETCH, this.pageStrech.getValueAsString()));
- properties.add(new PropertySetting(MAPFISH_CREATED, this.pageCreated.getValueAsString()));
- properties.add(new PropertySetting(MAPFISH_SOURCE, this.pageSource.getValueAsString()));
- properties.add(new PropertySetting(MAPFISH_CREATOR, this.pageCreator.getValueAsString()));
- properties.add(new PropertySetting(MAPFISH_DATEPLACE, this.pageDatePlace.getValueAsString()));
+ properties.add(new PropertySetting(MAPFISH_MAPTITLE, toJavaEncodedString(pageTitle.getValueAsString())));
+// properties.add(new PropertySetting(MAPFISH_LAYOUT, toJavaEncodedString(pageFormat.getValueAsString())));
+ properties.add(new PropertySetting(MAPFISH_SUBTITLE, toJavaEncodedString(pageSubtitle.getValueAsString())));
+ properties.add(new PropertySetting(MAPFISH_RANGE, toJavaEncodedString(pageRange.getValueAsString())));
+ properties.add(new PropertySetting(MAPFISH_STRETCH, toJavaEncodedString(pageStretch.getValueAsString())));
+ properties.add(new PropertySetting(MAPFISH_INSTITUTION, toJavaEncodedString(pageInstitution.getValueAsString())));
+ properties.add(new PropertySetting(MAPFISH_SOURCE, toJavaEncodedString(pageSource.getValueAsString())));
+ properties.add(new PropertySetting(MAPFISH_CREATOR, toJavaEncodedString(pageCreator.getValueAsString())));
+ properties.add(new PropertySetting(MAPFISH_DATEPLACE, toJavaEncodedString(pageDatePlace.getValueAsString())));
+ properties.add(new PropertySetting(MAPFISH_LOGO, toJavaEncodedString(pageLogo.getValueAsString())));
settings.setSettings("default", properties);
collection.addSettings("print-settings", settings);
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapPrintWindow.java
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapPrintWindow.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapPrintWindow.java Sun Apr 21 10:46:59 2013 +0200
@@ -13,7 +13,7 @@
public MapPrintWindow(Collection collection, MapToolbar mapToolbar) {
setWidth(255);
- setHeight(280);
+ setHeight(300);
setTitle(MSG.printWindowTitle());
centerInPage();
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/java/de/intevation/flys/client/client/ui/wq/QDTable.java
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/wq/QDTable.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/wq/QDTable.java Sun Apr 21 10:46:59 2013 +0200
@@ -109,5 +109,18 @@
public boolean isLocked() {
return lockClick;
}
+
+ /**
+ * Search all records for one with attribute name equals to given name.
+ * @return null if none found.
+ * */
+ public Double findRecordValue(String name) {
+ for (ListGridRecord record : getRecords()) {
+ if (record.getAttribute("name").equals(name)) {
+ return record.getAttributeAsDouble("value");
+ }
+ }
+ return null;
+ }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/java/de/intevation/flys/client/server/MapPrintServiceImpl.java
--- a/flys-client/src/main/java/de/intevation/flys/client/server/MapPrintServiceImpl.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/MapPrintServiceImpl.java Sun Apr 21 10:46:59 2013 +0200
@@ -11,7 +11,6 @@
import de.intevation.artifacts.httpclient.http.response.DocumentResponseHandler;
import de.intevation.flys.client.shared.MapUtils;
import de.intevation.flys.client.shared.model.MapConfig;
-import de.intevation.flys.client.client.FLYSConstants;
import java.io.IOException;
import java.io.InputStream;
@@ -107,7 +106,10 @@
List<Object> subLayers = new ArrayList<Object>(1);
subLayers.add(layers);
layer.put("layers", subLayers);
- layer.put("baseURL", url);
+ // XXX: osm.intevation.de mapache only offers low dpi maps
+ // so we need to use the uncached service
+ layer.put("baseURL", url.replace("http://osm.intevation.de/mapcache/?",
+ "http://osm.intevation.de/cgi-bin/germany.fcgi?"));
layer.put("format", "image/png"); // TODO: Make configurable.
return layer;
@@ -129,12 +131,12 @@
Map<String, Object> pageSpecs
) {
Map<String, Object> spec = new LinkedHashMap<String, Object>();
+ int dpi = 254;
spec.put("layout", "A4 landscape");
spec.put("pageSize", "A4");
- spec.put("landscape", "false");
- spec.put("title", "FLYS Druck");
+ spec.put("landscape", "true");
spec.put("srs", "EPSG:" + mapConfig.getSrid());
- spec.put("dpi", Integer.valueOf(254));
+ spec.put("dpi", dpi);
spec.put("units", "m");
spec.put("geodaetic", "true");
spec.put("outputFormat", "pdf");
@@ -202,7 +204,7 @@
Map<String, Object> legend = new LinkedHashMap<String, Object>();
List<Object> classes = new ArrayList<Object>(1);
Map<String, Object> clazz = new LinkedHashMap<String, Object>();
- String lgu = MapUtils.getLegendGraphicUrl(layer.url, layer.layers);
+ String lgu = MapUtils.getLegendGraphicUrl(layer.url, layer.layers, dpi);
clazz.put("icon", lgu);
clazz.put("name", layer.description);
classes.add(clazz);
@@ -264,21 +266,34 @@
Map<String, Object> data = new HashMap<String, Object>();
List<Object> payload = new ArrayList<Object>();
data.put("data", payload);
- Enumeration<String> paramNames = req.getParameterNames();
- while (paramNames.hasMoreElements()) {
- String paramName = paramNames.nextElement();
- if (paramName.startsWith("mapfish-data-")) {
- // You can add mapfish-data variables that will be mapped
+ Enumeration paramNames = req.getParameterNames();
+ List<String> params = Collections.list(paramNames);
+ Collections.sort(params);
+ for (String paramName : params) {
+ if (paramName.startsWith("mapfish_data_")) {
+ // You can add mapfish_data variables that will be mapped
// to a info value pairs to provide meta data for the map
+ // The the info part starts with a number for sorting that
+ // number will be stripped
String paramValue = req.getParameter(paramName);
- if (paramValue != null && !paramValue.isEmpty()) {
- Map<String, Object> data3 = new HashMap<String, Object>();
+ Map<String, Object> data3 = new HashMap<String, Object>();
+ int order = 0;
+ try {
+ order = Integer.parseInt(paramName.substring(13, 14));
+ data3.put("info", paramName.substring(14));
+ } catch (NumberFormatException nfe) {
data3.put("info", paramName.substring(13));
- data3.put("value", paramValue);
payload.add(data3);
}
- } else if (paramName.startsWith("mapfish-")) {
+ if (paramValue.equals("null"))
+ data3.put("value", "");
+ else
+ data3.put("value", paramValue);
+ payload.add(data3);
+ } else if (paramName.startsWith("mapfish_")) {
String paramValue = req.getParameter(paramName);
+ if (paramValue.equals("null"))
+ paramValue = "";
pageSpecs.put(paramName.substring(8), paramValue);
}
}
@@ -412,9 +427,15 @@
try {
byte [] buf = new byte[4096];
int r;
- resp.setHeader("Content-Disposition",
- "attachment;filename=flys-karte.pdf");
- resp.setContentType("application/pdf");
+ if (result < 200 || result >= 300) {
+ resp.setContentType("text/plain");
+ } else {
+ // Only send content disposition and filename content
+ // type when we have a pdf
+ resp.setHeader("Content-Disposition",
+ "attachment;filename=flys-karte.pdf");
+ resp.setContentType("application/pdf");
+ }
while ((r = in.read(buf)) >= 0) {
out.write(buf, 0, r);
}
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/java/de/intevation/flys/client/shared/MapUtils.java
--- a/flys-client/src/main/java/de/intevation/flys/client/shared/MapUtils.java Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/shared/MapUtils.java Sun Apr 21 10:46:59 2013 +0200
@@ -13,18 +13,29 @@
private MapUtils() {
}
+ public static String getLegendGraphicUrl(String server, String layer) {
+ return getLegendGraphicUrl(server, layer, -1);
+ }
- public static String getLegendGraphicUrl(String server, String layer) {
+ public static String getLegendGraphicUrl(String server, String layer, int dpi) {
if (server == null || layer == null) {
return null;
}
+ if (server.contains("osm.intevation.de")) {
+ // GetLegend is not implemented at osm.intevation.de
+ // This avoids an error in the print log
+ return null;
+ }
server = server.indexOf("?") >= 0 ? server : server + "?";
String url = GET_LEGEND_GRAPHIC_TEMPLATE;
url = url.replace("${SERVER}", server);
url = url.replace("${LAYER}", layer);
url = url + "×tamp=" + new Date().getTime();
+ if (dpi != -1) {
+ url+="&legend_options=dpi:" + dpi;
+ }
return url;
}
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/webapp/WEB-INF/config.yaml
--- a/flys-client/src/main/webapp/WEB-INF/config.yaml Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/webapp/WEB-INF/config.yaml Sun Apr 21 10:46:59 2013 +0200
@@ -69,13 +69,22 @@
- !localMatch
dummy: true
- !dnsMatch
- host: wsvmapserv.wsv.bund.de
+ host: wsvmapserv.ilmenau.baw.de
+ port: 80
+ - !dnsMatch
+ host: www.pegelonline.wsv.de
+ port: 80
+ - !dnsMatch
+ host: gdz.bkg.bund.de
+ port: 80
+ - !dnsMatch
+ host: ims3.bkg.bund.de
port: 80
- !dnsMatch
host: tile.openstreetmap.org
port: 80
- !dnsMatch
- host: www.pegelonline.wsv.de
+ host: wsvmapserv.wsv.bund.de
port: 80
- !dnsMatch
host: geo4.service24.rlp.de
@@ -93,6 +102,14 @@
- !dnsMatch
host: geoportal.bafg.de
port: 80
+ - !dnsMatch
+ host: wsvmapserv.wsv.bvbs.bund.de
+ port: 80
+
+# We need a font with unicode support the defaults only
+# have latin1
+fonts:
+ - /usr/share/fonts/truetype/freefont/FreeSans.ttf
layouts:
#===========================================================================
@@ -119,102 +136,160 @@
absoluteX: 20
align: left
absoluteY: 575
- width: 592
+ width: 587
height: 555
spacingAfter: 0
+ # The north arrow
+ - !columns
+ absoluteX: 627
+ absoluteY: 65
+ width: 32
+ items:
+ - !image
+ maxWidth: 20
+ maxHeight: 40
+ url: '${configDir}/../images/north.png'
+ # The scale text
+ - !columns
+ absoluteX: 615
+ absoluteY: 30
+ width: 45
+ items:
+ - !text
+ fontSize: 8
+ text: '1:${scale}'
+ align: center
+ fontEncoding: Identity-H
+ font: FreeSans
+ backgroundColor: #FFFFFF
#Flys and BFG Logo
- !columns
- absoluteX: 747
- absoluteY: 100
- width: 60
+ absoluteX: 760
+ absoluteY: 70
+ width: 50
items:
- !image
- maxWidth: 60
- maxHeight: 60
+ maxWidth: 50
+ maxHeight: 50
url: '${configDir}/../images/FLYS_Logo.png'
- !columns
- absoluteX: 732
- absoluteY: 160
- width: 90
+ absoluteX: 665
+ absoluteY: 70
+ width: 75
items:
- !image
- maxWidth: 90
- maxHeight: 60
- url: '${configDir}/../images/bfg_logo.gif'
- # Legend header, a bit hackish with the border
- # but I don't know how to put two rows in a column and I don't want to
- # use tables
+ maxWidth: 75
+ maxHeight: 50
+ url: '${configDir}/../${logo}'
+ # Scalebar
- !columns
- absoluteX: 612
- absoluteY: 575
- width: 200
+ absoluteX: 460
+ absoluteY: 40
+ width: 150
items:
- - !text
- text: "Legende:"
- align: center
- config:
- borderWidthLeft: 1
- borderWidthRight: 1
- borderWidthTop: 1
- borderWidthBottom: 0
+ - !scalebar
+ type: bar
+ maxSize: 150
+ barSize: 5
+ barBgColor: white
+ fontSize: 8
+ backgroundColor: #FFFFFF
# The legend
- !columns
absoluteX: 612
- absoluteY: 564
+ absoluteY: 390
width: 200
items:
- !legends
- maxHeight: 400
+ maxHeight: 310
maxWidth: 0
maxIconHeight: 0
- inline: false
+ inline: true
classIndentation: 10
- layerSpace: 5
- classSpace: 2
- layerFont: Helvetica
+ layerSpace: 0
+ classSpace: 5
layerFontSize: 0
- classFont: Helvetica
- classFontSize: 0
- fontEncoding: Cp1252
- columnMargin: 2
- defaultScale: 0.7
- config:
- borderWidthLeft: 1
- borderWidthRight: 1
- borderWidthTop: 0
- borderWidthBottom: 1
- # The Stamp
- - !columns
- absoluteX: 612
- absoluteY: 200
- width: 200
+ classFontSize: 10
+ fontEncoding: Identity-H
+ classFont: FreeSans
+ layerFont: FreeSans
+ defaultScale: 0.5
config:
borderWidthLeft: 1
borderWidthRight: 1
borderWidthTop: 1
borderWidthBottom: 1
+ # The stamp background
+ - !columns
+ absoluteX: 557
+ absoluteY: 575
+ width: 260
+ items:
+ - !image
+ maxWidth: 260
+ maxHeight: 184
+ url: '${configDir}/../images/white.png'
+
+ # Title of the map
+ - !columns
+ absoluteX: 562
+ absoluteY: 575
+ width: 250
+ condition: mapTitle
+ items:
+ - !text
+ text: '${mapTitle}'
+
+ # The Stamp
+ - !columns
+ absoluteX: 562
+ absoluteY: 555
+ width: 250
+ # config:
+ # borderWidthLeft: 5
+ # borderWidthRight: 5
+ # borderWidthTop: 5
+ # borderWidthBottom: 5
+ #padding: 10
+ #backgroundColor: #FFFFFF
+ #borderColor: #FFFFFF
items:
- !attributes
source: data
- spacingAfter: 30
+ spacingAfter: 0
columnDefs:
info:
- columnWeight: 2
+ columnWeight: 7
header: !text
- text: Info
- backgroundColor: #A0A0A0
- cell: !text
- text: '${info}'
- value:
- columnWeight: 5
- header: !text
- text: value
- backgroundColor: #A0A0A0
+ text: info
+ fontSize: 0
cell: !columns
config:
cells:
- borderWidth: 1
+ padding: 5
+ items:
+ - !text
+ text: '${info}'
+ fontSize: 10
+ fontEncoding: Identity-H
+ font: FreeSans
+ fontSize: 10
+ backgroundColor: #FFFFFF
+ value:
+ columnWeight: 15
+ header: !text
+ text: value
+ fontSize: 0
+ cell: !columns
+ config:
+ cells:
+ - borderWidth: 1
+ padding: 5
items:
- !text
text: '${value}'
-
+ fontEncoding: Identity-H
+ font: FreeSans
+ fontSize: 10
+ backgroundColor: #FFFFFF
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/webapp/WEB-INF/features.xml
--- a/flys-client/src/main/webapp/WEB-INF/features.xml Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/webapp/WEB-INF/features.xml Sun Apr 21 10:46:59 2013 +0200
@@ -7,14 +7,14 @@
<ftr:feature>module:new_chart</ftr:feature>
<ftr:feature>module:fixanalysis</ftr:feature>
<ftr:feature>river:Saar</ftr:feature>
- <ftr:feature>river:Saar-Wilt-Bogen</ftr:feature>
+ <ftr:feature>river:Saar (Wiltinger Bogen)</ftr:feature>
<ftr:feature>river:Rhein</ftr:feature>
<ftr:feature>river:Mosel</ftr:feature>
<ftr:feature>river:Elbe</ftr:feature>
- <ftr:feature>river:Donau (rna)</ftr:feature>
- <ftr:feature>river:Donau (SK)</ftr:feature>
+ <ftr:feature>river:Donau (Regensburg Nordarm)</ftr:feature>
+ <ftr:feature>river:Donau (Schleusenkanäle)</ftr:feature>
<ftr:feature>river:Donau</ftr:feature>
- <ftr:feature>river:Fulda</ftr:feature>
+ <ftr:feature>river:Fulda (Winter)</ftr:feature>
<ftr:feature>river:Fulda (Sommer)</ftr:feature>
<ftr:feature>river:Havel</ftr:feature>
<ftr:feature>river:Lahn</ftr:feature>
@@ -26,7 +26,7 @@
<ftr:feature>river:Oder</ftr:feature>
<ftr:feature>river:Saale</ftr:feature>
<ftr:feature>river:Saale-Thüringen</ftr:feature>
- <ftr:feature>river:Werra</ftr:feature>
+ <ftr:feature>river:Werra (Winter)</ftr:feature>
<ftr:feature>river:Werra (Sommer)</ftr:feature>
<ftr:feature>river:Weser</ftr:feature>
</ftr:role>
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/webapp/WEB-INF/stylesheets/fixoverview2html.xsl
--- a/flys-client/src/main/webapp/WEB-INF/stylesheets/fixoverview2html.xsl Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/webapp/WEB-INF/stylesheets/fixoverview2html.xsl Sun Apr 21 10:46:59 2013 +0200
@@ -24,6 +24,13 @@
</xsl:choose>
</xsl:variable>
+ <xsl:variable name="i18n-gauge">
+ <xsl:choose>
+ <xsl:when test="$locale = 'de'">Pegel</xsl:when>
+ <xsl:otherwise>Gauge</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
<xsl:variable name="i18n-event">
<xsl:choose>
<xsl:when test="$locale = 'de'">Ereignis</xsl:when>
@@ -255,6 +262,13 @@
<xsl:when test="@class = '2'"> / Q <xsl:value-of select="$i18n-around-mhq"/></xsl:when>
<xsl:when test="@class = '3'"> / Q <xsl:value-of select="$i18n-above-hq5"/></xsl:when>
</xsl:choose>
+ <xsl:text>
</xsl:text>
+ <xsl:value-of select="$i18n-gauge"/>
+ <xsl:text>:</xsl:text>
+ <xsl:call-template name="find-gauges">
+ <xsl:with-param name="start" select="@from"/>
+ <xsl:with-param name="stop" select="@to"/>
+ </xsl:call-template>
</xsl:attribute>
<xsl:text disable-output-escaping="yes"><![CDATA[ ]]></xsl:text>
</div>
@@ -277,6 +291,18 @@
</tr>
</xsl:template>
+ <xsl:template match="text()" mode="gauge-list"/>
+ <xsl:template match="gauge" mode="gauge-list">
+ <xsl:text> </xsl:text><xsl:value-of select="@name"/>
+ </xsl:template>
+
+ <xsl:template name="find-gauges">
+ <xsl:param name="start"/>
+ <xsl:param name="stop"/>
+ <xsl:apply-templates mode="gauge-list"
+ select="/fixings/gauges/gauge[not((number(@to) < number($start)) or (number(@from) > number($stop)))]"/>
+ </xsl:template>
+
<xsl:template match="gauge" mode="gauges">
<xsl:call-template name="emit-gap-gauge">
<xsl:with-param name="gauge" select="."/>
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/webapp/WEB-INF/wms-services.xml
--- a/flys-client/src/main/webapp/WEB-INF/wms-services.xml Sun Apr 21 10:46:06 2013 +0200
+++ b/flys-client/src/main/webapp/WEB-INF/wms-services.xml Sun Apr 21 10:46:59 2013 +0200
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<wms-services>
+ <wms name="OSM Hintergrundkarte" url="http://osm.intevation.de/mapcache/?"/>
<wms name="Luftbilder RLP" url="http://geo4.service24.rlp.de/wms/dop40_geo4.fcgi"/>
<wms name="TOP-Karten der WSV" url="http://wsvmapserv.ilmenau.baw.de/cgi-bin/wmstkappl?"/>
<wms name="Bundeswasserstraßenkarte 1:1 Mio" url="http://wsvmapserv.ilmenau.baw.de/cgi-bin/wmsdbwk1000?"/>
<wms name="DBWK2" url="http://wsvmapserv.wsv.bvbs.bund.de/cgi-bin/wms_dbwk2?"/>
<wms name="Infos zu Bundeswasserstraßen" url="http://wsvmapserv.wsv.bund.de/wms_bwastr?Version=1.1.0"/>
- <wms name="Einzugsgebiete Deutschland" url="http://wsvmapserv.wsv.bund.de/wmsezg?"/>
<wms name="Orthophotos BKG" url="http://gdz.bkg.bund.de"/>
<wms name="Orthophotos der WSV" url="http://wsvmapserv.ilmenau.baw.de/cgi-bin/wmsluft?"/>
<wms name="Pegelonline" url="http://www.pegelonline.wsv.de/webservices/gis/wms/aktuell?"/>
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/webapp/images/north.png
Binary file flys-client/src/main/webapp/images/north.png has changed
diff -r 1126b9e00378 -r e95427ed80e5 flys-client/src/main/webapp/images/white.png
Binary file flys-client/src/main/webapp/images/white.png has changed
More information about the Dive4elements-commits
mailing list