Versions Compared

Key

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

...

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 model configuration example (single domain, 2D data import)

Example of a FEWS general adapter configuration that uses the DFlow-FM adapter.

Code Block
titleSingle domain example config General 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>air_pressure.nc</exportFile>
				<timeSeriesSets>
					<timeSeriesSet>
						<moduleInstanceId>WFLOW_curacao_GA_Historical</moduleInstanceId>
						<valueType>grid</valueType>
						<parameterId>P.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="model_id" value="dflowfm_curacao\curacao"/>
					<string key="input_grid_files_to_convert" value="%ROOT_DIR%\dflowfm_curacao\input\x_wind.nc;%ROOT_DIR%\dflowfm_curacao\input\air_pressure.nc"/>
				</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>

...

Sigma layers - import D-Flow FM 3D results (multi domain model

...

)

Example of changes to the config when dealing with a D-Flow FM model with multiple domains, using sigma layers.

Code Block
titleMulti domain example config General Adapter
<?xml version="1.0" encoding="UTF-8"?>


pending ...

Sigma layers - import D-Flow FM 3D results

RegionConfigFiles/Grids.xml
<irregular locationId="sigma_0000">
    <netcdfFile>
        
Code Block
titleRegionConfigFiles/Grids.xml
<irregular locationId="sigma_0000">
    <netcdfFile>
        <file>$TEMP_DIR$/3d_flowgeom_0000.nc</file>
        <meshTopologyVariableName>mesh2d</meshTopologyVariableName>
        <staggerLocation>face</staggerLocation>
    </netcdfFile>
</irregular>

...

Code Block
titleSigma layer example config General Adapter import activity
<?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>$TEMP_DIR$</rootDir>
        <workDir>$TEMP_DIR$</workDir>
        <exportDir>$TEMP_DIR$</exportDir>
        <importDir>$TEMP_DIR$</importDir>
        <dumpFileDir>$TEMP_DIR$</dumpFileDir>
        <dumpDir>$TEMP_DIR$</dumpDir>
        <diagnosticFile>$TEMP_DIR$/diagnostic.xml</diagnosticFile>
    </general>
	<activities>
		<importActivities>
			<importNetcdfActivity>
    <activities>
         <importActivities>
   <importFile>%WORK_DIR%/DFM_OUTPUT/model_0000_map.nc</importFile>
         <importNetcdfActivity>
                <importFile>noordzee_3d_map.nc</importFile>
                <timeSeriesSets>
                    <timeSeriesSet>
                        <moduleInstanceId>GeneralAdapterRun<<moduleInstanceId>model_DFlowFM_FC</moduleInstanceId>
                        <valueType>grid</valueType>
                        <parameterId>sa1<<parameterId>H.simulated</parameterId>
                        <locationSetId>sigmaLayers_<locationId>sigmaLayers.0000</locationSetId> locationId>									<!-- i.e. all sigmalayer locationIds parentLocation for domain 0000 -->
                        <timeSeriesType>external<timeSeriesType>simulated historical<forecasting</timeSeriesType>
                        <timeStep unit="nonequidistant"/>
                        <readWriteMode>add originals</readWriteMode>
                      </timeSeriesSet>
     <expiryTime unit="day" multiplier="$EXPIRY_DAYS_SIMULATED_FORECAST_GRID$"/>
                    </timeSeriesSet>
                    <timeSeriesSet>
                        <moduleInstanceId>model_DFlowFM_FC</moduleInstanceId>
                        <valueType>grid</valueType>
                        <parameterId>T.simulated.v</parameterId>
                        <locationSetId>sigmaLayers_0000</locationSetId>								<!-- locationSet off all sigmaLayers linked to above used parentLocation -->
                        <timeSeriesType>simulated forecasting</timeSeriesType>
                        <timeStep unit="nonequidistant"/>
                        <readWriteMode>add originals</readWriteMode>
                        <expiryTime unit="day" multiplier="$EXPIRY_DAYS_SIMULATED_FORECAST_GRID$"/>
                    </timeSeriesSet>
                </timeSeriesSets>
                <mapLocationsByLayerSigmaCoordinate>true</mapLocationsByLayerSigmaCoordinate>
            </importNetcdfActivity>
			<importNetcdfActivity>																	<!-- repeat for output files of all domains -->
		    	<importFile>%WORK_DIR%/DFM_OUTPUT/model_0001_map.nc</importFile>
		    	<timeSeriesSets>
		        	<timeSeriesSet>
		        	    <moduleInstanceId>model_DFlowFM_FC</moduleInstanceId>
		        	    <valueType>grid</valueType>
		        	    <parameterId>H.simulated</parameterId>
		        	    <locationId>sigmaLayers.0001</locationId>
		        	    <timeSeriesType>simulated forecasting</timeSeriesType>
		        	    <timeStep unit="nonequidistant"/>
		        	    <readWriteMode>add <originals</timeSeriesSets>readWriteMode>
		        	    <expiryTime    <mapLocationsByLayerSigmaCoordinate>true</mapLocationsByLayerSigmaCoordinate>
unit="day" multiplier="$EXPIRY_DAYS_SIMULATED_FORECAST_GRID$"/>
	    	    	</timeSeriesSet>
					...
		    	</importNetcdfActivity>timeSeriesSets>
		    	<mapLocationsByLayerSigmaCoordinate>true</mapLocationsByLayerSigmaCoordinate>
			</importNetcdfActivity>
	    </importActivities>
    	</activities>
</generalAdapterRun>

Sigma layers - display D-Flow FM 3D results in GridDisplay (multi domain model)

This example builds on the grid, location and locationSet defined in the example above. It assumes sigma layers for a multi domain model.

...