Versions Compared

Key

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

...

The tag %ENSEMBLE_MEMBER_ID% can then be used to loop through the ensemble output directories.

Code Block
xml
xml
<?xml version="1.0" encoding="UTF-8"?>
<!--Delft FEWS PO-->
<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 information for General Adapter run -->
	<general>
		<description>Sobek Model run for the Como Lake</description>
		<rootDir>%REGION_HOME%/Modules/SbkParallel/como</rootDir>
		<workDir>%ROOT_DIR%</workDir>
		<exportDir>%ROOT_DIR%/%ENSEMBLE_MEMBER_ID%/fews_in</exportDir>
		<exportIdMap>IdSobekExportForecast</exportIdMap>
		<importDir>%ROOT_DIR%/%ENSEMBLE_MEMBER_ID%/fews_out</importDir>
		<importIdMap>IdSobekImportForecast</importIdMap>
		<dumpFileDir>$GA_DUMPFILEDIR$</dumpFileDir>
		<dumpDir>%ROOT_DIR%/%ENSEMBLE_MEMBER_ID%</dumpDir>
		<diagnosticFile>%ROOT_DIR%/%ENSEMBLE_MEMBER_ID%/fews_out/diagnostic.xml</diagnosticFile>
		<convertDatum>true</convertDatum>
		<ensembleMemberCount>17</ensembleMemberCount>
	</general>
	<activities>
		<startUpActivities>
			<purgeActivity>
				<filter>%ROOT_DIR%/%ENSEMBLE_MEMBER_ID%/fews_in/*.*</filter>
			</purgeActivity>
			<purgeActivity>
				<filter>%ROOT_DIR%/%ENSEMBLE_MEMBER_ID%/fews_out/*.*</filter>
			</purgeActivity>
			<purgeActivity>
				<filter>%ROOT_DIR%/%ENSEMBLE_MEMBER_ID%/model/*.*</filter>
			</purgeActivity>
			<purgeActivity>
				<filter>%ROOT_DIR%/%ENSEMBLE_MEMBER_ID%/log/*.*.*</filter>
			</purgeActivity>
		</startUpActivities>
		<!-- Export activities -->
		<exportActivities>
			<!-- Export state (warm state)-->
			<exportStateActivity>
				<moduleInstanceId>Sobek_Po_Como_Historical</moduleInstanceId>
				<stateExportDir>%ROOT_DIR%/%ENSEMBLE_MEMBER_ID%/model</stateExportDir>
				<stateConfigFile>%ROOT_DIR%/%ENSEMBLE_MEMBER_ID%/fews_in/states.xml</stateConfigFile>
				<stateLocations type="file">
					<stateLocation>
						<readLocation>sobek.rda</readLocation>
						<writeLocation>sobek.nda</writeLocation>
					</stateLocation>
					<stateLocation>
						<readLocation>sobek.rdf</readLocation>
						<writeLocation>sobek.ndf</writeLocation>
					</stateLocation>
				</stateLocations>
				<stateSelection>
					<warmState>
						<stateSearchPeriod unit="hour" start="-48" end="0"/>
					</warmState>
				</stateSelection>
			</exportStateActivity>
			<!-- Export time series -->
			<exportTimeSeriesActivity>
				<description>Export inflows for Sobek Como Lake model</description>
				<exportFile>Input_Como_Pi.xml</exportFile>
				<timeSeriesSets>
					<timeSeriesSet>
						<moduleInstanceId>Sobek_MergeInput_Forecast_COSMO</moduleInstanceId>
						<valueType>scalar</valueType>
						<parameterId>Q.simulated.forecast</parameterId>
						<locationId>Adda23635</locationId>
						<timeSeriesType>simulated forecasting</timeSeriesType>
						<timeStep unit="hour" multiplier="1"/>
						<relativeViewPeriod unit="hour" endOverrulable="true" end="72"/>
						<readWriteMode>read only</readWriteMode>
						<ensembleId>CosmoLeps</ensembleId>
					</timeSeriesSet>
					<timeSeriesSet>
						<moduleInstanceId>Interpolation_Sobek_Forecast</moduleInstanceId>
						<valueType>scalar</valueType>
						<parameterId>H.forecast.external</parameterId>
						<locationId>I-203000</locationId>
						<timeSeriesType>external forecasting</timeSeriesType>
						<timeStep unit="hour" multiplier="1"/>
						<relativeViewPeriod unit="hour" endOverrulable="true" end="72"/>
						<readWriteMode>read only</readWriteMode>
					</timeSeriesSet>
				</timeSeriesSets>
			</exportTimeSeriesActivity>
		</exportActivities>
		<!-- Export activities -->
		<!-- Execute activities:Run SOBEK Adapter, Batch tool -->
		<executeActivities>
			<executeActivity>
				<command>
					<className>nl.wldelft.fews.adapter.sobek.PreSobekModelAdapter</className>
				</command>
				<arguments>
					<argument>%ROOT_DIR%/%ENSEMBLE_MEMBER_ID%</argument>
					<argument>../Config/sobekConfig.xml</argument>
				</arguments>
				<timeOut>500000</timeOut>
				<overrulingDiagnosticFile>%ROOT_DIR%/%ENSEMBLE_MEMBER_ID%/diagnostics/presobekmodeladapter.xml</overrulingDiagnosticFile>
			</executeActivity>
			<!-- Run Condor -->
			<executeActivity>
				<description>Condor Batch script by Frederik</description>
				<command>
					<executable>%ROOT_DIR%\run_condor_sobek.bat</executable>
				</command>
				<arguments>
					<argument>-o</argument>
					<argument>\\$CONDOR_REMOTE_DIR$\SbkParallel</argument>
					<argument>-n</argument>
					<argument>17</argument>
					<argument>-t</argument>
					<argument>18000000</argument>
					<argument>-d</argument>
					<argument>\\$CONDOR_REMOTE_DIR$\SbkParallel</argument>
				</arguments>
				<!-- timeout in milliseconds: 30min x 60sec -->
				<timeOut>19000000</timeOut>
				<ignoreDiagnostics>true</ignoreDiagnostics>
			</executeActivity>
			<executeActivity>
				<command>
					<className>nl.wldelft.fews.adapter.sobek.PostSobekModelAdapter</className>
				</command>
				<arguments>
					<argument>%ROOT_DIR%/%ENSEMBLE_MEMBER_ID%</argument>
					<argument>../Config/sobekConfig.xml</argument>
				</arguments>
				<timeOut>500000</timeOut>
				<overrulingDiagnosticFile>%ROOT_DIR%/%ENSEMBLE_MEMBER_ID%/diagnostics/postsobekmodeladapter.xml</overrulingDiagnosticFile>
			</executeActivity>
		</executeActivities>
		<importActivities>
			<!-- Import Sobek results-->
			<importTimeSeriesActivity>
				<description>Import XML file</description>
				<importFile>reachseg.xml</importFile>
				<timeSeriesSets>
					<timeSeriesSet>
						<moduleInstanceId>Sobek_Po_Como_Forecast_COSMO_Parallel</moduleInstanceId>
						<valueType>scalar</valueType>
						<parameterId>Q.simulated.forecast</parameterId>
						<locationId>Serbatoio_Como235</locationId>
						<timeSeriesType>simulated forecasting</timeSeriesType>
						<timeStep unit="hour" multiplier="1"/>
						<readWriteMode>add originals</readWriteMode>
						<expiryTime unit="day" multiplier="2"/>
						<ensembleId>CosmoLeps</ensembleId>
					</timeSeriesSet>
				</timeSeriesSets>
			</importTimeSeriesActivity>
		</importActivities>
	</activities>
</generalAdapterRun>

...

From the example above we see that the general adapter executes a batch script with a number of arguments

Code Block
xml
xml
			<!-- Run Condor -->
			<executeActivity>
				<description>Condor Batch script by Frederik</description>
				<command>
					<executable>%ROOT_DIR%\run_condor_sobek.bat</executable>
				</command>
				<arguments>
					<argument>-o</argument>
					<argument>\\$CONDOR_REMOTE_DIR$\SbkParallel</argument>
					<argument>-n</argument>
					<argument>17</argument>
					<argument>-t</argument>
					<argument>18000000</argument>
					<argument>-d</argument>
					<argument>\\$CONDOR_REMOTE_DIR$\SbkParallel</argument>
				</arguments>
				<!-- timeout in milliseconds: 30min x 60sec -->
				<timeOut>19000000</timeOut>
				<ignoreDiagnostics>true</ignoreDiagnostics>
			</executeActivity>

...