Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Contents

Table of Contents

Introduction

The conceptual solution for the interface between HEC-RAS and FEWS has been illustrated in Figure 1. Two modes of working are identified that each support a basic use case. The modes of working are:

...

Note that only binary and configuration files relevant to the HEC-RAS adapter are included, in a real configuration a lot more files can be involved used by another modules of the FEWS system.

No Format

+---bin
|       <FEWS binaries>
\---nerfc_sa

    |
    +---Config
    |   +---ColdStateFiles
    |   |       HECRAS_CONNECTICTUT_UpdateStates Default.zip....cold state files
    |   |
    |   +---IdMapFiles
    |   |       IdExportHECRAS.xml.......................... custom mappings for the HEC-RAS variables and locations
    |   |
    |   +---ModuleConfigFiles
    |   |        HECRAS_CONNECTICTUT_Forecast.xml............ main configuration file of the adapter
    |   |
    |   +---ModuleDataSetFiles
    |   |        HECRAS_CONNECTICTUT_UpdateStates.xml.........zipped hecras files, transported to Models directory
    |   |
    |   \---ModuleParFiles
    |            HECRAS_CONNECTICUT_Parameters............. configuration file which allows to override some model and structure parameters
    |
    \---Models
        \---hec/hecras
            +---bin........................................ directory which contains all HEC-RAS executables for Windows and Linux platforms
            |       DSSWriter.exe.......................... generates binary file containing detailed model output
            |       dss_writer
            |       GeomPreprocessor.exe................... converts geometry files from GUI ASCII format to binary
            |       geo_pre
            |       Steady.exe............................. performs steady flow simulations
            |       steady
            |       Unsteady.exe........................... performs unsteady flow simulations
            |       unsteady
            |       DFORMD.DLL
            |       DFORMDD.DLL
            |       MSVCRTD.DLL
            |       libmtsk.so.1
            |       libwldelft_native.so
            |       module-adapter-hec-ras.jar............. pre- and pos- adapter, Coverts HEC-RAS data files to/from FEWS-PI format
            |       nwsras.jar............................. main library used by the adapter, reads and writes HEC-RAS data files
            |       heclib6-pc.dll
            |       javaHeclib.dll
            |       castor-0.9.5p.jar...................... the rest of the files below are FEWS dependencies used by adapter
            |       commons-cli-1.1.jar
            |       Delft_FEWS_castor.jar
            |       Delft_FEWS_schemas.jar
            |       Delft_PI.jar
            |       Delft_PI_castor.jar
            |       Delft_Util.jar
            |       jaxp-api-1_3.jar
            |       jaxp-dom-1-3.jar
            |       jaxp-sax-1_3.jar
            |       jaxp-xalan-1_3.jar
            |       jaxp-xercesImpl-1_3.jar
            |       log4j-1.2.14.jar
            |       serializer.jar
            |       TimeSeriesImport.jar
            |       xalan.jar
            |       xerces-c_2_8.dll
            |       xercesImpl.jar
            |       xml-apis.jar
            |
            \---connecticut
                |    run_info.xml.......................... a file generated by FEWS containing paths, run options
                |
                +---input.................................. input directory of the adapter, input FEWS-PI time series files
                |       inputs.xml
                |
                +---log.................................... log messages written by the hec-ras adapter
                |       adapter.xml
                |
                +---output................................. contains HEC-RAS output converted from the binary and dss output files
                |       output.xml
                |
                \---work................................... working directory of the adapters
                        ctfld2ras.b01
                        ctfld2ras.b02
                        ctfld2ras.b03
                        ctfld2ras.c02
                        ctfld2ras.f04
                        ctfld2ras.g02
                        ctfld2ras.p01
                        ctfld2ras.p02
                        ctfld2ras.p05
                        ctfld2ras.prj
                        ctfld2ras.r01
                        ctfld2ras.r02
                        ctfld2ras.r03
                        ctfld2ras.r05
                        ctfld2ras.u01
                        ctfld2ras.u02
                        ctfld2ras.x02

...

Note

List of output variables is defined under outputTimeSeriesParametersFilter item uses Regular Expressions. In most cases it is a list of variable names delimited with '|' character and for those variables where name can occur in another variable names (e.g. FLOW and FLOW AT GATE) it is necessary to use ^ as a prefix and $ $$ as a suffix of the variable. For example:

Code Block
languagexml

         <string key="outputTimeSeriesParametersFilter" value="^STAGE$^STAGE$$|^FLOW$^FLOW$$|Hydr Radius R|Hydr Radius L|^Flow Area$Area$$" />

Example configuration of the HEC-RAS adapter:

Code Block
xml
xml

<?xml version="1.0" encoding="UTF-8"?>
<generalAdapterRun 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/generalAdapterRun.xsd">
	<general>
		<description>hecras Model for Kennebec River</description>
		<rootDir>$HECRASMODELDIR$/kennebec</rootDir>
		<workDir>%ROOT_DIR%/work</workDir>
		<exportDir>%ROOT_DIR%/input</exportDir>
		<exportDataSetDir>%ROOT_DIR%/work</exportDataSetDir>
		<exportIdMap>IdExportHECRAS</exportIdMap>
		<exportUnitConversionsId>ExportHECRAS</exportUnitConversionsId>
		<importDir>%ROOT_DIR%output</importDir>
		<importIdMap>IdImportHECRAS</importIdMap>
		<importUnitConversionsId>ImportHECRAS</importUnitConversionsId>
		<dumpFileDir>$GA_DUMPFILEDIR$</dumpFileDir>
		<dumpDir>%ROOT_DIR%</dumpDir>
		<diagnosticFile>%ROOT_DIR%/log/preadapter.xml</diagnosticFile>
	</general>
	<activities>
		<startUpActivities>
			<purgeActivity>
				<filter>%ROOT_DIR%/log/*.*</filter>
			</purgeActivity>
			<purgeActivity>
				<filter>%ROOT_DIR%/input/*.*</filter>
			</purgeActivity>
			<purgeActivity>
				<filter>%ROOT_DIR%/output/*.*</filter>
			</purgeActivity>
			<purgeActivity>
				<filter>%ROOT_DIR%/work/*.*</filter>
			</purgeActivity>
		</startUpActivities>
		<exportActivities>
			<exportStateActivity>
				<moduleInstanceId>HECRAS_KENNEBEC_UpdateStates</moduleInstanceId>
				<stateExportDir>%ROOT_DIR%/work</stateExportDir>
				<stateConfigFile>%ROOT_DIR%/work/state.xml</stateConfigFile>
				<stateLocations type="file">
					<stateLocation>
						<readLocation>Augusta.p02.rst</readLocation>
						<writeLocation>Augusta.p02.rst</writeLocation>
					</stateLocation>
				</stateLocations>
				<stateSelection>
					<warmState>
						<stateSearchPeriod unit="day" start="-10" end="-1"/>
					</warmState>
				</stateSelection>
			</exportStateActivity>
			<exportTimeSeriesActivity>
				<exportFile>%ROOT_DIR%/input/input.xml</exportFile>
				<timeSeriesSets>
					<timeSeriesSet>
						<moduleInstanceId>HECRAS_KENNEBEC_Preprocessing_UpdateStates</moduleInstanceId>
						<valueType>scalar</valueType>
						<parameterId>QINE</parameterId>
						<locationId>SIDM1ME</locationId>
						<timeSeriesType>simulated historical</timeSeriesType>
						<timeStep unit="hour" multiplier="1"/>
						<relativeViewPeriod unit="hour" end="0"/>
						<readWriteMode>read only</readWriteMode>
					</timeSeriesSet>
					<timeSeriesSet>
						<moduleInstanceId>HECRAS_KENNEBEC_Preprocessing_UpdateStates</moduleInstanceId>
						<valueType>scalar</valueType>
						<parameterId>STID</parameterId>
						<locationId>CASM1ME</locationId>
						<timeSeriesType>simulated historical</timeSeriesType>
						<timeStep unit="hour" multiplier="1"/>
						<relativeViewPeriod unit="hour" end="0"/>
						<readWriteMode>read only</readWriteMode>
					</timeSeriesSet>
				</timeSeriesSets>
			</exportTimeSeriesActivity>
			<exportDataSetActivity>
				<moduleInstanceId>HECRAS_KENNEBEC_UpdateStates</moduleInstanceId>
			</exportDataSetActivity>
			<exportParameterActivity>
				<fileName>params.xml</fileName>
				<moduleInstanceId>HECRAS_KENNEBEC_UpdateStates</moduleInstanceId>
			</exportParameterActivity>
			<exportRunFileActivity>
				<exportFile>%ROOT_DIR%/run_info.xml</exportFile>
				<properties>
	                        <string key="hecRasProjectFile" value="%ROOT_DIR%/work/Augusta.prj"/>
	                        <string key="hecRasBinDirectory" value="$HECRASBINDIR$"/>
	                        <string key="outputTimeSeriesParametersFilter" value="^STAGE$|^FLOW$"/>
	                        <string key="outputLongtitudionalProfileParametersFilter" value="^STAGE$^STAGE$$|Hydr Radius L"/>
	                        <string key="logLevel" value="DEBUG"/>
	                        <string key="skipBinaryOutput" value="false"/>
                                <string key="hecRasEnvironment" value="LD_LIBRARY_PATH=$HECRASBINDIR$:$LD_LIBRARY_PATH"/>
				</properties>
			</exportRunFileActivity>
		</exportActivities>
		<executeActivities>
			<executeActivity>
				<command>
					<className>nl.wldelft.fews.adapter.hec.HecRasAdapter</className>
					<binDir>$HECRASBINDIR$</binDir>
				</command>
				<arguments>
					<argument>%ROOT_DIR%/run_info.xml</argument>
				</arguments>
				<timeOut>1500000</timeOut>
			</executeActivity>
		</executeActivities>
		<importActivities>
			<importStateActivity>
				<stateConfigFile>%ROOT_DIR%/work/state.xml</stateConfigFile>
				<synchLevel>20</synchLevel>
			</importStateActivity>
			<importTimeSeriesActivity>
				<importFile>%ROOT_DIR%/output/output.xml</importFile>
				<timeSeriesSets>
					<timeSeriesSet>
						<moduleInstanceId>HECRAS_KENNEBEC_UpdateStates</moduleInstanceId>
						<valueType>scalar</valueType>
						<parameterId>SSTG</parameterId>
						<locationId>AUGM1ME</locationId>
						<timeSeriesType>simulated historical</timeSeriesType>
						<timeStep unit="hour" multiplier="1"/>
						<readWriteMode>add originals</readWriteMode>
					</timeSeriesSet>
					<timeSeriesSet>
						<moduleInstanceId>HECRAS_KENNEBEC_UpdateStates</moduleInstanceId>
						<valueType>scalar</valueType>
						<parameterId>SQIN</parameterId>
						<locationId>AUGM1ME</locationId>
						<timeSeriesType>simulated historical</timeSeriesType>
						<timeStep unit="hour" multiplier="1"/>
						<readWriteMode>add originals</readWriteMode>
					</timeSeriesSet>
				</timeSeriesSets>
			</importTimeSeriesActivity>
		</importActivities>
	</activities>
</generalAdapterRun>

...

Note

Name of the structure defined in the HEC-RAS must exactly match group id and location of the structure (station, river, chainage) must be the same as locationId.

Code Block
xml
xml

<parameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.wldelft.nl/fews/PI" xsi:schemaLocation="http://www.wldelft.nl/fews/PI http://fews.wldelft.nl/schemas/version1.0/pi-schemas/pi_modelparameters.xsd" version="1.5">
    <modifierType>HECRAS</modifierType>
    <group id="default" name="hec-ras run parameters">
        <parameter id="ComputationInterval">
            <description>Computation interval in minutes. Does not change interval of output data.</description>
            <intValue>5</intValue>
        </parameter>
    </group>

    <!-- Gate name and locationId should be equal to what is defined in the HEC-RAS gui -->
    <group id="Gate #1" name="hec-ras gate parameters">
        <locationId>CT River R1/18100</locationId>
        <!--

             Gate parameters depend on the mode selected in the RAS configuration files (gui),

             Posssible modes which can te set in the gui are:

                    based on upstream WS (default)
                    based on specified reference
                    based on difference in stage
         -->

        <!-- parameters valid all modes -->
        <parameter id="RateOpen">
            <dblValue>0.05</dblValue>
        </parameter>

        <parameter id="RateClose">
            <dblValue>0.05</dblValue>
        </parameter>

        <parameter id="MaxOpen">
            <dblValue>20.0</dblValue>
        </parameter>

        <parameter id="MinOpen">
            <dblValue>0.0</dblValue>
        </parameter>

        <parameter id="InitOpen">
            <dblValue>3.0</dblValue>
        </parameter>

        <!-- parameters specific for "based on upstream WS" -->
        <parameter id="ZOpen">
            <description></description>
            <dblValue>4.0</dblValue>
        </parameter>

        <parameter id="ZClose">
            <description></description>
            <dblValue>3.0</dblValue>
        </parameter>

        <!-- parameters specific for "based on specified reference" -->
        <!--
        <parameter id="ReferenceWSType">
            <description>Valid values: Reach, RiverStation, StorageArea</description>
            <stringValue>Reach</stringValue>
        </parameter>

        <parameter id="ReferenceWS">
            <description>Depending on the ReferenceWSType parameter</description>
            <stringValue>R1</stringValue>
        </parameter>

        <parameter id="referenceWSOpen">
            <description>Reference elevation at which gate begins to open</description>
            <dblValue>4.0</dblValue>
        </parameter>

        <parameter id="referenceWSClose">
            <description>Reference elevation at which gate begins to close</description>
            <dblValue>3.0</dblValue>
        </parameter>
        -->

       <!-- parameters specific for "based on difference in stage" -->
       <!--
        <parameter id="stageDiffUSType">
            <description>Upstream Reach, RiverStation or StorageArea location for stage difference computation</description>
            <stringValue>Reach</stringValue>
        </parameter>

        <parameter id="stageDiffUS">
            <description>Depends on the stageDiffUSType parameter</description>
            <stringValue>Reach</stringValue>
        </parameter>


        <parameter id="stageDiffDSType">
            <description>Downstream River, Reach, RiverStation or StorageArea location for stage difference computation</description>
            <stringValue>Reach</stringValue>
        </parameter>

        <parameter id="stageDiffDS">
            <description>Depends on the stageDiffDSType parameter</description>
            <stringValue>R1</stringValue>
        </parameter>

        <parameter id="stageDiffOpen">
            <description>Stage difference at which gate begins to open</description>
            <dblValue>0.1</dblValue>
        </parameter>

        <parameter id="stageDiffClose">
            <description>Stage difference at which gate begins to close</description>
            <dblValue>0.1</dblValue>
        </parameter>
        -->
    </group>

    <group id="Levee Breach" name="hec-ras levee breach parameters">
        <locationId>CT River R1/248658</locationId>

        <parameter id="IsActive">
            <description>true when breach is activated, otherwise model skips it during computations</description>
            <boolValue>false</boolValue>
        </parameter>

        <parameter id="IsWSStart">
            <description>true if trigger for failure is WS elevation</description>
            <boolValue>true</boolValue>
        </parameter>

        <parameter id="ThresholdWS">
            <description>water surface elevation for breaching</description>
            <dblValue>3.4028E38</dblValue>
        </parameter>

        <parameter id="ThresholdDuration">
            <description>threshold time (hours) for breaching</description>
            <dblValue>3.4028E38</dblValue>
        </parameter>

        <parameter id="StartDate">
            <description>Start date for breaching (e.g. 01MAR2001)</description>
            <stringValue></stringValue>
        </parameter>

        <parameter id="StartTime">
            <description>Start time for breaching (e.g. 1630)</description>
            <stringValue></stringValue>
        </parameter>

        <parameter id="CenterStation">
            <description>Center of breach (XS station / location)</description>
            <dblValue>8800.0</dblValue>
        </parameter>

        <parameter id="BottomWidth">
            <description>Final bottom width</description>
            <dblValue>500.0</dblValue>
        </parameter>

        <parameter id="BottomElevation">
            <description>Final bottom elevation</description>
            <dblValue>-10.0</dblValue>
        </parameter>

        <parameter id="LeftSideSlope">
            <description>Left side slope</description>
            <dblValue>2.0</dblValue>
        </parameter>

        <parameter id="RightSideSlope">
            <description>Right side slope</description>
            <dblValue>2.0</dblValue>
        </parameter>

        <parameter id="BreachTime">
            <description>Full formation time (hours)</description>
            <dblValue>1.0</dblValue>
        </parameter>

        <parameter id="WeirCoef">
            <description>Breach weir coefficient</description>
            <dblValue>2.6</dblValue>
        </parameter>

        <!-- parameter below are used only when IsPipe = true -->
        <parameter id="IsPipe">
            <description>true if piping failure, false if overtopping</description>
            <boolValue>true</boolValue>
        </parameter>

        <parameter id="PipingCoefficient">
            <description>Piping coefficient (default is .8)</description>
            <dblValue>0.8</dblValue>
        </parameter>

        <parameter id="InitialPipingElevation">
            <description>Initial piping elevation</description>
            <dblValue>-0.5</dblValue>
        </parameter>
    </group>
</parameters>

...

The HEC-RAS adapter is configured properly and forecast is performed from the Delft-FEWS system - a list of input and output variables will be written into the standard log file of the system. The location and variables are based on the active <region>.b01 file of the HEC-RAS model configured in the GUI of HEC-RAS. Pre-adapter of the HEC-RAS will provide list of all possible input variables and locations in the following part of the log file:

Code Block

...
156 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - Found input at locations:
156 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  -     CT River, R1, 334752.0, Flow Hydrograph
156 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  -     CT River, R1, 0.00, Stage Hydrograph
...

Locations and variables listed after the line Found input at locations: can be configured in the Delft-FEWS as a part of adapter input, e.g. input.xml in this case may contain something like the lines below:

Code Block
languagexml
titleinput.xml

<TimeSeries
    xsi:schemaLocation="http://www.wldelft.nl/fews/PI http://fews.wldelft.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd"
    version="1.2" xmlns="http://www.wldelft.nl/fews/PI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <timeZone>0.0</timeZone>
    <series>
        <header>
            <type>instantaneous</type>
            <locationId>CT RIVER R1/334752.0</locationId>
            <parameterId>Flow Hydrograph</parameterId>
            <timeStep unit="second" multiplier="3600"/>
            <startDate date="2008-11-06" time="12:00:00"/>
            <endDate date="2008-11-08" time="12:00:00"/>
            <missVal>-999.0</missVal>
            <stationName>Connicut River at Thompsonville</stationName>
            <units>cms</units>
        </header>
        <event date="2008-11-06" time="12:00:00" value="14.98" flag="0"/>
        <event date="2008-11-06" time="13:00:00" value="14.705" flag="0"/>
        <event date="2008-11-06" time="14:00:00" value="14.43" flag="0"/>
        <event date="2008-11-06" time="15:00:00" value="14.155" flag="0"/>
        <event date="2008-11-06" time="16:00:00" value="13.88" flag="0"/>
        <event date="2008-11-06" time="17:00:00" value="13.605" flag="0"/>
        ...

...

In the same way list of all output variables and locations can be found in the post-adapter log output, for example:

Code Block

...
84843 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - Profile, Profile number.,
84843 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - W.S. Elev, Calculated water surface from energy equation., (ft)
84843 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - E.G. Elev, Energy gradeline for given WSEL., (ft)
84843 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - Max Chl Dpth, Maximum main channel depth., (ft)
84843 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - Min Ch El, Minimum Channel Elevation., (ft)
84843 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - Q Left, Flow in left overbank., (cfs)
84859 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - Q Channel, Flow in main channel., (cfs)
84859 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - Q Right, Flow in right overbank., (cfs)
84859 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - Q Total, Total flow in cross section., (cfs)
84859 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - Flow Area, Total area of cross section active flow., (sq ft)
84859 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - Flow Area L, Area of left overbank active flow., (sq ft)
84859 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - Flow Area Ch, Area of main channel active flow., (sq ft)
84859 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - Flow Area R, Area of right overbank active flow., (sq ft)
84859 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - W.P. Total, Wetted perimeter of total cross section., (ft)
84859 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - W.P. Left, Wetted perimeter of left overbank., (ft)
84859 [main] INFO nl.wldelft.fews.adapter.hec.HecRasDataAccessFacadeImpl  - W.P. Channel, Wetted perimeter of main channel., (ft)
...

...

Code Block
xml
xml
titleExample of the FEWS-PI containing binary output of the HEC-RAS model

<TimeSeries
    xsi:schemaLocation="http://www.wldelft.nl/fews/PI http://fews.wldelft.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd"
    version="1.2" xmlns="http://www.wldelft.nl/fews/PI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <timeZone>0.0</timeZone>
    <series>
        <header>
            <type>instantaneous</type>
            <locationId>CT River R1/334752.0</locationId>
            <parameterId>W.S. Elev</parameterId>
            <timeStep unit="second" multiplier="3600"/>
            <startDate date="2008-11-06" time="00:00:00"/>
            <endDate date="2008-11-08" time="00:00:00"/>
            <missVal>NaN</missVal>
            <units>[?]</units>
        </header>
        <event date="2008-11-06" time="00:00:00" value="32.06013" flag="0"/>
        <event date="2008-11-06" time="01:00:00" value="32.06013" flag="0"/>
        <event date="2008-11-06" time="02:00:00" value="32.034" flag="0"/>
        <event date="2008-11-06" time="03:00:00" value="32.03394" flag="0"/>
        ...
        <event date="2008-11-07" time="23:00:00" value="32.03618" flag="0"/>
        <event date="2008-11-08" time="00:00:00" value="32.03598" flag="0"/>
    </series>
    <series>
        <header>
            <type>instantaneous</type>
            <locationId>CT River R1/334752.0</locationId>
            <parameterId>E.G. Elev</parameterId>
            <timeStep unit="second" multiplier="3600"/>
            <startDate date="2008-11-06" time="00:00:00"/>
            <endDate date="2008-11-08" time="00:00:00"/>
            <missVal>NaN</missVal>
            <units>[?]</units>
        </header>
        <event date="2008-11-06" time="00:00:00" value="32.06734" flag="0"/>
        <event date="2008-11-06" time="01:00:00" value="32.06734" flag="0"/>
        <event date="2008-11-06" time="02:00:00" value="32.056885" flag="0"/>
        ...

...

Code Block
xml
xml
titleExample of the FEWS-PI containing DSS output of the HEC-RAS model

<TimeSeries
    xsi:schemaLocation="http://www.wldelft.nl/fews/PI http://fews.wldelft.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd"
    version="1.2" xmlns="http://www.wldelft.nl/fews/PI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <timeZone>0.0</timeZone>
    <series>
        <header>
            <type>instantaneous</type>
            <locationId>CT RIVER R1/0.00</locationId>
            <parameterId>FLOW</parameterId>
            <timeStep unit="second" multiplier="3600"/>
            <startDate date="2008-11-06" time="00:00:00"/>
            <endDate date="2008-11-08" time="00:00:00"/>
            <missVal>NaN</missVal>
            <units>CFS</units>
        </header>
        <event date="2008-11-06" time="00:00:00" value="24.38823" flag="0"/>
        <event date="2008-11-06" time="01:00:00" value="-5.8442316" flag="0"/>
        <event date="2008-11-06" time="02:00:00" value="68.705124" flag="0"/>
        <event date="2008-11-06" time="03:00:00" value="391.09784" flag="0"/>
        ...
        <event date="2008-11-07" time="23:00:00" value="438.6425" flag="0"/>
        <event date="2008-11-08" time="00:00:00" value="-5259.6562" flag="0"/>
    </series>
    <series>
        <header>
            <type>instantaneous</type>
            <locationId>CT RIVER R1/0.00</locationId>
            <parameterId>STAGE</parameterId>
            <timeStep unit="second" multiplier="3600"/>
            <startDate date="2008-11-06" time="00:00:00"/>
            <endDate date="2008-11-08" time="00:00:00"/>
            <missVal>NaN</missVal>
            <units>FEET</units>
        </header>
        <event date="2008-11-06" time="00:00:00" value="5.0" flag="0"/>
        <event date="2008-11-06" time="01:00:00" value="5.0" flag="0"/>
        <event date="2008-11-06" time="02:00:00" value="5.0" flag="0"/>
        <event date="2008-11-06" time="03:00:00" value="5.0" flag="0"/>
        ...

...