Versions Compared

Key

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

...

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>

Multi domain D-Flow FM model (pending)

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

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


pending ...

Sigma layers - import D-Flow FM 3D results

Code Block
titleRegionConfigFiles/Grids.xml
<irregular locationId="sigma_0000">
    <netcdfFile>
        <file>$TEMP_DIR$/nz3d3d_flowgeom_0000.nc</file>
        <meshTopologyVariableName>mesh2d</meshTopologyVariableName>
        <staggerLocation>face</staggerLocation>
    </netcdfFile>
</irregular>
Code Block
titleRegionConfigFiles/Locations.xml
<location id="sigma.0000">
    <x>0</x>
    <y>0</y>
</location>
Code Block
titleRegionConfigFiles/LocationSets.xml
<locationSet id="sigmaLayers_0000"> 						<!-- i.e. locationSet for all sigmalayers in domain 0000 -->
    <csvFile>
        <file>sigma_layers.csv</file>
        <id>SigmaLayer_%INDEX%_%INDEX%<0000</id>
        <parentLocationId>sigma< 					<!-- i.e. locationId consists of SigmaLayer_0_0000, SigmaLayer_1_0000, etc for all indices / sigma layers in domain 0000 -->
        <parentLocationId>sigma.0000</parentLocationId>
        <x>0</x>
        <y>0</y>
        <layerSigmaCoordinate>%SIGMA%</layerSigmaCoordinate>
    </csvFile>
</locationSet>
Code Block
titleMapLayerFiles/sigma_layers.csv
INDEX,SIGMA
0,0.025
1,0.075
2,0.125
3,0.175
4,0.225
5,0.275
6,0.325
7,0.375
8,0.425
9,0.475
10,0.525
11,0.575
12,0.625
13,0.675
14,0.725
15,0.775
16,0.825
17,0.875
18,0.925
19,0.975

Through the use of <mapLocationsByLayerSigmaCoordinate> the location is resolved by the sigma layer coordinates in the generalAdapter:

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>
                <importFile>noordzee_3d_map.nc</importFile>
                <timeSeriesSets>
                    <timeSeriesSet>
                        <moduleInstanceId>GeneralAdapterRun</moduleInstanceId>
                        <valueType>grid</valueType>
                        <parameterId>sa1</parameterId>
                        <locationSetId>sigmaLayers<<locationSetId>sigmaLayers_0000</locationSetId>
 		<!-- i.e. all sigmalayer locationIds for domain 0000 -->
                        <timeSeriesType>external historical</timeSeriesType>
                        <timeStep unit="nonequidistant"/>
                        <readWriteMode>add originals</readWriteMode>
                    </timeSeriesSet>
                </timeSeriesSets>
                <mapLocationsByLayerSigmaCoordinate>true</mapLocationsByLayerSigmaCoordinate>
            </importNetcdfActivity>
        </importActivities>
    </activities>
</generalAdapterRun>

Sigma layers - display D-Flow FM 3D results in GridDisplay

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

Code Block
titleSigma layer example config GridDisplayRegionConfigFiles/LocationSets.xml
<locationSet id="SigmaLayer_0_####"> 				<!-- SigmaLayer with index 0 for all domains -->
    <locationId>SigmaLayer_0_0000</locationId>
    <locationId>SigmaLayer_0_0001</locationId>
    <locationId>SigmaLayer_0_0002</locationId>
	...
</locationSet>
<locationSet id="sigma.merged"> 					<!-- parentLocations for all domains -->
    <locationId>sigma.0000</locationId> 			<!-- parentLocationId for domain 0000 -->
    <locationId>sigma.0001</locationId>
    <locationId>sigma.0002</locationId>
	...
</locationSet> 
Code Block
titleSigma layer example config GridDisplay
<gridDisplay xmlns="http://www.wldelft.nl/fews" xmlns:<gridDisplay 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/gridDisplay.xsd">
<title>title</title>
<gridPlotGroup id="gridPlotGroupId" name="gridPlotGroupName">
	<gridPlot id="gridPlotId" name="gridPlotName">
		<dataLayer>
			<arrowColor>white</arrowColor>
			<arrowSymbol>flow</arrowSymbol>
			<multipleArrowsPerValue>false</multipleArrowsPerValue>
			<uTimeSeriesSet>
				<moduleInstanceId>DFlowFM_HC</moduleInstanceId>
				<valueType>grid</valueType>
				<parameterId>C.simulated.u<<parameterId>parameter</parameterId>
				<locationSetId>DFlowFM<locationSetId>SigmaLayer_0_####</locationSetId>
				<timeSeriesType>simulated historical</timeSeriesType>
				<timeStep unit="nonequidistant"/>
				<readWriteMode>read complete forecast</readWriteMode>
			</uTimeSeriesSet>
			<vTimeSeriesSet>
				<moduleInstanceId>DFlowFM_HC</moduleInstanceId>
				<valueType>grid</valueType>
				<parameterId>C.simulated.v<<parameterId>parameter</parameterId>
				<locationSetId>DFlowFM<locationSetId>SigmaLayer_0_####</locationSetId>
				<timeSeriesType>simulated historical</timeSeriesType>
				<timeStep unit="nonequidistant"/>
				<readWriteMode>read complete forecast</readWriteMode>
			</vTimeSeriesSet>
				<uvAmplitudeParameterId>C.simulated.speed</uvAmplitudeParameterId>
<sigmaScaleReferenceTimeSeriesSet>				<uvDirectionParameterId>C.simulated.dir</uvDirectionParameterId>
			<sigmaScaleReferenceTimeSeriesSet>			<!-- when this is configured, a vertical slider becomes automatically visible in GridDisplay to slide through the water column -->
				<moduleInstanceId>DFlowFM_HC</moduleInstanceId>
				<valueType>grid</valueType>
				<parameterId>WD.simulated<<parameterId>parameter</parameterId>
				<locationSetId>DFlowFM<locationSetId>sigma.merged</locationSetId>locationSetId> 			<!-- parentLocations -->
				<timeSeriesType>simulated historical</timeSeriesType>
				<timeStep unit="nonequidistant"/>
				<readWriteMode>read complete forecast</readWriteMode>
			</sigmaScaleReferenceTimeSeriesSet>
		</dataLayer>
		<barLegend>
			<position>right</position><verticalSliderRange start="0" end="100"/>						<!-- limit the min and max water depth used in the vertical slider in the GridDisplay -->
			<width>50</width>
			<length>400</length>
			<labelsInside>true</labelsInside>
			</barLegend>
		<classBreaksId>Class.Currents</classBreaksId>
		<contourLinesColor>antique white</contourLinesColor>
		<verticalSliderRange start="0" end="100"/>
			<!-- if not configured the range of slider is automatically set to cover all available water depths in the grid for the entire period displayed -->
  </gridPlot>
</gridPlotGroup> 

Multi domain D-Flow FM model

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

...

titleMulti domain example config General Adapter

...

 

 

...