Page tree
Skip to end of metadata
Go to start of metadata


Example configuration:

<?xml version="1.0" encoding="UTF-8"?>
<reports xmlns="http://www.wldelft.nl/fews" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wldelft.nl/fews http://fews.wldelft.nl/schemas/version1.0/reports.xsd"
       version="1.0">
   <declarations>
      <dateFormat id="dateFormat1">
         <pattern>dd/MM/yyyy HH:mm z</pattern>
      </dateFormat>
      <numberFormat id="numberFormat1">{0,number,###0.00}</numberFormat>
      <templateDir>../modules/fews/src/test/java/nl/wldelft/fews/system/plugin/report/config/ReportTemplateFiles</templateDir>
      <reportsRootDir>../fews/system/report</reportsRootDir>
      <reportsRootSubDir>output</reportsRootSubDir>
      <sendToLocalFileSystem>true</sendToLocalFileSystem>
   </declarations>
   <report>
      <inputVariable variableId="forecast">
         <timeSeriesSet>
            <moduleInstanceId>DummyForecast</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>H.m</parameterId>
            <locationSetId>catchmentLocations</locationSetId>
            <timeSeriesType>simulated forecasting</timeSeriesType>
            <timeStep unit="hour" multiplier="1"/>
            <relativeViewPeriod unit="hour" start="0" end="12"/>
            <readWriteMode>editing visible to all future task runs</readWriteMode>
         </timeSeriesSet>
      </inputVariable>
      <inputVariable variableId="forecastFlood">
         <timeSeriesSet>
            <moduleInstanceId>DummyForecastFlood</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>H.m</parameterId>
            <locationSetId>catchmentLocations</locationSetId>
            <timeSeriesType>simulated forecasting</timeSeriesType>
            <timeStep unit="hour" multiplier="1"/>
            <relativeViewPeriod unit="hour" start="0" end="12"/>
            <readWriteMode>editing visible to all future task runs</readWriteMode>
         </timeSeriesSet>
      </inputVariable>
      <inputVariable variableId="observed">
         <timeSeriesSet>
            <moduleInstanceId>DummyObserved</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>H.m</parameterId>
            <locationSetId>catchmentLocations</locationSetId>
            <timeSeriesType>simulated forecasting</timeSeriesType>
            <timeStep unit="hour" multiplier="1"/>
            <relativeViewPeriod unit="hour" start="0" end="5"/>
            <readWriteMode>editing visible to all future task runs</readWriteMode>
         </timeSeriesSet>
      </inputVariable>
      <inputVariable variableId="observedFlood">
         <timeSeriesSet>
            <moduleInstanceId>DummyObservedFlood</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>H.m</parameterId>
            <locationSetId>catchmentLocations</locationSetId>
            <timeSeriesType>simulated forecasting</timeSeriesType>
            <timeStep unit="hour" multiplier="1"/>
            <relativeViewPeriod unit="hour" start="0" end="5"/>
            <readWriteMode>editing visible to all future task runs</readWriteMode>
         </timeSeriesSet>
      </inputVariable>
      <inputVariable variableId="max">
         <timeSeriesSet>
            <moduleInstanceId>DummyMax</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>H.m</parameterId>
            <locationSetId>catchmentLocations</locationSetId>
            <timeSeriesType>simulated forecasting</timeSeriesType>
            <timeStep unit="hour" multiplier="1"/>
            <relativeViewPeriod unit="hour" start="0" end="0"/>
            <readWriteMode>editing visible to all future task runs</readWriteMode>
         </timeSeriesSet>
      </inputVariable>
      <inputVariable variableId="maxFlood">
         <timeSeriesSet>
            <moduleInstanceId>DummyMaxFlood</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>H.m</parameterId>
            <locationSetId>catchmentLocations</locationSetId>
            <timeSeriesType>simulated forecasting</timeSeriesType>
            <timeStep unit="hour" multiplier="1"/>
            <relativeViewPeriod unit="hour" start="0" end="0"/>
            <readWriteMode>editing visible to all future task runs</readWriteMode>
         </timeSeriesSet>
      </inputVariable>
      <forecastModelResultsXml fileName="modelReport.xml" catchmentName="BASIN" catchmentId="Brisbane_basin"  timeStepsAggregation="4" timeStepsInForecast="3" locationIdAttribute="hyfs-id" externalLocationIdAttribute="awrc-id">
         <modelResultXmlTemplate>HyFSModelReportTemplate.xml</modelResultXmlTemplate>
         <backgroundMap left="0" top="0" width="600" height="400" leftLongitude="140.9011512" rightLongitude="149.9854542" topLatitude="-33.97855037" bottomLatitude="-39.11759128"/>
         <catchmentViewportAttribute left="LEFTVP" top="TOPVP" width="WIDTHVP" height="HEIGHTVP"/>
         <observedTimeSeries numberFormatId="numberFormat1">observed</observedTimeSeries>
         <observedFloodClassTimeSeries>observedFlood</observedFloodClassTimeSeries>
         <forecastTimeSeries numberFormatId="numberFormat1">forecast</forecastTimeSeries>
         <forecastFloodClassTimeSeries>forecastFlood</forecastFloodClassTimeSeries>
         <maxForecastTimeSeries numberFormatId="numberFormat1">max</maxForecastTimeSeries>
         <maxForecastFloodClassTimeSeries>maxFlood</maxForecastFloodClassTimeSeries>
         <floodClasses>
            <default>less-than-minor</default>
            <floodClass thresholdId="levelThreshold1">minor</floodClass>
            <floodClass thresholdId="levelThreshold2">moderate</floodClass>
            <floodClass thresholdId="levelThreshold3">major</floodClass>
         </floodClasses>
         <additionalThresholds>
            <thresholdId>INFO1_H</thresholdId>
            <thresholdId>INFO2_H</thresholdId>
            <thresholdId>INFO3_H</thresholdId>
         </additionalThresholds>
         <siteFigures>
            <siteFigure>
               <id>1</id>
               <name>@HYFS_STATIONID@_plume</name>
               <fileName>@HYFS_STATIONID@plume.png</fileName>
               <type>png</type>
               <alternativeText>Plume for @NAME@</alternativeText>
               <viewPort left="0" top="0" width="1000" height="600"/>
            </siteFigure>
            <siteFigure>
               <id>2</id>
               <name>@HYFS_STATIONID@_members</name>
               <fileName>@HYFS_STATIONID@members.png</fileName>
               <type>png</type>
               <alternativeText>Members for @NAME@</alternativeText>
               <viewPort left="0" top="0" width="1000" height="600"/>
            </siteFigure>
         </siteFigures>
      </forecastModelResultsXml>
      <template>ModelReport_template.xml</template>
      <outputSubDir>modelReport</outputSubDir>
      <outputFileName>modelReport.xml</outputFileName>
   </report>
</reports>


For the report generation to work you need to define 6 input variables. One for the forecast, one that contains the values of the forecast threshold crossings (flood classes) (this two need to be the same length). One for observed value, one that contains the threshold crossings fot he observed values. One series that contains exactly one value, the maximum value of the forecast, and one that contains the threshold crossing for this maximum value (also one single value).

There can be different number formats defined for the time series.

You can configure flood classes and additional thresholds. The report will contain only the thresholds that are in the report configuration. The time series itself can have more, only they will not be printed.

You can configure site figures.  The name and file name fields can contain configured attributes.

timeStepAggregarion is the number of time steps that should be aggregated into one "aggregated time step".

timeStepsInForecast is the number of "aggregated time steps" to be written to the report. If there are more aggregated time steps than configured than only the configured number (thus not all) will be written to the report. If a higher number is configured than there are time steps, an error will be thrown.

Example:

There are 12 time steps in the time series. If timeStepAggregarion  is 4, there will be 3 aggregated time steps created (4x3=12).  If  timeStepsInForecast is 3, all of them are written to the report. If timeStepsInForecast is 2, only the two first are included in the export. If timeStepsInForecast is 4, a warning will be logged, and a report will be createdwith only the existing aggregation steps.


A template should also be configured. Example:


<?xml version="1.0" encoding="UTF-8"?>
<model-results xmlns="http://www.bom.gov.au/schema/model-results">
	<product-info  timezone="$PROPERTY(TIMEZONENAME)$" generation-time="%GENERATION_TIME%" forecast-start-time="%FORECAST_START_TIME%" forecast-period="168">
		<title>$DEFINITION(ForecastingCatchment)$ Model Report Product</title>
		<subtitle>An autogenerated product for testing</subtitle>			
		<id>$DEFINITION(ProductID)$</id>	
		<issuer>%USER_NAME%</issuer>	
		<product-disclaimer>
			<text-block id="1" bold="false">FOR OFFICIAL USE ONLY.</text-block>
			<text-block id="2" bold="false">Not for onward distribution.</text-block>
			<text-block id="3" bold="false">For use by emergency services agencies only, as a guide for preparedness.</text-block>
			<text-block id="4" bold="false">Information presented is uncertain.</text-block>
		</product-disclaimer>
		<content-disclaimer>
			<text-block id="1" bold="false">This report is produced to assist emergency services to plan and prepare for flood events.</text-block>
			<text-block id="2" bold="false">The scenarios presented use forecast rainfall and estimates of catchment wetness and rainfall losses, and are uncertain.</text-block>
			<text-block id="3" bold="false">The scenarios are based on the best available information at the time of issue, however actual river levels may differ from those shown in this report.</text-block>
			<text-block id="4" bold="false">Remember to check flood watches and flood warnings for the latest official forecasts.</text-block>
		</content-disclaimer>
		<description>
			<text-block id="1" bold="false">River level and flow forecasts in this product are developed using forecast rainfall as input to hydrological modes. The forecast rain will be discussed with the duty meterologist and may be based directly on weather forecast model output or from meterologist created forecasts.</text-block>
			<text-block id="2" bold="false">The highest river height predicted within the 7-day URBS forecast period and may not equate to the peak height for this event.</text-block>
			<text-block id="3" bold="false">Total rainfall is calculated from the URBS model as the catchment average rain to each location in the 7-day period.</text-block>
			<text-block id="4" bold="false">Only official forecast locations (as defined on the Victoria Service Level Specification) are included.</text-block>
		</description>
		<warning-url>http://www.bom.gov.au/qld/warnings</warning-url>
	</product-info>
	<region name="$DEFINITION(ForecastingRegion)$">
		<map filename="Original$DEFINITION(ForecastingRegion)$.png" type="png">
			<viewport left="%REGION_MAP_LEFT%" top="%REGION_MAP_TOP%" width="%REGION_MAP_WIDTH%" height="%REGION_MAP_HEIGHT%"/>
		</map>
		%MODELCATCHMENT%
	</region>
</model-results>
  • No labels