JFlow General Adapter
1 JFlow
JFlow is a two-dimensional hydraulic model, which solves the St Venant Shallow Water Equations. It makes use of GPU technology to complete simulations faster and more efficiently.
...
Parameter | Description | Type |
JflowExecutable | Full filepath of the JFlow executable, as installed on the host machine. | String |
JflowDB | Name of the JFlow database, including file extension. The full filepath is not required if the module folder structure is maintained. | String |
Device | Number of the GPU device, as machines may have multiple GPU cards. Default is 0. | Integer |
NumberFlowIDs | Number of flow boundaries. | Integer |
FlowNames | Names of flow boundaries, separated by commas. The name should match (1) the inflow ID in the JFlow model; and, (2) the external location ID of the xml timeseries exported from FEWS. Any ID mapping takes place within FEWS. | String |
NumberRainIDs | Number of rainfall inputs. | Integer |
RainNames | Names of the rainfall inputs, separated by commas. The name should match (1) the inflow ID in the JFlow model; and, (2) the external location ID of the xml timeseries exported from FEWS. Any ID mapping takes place within FEWS. | String |
OutputParameters | Output parameter types, separated by commas. Commonly used options are: depth, hazard_index, velocity, water_level. | String |
LocationID | LocationID that will be associated with the model results. The value stated here should match the external ID in the FEWS ID mapping file. | String |
Example .ini file:
Code Block | ||
---|---|---|
| ||
[General] |
...
ModelName=Jflow_test_model |
...
JflowExecutable=C:\Program Files\JFLOW\JFLOW.exe |
...
JflowDB=jflow_test.accdb |
...
Device=0 |
...
[End] |
...
[Flow inputs] |
...
NumberFlowIDs=3 |
...
FlowNames=Flow_1, Flow_2, Flow_3 |
...
[End] |
...
[Rain inputs] |
...
NumberRainIDs=0 |
...
RainNames=0 |
...
[End] |
...
[Required outputs] |
...
OutputParameters=depth |
...
LocationID=Jflow_test_map |
...
[End] |
2.4 Notes on configuration
2.4.1 Module config file examples
The following sections contain examples of a module configuration file required to run JFlow through the JFlow adapter. Notes for users are also given.
General
...
Code Block | ||||
---|---|---|---|---|
| ||||
<?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>
...
<general> <!-- general section to specify directories and id maps file --> |
...
<description>JFlow fluvial test for the Don</description>
...
<description>JFlow fluvial test for the Don</description> <rootDir>%REGION_HOME%/Modules/jflow/TestModel</rootDir> |
...
<workDir>%ROOT_DIR%</workDir> |
...
<exportDir>%ROOT_DIR%/input</exportDir> |
...
<exportIdMap>Jflow_Export_Test</exportIdMap> |
...
<importDir>%ROOT_DIR%/output</importDir> |
...
<importIdMap>Jflow_Import_Test</importIdMap> |
...
<dumpFileDir>$GA_DUMPFILEDIR$</dumpFileDir> |
...
<dumpDir>%ROOT_DIR%</dumpDir> |
...
<diagnosticFile>%ROOT_DIR%/diagnostics.xml</diagnosticFile> |
...
</general> |
...
<!-- burnInProfile - not currently used --> |
...
<activities>
<startUpActivities>
...
<activities> <startUpActivities> <!-- startUpActivities to remove files from previous runs --> |
...
<purgeActivity>
...
<purgeActivity> <filter>%ROOT_DIR%/input/*.*</filter> |
...
</purgeActivity>
<!--purgeActivity>
...
</purgeActivity> <!--purgeActivity> <filter>%ROOT_DIR%/output/*.*</filter> |
...
</purgeActivity--> |
...
</startUpActivities> |
...
|
Export timseries time series from FEWS
The export file must be called export.xml (this is hard coded into the JFlow adapter).
<exportTimeSeriesActivity>
<description>Export flow timeseries</description>
Code Block | ||||
---|---|---|---|---|
| ||||
<exportTimeSeriesActivity>
<description>Export flow timeseries</description>
|
...
<!-- exportFile is written to directory named in the General section unless specified otherwise--> |
...
<exportFile>export.xml</exportFile> |
...
<timeSeriesSets>
<timeSeriesSet>
...
<timeSeriesSets> <timeSeriesSet> <!-- the data to be exported --> |
...
<moduleInstanceId>ImportObservedForJflow</moduleInstanceId>
<valueType>scalar</valueType>
<parameterId>Q.obs</parameterId>
...
<moduleInstanceId>ImportObservedForJflow</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Q.obs</parameterId> <locationId>JBA_TEST1_SP_1</locationId> |
...
<locationId>JBA_TEST1_SP_2</locationId> |
...
<locationId>JBA_TEST1_SP_3</locationId> |
...
<timeSeriesType>external historical</timeSeriesType>
...
<timeSeriesType>external historical</timeSeriesType> <timeStep unit="minute" multiplier="15"/> |
...
<relativeViewPeriod unit="hour" start="-24" end="0" endOverrulable="true"/> |
...
<readWriteMode>read only</readWriteMode>
</timeSeriesSet>
</timeSeriesSets>
</exportTimeSeriesActivity>
|
Execute the JFlow model
Code Block | ||||
---|---|---|---|---|
| ||||
<executeActivity>
<description>Run Jflow Adapter</description>
<command>
<!-- set path to Jflow adapter executable in the global properties file-->
|
<readWriteMode>read only</readWriteMode>
</timeSeriesSet>
</timeSeriesSets>
</exportTimeSeriesActivity>
Execute the JFlow model
<executeActivity>
<description>Run Jflow Adapter</description>
<command>
<!-- set path to Jflow adapter executable in the global properties file-->
...
<executable>$GA_JFLOW_ADAPTER$</executable> |
...
</command> |
...
<arguments>
...
<arguments> <argument>%ROOT_DIR%\jflow.ini</argument> |
...
</arguments> |
...
<timeOut>900000</timeOut> |
...
</executeActivity> |
Import model results to FEWS
Import the model results grids to a location in FEWS, as in the example below.
...
<locationID> should match the internal ID specified in the IdMaps file.
<importActivities>
<importMapStacksActivity>
Code Block | ||||
---|---|---|---|---|
| ||||
<importActivities>
<importMapStacksActivity>
|
...
<importFile>../output/jflowmapstacks.xml</importFile> |
...
<timeSeriesSets>
<timeSeriesSet>
...
<timeSeriesSets> <timeSeriesSet> <moduleInstanceId>Jflow_test_Historical</moduleInstanceId> |
...
<valueType>grid</valueType>
...
<valueType>grid</valueType> <parameterId>H.simulated.historical</parameterId> |
...
<locationId>Jflow_test_map</locationId> |
...
<timeSeriesType>simulated historical</timeSeriesType>
...
<timeSeriesType>simulated historical</timeSeriesType> <timeStep unit="nonequidistant"/> |
...
<readWriteMode>add originals</readWriteMode>
</timeSeriesSet>
</timeSeriesSets>
</importMapStacksActivity>
...
<readWriteMode>add originals</readWriteMode>
</timeSeriesSet>
</timeSeriesSets>
</importMapStacksActivity>
</importActivities>
|
2.4.2 Id maps
Export to JFlow from FEWS
...