This import type retrieves gauge flood status data from Google's Flood Hub API.


It constructs the request url as follows:

<serverUrl>?<gaugeIds>&<apiKey>

Where:
<serverUrl> => taken exactly from config
<gaugeIds> => for each time series a gaugeIds=locationId is added, separated by &
<apiKey> => taken straight from value of the string property with key="apiKey".

For example for locations with ids: hybas_2120382190 and hybas_2120410870 and a T0 of 2026-08-14 13:00 it will create the next url (GET) request:

https://floodforecasting.googleapis.com/v1/gauges:floodStatus:queryLatestFloodStatusByGaugeIds?gaugeIds=hybas_2120382190&gaugeIds=hybas_2120410870&key=QWERTYUIOPASDFGHJKLZXCVBNM

It will request as many locations as possible at once, with a maximum of 500.
When more then 500 time series are configured for the import it will do multiple requests of maximum 500 locations at once.

The time step in this example is chosen to be nonequidistant because the T0 determines the time step on which a value is placed.
This means that the data can be placed at any time without a specific interval.

Example Import Config
<import>
	<general>
		<importTypeStandard>GoogleFloodHubV1GaugeFloodStatus</importTypeStandard>
		<serverUrl>https://floodforecasting.googleapis.com/v1/floodStatus:queryLatestFloodStatusByGaugeIds</serverUrl>      
    </general>
	<properties>
        <string key="apiKey" value="QWERTYUIOPASDFGHJKLZXCVBNM"/>
    </properties>
	<timeSeriesSet>
		<moduleInstanceId>ImportFloodHubAPIFloodStatus</moduleInstanceId>
		<valueType>scalar</valueType>
 		 <parameterId>floodStatus</parameterId>
        <locationSetId>StationsFloodHubNL</locationSetId>
		<timeSeriesType>external forecasting</timeSeriesType>
        <timeStep unit="nonequidistant"/>
        <readWriteMode>read complete forecast</readWriteMode>
	</timeSeriesSet>
</import>

The API returns JSON where:

For each element within floodStatuses 1 time series is created with location id equal to the value of the gaugeId field.
The T0 of the workflow is used as forecast time of the time series
The T0 of the wokflow is also used as time to place the text of the severity as value.
Make sure that the parameter used in the import is linked to an enumeration matching Severity.

For example:

Example enumeration in Parameters.xml
	<enumerations>
		<enumeration id="floodStatus">
			<value code="-999" label="SEVERITY_UNSPECIFIED"/>
			<value code="-1" label="UNKNOWN"/>
			<value code="0" label="NO_FLOODING"/>
			<value code="1" label="ABOVE_NORMAL"/>
			<value code="2" label="SEVERE"/>
			<value code="3" label="EXTREME"/>
		</enumeration>
	</enumerations>
	<parameterGroups>
		<parameterGroup id="floodStatus">
			<enumerationId>floodStatus</enumerationId>
			<parameter id="floodStatus">
				<shortName>floodStatus</shortName>
			</parameter>
		</parameterGroup>
	</parameterGroups>
Example JSON response:

Example JSON response
{
  "floodStatuses": [
    {
      "gaugeId": "hybas_2120410870",
      "issuedTime": "2026-08-14T12:14:08.439491Z",
      "forecastTimeRange": {
        "start": "2026-08-17T00:00:00Z",
        "end": "2026-08-18T00:00:00Z"
      },
      "forecastTrend": "NO_CHANGE",
      "severity": "NO_FLOODING",
      "source": "HYBAS",
      "gaugeLocation": {
        "latitude": 50.76874999999842,
        "longitude": 5.689583333330404
      },
      "qualityVerified": true
    },
    {
      "gaugeId": "hybas_2120382190",
      "issuedTime": "2026-08-14T11:02:37.437448Z",
      "forecastTimeRange": {
        "start": "2026-08-19T00:00:00Z",
        "end": "2026-08-20T00:00:00Z"
      },
      "forecastTrend": "NO_CHANGE",
      "severity": "SEVERE",
      "source": "HYBAS",
      "gaugeLocation": {
        "latitude": 51.847916666665007,
        "longitude": 6.1020833333304276
      },
      "qualityVerified": false
    }
  ]
}






  • No labels