SWAT Pre-adapter

The pre-adapter processes the following NetCDF files from FEWS to be used in the model run.

  • Meteorological forcing data:
  • hmd.nc (SWAT file: hmd.hmd)
  • pcp1.nc (SWAT file: pcp1.pcp)
  • pet.nc (SWAT file: pet.txt)
  • slr.nc (SWAT file: slr.slr)
  • tmp1.nc (SWAT file: tmp1.tmp)
  • wnd.nc (SWAT file: wnd.wnd)

Point source forcing data (written to SWAT file #p,dat):

  • WQ_BACTLPCNST.nc
  • WQ_BACTPCNST.nc
  • WQ_CBODCNST.nc
  • WQ_CHLACNST.nc
  • WQ_CMTL1CNST.nc
  • WQ_CMTL2CNST.nc
  • WQ_CMTL3CNST.nc
  • WQ_DISOXCNST.nc
  • WQ_FLOCNST.nc
  • WQ_MINPCNST.nc
  • WQ_NH3CNST.nc
  • WQ_NO2CNST.nc
  • WQ_NO3CNST.nc
  • WQ_ORGNCNST.nc
  • WQ_ORGPCNST.nc
  • WQ_SEDCNST.nc
  • WQ_SOLPSTCNST.nc
  • WQ_SRBPSTCNST.nc

The pre-adapter also updates the SWAT master file (i.e. writing starttime and endtime, read from the run_info.xml).

  • file.cio

SWAT Post-adapter

The post-adapter uses the following files and the results of the model run to create NetCDF files to load into FEWS.

  • file.cio (master file)
  • schema.ini
    • this file contains information on how to read the model's output files because the column width's aren't fixed and can differ per modelset
      (output.rch > reach.nc, output.sed > sediment.nc, output.sub > subbasin.nc)

GeneralAdapterRun Example Configuration

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.

General

This section specifies general information regarding the module such as version number, file directories, missing values, and time zone information.

General
	<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>


Start-Up Activities

This section can be used to clear data from previous runs.

Start-Up Activities
		<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>


Export Activities

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.

Export Activities
 		 <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>


Execute Activities

This section calls the SWAT pre-adapter, SWAT executable, and SWAT post-adapter. Note: the run_info.xml is passed to the adapters.

Execute Activities
 		 <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>

Import Activities

This section imports data into FEWS from the model run. Data can be imported from the reach.nc, sediment.nc, and subbasin.nc files.

Import Activities
 		 <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>


  • No labels