...
- For all files that are written by this adapter, if the file to be written already exists, then it will be overwritten.
- This program assumes that the model always runs in time zone GMT.
- This program writes log messages to a log file called dflowfm_pre_adapter_log.txt in the workDir specified in the netcdf run file.
- This program uses the information in the specified netcdf run file as input and uses this information to do the following actions:
Update MDU file:
In the MDU file specified in the property "mdu_file" the following entries will be updated automatically (no tags needed):TStart
Start time of the model run, in units of Tunit relative to RefDate. This uses the Tunit and RefDate that are specified in the MDU file.
TStop
End time of the model run, in units of Tunit relative to RefDate. This uses the Tunit and RefDate that are specified in the MDU file.
RestartFile
Either pathname of the input state file relative to the MDU file if the input state file is not empty (warm state start) or empty string if the input state file is an empty dummy file of 0 bytes length (cold state start) or empty string if there is no input state file at all (cold state start).
RestartDateTime
The restart time, this is set equal to the start time of the model run. It seems that in D-Flow FM this RestartDateTime is overruled by the timestamp in the filename of the restart file. If this causes problems, then make sure that the filename of the restart file does not contain a timestamp.
RstInterval
Interval (in seconds) for writing *_rst.nc restart files. RstInterval is set equal to the model run duration, so that only one output restart file is written, exactly at the end of the model run.
- Convert input grid time series (optional):
The netcdf file(s) specified in the property "input_grid_files_to_convert" will be converted to files in arcinfo/curvi format. Each netcdf file will be converted to a file with the same path and name as the netcdf file but with a different extension (.dat.amu, .amv or .amp). For example the original file input/wind_x.nc is converted to input/wind_x.dat. If the property "input_grid_files_to_convert" is not specified, then this step does nothing.
Notes:Each netcdf file should contain only one variable with grid data. If a netcdf file contains multiple variables with grid data, then an error is given.
The extension of the created file depends on the name of the variable in the netcdf file as follows:
netcdf variable name extension x_wind .amu y_wind .amv air_pressure .amp any other name not supported by DFlowFM (for rainfall DFlowFM can use the netcdf file directly) - Notes about using auxiliary grid files:
For example the original file input/wind_x.nc is converted to input/wind_x.amu
The format (meteo_on_equidistant_grid/meteo_on_curvilinear_grid) of each of the created
.dat file(s)files depends on whether there is an auxiliary grid file present for that file. To use an auxiliary grid file for a given netcdf file, it must have the same path and name as the netcdf file, but a different extension (.grd). If an auxiliary grid file is present, then the netcdf file will be converted to a
.datcurvi file of type meteo_on_curvilinear_grid that refers to the auxiliary grid file. Otherwise it will be converted to
a .datan arcinfo file of type meteo_on_equidistant_grid. For rectangular and curvilinear grids there must always be an auxiliary grid file present, otherwise an error is given. For regular grids no auxiliary grid file is needed.
grid type auxiliary grid (.grd) file needed type of created file regular no arcinfo meteo_on_equidistant_grid rectangular yes curvi meteo_on_curvilinear_grid curvilinear yes curvi meteo_on_curvilinear_grid - The order of the grid cell values in an the arcinfo/curvi grid (.dat) file created by this adapter depend on the type of grid (regular/rectangular/curvilinear). For regular grids (arcinfo meteo_on_equidistant_grid file format) the grid cells are always ordered per row from left to right, starting with the upper row of the grid. For rectangular grids (curvi meteo_on_curvilinear_grid file format) the grid cells are always ordered per row from left to right, starting with the upper row of the grid. For curvilinear grids (curvi meteo_on_curvilinear_grid file format) the grid cells are always in the same order as in the netcdf (.nc) file, which depends in turn on the order of the grid cells in the corresponding grid definition in Delft-FEWS (if the file was exported from Delft-FEWS). If an auxiliary grid (.grd) file is used, then the grid cell coordinates in the .grd file must be in the same order as the grid cell values in the corresponding .dat curvi file. The easiest way to accomplish this is to run the adapter once, then check the order of the grid cell values in the created .dat curvi file(s), then manually make sure that the grid cell coordinates in the corresponding .grd file(s) are in the right order.
...
Code Block | ||||
---|---|---|---|---|
| ||||
<?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>rainfall<exportFile>air_pressure.nc</exportFile> <timeSeriesSets> <timeSeriesSet> <moduleInstanceId>WFLOW_curacao_GA_Historical</moduleInstanceId> <valueType>grid</valueType> <parameterId>Q<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="mdu_file" value="dflowfm_curacao\curacao.mdu"/> <string key="input_grid_files_to_convert" value="%ROOT_DIR%\dflowfm_curacao\input\rainfallx_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> |