You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

Please note that for running DFlow-FM from Delft-FEWS only a pre-adapter is needed (a post-adapter is not needed).

D-Flow FM pre-adapter

Model pre-adapter for running D-Flow FM (D-Flow Flexible Mesh) model from Delft-FEWS.
or information about the D-Flow FM model see http://oss.deltares.nl/web/delft3d/d-flow-flexible-mesh

Usage: DFlowFMPreAdapter <netcdf run file pathname relative to current working directory>

Class name: nl.deltares.dflowfm.DFlowFMPreAdapter

Properties

mdu_file

(required)

Pathname of the MDU file to update. This should be either an absolute path or a path relative to the workDir specified in the netcdf run file.

Notes for users
  • For all files that are written by this adapter, if the file to be written already exists, then it will be overwritten.
  • This program assumes that the model always runs in time zone GMT.
  • This program writes log messages to a log file called dflowfm_pre_adapter_log.txt in the workDir specified in the netcdf run file.
  • This program uses the information in the specified netcdf run file as input and uses this information to do the following actions:
    1. Update MDU file:
      In the MDU file specified in the property "mdu_file" the following entries will be updated automatically (no tags needed):

      TStart

      Start time of the model run, in units of Tunit relative to RefDate. This uses the Tunit and RefDate that are specified in the MDU file.

      TStop

      End time of the model run, in units of Tunit relative to RefDate. This uses the Tunit and RefDate that are specified in the MDU file.

      RestartFile

      Either pathname of the input state file relative to the MDU file if the input state file is not empty (warm state start) or empty string if the input state file is an empty dummy file of 0 bytes length (cold state start) or empty string if there is no input state file at all (cold state start).

      RestartDateTime

      The restart time, this is set equal to the start time of the model run. It seems that in D-Flow FM this RestartDateTime is overruled by the timestamp in the filename of the restart file. If this causes problems, then make sure that the filename of the restart file does not contain a timestamp.

      RstInterval

      Interval (in seconds) for writing *_rst.nc restart files. RstInterval is set equal to the model run duration, so that only one output restart file is written, exactly at the end of the model run.

System requirements
  • This program needs Java version 1.7 or higher.
  • This program needs the following Java libraries:
    • commons-httpclient-3.0.1.jar
    • Delft_FEWS.jar
    • Delft_Util.jar
    • log4j-1.2.14.jar
    • netcdf-4.2.jar
    • slf4j-api-1.5.6.jar
    • slf4j-log4j12-1.5.6.jar
    • TimeSeriesImport.jar

Configuration example

Please note that for running DFlow-FM from Delft-FEWS only a pre-adapter is needed (a post-adapter is not needed). Example of a FEWS general adapter configuration that uses the DFlow-FM adapter:

<?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>
		<rootDir>$REGION_HOME$\Modules\dflowfm</rootDir>
		<workDir>%ROOT_DIR%</workDir>
		<exportDir>%ROOT_DIR%\dflowfm_curacao\input</exportDir>
		<exportDataSetDir>$REGION_HOME$\Modules</exportDataSetDir>
		<exportIdMap>IdExport_DFlowFM</exportIdMap>
		<importDir>%ROOT_DIR%\dflowfm_curacao\output</importDir>
		<importIdMap>IdImport_DFlowFM</importIdMap>
		<dumpFileDir>$GA_DUMPFILEDIR$</dumpFileDir>
		<dumpDir>%ROOT_DIR%\dflowfm_curacao\dump</dumpDir>
		<diagnosticFile>%ROOT_DIR%\dummy.xml</diagnosticFile>
		<missVal>-999.</missVal>
		<!-- Take care this should be the timezone the computer is running in -->
		<timeZone>
			<timeZoneOffset>-04:00</timeZoneOffset>
		</timeZone>
		<endDateTimeFormat>yyyyMMdd_HHmmss</endDateTimeFormat>
	</general>
	<activities>
		<startUpActivities>
			<purgeActivity>
				<filter>%ROOT_DIR%\dflowfm_curacao\output\*.*</filter>
			</purgeActivity>
			<purgeActivity>
				<filter>%ROOT_DIR%\dflowfm_curacao\input\*.*</filter>
			</purgeActivity>
		</startUpActivities>
		<exportActivities>
			<exportStateActivity>
				<moduleInstanceId>DFlowFM_curacao_Historical</moduleInstanceId>
				<stateExportDir>%ROOT_DIR%\dflowfm_curacao\instate</stateExportDir>
				<stateSelection>
					<warmState>
						<stateSearchPeriod unit="hour" start="-23" end="-2"/>
					</warmState>
				</stateSelection>
			</exportStateActivity>
			<exportNetcdfActivity>
				<exportFile>rainfall.nc</exportFile>
				<timeSeriesSets>
					<timeSeriesSet>
						<moduleInstanceId>WFLOW_curacao_GA_Historical</moduleInstanceId>
						<valueType>grid</valueType>
						<parameterId>Q.specific</parameterId>
						<locationId>wflow_curacao</locationId>
						<timeSeriesType>simulated historical</timeSeriesType>
						<timeStep unit="hour" multiplier="1"/>
						<relativeViewPeriod unit="hour" end="0"/>
						<readWriteMode>add originals</readWriteMode>
					</timeSeriesSet>
				</timeSeriesSets>
			</exportNetcdfActivity>
			<exportNetcdfRunFileActivity>
				<description>This run file is passed as argument to DFLOWFM pre adapter</description>
				<exportFile>%WORK_DIR%\run_info.nc</exportFile>
				<properties>
					<string key="mdu_file" value="dflowfm_curacao\curacao.mdu"/>
				</properties>
			</exportNetcdfRunFileActivity>
		</exportActivities>
		<executeActivities>
			<executeActivity>
				<description>DFlowFM pre adapter</description>
				<command>
					<className>nl.deltares.dflowfm.DFlowFMPreAdapter</className>
					<binDir>adapter</binDir>
				</command>
				<arguments>
					<argument>%WORK_DIR%\run_info.nc</argument>
				</arguments>
				<logFile>
					<file>%WORK_DIR%\dflowfm_pre_adapter_log.txt</file>
					<errorLinePattern>*ERROR*</errorLinePattern>
					<warningLinePattern>*WARN*</warningLinePattern>
					<infoLinePattern>*INFO*</infoLinePattern>
					<debugLinePattern>*DEBUG*</debugLinePattern>
				</logFile>
				<timeOut>99999999</timeOut>
				<ignoreDiagnostics>true</ignoreDiagnostics>
			</executeActivity>
			<executeActivity>
				<description>Run DFLOWFM</description>
				<command>
					<executable>bin\unstruc.exe</executable>
				</command>
				<arguments>
					<argument>--autostartstop</argument>
					<argument>dflowfm_curacao\curacao.mdu</argument>
				</arguments>
				<logFile>
					<file>%WORK_DIR%\dflowfm_curacao\curacao.dia</file>
					<errorLinePattern>*ERROR*</errorLinePattern>
					<warningLinePattern>*WARNING*</warningLinePattern>
					<debugLinePattern>*INFO*</debugLinePattern>
					<debugLinePattern>*DEBUG*</debugLinePattern>
				</logFile>
				<timeOut>44200000</timeOut>
				<ignoreDiagnostics>true</ignoreDiagnostics>
			</executeActivity>
		</executeActivities>
		<importActivities>
			<importStateActivity>
				<stateFile>
					<importFile>%WORK_DIR%\dflowfm_curacao\output\curacao_%END_DATE_TIME%_rst.nc</importFile>
					<relativeExportFile>curacao_%END_DATE_TIME%_rst.nc</relativeExportFile>
				</stateFile>
			</importStateActivity>
			<importNetcdfActivity>
				<importFile>%WORK_DIR%\dflowfm_curacao\output\curacao_map.nc</importFile>
				<timeSeriesSets>
					<timeSeriesSet>
						<moduleInstanceId>DFlowFM_curacao_Historical</moduleInstanceId>
						<valueType>grid</valueType>
						<parameterId>H.sim</parameterId>
						<locationId>DFlowFM_Curacao</locationId>
						<timeSeriesType>simulated historical</timeSeriesType>
						<timeStep unit="nonequidistant"/>
						<readWriteMode>add originals</readWriteMode>
					</timeSeriesSet>
				</timeSeriesSets>
			</importNetcdfActivity>
		</importActivities>
	</activities>
</generalAdapterRun>
  • No labels