PROGRAM tc_to_obs
Tropical Cyclone ATCF File to DART Converter
Overview
Tropical Cyclone data created by the ‘Automated Tropical Cyclone Forecast (ATCF) System’ can be converted into DART observations of the storm center location, minimum sea level pressure, and maximum wind speed. Several of the options can be customized at runtime by setting values in a Fortran namelist. See the namelist section below for more details. In the current release of DART only the WRF has forward operator code to generate expected obs values for these vortex observations.
This webpage documents many things about the ATCF system and the various file formats that are used for storm track data and other characteristics.
The converter in this directory is only configured to read the packed “b-deck” format (as described on the webpage referenced above). There are sections in the fortran code which can be filled in to read other format variants. This should mostly be a matter of changing the read format string to match the data in the file.
Data sources
A collection of past storm ATCF information can be found here. For each observation you will need a location, a data value, a type, a time, and some kind of error estimate. The error estimates will need to be hardcoded or computed in the converter since they are not available in the input data. See below for more details on selecting an appropriate error value.
Programs
The tc_to_obs.f90
file is the source for the main converter program. Look at the source code where it reads the
example data file. Given the variety of formatting details in different files, you may quite possibly need to change the
“read” statement to match your data format. There is a ‘select case’ section which is intended to let you add more
formats and select them at runtime via namelist.
To compile and test, go into the work subdirectory and run the quickbuild.sh
script to build the converter and a
couple of general purpose utilities. advance_time
helps with calendar and time computations, and the
obs_sequence_tool
manipulates DART observation files once they have been created.
This converter creates observation types defined in the DART/observations/forward_operators/obs_def_vortex_mod.f90
file. This file must be listed in the input.nml
namelist file, in the &preprocess_nml
namelist, in the
‘input_files’ variable, for any programs which are going to process these observations. If you have to change the
&preprocess_nml
namelist you will have to run quickbuild.sh
again to build and execute the preprocess
program before compiling other executables. It remakes the table of supported observation types before trying to
recompile other source code.
There is an example b-deck data file in the data
directory. This format is what is supported in the code as
distributed. There are other variants of this format which have more spaces so the columns line up, and variants which
have many more fields than what is read here.
Specifying expected error
The ATCF files DO NOT include any estimated error values. The source code currently has hardcoded values for location, sea level pressure, and max wind errors. These may need to be adjusted as needed if they do not give the expected results.
Namelist
This namelist is read from the file input.nml
. Namelists start with an ampersand ‘&’ and terminate with a slash ‘/’.
Character strings that contain a ‘/’ must be enclosed in quotes to prevent them from prematurely terminating the
namelist.
&tc_to_obs_nml
input_atcf_file = 'input.txt'
fileformat = 'b-deck'
obs_out_file = 'obs_seq.out'
append_to_existing_file = .false.
debug = .false.
/
Item |
Type |
Description |
---|---|---|
input_atcf_file |
character(len=256) |
Name of the input ascii text file in ATCF format. |
fileformat |
character(len=128) |
Currently only supports ‘b-deck’ but if other format strings are added, can switch at runtime between reading different varieties of ATCF file formats. |
obs_out_file |
character(len=256) |
Name of the output observation sequence file to create. |
append_to_existing_file |
logical |
If .false., this program will overwrite an existing file. If .true. and if a file already exists with the same name the newly converted observations will be appended to that file. Useful if you have multiple small input files that you want to concatenate into a single output file. However, there is no code to check for duplicated observations. If this is .true. and you run the converter twice you will get duplicate observations in the file which is bad. (It will affect the quality of your assimilation results.) Use with care. You can concatenate multiple obs sequence files as a postprocessing step with the program obs_sequence_tool which comes with DART and is built by the quickbuild.sh script in the TC converter work directory. |
debug |
logical |
Set to .true. to print out more details during the conversion process. |