Configuring a report module in a workflow using LoopLocation Attributes

In same cases you want to create an HTML report (e.g. a chart or map) for a large number of locations, where each location has certain attributes specified (ID, or name). 

What you can do, is read all the attributes using an attribute table in the locationsets as a CSV file. Next you can use the LoopLocationSet option in a workflow to loop over each location and parse the correct attributes. These attributes can also be used in the filename etc. 

  1. Example of workflow configuration

    <workflow 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/workflow.xsd" version="1.0">
    <!--The first three activites generates hydrograph plots (.png) and assocated .html files for the external web -->
    	<activity>
    		<properties>
    			<loopLocationAttribute key="STATE" attributeId="REPORT_STATE_1"/>
    			<loopLocationAttribute key="TIMEZONE" attributeId="TIMEZONE_1"/>
    			<loopLocationAttribute key="PRODUCTID" attributeId="REPORT_PRODUCT_ID_1"/>
    			<loopLocationAttribute key="STATIONID" attributeId="REPORT_STATION_ID"/>
    			<loopLocationAttribute key="LOCATIONID" attributeId="REPORT_STATION_ID"/>
    			<loopLocationAttribute key="NAME" attributeId="LONG_NAME"/>
    			<loopLocationAttribute key="PREVIOUS" attributeId="PREVIOUS_1"/>
    			<loopLocationAttribute key="NEXT" attributeId="NEXT_1"/>
    			<loopLocationAttribute key="DAYS" attributeId="VIEWPERIOD"/>
    		</properties>
    		 <runIndependent>true</runIndependent>
    		<moduleInstanceId>Export_Hydrographs</moduleInstanceId>
    		<loopLocationSetId>AUS_Stations_Hydrographs</loopLocationSetId>
    	</activity>
    

And an example of the reports ModuleConfigFile using attributes.

  1. <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>
    		<chartFormat id="chartFormat1">
    			<includeTime0>true</includeTime0>
    			<leftAxis>
    				<min>0</min>
    				<numberOfTicks>5</numberOfTicks>
    				<caption>Water Level (m)</caption>
    				<format>##0.0</format>
    			</leftAxis>
    			<legend>
    				<placement>rightInside</placement>
    			</legend>
    			<thresholdAxisScaling>all thresholds</thresholdAxisScaling>
    			<bottomAxis>
    				<caption>           Station Date/Time</caption>
    				<format>HHmm\nE\nd/M</format>
    				<font size="12"/>
    				<tickUnit unit="hour" multiplier="24"/>
    				<minorTickUnit unit="hour" multiplier="6"/>
    				<centerLabelsBetweenTicks>false</centerLabelsBetweenTicks>
    			</bottomAxis>
    			<footer>Generated: %CURRENTTIME(dateFormat1)%</footer>
    			<relativeWholePeriod start="-$DAYS$" end="0" unit="day"/>
    			<titleFontSize>14</titleFontSize>
    		</chartFormat>
    		<htmlTableFormat id="htmlTableFormat1" tableStyle="tableStyle1">
    			<column>allSeries</column>
    			<row>time</row>
    			<includeBeforeOrEqualToTimeZeroInChoiceFormat>false</includeBeforeOrEqualToTimeZeroInChoiceFormat>
    			<relativeWholePeriod start="-$DAYS$" end="0" unit="day"/>
    			<topLeftText>    Station    Date/Time            </topLeftText>
    			<cellFormat>{0,   number,0.00}</cellFormat>
    			<topFormat>    Water <br> Level <br> (m)    </topFormat>
    			<leftFormat>{0,time,dd/MM/yyyy HH:mm}</leftFormat>
    			<missingValueText>-</missingValueText>
    			<nullValueText>-</nullValueText>
    		</htmlTableFormat>
    		<dateFormat id="dateFormat1">
    			<timeZone>
    				<timeZoneName>$TIMEZONE$</timeZoneName>
    			</timeZone>
    			<pattern>dd/MM/yyyy HH:mm z</pattern>
    		</dateFormat>
    		<dateFormat id="dateFormat2">
    			<timeZone>
    				<timeZoneName>$TIMEZONE$</timeZoneName>
    			</timeZone>
    			<pattern>HH:mm a z EE d MMMM yyyy</pattern>
    		</dateFormat>
    		<numberFormat id="numberFormat1">{0,number,###0.00}</numberFormat>
    		<generatePdf>false</generatePdf>
    		<reportsRootDir>$TEMP_EXPORT_FOLDER$</reportsRootDir>
    		<reportsRootSubDir/>
    		<sendToLocalFileSystem>true</sendToLocalFileSystem>
    		<timeZone>
    			<timeZoneName>$TIMEZONE$</timeZoneName>
    		</timeZone>
    				<inputVariable variableId="WaterLevel" variableType="any">
    			<timeSeriesSet>
    				<moduleInstanceId>Report_Processing</moduleInstanceId>
    				<valueType>scalar</valueType>
    				<parameterId>H.obs.proc</parameterId>
    				<locationId>$LOOP_LOCATION_ID$</locationId>
    				<timeSeriesType>temporary</timeSeriesType>
    				<timeStep unit="nonequidistant"/>
    				<relativeViewPeriod unit="day" start="-$DAYS$" end="0" startOverrulable="false" endOverrulable="false"/>
    				<readWriteMode>read only</readWriteMode>
    			</timeSeriesSet>
    		</inputVariable>
    		<dataFeedId>Report.Hydrographs</dataFeedId>
    	</declarations>
    	<!--Summary Tables-->
    	<report omitLocationIdInOutputFileName="true" singleLocation="true">
    		<locationId>$LOOP_LOCATION_ID$</locationId>
    		<htmlTable id="tableAllData" formatId="htmlTableFormat1">
    			<timeSeries cellFormat="{0,number,0.00}">WaterLevel</timeSeries>
    		</htmlTable>
    		<template>hydrograph_table_template.shtml</template>
    		<outputSubDir>Hydrographs/$PRODUCTID$</outputSubDir>
    		<outputFileName>$PRODUCTID$.$STATIONID$.tbl.shtml</outputFileName>
    		<defineLocal id="PRODUCTID">$PRODUCTID$</defineLocal>
    		<defineLocal id="STATIONID">$STATIONID$</defineLocal>
    		<defineLocal id="LOCATIONID">$STATIONID$</defineLocal>
    		<defineLocal id="LOCATIONNAME">$NAME$</defineLocal>
    		<defineLocal id="PREVIOUS">$PREVIOUS$</defineLocal>
    		<defineLocal id="NEXT">$NEXT$</defineLocal>
    		<defineLocal id="DAYS">$DAYS$</defineLocal>
    		<defineLocal id="OWNER">@STATION_OWNER@</defineLocal>
    		<defineLocal id="MINORFLOOD">@MINOR_FLD_H@</defineLocal>
    		<defineLocal id="MODFLOOD">@MODERATE_FLD_H@</defineLocal>
    		<defineLocal id="MAJORFLOOD">@MAJOR_FLD_H@</defineLocal>
    	</report>
    




  • No labels