The pre-adapter processes the following NetCDF files from FEWS to be used in the model run.
Point source forcing data (written to SWAT file #p,dat):
The pre-adapter also updates the SWAT master file (i.e. writing starttime and endtime, read from the run_info.xml).
The post-adapter uses the following files and the results of the model run to create NetCDF files to load into FEWS.
The following gives an example of how to set up the GeneralAdapterRun file for SWAT in FEWS using the SWAT model pre and post-adapters. The GeneralAdapterRun file follows the general structure as described here.
This section specifies general information regarding the module such as version number, file directories, missing values, and time zone information.
<general> <description>SWAT Model for $BASIN$</description> <piVersion>1.8</piVersion> <rootDir>%REGION_HOME%/Modules/SWAT/$BASIN$</rootDir> <workDir>%ROOT_DIR%/work-dir</workDir> <exportDir>%ROOT_DIR%/export-dir</exportDir> <exportDataSetDir>%ROOT_DIR%</exportDataSetDir> <exportIdMap>IdExportSWAT</exportIdMap> <importDir>%ROOT_DIR%/import-dir</importDir> <importIdMap>IdImportSWAT</importIdMap> <dumpFileDir>$GA_DUMPFILEDIR$</dumpFileDir> <dumpDir>%ROOT_DIR%</dumpDir> <diagnosticFile>%ROOT_DIR%/swat_adapter_log.xml</diagnosticFile> <missVal>-999.0</missVal> <timeZone> <timeZoneName>MST</timeZoneName> </timeZone> </general> |
This section can be used to clear data from previous runs.
<startUpActivities> <purgeActivity> <filter>%ROOT_DIR%/*.*</filter> </purgeActivity> <purgeActivity> <filter>%ROOT_DIR%/work-dir/*.*</filter> </purgeActivity> <purgeActivity> <filter>%ROOT_DIR%/import-dir/*.*</filter> </purgeActivity> <purgeActivity> <filter>%ROOT_DIR%/export-dir/*.*</filter> </purgeActivity> <purgeActivity> <filter>%ROOT_DIR%/TablesOut/*.*</filter> </purgeActivity> <purgeActivity> <filter>%ROOT_DIR%/TablesIn/*.*</filter> </purgeActivity> </startUpActivities> |
This section specifies the data to be exported from FEWS as input to the module and properties to run the model. Properties include the file.cio and schema.ini as reference to input files and the file locations the model should output.
<exportActivities> <exportDataSetActivity> <moduleInstanceId>SWAT_$BASIN$</moduleInstanceId> </exportDataSetActivity> <!-- --> <exportNetcdfActivity> <exportFile>pcp1.nc</exportFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>PreprocessACISScalar</moduleInstanceId> <valueType>scalar</valueType> <parameterId>PC.obs</parameterId> <locationId>3036086</locationId> <locationId>3036205</locationId> <timeSeriesType>external historical</timeSeriesType> <timeStep id="day_MST"/> <relativeViewPeriod unit="day" end="0" startOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </timeSeriesSets> </exportNetcdfActivity> <exportNetcdfActivity> <exportFile>tmp1.nc</exportFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>PreprocessACISScalar</moduleInstanceId> <valueType>scalar</valueType> <parameterId>TA.obs</parameterId> <locationId>3036086</locationId> <locationId>3036205</locationId> <timeSeriesType>external historical</timeSeriesType> <timeStep id="day_MST"/> <relativeViewPeriod unit="day" end="0" startOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </timeSeriesSets> </exportNetcdfActivity> <exportNetcdfActivity> <exportFile>hmd.nc</exportFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>PreprocessACISScalar</moduleInstanceId> <valueType>scalar</valueType> <parameterId>XR.obs</parameterId> <locationId>3036086</locationId> <locationId>3036205</locationId> <timeSeriesType>external historical</timeSeriesType> <timeStep id="day_MST"/> <relativeViewPeriod unit="day" end="0" startOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </timeSeriesSets> </exportNetcdfActivity> <exportNetcdfActivity> <exportFile>wnd.nc</exportFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>PreprocessACISScalar</moduleInstanceId> <valueType>scalar</valueType> <parameterId>US.obs</parameterId> <locationId>3036086</locationId> <locationId>3036205</locationId> <timeSeriesType>external historical</timeSeriesType> <timeStep id="day_MST"/> <relativeViewPeriod unit="day" end="0" startOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </timeSeriesSets> </exportNetcdfActivity> <exportNetcdfActivity> <exportFile>slr.nc</exportFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>PreprocessACISScalar_historical</moduleInstanceId> <valueType>scalar</valueType> <parameterId>RW.obs.day</parameterId> <locationId>3036086</locationId> <locationId>3036205</locationId> <timeSeriesType>external historical</timeSeriesType> <timeStep id="day_MST"/> <relativeViewPeriod unit="day" end="0" startOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </timeSeriesSets> </exportNetcdfActivity> <exportNetcdfActivity> <exportFile>pet.nc</exportFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>PreprocessSWAT</moduleInstanceId> <valueType>scalar</valueType> <parameterId>EA.obs</parameterId> <locationId>3036086</locationId> <locationId>3036205</locationId> <timeSeriesType>external historical</timeSeriesType> <timeStep id="day_MST"/> <relativeViewPeriod unit="day" end="0" startOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </timeSeriesSets> </exportNetcdfActivity> <!-- WQ data exports --> <exportNetcdfActivity> <exportFile>WQ_FLOCNST.nc</exportFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>PreprocessWQ_historical</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Q.sim</parameterId> <locationSetId>WQ_Stations</locationSetId> <timeSeriesType>external historical</timeSeriesType> <timeStep id="day_MST"/> <relativeViewPeriod unit="day" end="0" startOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </timeSeriesSets> </exportNetcdfActivity> <exportNetcdfActivity> <exportFile>WQ_SEDCNST.nc</exportFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>PreprocessWQ_historical</moduleInstanceId> <valueType>scalar</valueType> <parameterId>SuspSed</parameterId> <locationSetId>WQ_Stations</locationSetId> <timeSeriesType>external historical</timeSeriesType> <timeStep id="day_MST"/> <relativeViewPeriod unit="day" end="0" startOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </timeSeriesSets> </exportNetcdfActivity> <exportNetcdfActivity> <exportFile>WQ_NO3CNST.nc</exportFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>PreprocessWQ_historical</moduleInstanceId> <valueType>scalar</valueType> <parameterId>NO3</parameterId> <locationSetId>WQ_Stations</locationSetId> <timeSeriesType>external historical</timeSeriesType> <timeStep id="day_MST"/> <relativeViewPeriod unit="day" end="0" startOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </timeSeriesSets> </exportNetcdfActivity> <exportNetcdfActivity> <exportFile>WQ_CBODCNST.nc</exportFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>PreprocessWQ_historical</moduleInstanceId> <valueType>scalar</valueType> <parameterId>CBOD</parameterId> <locationSetId>WQ_Stations</locationSetId> <timeSeriesType>external historical</timeSeriesType> <timeStep id="day_MST"/> <relativeViewPeriod unit="day" end="0" startOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </timeSeriesSets> </exportNetcdfActivity> <exportNetcdfActivity> <exportFile>WQ_DISOXCNST.nc</exportFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>PreprocessWQ_historical</moduleInstanceId> <valueType>scalar</valueType> <parameterId>DO</parameterId> <locationSetId>WQ_Stations</locationSetId> <timeSeriesType>external historical</timeSeriesType> <timeStep id="day_MST"/> <relativeViewPeriod unit="day" end="0" startOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </timeSeriesSets> </exportNetcdfActivity> <exportNetcdfActivity> <exportFile>WQ_CHLACNST.nc</exportFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>PreprocessWQ_historical</moduleInstanceId> <valueType>scalar</valueType> <parameterId>CHLA</parameterId> <locationSetId>WQ_Stations</locationSetId> <timeSeriesType>external historical</timeSeriesType> <timeStep id="day_MST"/> <relativeViewPeriod unit="day" end="0" startOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </timeSeriesSets> </exportNetcdfActivity> <exportNetcdfActivity> <exportFile>WQ_SOLPSTCNST.nc</exportFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>PreprocessWQ_historical</moduleInstanceId> <valueType>scalar</valueType> <parameterId>PTO4</parameterId> <locationSetId>WQ_Stations</locationSetId> <timeSeriesType>external historical</timeSeriesType> <timeStep id="day_MST"/> <relativeViewPeriod unit="day" end="0" startOverrulable="true"/> <readWriteMode>read only</readWriteMode> </timeSeriesSet> </timeSeriesSets> </exportNetcdfActivity> <exportRunFileActivity> <exportFile>%ROOT_DIR%/run_info.xml</exportFile> <properties> <string key="master-watershed" value="%WORK_DIR%/file.cio"/> <string key="schema" value="%WORK_DIR%/schema.ini"/> <string key="reach" value="%WORK_DIR%/output.rch"/> <string key="reach-output" value="%ROOT_DIR%/export-dir/reach.nc"/> <string key="sediment" value="%WORK_DIR%/output.sed"/> <string key="sediment-output" value="%ROOT_DIR%/export-dir/sediment.nc"/> <string key="subbasin" value="%WORK_DIR%/output.sub"/> <string key="subbasin-output" value="%ROOT_DIR%/export-dir/subbasin.nc"/> </properties> </exportRunFileActivity> </exportActivities> |
This section calls the SWAT pre-adapter, SWAT executable, and SWAT post-adapter. Note: the run_info.xml is passed to the adapters.
<executeActivities> <executeActivity> <description>run SWAT preAdapter</description> <command> <className>nl.deltares.fews.swatadapter.SwatPreAdapter</className> <binDir>%ROOT_DIR%/binAdapter</binDir> </command> <arguments> <argument>%ROOT_DIR%/run_info.xml</argument> </arguments> <timeOut>300000</timeOut> <ignoreDiagnostics>false</ignoreDiagnostics> </executeActivity> <executeActivity> <description>run SWAT model</description> <command> <executable>%WORK_DIR%/swat2012.exe</executable> </command> <console> </console> <timeOut>300000</timeOut> <ignoreDiagnostics>true</ignoreDiagnostics> </executeActivity> <executeActivity> <description>run SWAT postAdapter</description> <command> <className>nl.deltares.fews.swatadapter.SwatPostAdapter</className> <binDir>%ROOT_DIR%/binAdapter</binDir> </command> <arguments> <argument>%ROOT_DIR%/run_info.xml</argument> </arguments> <timeOut>300000</timeOut> <ignoreDiagnostics>false</ignoreDiagnostics> </executeActivity> </executeActivities> |
This section imports data into FEWS from the model run. Data can be imported from the reach.nc, sediment.nc, and subbasin.nc files.
<importActivities> <importNetcdfActivity> <importFile>reach.nc</importFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>SWAT_Basin_Historic</moduleInstanceId> <valueType>scalar</valueType> <parameterId>QR.sim</parameterId> <locationId>LocationA</locationId> <timeSeriesType>simulated historical</timeSeriesType> <timeStep unit="nonequidistant"/> <readWriteMode>add originals</readWriteMode> </timeSeriesSet> <timeSeriesSet> <moduleInstanceId>SWAT_Basin_Historic</moduleInstanceId> <valueType>scalar</valueType> <parameterId>NO3.load</parameterId> <locationId>LocationA</locationId> <timeSeriesType>simulated historical</timeSeriesType> <timeStep unit="nonequidistant"/> <readWriteMode>add originals</readWriteMode> </timeSeriesSet> <timeSeriesSet> <moduleInstanceId>SWAT_Basin_Historic</moduleInstanceId> <valueType>scalar</valueType> <parameterId>NO3</parameterId> <locationId>LocationA</locationId> <timeSeriesType>simulated historical</timeSeriesType> <timeStep unit="nonequidistant"/> <readWriteMode>add originals</readWriteMode> </timeSeriesSet> <timeSeriesSet> <moduleInstanceId>SWAT_Basin_Historic</moduleInstanceId> <valueType>scalar</valueType> <parameterId>TW.sim</parameterId> <locationId>LocationA</locationId> <timeSeriesType>simulated historical</timeSeriesType> <timeStep unit="nonequidistant"/> <readWriteMode>add originals</readWriteMode> </timeSeriesSet> </timeSeriesSets> </importNetcdfActivity> </importActivities> |