ATCF Handling - StormSurgeLive/asgs GitHub Wiki

ATCF Handling

The Automated Tropical Cyclone Format (ATCF) is used to provide key parameters for a tropical cyclone, including location, maximum wind speed, and storm size/shape, among others. This differs from the typical provision of data from a numerical weather prediction model (NWP) like HWRF, for example. Models like that produce voluminous quantities of time varying gridded data over large geographic regions. In contrast, ATCF files are very small (100 lines is typical) because only the key storm parameters are included. However, because this file format was designed decades ago, it has some unusual characteristics that introduce complexity into the parsing and analysis processes, as described in the following section.

ATCF Idiosyncracies

This format has several idiosyncracies and misleading appearances that developers and operators should be aware of before working with the data, as follows:

  • The format appears to be CSV because the fields are separated by commas; in reality the data are fixed width. As a result, the practical effect of an erroneous extra space in any line will be that the entire file becomes unparsable.
  • There are several "flavors" of the ATCF file format that are determined according to the 4th column. For example, storm information that is provided in hindsight (i.e., referring to past storm states as opposed to forecast storm states) will be labeled with the four character string "BEST" in the fourth field (these are colloquially referred to as "BEST track files"). On the other hand, if the file contains forecast data, the fourth column will contain the four character string "OFCL" (traditionally referring to an "official" forecast). Other possibilities include "CARQ", "WRNG", "CNTR". The presence of a particular value on a particular line of an ATCF file will indicate that certain other columns in that line are to be interpreted in differently as detailed in later sections.
  • Differing levels of information are provided about the storm state at each point in time. There may be a single line describing storm state at a particular time, and there may be multiple lines (generally no more than three) that correspond to a particular storm state at a particular time. There is no indication in the file format itself about how many lines will be used to correspond to a particular storm state at a particular point in time. This information is revealed in the process of parsing when it is found that there are some lines with the same date/time that differ in certain columns while also having duplicated parameter values in other columns. This repeated line structure is the method used to convey additional information about a particular storm state at a particular time.

ASGS

Real Time

get_atcf.pl

The get_atcf.pl script is used by the ASGS to monitor the RSS feed from the National Hurricane Center for new Forecast/Advisories and to download the latest advisory the moment it becomes available. It does this by parsing the xml file posted on the RSS feed, and when the advisory number has been updated by the NHC, get_atcf.pl follows the link to the html file containing the actual advisory information.

After downloading a new Forecast/Advisory from the National Hurricane Center website, the script then downloads the latest hindcast (BEST track) file for the same storm from NHC's anonymous ftp site. Both these files are required for generating an ADCIRC fort.22 (meteorological forcing) file.

Once a forecast is complete, and the next advisory has not yet been posted, the script waits 60 seconds before checking the RSS site again. It will continue checking every 60 seconds until the next advisory is posted.

The script is called get_atcf.pl because the so-called BEST track file format (that describes the files that the script downloads from the anonymous ftp site) was designed by the Automated Tropical Cyclone Forecasting system (ATCF). Please see the section below that discusses the ADCIRC parametric vortex models below for more details on this format, including a link to the online documentation.

The get_atcf.pl script accepts the following command line options (definition, usage, and/or rationale for these command line options are also described below):

--statefile $STATEFILE
$STATEFILE is a shell script with variables and values that represent the current state of an ASGS instance. It is used by get_atcf.pl to automatically extract the advisory number if an OFCL ATCF file was downloaded from the NHC ftp site (--trigger ftp), since that data source does not contain the advisory number. Not used otherwise.
--rsssite $RSSSITE
$RSSSITE is the URL where the RSS feed (index-at.xml) is found. $RSSSITE can also be set to filesystem to pick up the index-at.xml from the local filesystem (in the directory specified by $FDIR).
--ftpsite $FTPSITE
$FTPSITE is the ftp hostname for hindcast and nowcast (BEST) data (and/or forecast data if the --trigger ftp command line option was specified). $FTPSITE can also be set to filesystem to pick up these data from the local filesystem in the directory specified by $HDIR.
--fdir $FDIR
$FDIR is the directory on $FTPSITE for ATCF formatted OFCL forecast data if --trigger ftp was specified, or on the local filesystem if --rsssite filesystem was specified.
--hdir $HDIR
$HDIR is the directory on $FTPSITE for ATCF formatted BEST track data (or on the local filesystem if --ftpsite filesystem was specified).
--storm $STORM
Number assigned to that particular tropical cyclone for that year (single digit integer will have a leading zero added by this script). Used in file names for input and output files, parsing forecast/advisories to find the specified storm, and log messages.
--year $YEAR
Four digit year of occurrence for the tropical cyclone. Used in file names for input and output files, parsing forecast/advisories to find the specified storm, and log messages.
--adv $ADVISORY
Two digit integer (with leading zero if less than 10) representing the most recent advisory that was already downloaded. A new advisory is deemed to have been issued if the advisory number parsed out of the forecast/advisory data is different (not necessarily greater) than $ADVISORY.
--trigger $TRIGGER
Indicates the data source that the script uses to determine if a new advisory has been issued. Possible values and their meanings are as follows:
    • ftp - download new ATCF OFCL files from $FTPSITE/$FDIR. Get the advisory number from $STATEFILE.
    • rss - retrieve the text of the forecast/advisory from https://$RSSSITE (or from $FDIR if --rsssite filesystem was specified. The script will follow the link in the RSS xml file to obtain the text of the forecast/advisory.
    • rssembedded - same as rss except that the the text of the forecast/advisory will be extracted from the RSS XML itself (assuming it is embedded there in a CDATA tag.
--nhcName $NHCNAME
If the name of the storm (e.g., NINE or IRENE, etc) is not provided on the command line it will be parsed from the last line of the BEST track file. If an OFCL file was provided, the storm name from the forecast/advisory text will take precedence over the name specified on the command line.
--insecure
If specified, then the http: protocol will be used to retrieve the RSS XML feed, rather than https: (the default).
BEST

The script looks for a BEST track file named bal$storm$year$.dat where the storm number is a two digit integer with a leading zero for integers less than 10. The basin ("al") is hardcoded in the script to be the Atlantic basin. After acquiring the BEST track file, whether from an ftp site or the local filesystem, this script attempts to determine the name of the storm from the file. This capability was originally used later in the script for parsing the text of the forecast/advisory, but this is an unreliable method, since the NHC's name for a storm can change between the time that the BEST track file is issued and the time that the next forecast/advisory is issued. For example, in 2014, TD ONE changed to TS ARTHUR, and TD TWO changed to TS BERTHA. As a result, the forecast/advisory is parsed according to the storn number and year, not the name.

The script attempts to find the name of the storm from the BEST track file by splitting each line of the file on commas and extracting field 27 (starting index is zero) with leading and trailing spaces removed. The last line in the file with a field 27 that does not return undef is used as the storm name in log messages (until the forecast/advisory is successfully parsed).

OFCL

If an OFCL file is loaded from the filesystem in ATCF format, the advisory number is not present. As a result, this script cannot get the advisory number if the file is downloaded via ftp, which is one of the main reasons this data is not acquired by ftp.

If the OFCL forecast/advisory data is extracted from a file on the local filesystem $FDIR/index-at.xml (again, hardcoded to the Atlantic basin), the script parses out the storm name and advisory number and saves the forecast/advisory information to a file named al$storm$year.fst.html (as-is, not as an ATCF formatted file).

nhc_advisory_bot.pl

The purpose of the nhc_advisory_bot.pl script is to accept the text of an NHC forecast/advisory and produce a valid OFCL-type ATCF formatted file. It starts with the following hardcoded "template" ATCF line:

AL, 01, 2009010100,   , OFCL,   0, 000N,  000W,  30,    0,   ,  34, NEQ,    0,    0,    0,    0,    0,    0,   0,  40,   0,    ,   0, TBK,  65,  17,           ,  , 12, NEQ,  60,  60,   0,   0

It then parses the forecast/advisory header text to extract the following information (highted in curly braces in some cases), reformatting it and filling in the template ATCF line using fixed width placement starting with column 0 (not comma separated placement) as follows:

Description Sample Advisory Text Column Width Read ATCF Field
storm number AL{09}2022 4 2 CY
date/time that the advisory was issued 1500 UTC TUE JUL 18 2006 8 10 YYYYMMDDHH
storm name HURRICANE {FRANCES} FORECAST/ADVISORY NUMBER 37...CORRECTED 148 10 STORMNAME
starting latitude HURRICANE CENTER LOCATED NEAR {23.4N} 73.9W AT 02/1500Z 34 5 LatN/S
starting longitude HURRICANE CENTER LOCATED NEAR 23.4N {73.9W} AT 02/1500Z 41 5 LonE/W
storm direction PRESENT MOVEMENT TOWARD THE NORTH-NORTHWEST OR {330} DEGREES AT 9 KT 138 4 DIR
storm speed PRESENT MOVEMENT TOWARD THE NORTH-NORTHWEST OR 330 DEGREES AT {9} KT 143 4 SPEED
central pressure ESTIMATED MINIMUM CENTRAL PRESSURE {972} MB 53 4 MSLP
max wind speed MAX SUSTAINED WINDS {125} KT WITH GUSTS TO 155 KT. 47 4 VMAX
max gust wind speed MAX SUSTAINED WINDS 125 KT WITH GUSTS TO {155} KT. 113 4 GUSTS

After parsing the forecast/advisory header text, the script writes the first line of the output OFCL ATCF file using the filled-in template line. Then the remainder of the OFCL ATCF file is written according to the following parsing/filling procedure for the template line:

Description Sample Advisory Text Column Width Write ATCF Field
storm number (from previous line) 4 2 CY
date/time that the advisory was issued (from previous line) 8 10 YYYYMMDDHH
storm name (from previous line) 148 10 STORMNAME
forecast valid computed from e.g. FORECAST VALID {25/1800Z} and the YYYYMMDDHH field 29 4 TAU
starting latitude FORECAST VALID 25/1800Z {17.0N} 78.8W 34 5 LatN/S
starting longitude FORECAST VALID 25/1800Z 17.0N {78.8W} 41 5 LonE/W
max wind speed MAX WIND {55} KT...GUSTS 65 KT. 47 4 VMAX
max gust wind speed MAX WIND 55 KT...GUSTS {65} KT. 113 4 GUSTS
isotach speed {64} KT... 45NE 30SE 20SW 30NW. 63 3 RAD
isotach radii 64 KT... {45}NE {30}SE {20}SW {30}NW. 72 + 6k where k=0:3 5 RAD1, RAD2, RAD3, RAD4

If the line read from the forecast/advisory text includes the string DISSIPATED the forecast/advsiory parsing loop terminates.

The following data are parsed and written to a .properties file:

Description Sample Advisory Text Keyword Sample Value
storm name HURRICANE {FRANCES} FORECAST/ADVISORY NUMBER 37...CORRECTED forcing.tropicalcyclone.stormname FRANCES
storm class {HURRICANE} FRANCES FORECAST/ADVISORY NUMBER 37...CORRECTED forcing.tropicalcyclone.stormclass HURRICANE
max wind speed MAX SUSTAINED WINDS {125} KT WITH GUSTS TO 155 KT. forcing.tropicalcyclone.vmax 125
max gust wind speed MAX SUSTAINED WINDS 125 KT WITH GUSTS TO {155} KT. forcing.tropicalcyclone.gusts 155
advisory time 1500 UTC TUE JUL 18 2006 forcing.tropicalcyclone.forecast.valid.time.start 20060718150000
forecast end time FORECAST VALID 27/0600Z 21.7N 83.8W forcing.tropicalcyclone.forecast.valid.time.end 20220927060000

storm_track_gen.pl

This script accepts raw ATCF files and produces fort.22 files for ADCIRC parametric vortex models. It accepts a forecast (OFCL) file and optionally a retrospective (BEST) file. It also requires the cold start time to compute date/times and time spans. By default, it produces a fort.22 file for one of the ADCIRC parametric vortex wind models to represents the NHC official forecast track.

--dir $DIR
Find the raw ATCF input files in the directory $DIR. The default is the current working directory.
--storm $STORM
The script uses $STORM as the two digit storm number (single digit storm number must be supplied with a leading zero) in the year specified by the --year option (the NHC numbers each tropical cyclone of the season). This is used in constructing the names of the input and output. This command line argument is required.
--year $YEAR
Use the four digit year $YEAR when constructing the names of the input and output files to/from this script. This command line argument is required.
--coldstartdate $CSDATE
The number string $CSDATE is parsed to determine the year, month, day, and hour corresponding to the ADCIRC cold start date/time. The number string is ten characters in the format YYYYMMDDHH24 and is relative to UTC (e.g., 2005082912). This is used to relate the dates and times listed in the ATCF data with the current state of the ADCIRC simulation. If this command line option is not supplied, the script assumes that the very last line in the hindcast ATCF file corresponds to the ADCIRC cold start date and time.
--hotstartseconds$HSTIME
The number of seconds $HSTIME is an offset to the cold start date/time used to determine the date and time corresponding to the current ADCIRC model time if the model is to be hotstarted. If this command line argument is not given, the script assumes a cold start (i.e., that $HSTIME is zero).
--nws $NWS
Generate an ATCF formatted file suitable for use in ADCIRC's internal parametric vortex model specified by the NWS value $NWS. See the ADCIRC documentation for details of the NWS parameter. Supported values include the symmetric vortex (8), asymmetric vortex (19), generalized asymmetric vortex (20), and generalized asymmetric vortex blended with gridded wind field(s) in the OceanWeather WIN/PRE format (30). $NWS values that specify SWAN coupling are also supported (i.e., 308, 319, 320, and 330).
--name $SCENARIO
Vary the output data using according to the string $SCENARIO. Allowable substrings within a scenario name that indicate specified perturbations are maxWindSpeed, overlandSpeed, and veer. The output data will have the corresponding values adjusted as described below. Only one --name option is allowed per execution.
--percent $PERCENT
When varying the output data using the --name option above, use $PERCENT as the magnitude of the variation, as described below. The default percentage variation is 20 percent for maxWindSpeed, -20 percent for overlandSpeed, and 100 percent for veer.
--method $ESTMSLP
This parameter is used to select the algorithm used to estimate the miniumum sea level pressure when it is not available from the source ATCF file (i.e., when processing OFCL). The default method is twoslope and asgs2012 is an alternate method.
--strengthPercent$STRENGTH
The Vmax in the output data will be adjusted using the percentage indicated with this command line option; for example, the use of this variation with a percent value of 110 will increase all Vmax values in the forecast portion of the output by 10%. If the central pressure needs to be estimated by this script, the estimate will occur after the perturbation to Vmax has been applied. If the data have a perturbed Vmax and are subsequently used in the aswip program, aswip will compute Rmax values based on the perturbed Vmax.
--overlandSpeedPercent $SPEED
The forecast times in the output data will be perturbed using the percentage indicated with this; for example, the use of this variation with a percent value of 110 will reduce all forecast times in the output by 10%.
--veerPercent $VEER
The storm coordinates in the output data will be perturbed using the percentage indicated; for example, the use of this variation with a value of 100 will cause the track to veer to the right (looking in the direction the storm is going) along the right edge of the cone of uncertainty. Setting the value to -100 will cause the storm to veer to the left along the left edge of the cone of uncertainty.

File input:

  • run.properties :

ASSUMPTIONS:

  1. The ADCIRC coldstart time (or the sum of the coldstart time and the number of seconds from the hotstart file in the case of a hotstart) must correspond exactly to one of the times in the hindcast or forecast file. This script is not able to interpolate or extrapolate the initial meteorological data.
  2. Conversion of km to degrees (lat and lon) is only approximate (not based on a geographically accurate projection) and could be made more accurate. This conversion is required to relate the size of the cone of uncertainty (defined in units of length) to varied tracks that are positioned in terms of lat/lon coordinates.
  3. The fill-in of the forecast central pressure is based on an algorithm that is an object of current research and is subject to change.
  4. The script was designed for a real time context, so it assumes that perturbations are only applied to forecasts (OFCL), not a nowcast (BEST).
  5. Also the forecast is being hotstarted from the end of a previous nowcast, so the forecast track file needs to pick up where the previous nowcast track file left off. The ADCIRC parametric vortex models need to start with the track data that correspond to the hotstart time, so at least the first line in the forecast track file has to be the same as the last line in the previous nowcast track file, i.e., the first line in the forecast ATCF file has to come from BEST track data.

The script storm_track_gen.pl accepts a raw ATCF-format hindcast file (straight from the NHC ftp site) and a raw ATCF-format forecast file (either straight from the NHC ftp site or formed by some other method, e.g., parsed from a text advisory). It produces a fort.22 file for ADCIRC for the NWS=9 (asymmetric wind vortex model) option.

Selecting the right hindcast or forecast line to start with based on the coldstart time and hotstart seconds, and filling in the date, time, and forecast periods correctly on the following lines requires the bulk of the code in the script. Most of the complexity is due to the fact that ADCIRC may be required to start at a point in time that may be somewhere in the hindcast or forecast, depending on the circumstance. Also, it is possible to have a hindcast file that has a later end date than the start date in the forecast file. Creating the storm variations requires a comparatively small amount of code.

The requirements for both BEST and OFCL data could be relaxed in storm_track_gen.pl to make it more of a generalized ensemble-generating tool outside the context of real time guidance.

This script has the names of the BEST and OFCL files it will read as hardcoded to bal$storm$year.dat and al$storm$year.dat (with the Atlantic basin "al" hardcoded also). The output file from the script is hardcoded to fort.22.

The script will attempt to read a run.properties file and exit with an error if it is not found. The only information read from the run.properties file is the name of the storm (forcing.tropicalcyclone.stormname) and only for the purpose of writing based on information gleaned from the BEST and/or OFCL file, if that property does not already exist. Additional information written to the run.properties file is listed

Required command line arguments for this script include the storm number and year (for use in forming the names of the input file(s)). Optional command line arguments include the directory containing the input file(s) (the current working directory is used as the default) and the cold start date. If the cold start date is not provided, the script parses the YYYYMMDDHH ATCF field from the first line in the file, splitting the line on commas, selecting field 2 (counting from zero) and stripping leading and trailing spaces. The script adds the number of seconds in the hotstart file (specified on the command line with --hotstartsecondsand a default value of 0.0) to the cold start date (however obtained) to find the date and time in YYYYMMDDHH format that corresponds to the time in the hotstart file, and therefore the initial time of the simulation.

The track perturbations can be specified in two separate ways: either by giving the track scenario a name that contains related keywords, or by providing explicit command line arguments (all case sensitive). These mutually exclusive specification methods are summarized in the following table:

Description (relative to official forecast track) Scenario Substring Example Scenario Name Typical Percent Range Alt. Command Line Argument
track to the left or right veer veerRight50 -100 to 100 --veerPercent
maxiumum wind speed greater or less maxWindSpeed maxWindSpeed20 -20 to 20 --strengthPercent
faster or slower forward speed of storm overlandSpeed overlandSpeed10 -20 to 20 --overlandSpeedPercent
larger or smaller radius to maximum winds rMax rMax50 -50 to 50 (not available)

If the perturbation is expressed in the name of the scenario itself, the percent change must be specified as a separate command line argument, e.g., --name veerRight50 --percent 50. The 50 in the scenario name is for human readability and is not used by the script. If the same perturbation is expressed with command line arguments, then the scenario name should not contain any string that triggers scenario perturbation, and in this example would be specified as --veerPercent 50.

Modifications to the radius to maximum winds (Rmax) can only be made in storm_track_gen.pl if the ADCIRC symmetric vortex model (NWS=8) is used. If the Rmax is left unperturbed, and the ADCIRC symmetric vortex model (NWS=8) is specified, the forecast Rmax will be persisted from the most recent value available in the BEST track file (the RMW column). If the Generalized Asymmetric Holland Model (GAHM) parametric vortex model in ADCIRC is to be used (NWS=20), then perturbations to Rmax must be specified to the aswip program and will have no effect in this script.

When reading the BEST track file, each line is split on commas according to the regular expression / *, */ the following checks are made for each line:

  1. line length is at least 112 characters
  2. new cycles are detected when field 11 (starting from zero) is equal to 0 or 34

If the line is found to have less than 112 characters, the previous line with the same isotach value is persisted to fill in the information from the end of the current line to the end of the persisted line.

The data that are parsed out of the BEST track file are summarized as follows (for any of the data marked "last", only the last available value in that column is actually used):

Description Comma Separated Field Read ATCF Field
isotach speed 11 RAD
storm name 27 STORMNAME
storm class 10 none
time 2 YYYYMMDDHH
last pressure 9 MSLP
last max wind speed 8 VMAX
last Rmax 19 RMW
last latitude 6 LatN/S
last longitude 7 LonE/W

The value of the storm class property (e.g., "HURRICANE") is not the same as the TY field in ATCF (e.g., "HU"); the storm class property is saved to run.properties. If the STORMNAME field is empty, the literal string "STORMNAME" is used.

Any lines in the BEST file that have a time stamp that is earlier than the start of the simulation are discarded. If there are no lines that correspond exactly to the YYYYMMDDHH of the start of the simulation (computed as the cold start date plus the specified number of hotstart seconds, if any, as described above), but lines with times later than the start of the simulation are found, the script exits with an error. However, if there are no lines with a time that corresponds exactly to the start of the simulation, and none after, the script only emits a warning and continues (jgfdebug: logging this as an issue).

The YYYYMMDDHH time associated with the first non-discarded line is used to compute the number of hours elapsed from this line to all subsequent lines in the BEST track file. This value, and a hardcoded background pressure of 1013mb are inserted into each of the lines read from the BEST track file before appending to the fort.22 file, as follows:

Description Column Width Write ATCF Field
hours since first line in file 8 29 TAU
ambient barometric pressure 97 4 POUTER

Once the script finishes parsing the BEST track file, it starts work on the OFCL file. It starts by splitting the file on commas and parsing the YYYYMMDDHH ATCF value from field 2 (starting from 0). This information is combined with the value of the TAU column (parsed as described in the following table) to compute the date/time associated with each line. If the resulting date/time is prior to the final date/time in the BEST track file, or to the current time in the hotstart file, the OFCL line is discarded.

For the asymmetric vortex model, if OFCL lines are found that are after the hotstart time of the model run, but the exact time of the hotstart is not found in the OFCL file, and was never found in the BEST track file, then the script exits with an error message.

Othewise, the remainder of the OFCL lines are parsed and filled in (one at a time) based on fixed width processing (as opposed to comma separated) according to the following table:

Description Column Width Action ATCF Field Notes
forecast period 29 4 read TAU
forecast valid 8 10 write YYYYMMDDHH symmetric only (NWS=8)
forecast period 29 4 write TAU asymmetric only; from hotstart date/time to date/time specified by original TAU
ambient pressure 97 4 write POUTER hardcoded to 1013mb
isotach radii 74,80,86,92 3 read RAD1, RAD2, RAD3, RAD4 for modification if specified
isotach radii 74,80,86,92 3 write RAD1, RAD2, RAD3, RAD4 Unmodified
maximum wind speed 48 3 read VMAX if perturbation of VMAX was specified
central pressure 53 4 read MSLP for modification if perturbation of VMAX was specified
maximum wind speed 47 4 write VMAX perturbed if specified
central pressure 53 4 read MSLP adjusted to new VMAX if that changed
forecast period 29 4 write TAU perturbed if change in storm speed was specified
forecast valid 8 10 write YYYYMMDDHH perturbed if change in storm speed was specified
center latitude 34 4 read LatN/S if the track is perturbed
center longitude 41 4 read LonE/W if the track is perturbed
center latitude 34 4 write LatN/S new value for perturbed track
center longitude 41 4 write LonE/W new value for perturbed track
radius to maximum wind 109 3 write RMW symmetric only; perturbation to last BEST RMW value

If the central pressure on any line with nonzero TAU in the OFCL file has a nonzero MSLP, that value is left as-is, even if a perturbation of VMAX was specified.

The following properties will be appended to the run.properties file as appropriate based on the input and command line options:

Description Property Sample Value
track to the left or right variation veer 100
specified change in maxiumum wind speed variation maxWindSpeed 20
forward speed faster or slower variation overlandSpeed 20
meteorological classification storm class POTENTIAL TROPICAL CYCLONE
name of BEST track file used as input track_raw_dat bal092022.dat
name of OFCL track file used as input track_raw_fst al092022.fst

Hindcasting

advisory_xml_filler.pl

This script parses historical text forecast/advisories from html files downloaded from the National Hurricane Center archive. It creates an xml file (using a template) to simulate the xml files posted in the real time RSS feed for new forecast/advisories from the NHC. These mock RSS xml files can then be used in the ASGS to drive ADCIRC with the forecast/advisories for that storm for retrospective analysis and/or software testing.

If the name of a BEST track file is optionally provided, this script uses it to create a truncated BEST track file to accompany the mock RSS xml forecast/advisory file. The input BEST track file is truncated such that the final line is just prior to the mock RSS forecast/advisory issuance, thus mimicking the BEST track file that would be present on the NHC ftp site at the time that the advisory was issued.

Data needed from the forecast advisories to fill the XML template:

  • %stormClass%
  • %stormNumber%
  • %stormNameAllCaps%
  • %advisoryNumber%
  • %dateTimeIssued%
  • %forecastAdvisoryText%
  • %fileName% (either formed by this script or fed as an input param)

The template that is typically used is found in the ASGS repository under input/sample_advisories/template.index.xml with content as follows:

<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
   <pubDate>%pubDate%</pubDate>
   <title>Seahorse Coastal Consulting, LLC</title>
   <description>Simulated NHC Forecast/Advisories</description>
   <link>http://www.seahorsecoastal.com/</link>
   <copyright>2015 Jason Fleming</copyright>
   <managingEditor>[email protected]</managingEditor>
   <language>en-us</language>
   <webMaster>[email protected]</webMaster>
   <image>
      <url>http://www.seahorsecoastal.com/seahorse.png</url>
      <link>http://www.seahorsecoastal.com/</link>
      <description>Seahorse</description>
      <title>Seahorse Coastal Consulting, LLC</title>
      <width>96</width>
      <height>128</height>
   </image>
   <item>
      <title>%stormClassCase% %stormName% Forecast/Advisory Number %advisoryNumber%</title>
      <description>Issued at %issuedAt% <![CDATA[<pre>
%forecastAdvisoryText%
</pre>]]></description>
      <pubDate>%pubDate%</pubDate>
      <link>http://www.seahorsecoastal.com/%year%/%stormNumber%/%fileName%</link>
      <guid>http://www.seahorsecoastal.com/%year%/%stormNumber%/%fileName%</guid>
      <author>[email protected]</author>
   </item>
</channel>
</rss>

For each line in the html file, this script performs the following actions

  1. Read and toss html before the ZCZC that indicates the start of the forecast advisory text.
  2. Grab the forecast advisory text, and parse parameters as required to fill in the xml template.
  3. Once the NNNN that signals the last line of the forecast advisory has been found, it closes the html file, and fills in the xml template.

The text of the forecast/advisory is parsed to extract the following information for the listed reasons:

Description Sample Advisory Text Purpose(s)
basin {AL}172005 %fileName%
storm number AL{17}2005 %stormNumber%, %fileName%
year AL17{2005} %pubDate%, BEST truncation, %fileName%
forecast valid 1500 UTC TUE JUL 18 2006 %pubDate%, %issuedAt%, BEST truncation
storm name HURRICANE {FRANCES} FORECAST/ADVISORY NUMBER 37...CORRECTED %stormName%
advisory number HURRICANE FRANCES FORECAST/ADVISORY NUMBER {37}...CORRECTED %advisoryNumber%, %fileName%, truncated BEST track file name
storm class {HURRICANE} FRANCES FORECAST/ADVISORY NUMBER 37...CORRECTED %stormClassCase%

If a BEST track file was supplied for temporal truncation, quality control checks are conducted as follows (with quality control failures resulting in that particular BEST track file line being discarded, and comma separated field numbers starting from 0):

Description Comma Separated Field Read ATCF Field Line Rejected If
meteorological category 10 TY DB, LO, or WV
date 2 YYYYMMDDHH later than %issuedAt%
analysis time 2 YYYYMMDD{HH} anything other than 00, 06, 12, or 18

best2fcst.pl

This script takes an ATCF formatted BEST track file and fills in the forecast increment (TAU) in hours according to the date/time # column, starting at zero. The resulting file can be used as input to aswip and ultimately ADCIRC's NWS19 or NWS20.

It also has the capability to time-interpolate the central pressure values from the BEST track data into an ADCIRC fort.22 for HWind data.

The BEST lines are parsed and filled in (one at a time) based on fixed width processing (as opposed to comma separated) according to the following table:

Description Comma Separated Field Read ATCF Field
date/time 2 YYYYMMDDHH
central pressure 9 MSLP

Quality control checks are conducted as follows (with quality control failures resulting in that particular BEST track file line being discarded, and comma separated field numbers starting from 0):

Description Comma Separated Field Read ATCF Field Line Rejected If
date/time 2 YYYYMMDDHH greater than --issued
date/time 2 YYYYMMDDHH earlier than model hotstart time and --rezero-hours-column was specified
date/time 2 YYYYMMDDHH later than difference between first acceptable line and value supplied by --forecastlength (if any)

Values are filled in to each line using fixed width notation as follows:

Description Column Width Action ATCF Field Notes
forecast period 30 3 write TAU excludes discarded lines
ATCF file type 24 4 write TECH hardcoded unless --rezero-hours-column set
date/time 8 10 write YYYYMMDDHH unless --rezero-hours-column set

This script is also used to time interpolate central pressure values from BEST track files into fort.22 files for HWind data, but this process is beyond the scope of this document.

ADCIRC Model

ATCF formatted files are used by two sets of executables that are built from the ADCIRC source code: aswip (asymmetric wind input preprocessor), and by the main ADCIRC executables adcirc, padcirc, adcswan, and padcswan.

ASWIP

The aswip utility was created to enable the calculation of the radius to maximum winds prior to reading the data into ADCIRC during a model run. This precalculation provides several advantages, including error checking as well as providing the analyst with fine grained control over radius to maximum winds (through modification of the resulting file prior to providing it as input to ADCIRC) as well as whether and how the isotachs are used to build wind fields during execution. This README covers aswip processing for the GAHM (NWS=20) parametric vortex model; the asymmetric (NWS=19) parametric vortex model is not included.

The aswip utility reads a fort.22 file (e.g. generated from storm_track_gen.pl) with the following fixed width Fortran statements (i=integer, a=alphanumeric, and x=space, for those unfamiliar with Fortran format statements) where the integer ient is a counter for the line number (and the array index in the Fortran array that holds the resulting value):

         READ(22,22) advr(ient), iyear(ient),imth(ient),iday(ient),
     &      ihr(ient), castType(ient),iFcstInc(ient), ilat(ient),ns,
     &      ilon(ient),ew, ispd(ient), icpress(ient), ivr(ient),
     &      (ir(ient,i),i=1,4), ipn(ient), atcfRMW(ient),
     &      dir(ient),speed(ient), stormname(ient)

22       FORMAT(3x, i3, 2x, i4, 3i2, 6x, a4, 2(2x,i3),a1, 1x, i5,
     &         a1, 2x, i3,2x, i4, 6x, i3, 7x, 4(i4,2x), i4, 8x, i3,
     &          27x, 2(i3,2x), a10)

One shortcoming with Fortran format statements is that they are cumulative; in other words, one must manually count through and add up the relative spacing to determine the absolute column that will be operated on by any particular format descriptor. In this instance the accumulation can be spelled out as follows (starting with a Fortran-style index of 1 and a real life example BEST track line):

                                                                                                   1         1         1         1         1         1         1         1         1         1         2         2         2         2         2         2         2
         1         2         3         4         5         6         7         8         9         0         1         2         3         4         5         6         7         8         9         0         1         2         3         4         5         6
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890

AL, 09, 2021082615,   , OFCL,  69, 277N,  900W,  95,    0,   ,  34, NEQ,  140,  130,   70,  120,    0,    0,   0, 115,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0

xxxiiixxiiiiiiiiiixxxxxxaaaaxxiiixxiiiaxiiiiiaxxiiixxiiiixxxxxxiiixxxxxxxiiiixxiiiixxiiiixxiiiixxiiiixxxxxxxxiiixxxxxxxxxxxxxxxxxxxxxxxxxxxiiixxiiixxaaaaaaaaaa

3x    2x     3i2         a4           a1  i5  2x   2x      6x        7x                           i4          i3                           2(i3,2x)
    i3   i4          6x      2(2x,i3)  1x    a1  i3   i4        i3              4(i4,2x)                8x                 27x                          a10

  advr iyr iday       castType  ilat ns        ispd            ivr        ir1   ir2   ir3   ir4  ipn     atcfRMW                          dir speed   stormname
         imth ihr         iFcstInc     ilon ew    icpress

For each line of ATCF data that are read, aswip performs the following functions:

Description ATCF Field ASWIP Var. Action Notes
storm number CY advr read/write unchanged from input to output
north or south latitude LatN/S ns, ilat read ilat multiplied by -1.d0 if south latitude
east or west longitude LonE/W ew, ilon read ilon multiplied by -1.d0 if west longitude
new cycle detection TAU iFcstInc read new analysis/forecast indicated if different from previous line
radius to maxium wind RMW atcfRMW read to help fill in missing isotachs (if present)
central pressure MSLP icpress read/persist if equal to zero, set to be equal to value on previous line
ambient barometric pressure POUTER ipn read/set set to 1013mb or 1mb higher than central pressure (whichever is greater)
storm translation speed SPEED(ref) h_speed compute from consecutive LatN/S, LonE/W, and TAU
maximum wind speed VMAX Vmax read/use input to vortex model subroutine for Rmax computation
ambient barometric pressure POUTER ipn use input to vortex model subroutine for Rmax computation
central pressure MSLP icpress use input to vortex model subroutine for Rmax computation

Notes

  1. The aswip utility requires the TAU column to be a monotonically increasing number of hours.
  2. The storm translation velocity for the very first cycle will be set equal to the storm translation velocity of the 2nd cycle. All other storm translation velocities at cycle i are computed based on comparison of relative storm location and time elapsed since cycle i-1.
  3. The ADCIRC vortex module produces NaNs for wind velocity if the storm translation velocity is zero. If this occurs (stationary storm) then aswip sets the storm speed to unity and the storm translation direction equal to the value on the previous line. If there is no previous line, then it sets the storm translation direction equal to zero (i.e., due north).
  4. If the isotach speed (RAD) from the file is zero, the isotach speed will be set to VMAX for the purposes of Rmax computation.

If any of the four isotach radii are missing (a common occurrence), the missing values are estimated as follows (with a numerical example of each one):

Number missing Action RAD1 RAD2 RAD3 RAD4 New Values
1 use average of the radii on either side 30 30 0 20 30,30,25,20
2 use half the average of the given radii 40 0 0 50 40,22,22,50
3 use half the radius that was given 30 0 0 0 30,15,15,15
4 (all) use RMW if nonzero, otherwise set to 40 0 0 0 0 60,60,60,60

The last example above is for a line with an RMW field set to 60. If RMW was not set, the RAD1-RAD4 columns would have been set to 40 (hardcoded).

Once these values are read in and set, ADCIRC subroutines are called to compute the Rmax values in each quadrant, as well as some other derived parameters. The data are then dumped to a fixed width ATCF file.

When writing out the ATCF data, the output file name is hardcoded to NWS_20_fort.22 and the write format statement is as follows:

         case(20)
           WRITE(222,27) advr(ient), iyear(ient),imth(ient),iday(ient),
     &         ihr(ient), castType(ient),iFcstInc(ient), ilat(ient),ns,
     &         ilon(ient),ew, ispd(ient), icpress(ient), ivr(ient),
     &         (ir(ient,i),i=1,4), ipn(ient), atcfRMW(ient),
     &         nint(h_dir(ient)),nint(h_speed(ient)), stormname(ient),
     &         cycle_num(ient),isotachs_per_cycle(cycle_num(ient)),
     &        (quadflag(ient,i),i=1,4),(rmaxw(ient,i),i=1,4),
     &         HollB(ient),(HollBs(ient,i),i=1,4),
     &         (VmaxesBL(ient,i),i=1,4)

with Fortran formatting statement as follows:

         !-----------------------------------
         ! NHC advisory best-track i/o format
         ! WITH nws=20 ADDED DATA
         !-----------------------------------
27          FORMAT("AL,",1x,i2.2,",",i5,3i2.2,",",3x,",",1x,a4,",",
     &         i4,",",i4,a1,",",i5,a1,",",i4,",",i5,",",3x,",",i4,",",
     &       " NEQ,",5(i5,","),5x,",",i4,", ",5(4x,","),i3,", ",i3,",",
     &         a10," ",1x,",",i4,",",i5,",",1x, 4(i1,",",1x),2x,
     &         4(f6.1,",",1x),1x, 8(f8.4,",",1x), f8.4)

In this instance the accumulation of Fortran format descriptors can be spelled out as follows (starting with a Fortran-style index of 1 and a real life example BEST track line):

                                                                                                   1         1         1         1         1         1         1         1         1         1         2         2         2         2         2         2         2
         1         2         3         4         5         6         7         8         9         0         1         2         3         4         5         6         7         8         9         0         1         2         3         4         5         6
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890

AL, 09, 2021082615,   , OFCL,  69, 277N,  900W,  95,    0,   ,  34, NEQ,  140,  130,   70,  120,    0,    0,   0, 115,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0

xxxiiixxiiiiiiiiiixxxxxxaaaaxxiiixxiiiaxiiiiiaxxiiixxiiiixxxxxxiiixxxxxxxiiiixxiiiixxiiiixxiiiixxiiiixxxxxxxxiiixxxxxxxxxxxxxxxxxxxxxxxxxxxiiixxiiixxaaaaaaaaaa

3x    2x     3i2         a4           a1  i5  2x   2x      6x        7x                           i4          i3                           2(i3,2x)
    i3   i4          6x      2(2x,i3)  1x    a1  i3   i4        i3              4(i4,2x)                8x                 27x                          a10

  advr iyr iday       castType  ilat ns        ispd            ivr        ir1   ir2   ir3   ir4  ipn     atcfRMW                          dir speed   stormname
         imth ihr         iFcstInc     ilon ew    icpress

Generalized Asymmetric Holland Model (GAHM) NWS=20

Symmetric Holland Model NWS=8

The symmetric Holland model requires much less data than the Generalized Asymmetric Holland Model (GAHM). The main difference is that storm shape (i.e., isotach) data is not required. The Fortran READ and FORMAT lines are as follows:

           READ(UNIT=22,FMT=228,END=9999)
     &           iYear(i),iMth(i),iDay(i),iHr(i),
     &           CastType(i),iFcstInc(i),iLat(i),ns(i),iLon(i),ew(i),
     &           iSpd(i),iCPress(i),iRRP(i),iRMW(i)

C                    yr,mo,dy,hr, ,type, inc,  lat,NS,  lon,EW,  spd,   pc,   RRP,  RMW
 228       FORMAT(8x,i4,i2,i2,i2,6x,a4,2x,i3,1x,i4,a1,2x,i4,a1,2x,i3,2x,i4,47x,i3,2x,i3)

The RRP (radius to the last closed isobar) is loaded from the BEST track file, but is not actually used in the code for the symmetric vortex mode. Looking at the top of the BEST track file for Hurricane Floyd:

AL, 08, 1999090718,   , BEST,   0, 146N,  456W,  25, 1008, TD,    ,    ,     ,     ,     ,     ,     ,     ,    ,    ,    ,    ,    ,    ,    ,    ,      FLOYD,
AL, 08, 1999090800,   , BEST,   0, 150N,  469W,  30, 1007, TD,    ,    ,     ,     ,     ,     ,     ,     ,    ,    ,    ,    ,    ,    ,    ,    ,      FLOYD,

This file is missing the radius to the last closed isobar (RRP) and the radius to maximum winds (RMW). We need to fill in the RRP value so that ADCIRC can read it, but it is not used in the code, so the value does not matter. As a result, we can fill in 300 nautical miles on all lines for RRP. The RMW is not found in the file, so we will apply a reasonable and typical value of 25 nautical miles.

Blended Winds

ATCF File Format

The official documentation for the Automated Tropical Cyclone Format (ATCF) data (last updated 8/31/2016) contains the information described below.

  • ATCF best track, aids, bogus format 8/31/2016
  • See the notes on missing and deprecated data at the end of this document.
  • Common section, fields 1-36, followed by user-data section which is not predefined.

One Line

The names of the fields in an ATCF-formatted file are as follows:

BASIN, CY, YYYYMMDDHH, TECHNUM/MIN, TECH, TAU, LatN/S, LonE/W, VMAX, MSLP, TY, RAD, WINDCODE, RAD1, RAD2, RAD3, RAD4, POUTER, ROUTER, RMW, GUSTS, EYE, SUBREGION, MAXSEAS, INITIALS, DIR, SPEED, STORMNAME, DEPTH, SEAS, SEASCODE, SEAS1, SEAS2, SEAS3, SEAS4, USERDEFINED, userdata

Fields Definitions

I have added commentary after the official definitions to provide clarification and additional information. My commentary (if any) is preceded by jgf: (my initials).

BASIN
basin, e.g. WP, IO, SH, CP, EP, AL, LS
CY
annual cyclone number: 1 - 99
YYYYMMDDHH
Warning Date-Time-Group, yyyymmddhh: 0000010100 through 9999123123
TECHNUM/MIN
objective technique sorting number, minutes for best track: 00 - 99
TECH
acronym for each objective technique or CARQ or WRNG, BEST for best track, up to 4 chars.
TAU
forecast period: -24 through 240 hours, 0 for best-track, negative taus used for CARQ and WRNG records.
LatN/S
Latitude for the DTG: 0 - 900 tenths of degrees, N/S is the hemispheric index.
LonE/W
Longitude for the DTG: 0 - 1800 tenths of degrees, E/W is the hemispheric index.
VMAX
Maximum sustained wind speed in knots: 0 - 300 kts.
MSLP
Minimum sea level pressure, 850 - 1050 mb.
TY
Highest level of tc development:
    • DB - disturbance
    • TD - tropical depression
    • TS - tropical storm
    • TY - typhoon
    • ST - super typhoon
    • TC - tropical cyclone
    • HU - hurricane
    • SD - subtropical depression
    • SS - subtropical storm
    • EX - extratropical systems
    • PT - post tropical
    • IN - inland
    • DS - dissipating
    • LO - low
    • WV - tropical wave
    • ET - extrapolated
    • MD - monsoon depression
    • XX - unknown
RAD
Wind intensity for the radii defined in this record: 34, 50 or 64 kt.
WINDCODE
Radius code: AAA - full circle; NEQ, SEQ, SWQ, NWQ - quadrant
RAD1
If full circle, radius of specified wind intensity, or radius of first quadrant wind intensity as specified by WINDCODE. 0 - 999 n mi
RAD2
If full circle this field not used, or radius of 2nd quadrant wind intensity as specified by WINDCODE. 0 - 999 n mi.
RAD3
If full circle this field not used, or radius of 3rd quadrant wind intensity as specified by WINDCODE. 0 - 999 n mi.
RAD4
If full circle this field not used, or radius of 4th quadrant wind intensity as specified by WINDCODE. 0 - 999 n mi.
POUTER
pressure in millibars of the last closed isobar, 900 - 1050 mb.
ROUTER
radius of the last closed isobar, 0 - 999 n mi.
RMW
radius of max winds, 0 - 999 n mi.
GUSTS
gusts, 0 - 999 kt.
EYE
eye diameter, 0 - 120 n mi.
SUBREGION
subregion code: W,A,B,S,P,C,E,L,Q.
    • A - Arabian Sea
    • B - Bay of Bengal
    • C - Central Pacific
    • E - Eastern Pacific
    • L - Atlantic
    • P - South Pacific (135E - 120W)
    • Q - South Atlantic
    • S - South IO (20E - 135E)
    • W - Western Pacific
MAXSEAS
max seas: 0 - 999 ft.
INITIALS
Forecaster's initials used for tau 0 WRNG or OFCL, up to 3 chars.
DIR
storm direction, 0 - 359 degrees.
SPEED
storm speed, 0 - 999 kts.
STORMNAME
literal storm name, number, NONAME or INVEST, or TCcyx where:
    • cy = Annual cyclone number 01 - 99
    • x = Subregion code: W,A,B,S,P,C,E,L,Q.
DEPTH
system depth
    • D - deep
    • M - medium
    • S - shallow
    • X - unknown
SEAS
Wave height for radii defined in SEAS1 - SEAS4, 0 - 99 ft.
SEASCODE
Radius code: AAA - full circle; NEQ, SEQ, SWQ, NWQ - quadrant
SEAS1
first quadrant seas radius as defined by SEASCODE, 0 - 999 n mi.
SEAS2
second quadrant seas radius as defined by SEASCODE, 0 - 999 n mi.
SEAS3
third quadrant seas radius as defined by SEASCODE, 0 - 999 n mi.
SEAS4
fourth quadrant seas radius as defined by SEASCODE, 0 - 999 n mi.
USERDEFINE1
1 to 20 character description of user data to follow.
userdata1
user data section as indicated by USERDEFINED parameter (up to 100 char).
USERDEFINE2
1 to 20 character description of user data to follow.
userdata2
user data section as indicated by USERDEFINED parameter (up to 100 char).
USERDEFINE3
1 to 20 character description of user data to follow.
userdata3
user data section as indicated by USERDEFINED parameter (up to 100 char).
USERDEFINE4
1 to 20 character description of user data to follow.
userdata4
user data section as indicated by USERDEFINED parameter (up to 100 char).
USERDEFINE5
1 to 20 character description of user data to follow.
userdata5
user data section as indicated by USERDEFINED parameter (up to 100 char).

Examples of USERDEFINED/userdata pairs:

  • An invest spawned from a genesis area: SPAWNINVEST, wp712015 to wp902015
  • An invest area transitioning to a TC: TRANSITIONED, shE92015 to sh152015
  • A TC dissipated to an invest area: DISSIPATED, sh162015 sh982015
  • A genesis area number: genesis-num, 001

Notes

From the official documentation:

  1. No missing data allowed for first eight common fields. Missing data for other fields are expected to be blank characters between the comma delimiters. Although the files are not column dependent please insure that the proper number of blank characters is included in missing data so the columns line up. This makes the files easier to read and troubleshoot. jgf: The fields absolutely are column dependent (fixed width); see my commentary in note 6 below.

  2. The USERDEFINED section is for inclusion of items not already in the common fields. The USERDEFINED parameter is 1 to 20 characters, so there should be sufficient space to include some text describing what comes next. jgf: The examples above show that the NHC creates userdata fields with embedded commas (without quotation marks surrounding the field), which is a showstopper for any sort of comma-delimited parsing.

  3. Wind records merged in from preexisting wind files (r-decks) were assigned a TECH of CNTR. Wind records created during normal use of this combined data format are assigned the TECH corresponding to the center name as defined in $ATCFINC/atcfsite.nam.

  4. WINDCODE and SEASCODE other than AAA, NEQ, SEQ, SWQ and NWQ exist in older data but have been deprecated.

  5. RAD values of 100 exist in old data (earlier than 2005) but have been deprecated. Currently only 34, 50 and 64 are valid for RAD. jgf: Units are knots, i.e., nautical miles per hour.

  6. The fields are not column dependent, but the files are easier to read and troubleshoot if the columns line up. The fields are comma and space delimited. jgf: This is misleading; even the official documentation above refers to the expected number of characters in some (not all) of the fields. In general, if the fields in any data file are space delimited (fixed width), we wouldn't need commas; if the fields are comma delimited, we wouldn't need spaces. If an analyst were to remove all the spaces in an ATCF file and keep the commas, the file would not be parsed successfully. On the other hand, if an analyst keeps the spaces as specified and ignores the commas during parsing (as ADCIRC and aswip do), the file will still be parsed successfully. Therefore, ATCF files should always be treated as fixed width.

ATCF Field Widths

The desired field widths and preferred ATCF application ranges are as follows:

field width range
BASIN 2 WP, EP, CP, IO, SH, AL, SL as defined in basin.dat
CY 2 01 to 99, 01 to 49 are real storms, 80 to 89 are test storms, 90 to 99 are INVESTS
YYYYMMDDHH 10 only valid DTGs
TECHNUM/MIN 2 00 <= TECHNUM <= 99, 00 <= MIN < 60
TECH 4 up to four alphanumeric characters
TAU 3 -24 <= TAU <= 240 hours
LatN/S 4 0 <= Lat <= 900 N/S, in tenths of degrees
LonE/W 5 0 <= Lon <=1800 E/W, in tenths of degrees
VMAX 3 10 <= VMAX <= 250 kt
MSLP 4 850 to 1050 mb
TY 2 as defined in tcdevel.dat
RAD 3 34, 50, 64 kt
WINDCODE 3 AAA, NEQ, SEQ, SWQ, NWQ
RAD1 4 MRD < RAD1 <= 999 n mi, 64 kt RAD1 < 50 kt RAD1 < 34 kt RAD1; 0 for no radius in quadrant, blank for unknown
RAD2 4 See RAD1
RAD3 4 See RAD1
RAD4 4 See RAD1
POUTER 4 MSLP < RADP < 1050 mb
ROUTER 4 EYE < RRP <= 999 n mi
RMW 3 0 < MRD <= RAD1, RAD2, RAD3, and RAD4
GUSTS 3 VMAX < GUSTS < 300 kt
EYE 3 RRP < EYE < 120 n mi
SUBREGION 3 W,E,C,A,B,S,P,L,Q - basin.dat
MAXSEAS 3 0 < MAXSEAS < 200 ft
INITIALS 3
DIR 3 0 <= DIR < 360
SPEED 3 0 <= SPEED < 100 kt
STORMNAME 10
DEPTH 1 D, M, S, X
SEAS 2 0 < SEAS < 100 ft
SEASCODE 3 AAA, NEW, SEQ, SWQ, NWQ
SEAS1 4 0 < SEAS1 <= 999 n mi
SEAS2 4 See SEAS1
SEAS3 4 See SEAS1
SEAS4 4 See SEAS1
USERDEFINED up to 20 1 to 20 characters of alphanumeric data
userdata up to 200

Examples

Hurricane Ian al092022

BEST

BEST track file for Hurricane Ian (2022) advisory 15:

AL, 09, 2022091912,   , BEST,   0,  99N,  466W,  20, 1012, DB,   0,    ,    0,    0,    0,    0,    0,    0,   0,   0,   0,   L,   0,    ,   0,   0, GENESIS028,  ,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022091918,   , BEST,   0, 101N,  482W,  15, 1012, DB,   0,    ,    0,    0,    0,    0,    0,    0,   0,   0,   0,   L,   0,    ,   0,   0, GENESIS028,  ,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092000,   , BEST,   0, 100N,  498W,  20, 1012, DB,   0,    ,    0,    0,    0,    0,    0,    0,   0,   0,   0,   L,   0,    ,   0,   0, GENESIS028,  ,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092006,   , BEST,   0, 102N,  519W,  25, 1012, DB,   0,    ,    0,    0,    0,    0,    0,    0,   0,   0,   0,   L,   0,    ,   0,   0, GENESIS028,  ,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092012,   , BEST,   0, 100N,  550W,  30, 1010, DB,   0,    ,    0,    0,    0,    0, 1012,  150,  90,   0,   0,   L,   0,    ,   0,   0,     INVEST, S,  0,    ,    0,    0,    0,    0, genesis-num, 028, SPAWNINVEST, al712022 to al982022,
AL, 09, 2022092018,   , BEST,   0, 101N,  560W,  30, 1009, DB,   0,    ,    0,    0,    0,    0, 1010,  150,  90,  40,   0,   L,   0,    ,   0,   0,     INVEST, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092100,   , BEST,   0, 102N,  566W,  30, 1009, DB,   0,    ,    0,    0,    0,    0, 1011,  150,  90,  40,   0,   L,   0,    ,   0,   0,     INVEST, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092106,   , BEST,   0, 102N,  578W,  30, 1009, DB,   0,    ,    0,    0,    0,    0, 1011,  150,  90,   0,   0,   L,   0,    ,   0,   0,     INVEST, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092112,   , BEST,   0, 105N,  595W,  30, 1007, DB,   0,    ,    0,    0,    0,    0, 1010,  150,  90,  40,   0,   L,   0,    ,   0,   0,     INVEST, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092118,   , BEST,   0, 109N,  614W,  30, 1007, DB,   0,    ,    0,    0,    0,    0, 1010,  150,  90,  40,   0,   L,   0,    ,   0,   0,     INVEST, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092200,   , BEST,   0, 112N,  628W,  30, 1007, DB,   0,    ,    0,    0,    0,    0, 1010,  150,  90,  40,   0,   L,   0,    ,   0,   0,     INVEST, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092206,   , BEST,   0, 113N,  641W,  30, 1007, DB,   0,    ,    0,    0,    0,    0, 1010,  150,  90,  40,   0,   L,   0,    ,   0,   0,     INVEST, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092212,   , BEST,   0, 117N,  651W,  30, 1007, DB,   0,    ,    0,    0,    0,    0, 1010,  150,  90,  40,   0,   L,   0,    ,   0,   0,     INVEST, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092218,   , BEST,   0, 123N,  663W,  30, 1006, LO,   0,    ,    0,    0,    0,    0, 1010,  150,  70,  40,   0,   L,   0,    ,   0,   0,     INVEST, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092300,   , BEST,   0, 129N,  672W,  30, 1006, LO,   0,    ,    0,    0,    0,    0, 1010,  150,  70,  40,   0,   L,   0,    ,   0,   0,     INVEST, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092306,   , BEST,   0, 137N,  681W,  30, 1006, TD,   0,    ,    0,    0,    0,    0, 1010,  150,  60,  40,   0,   L,   0,    ,   0,   0,       NINE, S,  0,    ,    0,    0,    0,    0, genesis-num, 028, TRANSITIONED, alB82022 to al092022,
AL, 09, 2022092312,   , BEST,   0, 141N,  695W,  30, 1006, TD,   0,    ,    0,    0,    0,    0, 1010,  130,  60,  40,   0,   L,   0,    ,   0,   0,       NINE, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092318,   , BEST,   0, 146N,  706W,  30, 1006, TD,   0,    ,    0,    0,    0,    0, 1010,  130,  60,  40,   0,   L,   0,    ,   0,   0,       NINE, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092400,   , BEST,   0, 148N,  716W,  35, 1005, TS,  34, NEQ,    0,    0,    0,   30, 1010,  140,  30,  45,   0,   L,   0,    ,   0,   0,        IAN, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092406,   , BEST,   0, 147N,  728W,  35, 1005, TS,  34, NEQ,    0,    0,    0,   30, 1010,  160,  30,  45,   0,   L,   0,    ,   0,   0,        IAN, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092412,   , BEST,   0, 144N,  745W,  40, 1003, TS,  34, NEQ,    0,    0,    0,   50, 1010,  160,  30,  50,   0,   L,   0,    ,   0,   0,        IAN, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092418,   , BEST,   0, 144N,  762W,  40, 1003, TS,  34, NEQ,    0,    0,    0,   50, 1010,  160,  30,  50,   0,   L,   0,    ,   0,   0,        IAN, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092500,   , BEST,   0, 146N,  772W,  45, 1002, TS,  34, NEQ,   40,    0,    0,   50, 1009,  190,  30,  55,   0,   L,   0,    ,   0,   0,        IAN, S,  0,    ,    0,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092506,   , BEST,   0, 146N,  783W,  45, 1003, TS,  34, NEQ,   40,    0,    0,   50, 1008,  180,  30,  55,   0,   L,   0,    ,   0,   0,        IAN, S, 12, NEQ,    0,    0,    0,   30, genesis-num, 028,
AL, 09, 2022092512,   , BEST,   0, 150N,  794W,  40, 1003, TS,  34, NEQ,   40,    0,    0,   50, 1008,  180,  30,  55,   0,   L,   0,    ,   0,   0,        IAN, S, 12, NEQ,   30,    0,    0,   30, genesis-num, 028,
AL, 09, 2022092518,   , BEST,   0, 157N,  800W,  40, 1003, TS,  34, NEQ,   30,    0,    0,    0, 1008,  180,  30,  50,   0,   L,   0,    ,   0,   0,        IAN, S, 12, NEQ,   30,    0,    0,   45, genesis-num, 028,
AL, 09, 2022092600,   , BEST,   0, 169N,  809W,  50,  991, TS,  34, NEQ,   60,   60,    0,   30, 1007,  120,  30,  60,   0,   L,   0,    ,   0,   0,        IAN, D, 12, NEQ,   30,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092600,   , BEST,   0, 169N,  809W,  50,  991, TS,  50, NEQ,   30,    0,    0,    0, 1007,  120,  30,  60,   0,   L,   0,    ,   0,   0,        IAN, D, 12, NEQ,   30,    0,    0,    0, genesis-num, 028,
AL, 09, 2022092606,   , BEST,   0, 177N,  817W,  65,  985, HU,  34, NEQ,   70,   70,   30,   70, 1007,  150,  15,  80,   0,   L,   0,    ,   0,   0,        IAN, D, 12, NEQ,   45,   30,   30,   30, genesis-num, 028,
AL, 09, 2022092606,   , BEST,   0, 177N,  817W,  65,  985, HU,  50, NEQ,   30,   30,    0,   20, 1007,  150,  15,  80,   0,   L,   0,    ,   0,   0,        IAN, D, 12, NEQ,   45,   30,   30,   30, genesis-num, 028,
AL, 09, 2022092606,   , BEST,   0, 177N,  817W,  65,  985, HU,  64, NEQ,   15,    0,    0,    0, 1007,  150,  15,  80,   0,   L,   0,    ,   0,   0,        IAN, D, 12, NEQ,   45,   30,   30,   30, genesis-num, 028,
AL, 09, 2022092612,   , BEST,   0, 187N,  824W,  70,  981, HU,  34, NEQ,   90,   80,   40,   90, 1008,  150,  15,  85,   0,   L,   0,    ,   0,   0,        IAN, D, 12, NEQ,   60,   30,   30,   60, genesis-num, 028,
AL, 09, 2022092612,   , BEST,   0, 187N,  824W,  70,  981, HU,  50, NEQ,   40,   40,    0,   30, 1008,  150,  15,  85,   0,   L,   0,    ,   0,   0,        IAN, D, 12, NEQ,   60,   30,   30,   60, genesis-num, 028,
AL, 09, 2022092612,   , BEST,   0, 187N,  824W,  70,  981, HU,  64, NEQ,   20,    0,    0,    0, 1008,  150,  15,  85,   0,   L,   0,    ,   0,   0,        IAN, D, 12, NEQ,   60,   30,   30,   60, genesis-num, 028,
AL, 09, 2022092618,   , BEST,   0, 197N,  830W,  80,  976, HU,  34, NEQ,  100,   90,   60,   90, 1008,  150,  20, 100,   0,   L,   0,    ,   0,   0,        IAN, D, 12, NEQ,  120,   60,   30,   75, genesis-num, 028,
AL, 09, 2022092618,   , BEST,   0, 197N,  830W,  80,  976, HU,  50, NEQ,   50,   50,   20,   30, 1008,  150,  20, 100,   0,   L,   0,    ,   0,   0,        IAN, D, 12, NEQ,  120,   60,   30,   75, genesis-num, 028,
AL, 09, 2022092618,   , BEST,   0, 197N,  830W,  80,  976, HU,  64, NEQ,   30,   25,    0,   20, 1008,  150,  20, 100,   0,   L,   0,    ,   0,   0,        IAN, D, 12, NEQ,  120,   60,   30,   75, genesis-num, 028,

OFCL

OFCL file for Hurricane Ian (2022) for advisory 15:

AL, 09, 2022092621,   , OFCL,   0, 203N,  832W,  85,  972,   ,  34, NEQ,  100,   90,   60,   90,    0,    0,   0, 105,   0,    ,   0, TBK, 330,  11,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,   0, 203N,  832W,  85,  972,   ,  50, NEQ,   50,   50,   20,   30,    0,    0,   0, 105,   0,    ,   0, TBK, 330,  11,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,   0, 203N,  832W,  85,  972,   ,  64, NEQ,   30,   25,    0,   20,    0,    0,   0, 105,   0,    ,   0, TBK, 330,  11,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,   9, 217N,  838W, 105,    0,   ,  34, NEQ,  120,  110,   70,  100,    0,    0,   0, 130,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,   9, 217N,  838W, 105,    0,   ,  50, NEQ,   60,   50,   40,   50,    0,    0,   0, 130,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,   9, 217N,  838W, 105,    0,   ,  64, NEQ,   30,   25,   20,   20,    0,    0,   0, 130,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,  21, 236N,  840W, 115,    0,   ,  34, NEQ,  130,  120,   90,  120,    0,    0,   0, 140,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,  21, 236N,  840W, 115,    0,   ,  50, NEQ,   60,   60,   50,   50,    0,    0,   0, 140,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,  21, 236N,  840W, 115,    0,   ,  64, NEQ,   35,   30,   25,   30,    0,    0,   0, 140,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,  33, 253N,  839W, 120,    0,   ,  34, NEQ,  140,  130,  110,  140,    0,    0,   0, 145,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,  33, 253N,  839W, 120,    0,   ,  50, NEQ,   70,   70,   60,   60,    0,    0,   0, 145,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,  33, 253N,  839W, 120,    0,   ,  64, NEQ,   35,   35,   30,   30,    0,    0,   0, 145,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,  45, 267N,  835W, 115,    0,   ,  34, NEQ,  150,  140,  110,  150,    0,    0,   0, 140,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,  45, 267N,  835W, 115,    0,   ,  50, NEQ,   80,   70,   60,   70,    0,    0,   0, 140,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,  45, 267N,  835W, 115,    0,   ,  64, NEQ,   40,   40,   35,   35,    0,    0,   0, 140,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,  57, 275N,  832W, 100,    0,   ,  34, NEQ,  180,  130,  120,  150,    0,    0,   0, 120,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,  57, 275N,  832W, 100,    0,   ,  50, NEQ,   80,   70,   60,   70,    0,    0,   0, 120,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,  69, 281N,  829W,  75,    0,   ,  34, NEQ,  180,  130,  120,  150,    0,    0,   0,  90,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,  69, 281N,  829W,  75,    0,   ,  50, NEQ,   60,   50,   50,   60,    0,    0,   0,  90,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL,  93, 301N,  823W,  45,    0,   ,  34, NEQ,    0,    0,    0,    0,    0,    0,   0,  55,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2022092621,   , OFCL, 117, 335N,  820W,  25,    0,   ,  34, NEQ,    0,    0,    0,    0,    0,    0,   0,  35,   0,    ,   0, TBK,  65,  17,       IAN ,  , 12, NEQ,  60,  60,   0,   0

Hurricane Ida al092021

Forecast

OFCL file for Hurricane Ida (2021) for advisory 1:

AL, 09, 2021082615,   , OFCL,   0, 169N,  792W,  30, 1005,   ,  34, NEQ,    0,    0,    0,    0,    0,    0,   0,  40,   0,    ,   0, TBK, 325,  11,      NINE ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2021082615,   , OFCL,   9, 182N,  804W,  35,    0,   ,  34, NEQ,   60,   40,    0,   60,    0,    0,   0,  45,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2021082615,   , OFCL,  21, 203N,  820W,  45,    0,   ,  34, NEQ,   80,   50,   20,   60,    0,    0,   0,  55,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2021082615,   , OFCL,  33, 225N,  839W,  55,    0,   ,  34, NEQ,   90,   60,   40,   70,    0,    0,   0,  65,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2021082615,   , OFCL,  33, 225N,  839W,  55,    0,   ,  50, NEQ,   30,    0,    0,    0,    0,    0,   0,  65,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2021082615,   , OFCL,  45, 244N,  860W,  65,    0,   ,  34, NEQ,  110,   80,   60,   90,    0,    0,   0,  80,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2021082615,   , OFCL,  45, 244N,  860W,  65,    0,   ,  50, NEQ,   40,   40,   30,   40,    0,    0,   0,  80,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2021082615,   , OFCL,  45, 244N,  860W,  65,    0,   ,  64, NEQ,   20,   20,    0,   20,    0,    0,   0,  80,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2021082615,   , OFCL,  57, 261N,  881W,  80,    0,   ,  34, NEQ,  130,  110,   60,  110,    0,    0,   0, 100,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2021082615,   , OFCL,  57, 261N,  881W,  80,    0,   ,  50, NEQ,   50,   50,   30,   50,    0,    0,   0, 100,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2021082615,   , OFCL,  69, 277N,  900W,  95,    0,   ,  34, NEQ,  140,  130,   70,  120,    0,    0,   0, 115,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2021082615,   , OFCL,  69, 277N,  900W,  95,    0,   ,  50, NEQ,   50,   50,   30,   50,    0,    0,   0, 115,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2021082615,   , OFCL,  93, 305N,  920W,  70,    0,   ,  34, NEQ,    0,    0,    0,    0,    0,    0,   0,  85,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0
AL, 09, 2021082615,   , OFCL, 117, 337N,  912W,  30,    0,   ,  34, NEQ,    0,    0,    0,    0,    0,    0,   0,  40,   0,    ,   0, TBK,  65,  17,      NINE ,  , 12, NEQ,  60,  60,   0,   0

Retrospective

BEST track file for Hurricane Ian (2022) advisory 1:

AL, 09, 2021082406,   , BEST,   0, 118N,  642W,  20, 1009, DB,   0,    ,    0,    0,    0,    0, 1011,  120,  90,   0,   0,   L,   0,    ,   0,   0,     INVEST,  ,
AL, 09, 2021082412,   , BEST,   0, 120N,  664W,  20, 1008, DB,   0,    ,    0,    0,    0,    0, 1010,  120,  90,   0,   0,   L,   0,    ,   0,   0,     INVEST,  ,
AL, 09, 2021082418,   , BEST,   0, 121N,  686W,  25, 1006, DB,   0,    ,    0,    0,    0,    0, 1009,  120,  90,   0,   0,   L,   0,    ,   0,   0,     INVEST,  ,
AL, 09, 2021082500,   , BEST,   0, 123N,  708W,  25, 1006, DB,   0,    ,    0,    0,    0,    0, 1009,  120,  90,   0,   0,   L,   0,    ,   0,   0,     INVEST, S,
AL, 09, 2021082506,   , BEST,   0, 125N,  731W,  25, 1006, DB,   0,    ,    0,    0,    0,    0, 1009,  130, 100,   0,   0,   L,   0,    ,   0,   0,     INVEST, S,
AL, 09, 2021082512,   , BEST,   0, 131N,  749W,  30, 1006, DB,   0,    ,    0,    0,    0,    0, 1010,  130,  90,  35,   0,   L,   0,    ,   0,   0,     INVEST, M,
AL, 09, 2021082518,   , BEST,   0, 135N,  760W,  30, 1006, DB,   0,    ,    0,    0,    0,    0, 1010,  150,  80,  40,   0,   L,   0,    ,   0,   0,     INVEST, M,
AL, 09, 2021082600,   , BEST,   0, 140N,  770W,  30, 1006, DB,   0,    ,    0,    0,    0,    0, 1009,  150,  80,   0,   0,   L,   0,    ,   0,   0,     INVEST, M,
AL, 09, 2021082606,   , BEST,   0, 152N,  780W,  30, 1006, DB,   0,    ,    0,    0,    0,    0, 1009,  150,  80,  40,   0,   L,   0,    ,   0,   0,     INVEST, M,
AL, 09, 2021082612,   , BEST,   0, 164N,  790W,  30, 1005, TD,  34, NEQ,    0,    0,    0,    0, 1008,  150,  60,  40,   0,   L,   0,    ,   0,   0,       NINE, M,  0,    ,    0,    0,    0,    0, TRANSITIONED, alB92021 to al092021,

Troubleshooting Superstorm Sandy al182012

The off-the-shelf BEST track file for Superstorm Sandy contains some idiosyncracies that can be difficult to handle. This section offers a step-by-step walkthrough of the warnings that were logged and how they were handled.

storm_track_gen.pl

While working on a hindcast of Superstorm Sandy (i.e., nowcast through advisory 31) with ASGS, the following BEST track file was used:

AL, 18, 2012102118,   , BEST,   0, 143N,  774W,  25, 1006, LO,   0,    ,    0,    0,    0,    0, 1008,  180, 150,  35,   0,   L,   0,    ,   0,   0,     INVEST, S,
AL, 18, 2012102200,   , BEST,   0, 139N,  778W,  25, 1005, LO,   0,    ,    0,    0,    0,    0, 1008,  180, 150,  35,   0,   L,   0,    ,   0,   0,     INVEST, S,
AL, 18, 2012102206,   , BEST,   0, 135N,  782W,  25, 1003, LO,   0,    ,    0,    0,    0,    0, 1008,  225,  75,  35,   0,   L,   0,    ,   0,   0,     INVEST, M,
AL, 18, 2012102212,   , BEST,   0, 131N,  786W,  30, 1002, TD,   0,    ,    0,    0,    0,    0, 1007,  250,  75,   0,   0,   L,   0,    ,   0,   0,   EIGHTEEN, M,
AL, 18, 2012102218,   , BEST,   0, 127N,  787W,  35, 1000, TS,  34, NEQ,   50,   60,    0,    0, 1007,  250,  60,  45,   0,   L,   0,    ,   0,   0,   EIGHTEEN, M,
AL, 18, 2012102300,   , BEST,   0, 126N,  784W,  40,  998, TS,  34, NEQ,   50,   60,    0,    0, 1007,  250,  40,  50,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,   60,   60,    0,    0
AL, 18, 2012102306,   , BEST,   0, 129N,  781W,  40,  998, TS,  34, NEQ,   70,   80,    0,    0, 1005,  240,  60,  50,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,   60,   45,    0,   45
AL, 18, 2012102312,   , BEST,   0, 134N,  779W,  40,  995, TS,  34, NEQ,  100,  100,    0,    0, 1005,  240,  60,  55,   0,   L,   0,    ,   0,   0,      SANDY, M,
AL, 18, 2012102318,   , BEST,   0, 140N,  776W,  45,  993, TS,  34, NEQ,  100,  120,    0,    0, 1005,  240,  60,  55,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,   75,   60,    0,   50
AL, 18, 2012102400,   , BEST,   0, 147N,  773W,  55,  990, TS,  34, NEQ,  100,  150,   40,   40, 1007,  300,  60,  60,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,   90,   90,    0,   50
AL, 18, 2012102400,   , BEST,   0, 147N,  773W,  55,  990, TS,  50, NEQ,    0,   70,    0,    0, 1007,  300,  60,  60,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,   90,   90,    0,   50
AL, 18, 2012102406,   , BEST,   0, 156N,  771W,  60,  987, TS,  34, NEQ,  100,  150,   50,   50, 1007,  300,  45,  65,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  180,    0,    0
AL, 18, 2012102406,   , BEST,   0, 156N,  771W,  60,  987, TS,  50, NEQ,   50,   70,   20,   20, 1007,  300,  45,  65,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  180,    0,    0
AL, 18, 2012102412,   , BEST,   0, 166N,  769W,  65,  981, HU,  34, NEQ,  120,  160,   70,   70, 1006,  285,  40,  75,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  180,   45,  100
AL, 18, 2012102412,   , BEST,   0, 166N,  769W,  65,  981, HU,  50, NEQ,   50,   60,   40,   30, 1006,  285,  40,  75,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  180,   45,  100
AL, 18, 2012102412,   , BEST,   0, 166N,  769W,  65,  981, HU,  64, NEQ,   20,   20,    0,    0, 1006,  285,  40,  75,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  180,   45,  100
AL, 18, 2012102418,   , BEST,   0, 177N,  767W,  75,  972, HU,  34, NEQ,  150,  180,   70,   70, 1005,  290,  25,  85,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102418,   , BEST,   0, 177N,  767W,  75,  972, HU,  50, NEQ,   50,   60,   40,   40, 1005,  290,  25,  85,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102418,   , BEST,   0, 177N,  767W,  75,  972, HU,  64, NEQ,   25,   30,   20,   25, 1005,  290,  25,  85,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102419,   , BEST,   0, 179N,  766W,  75,  971, HU,  34, NEQ,  150,  180,   70,   70,
AL, 18, 2012102419,   , BEST,   0, 179N,  766W,  75,  971, HU,  50, NEQ,   50,   60,   40,   40,
AL, 18, 2012102419,   , BEST,   0, 179N,  766W,  75,  971, HU,  64, NEQ,   25,   30,   20,   25,
AL, 18, 2012102500,   , BEST,   0, 189N,  764W,  85,  964, HU,  34, NEQ,  180,  240,   70,   70, 1005,  300,  15, 100,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102500,   , BEST,   0, 189N,  764W,  85,  964, HU,  50, NEQ,   50,   60,   40,   40, 1005,  300,  15, 100,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102500,   , BEST,   0, 189N,  764W,  85,  964, HU,  64, NEQ,   30,   30,   25,   25, 1005,  300,  15, 100,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102505, 25, BEST,   0, 200N,  760W, 100,  954, HU,  34, NEQ,  240,  240,   70,  120,
AL, 18, 2012102505, 25, BEST,   0, 200N,  760W, 100,  954, HU,  50, NEQ,   50,   60,   40,   40,
AL, 18, 2012102505, 25, BEST,   0, 200N,  760W, 100,  954, HU,  64, NEQ,   30,   30,   25,   25,
AL, 18, 2012102506,   , BEST,   0, 201N,  760W, 100,  954, HU,  34, NEQ,  240,  240,   70,  120, 1005,  300,  10, 115,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  120,  300,  120,  120
AL, 18, 2012102506,   , BEST,   0, 201N,  760W, 100,  954, HU,  50, NEQ,   50,   60,   40,   40, 1005,  300,  10, 115,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  120,  300,  120,  120
AL, 18, 2012102506,   , BEST,   0, 201N,  760W, 100,  954, HU,  64, NEQ,   25,   20,   20,   20, 1005,  300,  10, 115,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  120,  300,  120,  120
AL, 18, 2012102509,   , BEST,   0, 209N,  757W,  95,  960, HU,  34, NEQ,  240,  240,   70,  180,
AL, 18, 2012102509,   , BEST,   0, 209N,  757W,  95,  960, HU,  50, NEQ,   50,   60,   40,   40,
AL, 18, 2012102509,   , BEST,   0, 209N,  757W,  95,  960, HU,  64, NEQ,   25,   20,   20,   20,
AL, 18, 2012102512,   , BEST,   0, 217N,  755W,  95,  966, HU,  34, NEQ,  240,  240,   70,  240, 1005,  320,  20, 110,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  180,  360,  120,  180
AL, 18, 2012102512,   , BEST,   0, 217N,  755W,  95,  966, HU,  50, NEQ,   60,   60,   40,   50, 1005,  320,  20, 110,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  180,  360,  120,  180
AL, 18, 2012102512,   , BEST,   0, 217N,  755W,  95,  966, HU,  64, NEQ,   30,   30,   20,   20, 1005,  320,  20, 110,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  180,  360,  120,  180
AL, 18, 2012102518,   , BEST,   0, 233N,  753W,  90,  963, HU,  34, NEQ,  270,  270,  120,  270, 1005,  350,  20, 110,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  360,  270,    0,  180
AL, 18, 2012102518,   , BEST,   0, 233N,  753W,  90,  963, HU,  50, NEQ,   60,   60,   40,   50, 1005,  350,  20, 110,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  360,  270,    0,  180
AL, 18, 2012102518,   , BEST,   0, 233N,  753W,  90,  963, HU,  64, NEQ,   30,   30,   20,   20, 1005,  350,  20, 110,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  360,  270,    0,  180
AL, 18, 2012102600,   , BEST,   0, 248N,  759W,  75,  965, HU,  34, NEQ,  300,  300,  160,  270, 1007,  375,  20, 105,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  300,   60,  180
AL, 18, 2012102600,   , BEST,   0, 248N,  759W,  75,  965, HU,  50, NEQ,   70,   60,   40,   60, 1007,  375,  20, 105,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  300,   60,  180
AL, 18, 2012102600,   , BEST,   0, 248N,  759W,  75,  965, HU,  64, NEQ,   30,   30,   20,   30, 1007,  375,  20, 105,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  300,   60,  180
AL, 18, 2012102606,   , BEST,   0, 257N,  764W,  70,  968, HU,  34, NEQ,  300,  300,  160,  240, 1006,  380,  30,  90,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  360,  120,  300
AL, 18, 2012102606,   , BEST,   0, 257N,  764W,  70,  968, HU,  50, NEQ,   90,   70,   50,   70, 1006,  380,  30,  90,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  360,  120,  300
AL, 18, 2012102606,   , BEST,   0, 257N,  764W,  70,  968, HU,  64, NEQ,   30,   20,    0,   60, 1006,  380,  30,  90,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  360,  120,  300
AL, 18, 2012102612,   , BEST,   0, 264N,  769W,  65,  970, HU,  34, NEQ,  360,  240,  170,  240, 1008,  420,  70,  85,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  360,  180,  330
AL, 18, 2012102612,   , BEST,   0, 264N,  769W,  65,  970, HU,  50, NEQ,   90,   80,   90,  120, 1008,  420,  70,  85,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  360,  180,  330
AL, 18, 2012102612,   , BEST,   0, 264N,  769W,  65,  970, HU,  64, NEQ,    0,    0,    0,   90, 1008,  420,  70,  85,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  360,  180,  330
AL, 18, 2012102618,   , BEST,   0, 270N,  772W,  65,  971, HU,  34, NEQ,  400,  210,  170,  240, 1008,  420,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  520,  270,  330
AL, 18, 2012102618,   , BEST,   0, 270N,  772W,  65,  971, HU,  50, NEQ,   60,   70,   90,  140, 1008,  420,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  520,  270,  330
AL, 18, 2012102618,   , BEST,   0, 270N,  772W,  65,  971, HU,  64, NEQ,    0,    0,    0,   90, 1008,  420,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  520,  270,  330
AL, 18, 2012102700,   , BEST,   0, 275N,  771W,  60,  969, TS,  34, NEQ,  450,  210,  180,  270, 1008,  450,  60,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  540,  240,  330
AL, 18, 2012102700,   , BEST,   0, 275N,  771W,  60,  969, TS,  50, NEQ,    0,    0,  120,  160, 1008,  450,  60,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  540,  240,  330
AL, 18, 2012102706,   , BEST,   0, 281N,  769W,  60,  968, TS,  34, NEQ,  450,  260,  180,  280, 1008,  460,  70,  75,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  510,  600,  300,  330
AL, 18, 2012102706,   , BEST,   0, 281N,  769W,  60,  968, TS,  50, NEQ,    0,    0,  120,  160, 1008,  460,  70,  75,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  510,  600,  300,  330
AL, 18, 2012102712,   , BEST,   0, 288N,  765W,  70,  956, HU,  34, NEQ,  450,  300,  210,  280, 1008,  460,  75,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  510,  600,  300,  330
AL, 18, 2012102712,   , BEST,   0, 288N,  765W,  70,  956, HU,  50, NEQ,   30,  120,  160,  200, 1008,  460,  75,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  510,  600,  300,  330
AL, 18, 2012102712,   , BEST,   0, 288N,  765W,  70,  956, HU,  64, NEQ,    0,    0,  120,  120, 1008,  460,  75,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  510,  600,  300,  330
AL, 18, 2012102718,   , BEST,   0, 297N,  756W,  70,  960, HU,  34, NEQ,  450,  300,  240,  280, 1006,  480,  75,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  575,  600,  270,  330
AL, 18, 2012102718,   , BEST,   0, 297N,  756W,  70,  960, HU,  50, NEQ,   30,  150,  180,  200, 1006,  480,  75,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  575,  600,  270,  330
AL, 18, 2012102718,   , BEST,   0, 297N,  756W,  70,  960, HU,  64, NEQ,    0,    0,  150,  180, 1006,  480,  75,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  575,  600,  270,  330
AL, 18, 2012102800,   , BEST,   0, 305N,  747W,  65,  960, HU,  34, NEQ,  480,  300,  300,  280, 1006,  480,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  630,  360,  330
AL, 18, 2012102800,   , BEST,   0, 305N,  747W,  65,  960, HU,  50, NEQ,   30,  180,  180,  210, 1006,  480,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  630,  360,  330
AL, 18, 2012102800,   , BEST,   0, 305N,  747W,  65,  960, HU,  64, NEQ,    0,    0,  150,  180, 1006,  480,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  630,  360,  330
AL, 18, 2012102806,   , BEST,   0, 313N,  739W,  65,  959, HU,  34, NEQ,  450,  300,  300,  270, 1006,  480,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  630,  390,  300
AL, 18, 2012102806,   , BEST,   0, 313N,  739W,  65,  959, HU,  50, NEQ,    0,  180,  180,  210, 1006,  480,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  630,  390,  300
AL, 18, 2012102806,   , BEST,   0, 313N,  739W,  65,  959, HU,  64, NEQ,    0,    0,  150,  180, 1006,  480,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  630,  390,  300
AL, 18, 2012102812,   , BEST,   0, 320N,  730W,  65,  954, HU,  34, NEQ,  450,  300,  300,  270, 1006,  480, 100,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  600,  420,  270
AL, 18, 2012102812,   , BEST,   0, 320N,  730W,  65,  954, HU,  50, NEQ,    0,  150,  200,  210, 1006,  480, 100,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  600,  420,  270
AL, 18, 2012102812,   , BEST,   0, 320N,  730W,  65,  954, HU,  64, NEQ,    0,    0,  150,  180, 1006,  480, 100,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  600,  420,  270
AL, 18, 2012102818,   , BEST,   0, 328N,  720W,  65,  952, HU,  34, NEQ,  450,  300,  350,  270, 1006,  500, 120,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  460,  270
AL, 18, 2012102818,   , BEST,   0, 328N,  720W,  65,  952, HU,  50, NEQ,    0,  150,  200,  210, 1006,  500, 120,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  460,  270
AL, 18, 2012102818,   , BEST,   0, 328N,  720W,  65,  952, HU,  64, NEQ,    0,    0,  150,  180, 1006,  500, 120,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  460,  270
AL, 18, 2012102900,   , BEST,   0, 339N,  710W,  70,  950, HU,  34, NEQ,  450,  300,  400,  270, 1004,  500, 120,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  660,  480
AL, 18, 2012102900,   , BEST,   0, 339N,  710W,  70,  950, HU,  50, NEQ,  150,  150,  200,  200, 1004,  500, 120,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  660,  480
AL, 18, 2012102900,   , BEST,   0, 339N,  710W,  70,  950, HU,  64, NEQ,    0,    0,  150,    0, 1004,  500, 120,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  660,  480
AL, 18, 2012102906,   , BEST,   0, 353N,  705W,  80,  947, HU,  34, NEQ,  420,  360,  450,  270, 1004,  500, 100,  90,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  660,  480
AL, 18, 2012102906,   , BEST,   0, 353N,  705W,  80,  947, HU,  50, NEQ,  150,  150,  200,  180, 1004,  500, 100,  90,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  660,  480
AL, 18, 2012102906,   , BEST,   0, 353N,  705W,  80,  947, HU,  64, NEQ,    0,    0,  150,    0, 1004,  500, 100,  90,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  660,  480
AL, 18, 2012102912,   , BEST,   0, 369N,  710W,  85,  945, HU,  34, NEQ,  420,  420,  400,  270, 1004,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  720,  660,  480
AL, 18, 2012102912,   , BEST,   0, 369N,  710W,  85,  945, HU,  50, NEQ,  200,  150,  200,  180, 1004,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  720,  660,  480
AL, 18, 2012102912,   , BEST,   0, 369N,  710W,  85,  945, HU,  64, NEQ,    0,   70,  120,    0, 1004,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  720,  660,  480
AL, 18, 2012102918,   , BEST,   0, 383N,  732W,  80,  940, HU,  34, NEQ,  420,  420,  400,  420, 1004,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
AL, 18, 2012102918,   , BEST,   0, 383N,  732W,  80,  940, HU,  50, NEQ,  220,  150,  200,  150, 1004,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
AL, 18, 2012102918,   , BEST,   0, 383N,  732W,  80,  940, HU,  64, NEQ,  180,   80,  120,    0, 1004,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
AL, 18, 2012102921,   , BEST,   0, 388N,  740W,  75,  943, EX,  34, NEQ,  420,  420,  400,  420,
AL, 18, 2012102921,   , BEST,   0, 388N,  740W,  75,  943, EX,  50, NEQ,  220,  150,  200,  150,
AL, 18, 2012102921,   , BEST,   0, 388N,  740W,  75,  943, EX,  64, NEQ,  180,   80,  120,    0,
AL, 18, 2012102923, 30, BEST,   0, 394N,  744W,  70,  945, EX,  34, NEQ,  460,  370,  400,  490,
AL, 18, 2012102923, 30, BEST,   0, 394N,  744W,  70,  945, EX,  50, NEQ,  180,  150,   80,   50,
AL, 18, 2012102923, 30, BEST,   0, 394N,  744W,  70,  945, EX,  64, NEQ,   70,   80,   60,    0,
AL, 18, 2012103000,   , BEST,   0, 395N,  745W,  70,  946, EX,  34, NEQ,  460,  370,  400,  490, 1006,  525,  80,  85,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  660,  995,  660,  180
AL, 18, 2012103000,   , BEST,   0, 395N,  745W,  70,  946, EX,  50, NEQ,  150,  150,   80,   50, 1006,  525,  80,  85,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  660,  995,  660,  180
AL, 18, 2012103000,   , BEST,   0, 395N,  745W,  70,  946, EX,  64, NEQ,   65,    0,    0,    0, 1006,  525,  80,  85,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  660,  995,  660,  180
AL, 18, 2012103006,   , BEST,   0, 399N,  762W,  55,  960, EX,  34, NEQ,  450,  400,  160,  530, 1006,  480,  80,  75,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  995,  600,    0
AL, 18, 2012103006,   , BEST,   0, 399N,  762W,  55,  960, EX,  50, NEQ,  150,  150,   30,   30, 1006,  480,  80,  75,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  995,  600,    0
AL, 18, 2012103012,   , BEST,   0, 401N,  778W,  50,  978, EX,  34, NEQ,  450,  490,    0,  500, 1006,  480,  30,   0,   0,   L,   0,    ,   0,   0,      SANDY, M,
AL, 18, 2012103012,   , BEST,   0, 401N,  778W,  50,  978, EX,  50, NEQ,    0,    0,    0,  260, 1006,  480,  30,   0,   0,   L,   0,    ,   0,   0,      SANDY, M,
AL, 18, 2012103018,   , BEST,   0, 404N,  789W,  40,  986, EX,  34, NEQ,    0,  530,    0,  430, 1006,  480,  30,  50,   0,   L,   0,    ,   0,   0,      SANDY, M,
AL, 18, 2012103100,   , BEST,   0, 407N,  798W,  35,  992, EX,  34, NEQ,    0,    0,    0,  410,
AL, 18, 2012103106,   , BEST,   0, 411N,  803W,  35,  993, EX,  34, NEQ,    0,    0,    0,  380,
AL, 18, 2012103112,   , BEST,   0, 415N,  807W,  30,  995, EX,   0,    ,    0,    0,    0,    0,

The corresponding OFCL file for advisory 31 was as follows:

AL, 18, 2012103003,   , OFCL,   0, 398N,  754W,  65,  952,   ,  34, NEQ,  420,  360,  200,  140,    0,    0,   0,  80,   0,    ,   0, TBK, 305,  16,     SANDY ,  , 12, NEQ,  60,  60,   0,   0
AL, 18, 2012103003,   , OFCL,   0, 398N,  754W,  65,  952,   ,  50, NEQ,  150,  150,   80,   50,    0,    0,   0,  80,   0,    ,   0, TBK, 305,  16,     SANDY ,  , 12, NEQ,  60,  60,   0,   0
AL, 18, 2012103003,   , OFCL,   0, 398N,  754W,  65,  952,   ,  64, NEQ,    0,   80,    0,    0,    0,    0,   0,  80,   0,    ,   0, TBK, 305,  16,     SANDY ,  , 12, NEQ,  60,  60,   0,   0
AL, 18, 2012103003,   , OFCL,   9, 405N,  772W,  55,    0,   ,  34, NEQ,  360,  360,  100,   60,    0,    0,   0,  65,   0,    ,   0, TBK,  65,  17,     SANDY ,  , 12, NEQ,  60,  60,   0,   0
AL, 18, 2012103003,   , OFCL,   9, 405N,  772W,  55,    0,   ,  50, NEQ,    0,  180,    0,    0,    0,    0,   0,  65,   0,    ,   0, TBK,  65,  17,     SANDY ,  , 12, NEQ,  60,  60,   0,   0
AL, 18, 2012103003,   , OFCL,  21, 413N,  783W,  40,    0,   ,  34, NEQ,    0,  360,    0,    0,    0,    0,   0,  50,   0,    ,   0, TBK,  65,  17,     SANDY ,  , 12, NEQ,  60,  60,   0,   0
AL, 18, 2012103003,   , OFCL,  33, 426N,  779W,  30,    0,   ,  34, NEQ,    0,    0,    0,    0,    0,    0,   0,  40,   0,    ,   0, TBK,  65,  17,     SANDY ,  , 12, NEQ,  60,  60,   0,   0
AL, 18, 2012103003,   , OFCL,  45, 440N,  769W,  25,    0,   ,  34, NEQ,    0,    0,    0,    0,    0,    0,   0,  35,   0,    ,   0, TBK,  65,  17,     SANDY ,  , 12, NEQ,  60,  60,   0,   0
AL, 18, 2012103003,   , OFCL,  69, 465N,  745W,  25,    0,   ,  34, NEQ,    0,    0,    0,    0,    0,    0,   0,  35,   0,    ,   0, TBK,  65,  17,     SANDY ,  , 12, NEQ,  60,  60,   0,   0
AL, 18, 2012103003,   , OFCL,  93, 485N,  705W,  25,    0,   ,  34, NEQ,    0,    0,    0,    0,    0,    0,   0,  35,   0,    ,   0, TBK,  65,  17,     SANDY ,  , 12, NEQ,  60,  60,   0,   0
AL, 18, 2012103003,   , OFCL, 117, 485N,  705W,  25,    0,   ,  34, NEQ,    0,    0,    0,    0,    0,    0,   0,  35,   0,    ,   0, TBK,  65,  17,     SANDY ,  , 12, NEQ,  60,  60,   0,   0

The ASGS script storm_track_gen.pl consumed these files and produced the following error messages in the process (verbatim from the ASGS log file):

[2022-Nov-22-T11:53:17-0600] INFO: nowcast: asgs_main.sh: Generating ADCIRC Met File (fort.22) for nowcast with the following options: --dir /work/jgflemin/asgs1316487/31 --storm 18 --year 2012 --name nowcast --nws 320 --hotstartseconds 2592000.00000000 --coldstartdate 2012092400 --strengthPercent null.
INFO: storm_track_gen.pl: The fort.22 will be configured to start on 2012102400 UTC.
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 20 in the hindcast file is incomplete: AL, 18, 2012102419,   , BEST,   0, 179N,  766W,  75,  971, HU,  34, NEQ,  150,  180,   70,   70,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102419,   , BEST,   0, 179N,  766W,  75,  971, HU,  34, NEQ,  150,  180,   70,   70,
005,  290,  25,  85,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 21 in the hindcast file is incomplete: AL, 18, 2012102419,   , BEST,   0, 179N,  766W,  75,  971, HU,  50, NEQ,   50,   60,   40,   40,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102419,   , BEST,   0, 179N,  766W,  75,  971, HU,  50, NEQ,   50,   60,   40,   40,
005,  290,  25,  85,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 22 in the hindcast file is incomplete: AL, 18, 2012102419,   , BEST,   0, 179N,  766W,  75,  971, HU,  64, NEQ,   25,   30,   20,   25,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102419,   , BEST,   0, 179N,  766W,  75,  971, HU,  64, NEQ,   25,   30,   20,   25,
005,  290,  25,  85,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 26 in the hindcast file is incomplete: AL, 18, 2012102505, 25, BEST,   0, 200N,  760W, 100,  954, HU,  34, NEQ,  240,  240,   70,  120,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102505, 25, BEST,   0, 200N,  760W, 100,  954, HU,  34, NEQ,  240,  240,   70,  120,
005,  300,  15, 100,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 27 in the hindcast file is incomplete: AL, 18, 2012102505, 25, BEST,   0, 200N,  760W, 100,  954, HU,  50, NEQ,   50,   60,   40,   40,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102505, 25, BEST,   0, 200N,  760W, 100,  954, HU,  50, NEQ,   50,   60,   40,   40,
005,  300,  15, 100,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 28 in the hindcast file is incomplete: AL, 18, 2012102505, 25, BEST,   0, 200N,  760W, 100,  954, HU,  64, NEQ,   30,   30,   25,   25,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102505, 25, BEST,   0, 200N,  760W, 100,  954, HU,  64, NEQ,   30,   30,   25,   25,
005,  300,  15, 100,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 32 in the hindcast file is incomplete: AL, 18, 2012102509,   , BEST,   0, 209N,  757W,  95,  960, HU,  34, NEQ,  240,  240,   70,  180,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102509,   , BEST,   0, 209N,  757W,  95,  960, HU,  34, NEQ,  240,  240,   70,  180,
005,  300,  10, 115,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  120,  300,  120,  120
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 33 in the hindcast file is incomplete: AL, 18, 2012102509,   , BEST,   0, 209N,  757W,  95,  960, HU,  50, NEQ,   50,   60,   40,   40,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102509,   , BEST,   0, 209N,  757W,  95,  960, HU,  50, NEQ,   50,   60,   40,   40,
005,  300,  10, 115,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  120,  300,  120,  120
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 34 in the hindcast file is incomplete: AL, 18, 2012102509,   , BEST,   0, 209N,  757W,  95,  960, HU,  64, NEQ,   25,   20,   20,   20,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102509,   , BEST,   0, 209N,  757W,  95,  960, HU,  64, NEQ,   25,   20,   20,   20,
005,  300,  10, 115,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  120,  300,  120,  120
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 87 in the hindcast file is incomplete: AL, 18, 2012102921,   , BEST,   0, 388N,  740W,  75,  943, EX,  34, NEQ,  420,  420,  400,  420,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102921,   , BEST,   0, 388N,  740W,  75,  943, EX,  34, NEQ,  420,  420,  400,  420,
004,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 88 in the hindcast file is incomplete: AL, 18, 2012102921,   , BEST,   0, 388N,  740W,  75,  943, EX,  50, NEQ,  220,  150,  200,  150,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102921,   , BEST,   0, 388N,  740W,  75,  943, EX,  50, NEQ,  220,  150,  200,  150,
004,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 89 in the hindcast file is incomplete: AL, 18, 2012102921,   , BEST,   0, 388N,  740W,  75,  943, EX,  64, NEQ,  180,   80,  120,    0,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102921,   , BEST,   0, 388N,  740W,  75,  943, EX,  64, NEQ,  180,   80,  120,    0,
004,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 90 in the hindcast file is incomplete: AL, 18, 2012102923, 30, BEST,   0, 394N,  744W,  70,  945, EX,  34, NEQ,  460,  370,  400,  490,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102923, 30, BEST,   0, 394N,  744W,  70,  945, EX,  34, NEQ,  460,  370,  400,  490,
004,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 91 in the hindcast file is incomplete: AL, 18, 2012102923, 30, BEST,   0, 394N,  744W,  70,  945, EX,  50, NEQ,  180,  150,   80,   50,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102923, 30, BEST,   0, 394N,  744W,  70,  945, EX,  50, NEQ,  180,  150,   80,   50,
004,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 92 in the hindcast file is incomplete: AL, 18, 2012102923, 30, BEST,   0, 394N,  744W,  70,  945, EX,  64, NEQ,   70,   80,   60,    0,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012102923, 30, BEST,   0, 394N,  744W,  70,  945, EX,  64, NEQ,   70,   80,   60,    0,
004,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 101 in the hindcast file is incomplete: AL, 18, 2012103100,   , BEST,   0, 407N,  798W,  35,  992, EX,  34, NEQ,    0,    0,    0,  410,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012103100,   , BEST,   0, 407N,  798W,  35,  992, EX,  34, NEQ,    0,    0,    0,  410,
006,  480,  30,  50,   0,   L,   0,    ,   0,   0,      SANDY, M,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 102 in the hindcast file is incomplete: AL, 18, 2012103106,   , BEST,   0, 411N,  803W,  35,  993, EX,  34, NEQ,    0,    0,    0,  380,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012103106,   , BEST,   0, 411N,  803W,  35,  993, EX,  34, NEQ,    0,    0,    0,  380,
006,  480,  30,  50,   0,   L,   0,    ,   0,   0,      SANDY, M,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: Line 103 in the hindcast file is incomplete: AL, 18, 2012103112,   , BEST,   0, 415N,  807W,  30,  995, EX,   0,    ,    0,    0,    0,    0,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: The incomplete line could not be filled in with data from prior lines, and will be dropped.

To summarize for brevity, the "offending" lines are as follows, based on the WARNING messages above:

Lines 20--22
AL, 18, 2012102419,   , BEST,   0, 179N,  766W,  75,  971, HU,  34, NEQ,  150,  180,   70,   70,
AL, 18, 2012102419,   , BEST,   0, 179N,  766W,  75,  971, HU,  50, NEQ,   50,   60,   40,   40,
AL, 18, 2012102419,   , BEST,   0, 179N,  766W,  75,  971, HU,  64, NEQ,   25,   30,   20,   25,
Lines 26--28
AL, 18, 2012102505, 25, BEST,   0, 200N,  760W, 100,  954, HU,  34, NEQ,  240,  240,   70,  120,
AL, 18, 2012102505, 25, BEST,   0, 200N,  760W, 100,  954, HU,  50, NEQ,   50,   60,   40,   40,
AL, 18, 2012102505, 25, BEST,   0, 200N,  760W, 100,  954, HU,  64, NEQ,   30,   30,   25,   25,
Lines 32--34
AL, 18, 2012102509,   , BEST,   0, 209N,  757W,  95,  960, HU,  34, NEQ,  240,  240,   70,  180,
AL, 18, 2012102509,   , BEST,   0, 209N,  757W,  95,  960, HU,  50, NEQ,   50,   60,   40,   40,
AL, 18, 2012102509,   , BEST,   0, 209N,  757W,  95,  960, HU,  64, NEQ,   25,   20,   20,   20,
Lines 87--89
AL, 18, 2012102921,   , BEST,   0, 388N,  740W,  75,  943, EX,  34, NEQ,  420,  420,  400,  420,
AL, 18, 2012102921,   , BEST,   0, 388N,  740W,  75,  943, EX,  50, NEQ,  220,  150,  200,  150,
AL, 18, 2012102921,   , BEST,   0, 388N,  740W,  75,  943, EX,  64, NEQ,  180,   80,  120,    0,
Lines 90--92
AL, 18, 2012102923, 30, BEST,   0, 394N,  744W,  70,  945, EX,  34, NEQ,  460,  370,  400,  490,
AL, 18, 2012102923, 30, BEST,   0, 394N,  744W,  70,  945, EX,  50, NEQ,  180,  150,   80,   50,
AL, 18, 2012102923, 30, BEST,   0, 394N,  744W,  70,  945, EX,  64, NEQ,   70,   80,   60,    0,
Lines 101--103
AL, 18, 2012103100,   , BEST,   0, 407N,  798W,  35,  992, EX,  34, NEQ,    0,    0,    0,  410,
AL, 18, 2012103106,   , BEST,   0, 411N,  803W,  35,  993, EX,  34, NEQ,    0,    0,    0,  380,
AL, 18, 2012103112,   , BEST,   0, 415N,  807W,  30,  995, EX,   0,    ,    0,    0,    0,    0,
[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: The incomplete line could not be filled in with data from prior lines, and will be dropped.

All lines except the last one produced a WARNING message like the following:

[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: That line will be replaced with the following line: AL, 18, 2012103106,   , BEST,   0, 411N,  803W,  35,  993, EX,  34, NEQ,    0,    0,    0,  380,

In contrast, the final line, 103, produced the following error message:

[2022-Nov-22-T11:53:17] WARNING: nowcast: storm_track_gen.pl: The incomplete line could not be filled in with data from prior lines, and will be dropped.

The storm_track_gen.pl generated the following "original" fort.22 file which was then fed into aswip:

AL, 18, 2012102400,   , BEST,   0, 147N,  773W,  55,  990, TS,  34, NEQ,  100,  150,   40,   40, 1013,  300,  60,  60,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,   90,   90,    0,   50
AL, 18, 2012102400,   , BEST,   0, 147N,  773W,  55,  990, TS,  50, NEQ,    0,   70,    0,    0, 1013,  300,  60,  60,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,   90,   90,    0,   50
AL, 18, 2012102406,   , BEST,   6, 156N,  771W,  60,  987, TS,  34, NEQ,  100,  150,   50,   50, 1013,  300,  45,  65,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  180,    0,    0
AL, 18, 2012102406,   , BEST,   6, 156N,  771W,  60,  987, TS,  50, NEQ,   50,   70,   20,   20, 1013,  300,  45,  65,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  180,    0,    0
AL, 18, 2012102412,   , BEST,  12, 166N,  769W,  65,  981, HU,  34, NEQ,  120,  160,   70,   70, 1013,  285,  40,  75,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  180,   45,  100
AL, 18, 2012102412,   , BEST,  12, 166N,  769W,  65,  981, HU,  50, NEQ,   50,   60,   40,   30, 1013,  285,  40,  75,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  180,   45,  100
AL, 18, 2012102412,   , BEST,  12, 166N,  769W,  65,  981, HU,  64, NEQ,   20,   20,    0,    0, 1013,  285,  40,  75,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  180,   45,  100
AL, 18, 2012102418,   , BEST,  18, 177N,  767W,  75,  972, HU,  34, NEQ,  150,  180,   70,   70, 1013,  290,  25,  85,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102418,   , BEST,  18, 177N,  767W,  75,  972, HU,  50, NEQ,   50,   60,   40,   40, 1013,  290,  25,  85,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102418,   , BEST,  18, 177N,  767W,  75,  972, HU,  64, NEQ,   25,   30,   20,   25, 1013,  290,  25,  85,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102419,   , BEST,  19, 179N,  766W,  75,  971, HU,  34, NEQ,  150,  180,   70,   70, 1013,  290,  25,  85,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102419,   , BEST,  19, 179N,  766W,  75,  971, HU,  50, NEQ,   50,   60,   40,   40, 1013,  290,  25,  85,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102419,   , BEST,  19, 179N,  766W,  75,  971, HU,  64, NEQ,   25,   30,   20,   25, 1013,  290,  25,  85,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102500,   , BEST,  24, 189N,  764W,  85,  964, HU,  34, NEQ,  180,  240,   70,   70, 1013,  300,  15, 100,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102500,   , BEST,  24, 189N,  764W,  85,  964, HU,  50, NEQ,   50,   60,   40,   40, 1013,  300,  15, 100,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102500,   , BEST,  24, 189N,  764W,  85,  964, HU,  64, NEQ,   30,   30,   25,   25, 1013,  300,  15, 100,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102505, 25, BEST,  29, 200N,  760W, 100,  954, HU,  34, NEQ,  240,  240,   70,  120, 1013,  300,  15, 100,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102505, 25, BEST,  29, 200N,  760W, 100,  954, HU,  50, NEQ,   50,   60,   40,   40, 1013,  300,  15, 100,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102505, 25, BEST,  29, 200N,  760W, 100,  954, HU,  64, NEQ,   30,   30,   25,   25, 1013,  300,  15, 100,   0,   L,   0,    ,   0,   0,      SANDY, M, 12, NEQ,  180,  240,    0,   90
AL, 18, 2012102506,   , BEST,  30, 201N,  760W, 100,  954, HU,  34, NEQ,  240,  240,   70,  120, 1013,  300,  10, 115,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  120,  300,  120,  120
AL, 18, 2012102506,   , BEST,  30, 201N,  760W, 100,  954, HU,  50, NEQ,   50,   60,   40,   40, 1013,  300,  10, 115,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  120,  300,  120,  120
AL, 18, 2012102506,   , BEST,  30, 201N,  760W, 100,  954, HU,  64, NEQ,   25,   20,   20,   20, 1013,  300,  10, 115,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  120,  300,  120,  120
AL, 18, 2012102509,   , BEST,  33, 209N,  757W,  95,  960, HU,  34, NEQ,  240,  240,   70,  180, 1013,  300,  10, 115,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  120,  300,  120,  120
AL, 18, 2012102509,   , BEST,  33, 209N,  757W,  95,  960, HU,  50, NEQ,   50,   60,   40,   40, 1013,  300,  10, 115,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  120,  300,  120,  120
AL, 18, 2012102509,   , BEST,  33, 209N,  757W,  95,  960, HU,  64, NEQ,   25,   20,   20,   20, 1013,  300,  10, 115,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  120,  300,  120,  120
AL, 18, 2012102512,   , BEST,  36, 217N,  755W,  95,  966, HU,  34, NEQ,  240,  240,   70,  240, 1013,  320,  20, 110,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  180,  360,  120,  180
AL, 18, 2012102512,   , BEST,  36, 217N,  755W,  95,  966, HU,  50, NEQ,   60,   60,   40,   50, 1013,  320,  20, 110,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  180,  360,  120,  180
AL, 18, 2012102512,   , BEST,  36, 217N,  755W,  95,  966, HU,  64, NEQ,   30,   30,   20,   20, 1013,  320,  20, 110,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  180,  360,  120,  180
AL, 18, 2012102518,   , BEST,  42, 233N,  753W,  90,  963, HU,  34, NEQ,  270,  270,  120,  270, 1013,  350,  20, 110,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  360,  270,    0,  180
AL, 18, 2012102518,   , BEST,  42, 233N,  753W,  90,  963, HU,  50, NEQ,   60,   60,   40,   50, 1013,  350,  20, 110,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  360,  270,    0,  180
AL, 18, 2012102518,   , BEST,  42, 233N,  753W,  90,  963, HU,  64, NEQ,   30,   30,   20,   20, 1013,  350,  20, 110,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  360,  270,    0,  180
AL, 18, 2012102600,   , BEST,  48, 248N,  759W,  75,  965, HU,  34, NEQ,  300,  300,  160,  270, 1013,  375,  20, 105,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  300,   60,  180
AL, 18, 2012102600,   , BEST,  48, 248N,  759W,  75,  965, HU,  50, NEQ,   70,   60,   40,   60, 1013,  375,  20, 105,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  300,   60,  180
AL, 18, 2012102600,   , BEST,  48, 248N,  759W,  75,  965, HU,  64, NEQ,   30,   30,   20,   30, 1013,  375,  20, 105,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  300,   60,  180
AL, 18, 2012102606,   , BEST,  54, 257N,  764W,  70,  968, HU,  34, NEQ,  300,  300,  160,  240, 1013,  380,  30,  90,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  360,  120,  300
AL, 18, 2012102606,   , BEST,  54, 257N,  764W,  70,  968, HU,  50, NEQ,   90,   70,   50,   70, 1013,  380,  30,  90,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  360,  120,  300
AL, 18, 2012102606,   , BEST,  54, 257N,  764W,  70,  968, HU,  64, NEQ,   30,   20,    0,   60, 1013,  380,  30,  90,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  360,  120,  300
AL, 18, 2012102612,   , BEST,  60, 264N,  769W,  65,  970, HU,  34, NEQ,  360,  240,  170,  240, 1013,  420,  70,  85,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  360,  180,  330
AL, 18, 2012102612,   , BEST,  60, 264N,  769W,  65,  970, HU,  50, NEQ,   90,   80,   90,  120, 1013,  420,  70,  85,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  360,  180,  330
AL, 18, 2012102612,   , BEST,  60, 264N,  769W,  65,  970, HU,  64, NEQ,    0,    0,    0,   90, 1013,  420,  70,  85,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  420,  360,  180,  330
AL, 18, 2012102618,   , BEST,  66, 270N,  772W,  65,  971, HU,  34, NEQ,  400,  210,  170,  240, 1013,  420,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  520,  270,  330
AL, 18, 2012102618,   , BEST,  66, 270N,  772W,  65,  971, HU,  50, NEQ,   60,   70,   90,  140, 1013,  420,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  520,  270,  330
AL, 18, 2012102618,   , BEST,  66, 270N,  772W,  65,  971, HU,  64, NEQ,    0,    0,    0,   90, 1013,  420,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  520,  270,  330
AL, 18, 2012102700,   , BEST,  72, 275N,  771W,  60,  969, TS,  34, NEQ,  450,  210,  180,  270, 1013,  450,  60,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  540,  240,  330
AL, 18, 2012102700,   , BEST,  72, 275N,  771W,  60,  969, TS,  50, NEQ,    0,    0,  120,  160, 1013,  450,  60,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  540,  240,  330
AL, 18, 2012102706,   , BEST,  78, 281N,  769W,  60,  968, TS,  34, NEQ,  450,  260,  180,  280, 1013,  460,  70,  75,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  510,  600,  300,  330
AL, 18, 2012102706,   , BEST,  78, 281N,  769W,  60,  968, TS,  50, NEQ,    0,    0,  120,  160, 1013,  460,  70,  75,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  510,  600,  300,  330
AL, 18, 2012102712,   , BEST,  84, 288N,  765W,  70,  956, HU,  34, NEQ,  450,  300,  210,  280, 1013,  460,  75,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  510,  600,  300,  330
AL, 18, 2012102712,   , BEST,  84, 288N,  765W,  70,  956, HU,  50, NEQ,   30,  120,  160,  200, 1013,  460,  75,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  510,  600,  300,  330
AL, 18, 2012102712,   , BEST,  84, 288N,  765W,  70,  956, HU,  64, NEQ,    0,    0,  120,  120, 1013,  460,  75,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  510,  600,  300,  330
AL, 18, 2012102718,   , BEST,  90, 297N,  756W,  70,  960, HU,  34, NEQ,  450,  300,  240,  280, 1013,  480,  75,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  575,  600,  270,  330
AL, 18, 2012102718,   , BEST,  90, 297N,  756W,  70,  960, HU,  50, NEQ,   30,  150,  180,  200, 1013,  480,  75,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  575,  600,  270,  330
AL, 18, 2012102718,   , BEST,  90, 297N,  756W,  70,  960, HU,  64, NEQ,    0,    0,  150,  180, 1013,  480,  75,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  575,  600,  270,  330
AL, 18, 2012102800,   , BEST,  96, 305N,  747W,  65,  960, HU,  34, NEQ,  480,  300,  300,  280, 1013,  480,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  630,  360,  330
AL, 18, 2012102800,   , BEST,  96, 305N,  747W,  65,  960, HU,  50, NEQ,   30,  180,  180,  210, 1013,  480,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  630,  360,  330
AL, 18, 2012102800,   , BEST,  96, 305N,  747W,  65,  960, HU,  64, NEQ,    0,    0,  150,  180, 1013,  480,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  630,  360,  330
AL, 18, 2012102806,   , BEST, 102, 313N,  739W,  65,  959, HU,  34, NEQ,  450,  300,  300,  270, 1013,  480,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  630,  390,  300
AL, 18, 2012102806,   , BEST, 102, 313N,  739W,  65,  959, HU,  50, NEQ,    0,  180,  180,  210, 1013,  480,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  630,  390,  300
AL, 18, 2012102806,   , BEST, 102, 313N,  739W,  65,  959, HU,  64, NEQ,    0,    0,  150,  180, 1013,  480,  90,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  630,  390,  300
AL, 18, 2012102812,   , BEST, 108, 320N,  730W,  65,  954, HU,  34, NEQ,  450,  300,  300,  270, 1013,  480, 100,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  600,  420,  270
AL, 18, 2012102812,   , BEST, 108, 320N,  730W,  65,  954, HU,  50, NEQ,    0,  150,  200,  210, 1013,  480, 100,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  600,  420,  270
AL, 18, 2012102812,   , BEST, 108, 320N,  730W,  65,  954, HU,  64, NEQ,    0,    0,  150,  180, 1013,  480, 100,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  600,  420,  270
AL, 18, 2012102818,   , BEST, 114, 328N,  720W,  65,  952, HU,  34, NEQ,  450,  300,  350,  270, 1013,  500, 120,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  460,  270
AL, 18, 2012102818,   , BEST, 114, 328N,  720W,  65,  952, HU,  50, NEQ,    0,  150,  200,  210, 1013,  500, 120,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  460,  270
AL, 18, 2012102818,   , BEST, 114, 328N,  720W,  65,  952, HU,  64, NEQ,    0,    0,  150,  180, 1013,  500, 120,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  460,  270
AL, 18, 2012102900,   , BEST, 120, 339N,  710W,  70,  950, HU,  34, NEQ,  450,  300,  400,  270, 1013,  500, 120,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  660,  480
AL, 18, 2012102900,   , BEST, 120, 339N,  710W,  70,  950, HU,  50, NEQ,  150,  150,  200,  200, 1013,  500, 120,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  660,  480
AL, 18, 2012102900,   , BEST, 120, 339N,  710W,  70,  950, HU,  64, NEQ,    0,    0,  150,    0, 1013,  500, 120,  80,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  660,  480
AL, 18, 2012102906,   , BEST, 126, 353N,  705W,  80,  947, HU,  34, NEQ,  420,  360,  450,  270, 1013,  500, 100,  90,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  660,  480
AL, 18, 2012102906,   , BEST, 126, 353N,  705W,  80,  947, HU,  50, NEQ,  150,  150,  200,  180, 1013,  500, 100,  90,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  660,  480
AL, 18, 2012102906,   , BEST, 126, 353N,  705W,  80,  947, HU,  64, NEQ,    0,    0,  150,    0, 1013,  500, 100,  90,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  660,  660,  480
AL, 18, 2012102912,   , BEST, 132, 369N,  710W,  85,  945, HU,  34, NEQ,  420,  420,  400,  270, 1013,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  720,  660,  480
AL, 18, 2012102912,   , BEST, 132, 369N,  710W,  85,  945, HU,  50, NEQ,  200,  150,  200,  180, 1013,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  720,  660,  480
AL, 18, 2012102912,   , BEST, 132, 369N,  710W,  85,  945, HU,  64, NEQ,    0,   70,  120,    0, 1013,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  480,  720,  660,  480
AL, 18, 2012102918,   , BEST, 138, 383N,  732W,  80,  940, HU,  34, NEQ,  420,  420,  400,  420, 1013,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
AL, 18, 2012102918,   , BEST, 138, 383N,  732W,  80,  940, HU,  50, NEQ,  220,  150,  200,  150, 1013,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
AL, 18, 2012102918,   , BEST, 138, 383N,  732W,  80,  940, HU,  64, NEQ,  180,   80,  120,    0, 1013,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
AL, 18, 2012102921,   , BEST, 141, 388N,  740W,  75,  943, EX,  34, NEQ,  420,  420,  400,  420, 1013,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
AL, 18, 2012102921,   , BEST, 141, 388N,  740W,  75,  943, EX,  50, NEQ,  220,  150,  200,  150, 1013,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
AL, 18, 2012102921,   , BEST, 141, 388N,  740W,  75,  943, EX,  64, NEQ,  180,   80,  120,    0, 1013,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
AL, 18, 2012102923, 30, BEST, 143, 394N,  744W,  70,  945, EX,  34, NEQ,  460,  370,  400,  490, 1013,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
AL, 18, 2012102923, 30, BEST, 143, 394N,  744W,  70,  945, EX,  50, NEQ,  180,  150,   80,   50, 1013,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
AL, 18, 2012102923, 30, BEST, 143, 394N,  744W,  70,  945, EX,  64, NEQ,   70,   80,   60,    0, 1013,  500, 110, 100,   0,   L,   0,    ,   0,   0,      SANDY, D,
AL, 18, 2012103000,   , BEST, 144, 395N,  745W,  70,  946, EX,  34, NEQ,  460,  370,  400,  490, 1013,  525,  80,  85,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  660,  995,  660,  180
AL, 18, 2012103000,   , BEST, 144, 395N,  745W,  70,  946, EX,  50, NEQ,  150,  150,   80,   50, 1013,  525,  80,  85,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  660,  995,  660,  180
AL, 18, 2012103000,   , BEST, 144, 395N,  745W,  70,  946, EX,  64, NEQ,   65,    0,    0,    0, 1013,  525,  80,  85,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  660,  995,  660,  180
AL, 18, 2012103006,   , BEST, 150, 399N,  762W,  55,  960, EX,  34, NEQ,  450,  400,  160,  530, 1013,  480,  80,  75,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  995,  600,    0
AL, 18, 2012103006,   , BEST, 150, 399N,  762W,  55,  960, EX,  50, NEQ,  150,  150,   30,   30, 1013,  480,  80,  75,   0,   L,   0,    ,   0,   0,      SANDY, D, 12, NEQ,  600,  995,  600,    0
AL, 18, 2012103012,   , BEST, 156, 401N,  778W,  50,  978, EX,  34, NEQ,  450,  490,    0,  500, 1013,  480,  30,   0,   0,   L,   0,    ,   0,   0,      SANDY, M,
AL, 18, 2012103012,   , BEST, 156, 401N,  778W,  50,  978, EX,  50, NEQ,    0,    0,    0,  260, 1013,  480,  30,   0,   0,   L,   0,    ,   0,   0,      SANDY, M,
AL, 18, 2012103018,   , BEST, 162, 404N,  789W,  40,  986, EX,  34, NEQ,    0,  530,    0,  430, 1013,  480,  30,  50,   0,   L,   0,    ,   0,   0,      SANDY, M,
AL, 18, 2012103100,   , BEST, 168, 407N,  798W,  35,  992, EX,  34, NEQ,    0,    0,    0,  410, 1013,  480,  30,  50,   0,   L,   0,    ,   0,   0,      SANDY, M,
AL, 18, 2012103106,   , BEST, 174, 411N,  803W,  35,  993, EX,  34, NEQ,    0,    0,    0,  380, 1013,  480,  30,  50,   0,   L,   0,    ,   0,   0,      SANDY, M,
AL, 18, 2012103112,   , OFCL, 180, 426N,  779W,  30,  993,   ,  34, NEQ,    0,    0,    0,    0, 1013,    0,   0,  40,   0,    ,   0, TBK,  65,  17,     SANDY ,  , 12, NEQ,  60,  60,   0,   0
AL, 18, 2012110100,   , OFCL, 192, 440N,  769W,  25,  993,   ,  34, NEQ,    0,    0,    0,    0, 1013,    0,   0,  35,   0,    ,   0, TBK,  65,  17,     SANDY ,  , 12, NEQ,  60,  60,   0,   0
AL, 18, 2012110200,   , OFCL, 216, 465N,  745W,  25,  993,   ,  34, NEQ,    0,    0,    0,    0, 1013,    0,   0,  35,   0,    ,   0, TBK,  65,  17,     SANDY ,  , 12, NEQ,  60,  60,   0,   0
AL, 18, 2012110300,   , OFCL, 240, 485N,  705W,  25,  993,   ,  34, NEQ,    0,    0,    0,    0, 1013,    0,   0,  35,   0,    ,   0, TBK,  65,  17,     SANDY ,  , 12, NEQ,  60,  60,   0,   0
AL, 18, 2012110400,   , OFCL, 264, 485N,  705W,  25,  993,   ,  34, NEQ,    0,    0,    0,    0, 1013,    0,   0,  35,   0,    ,   0, TBK,  65,  17,     SANDY ,  , 12, NEQ,  60,  60,   0,   0

aswip

The fort.22.orig file above was then used as input into aswip with the following messages going to the ASGS log file:

[2022-Nov-22-T11:53:17-0600] INFO: nowcast: asgs_main.sh: Detecting storm name in run.properties file.
 INFO: Processing '-n 20'.
 Finished processing ient =            2 iquadrot =            2
 Finished processing ient =            1 iquadrot =            1
 Finished processing ient =            4 iquadrot =            2
 Finished processing ient =            3 iquadrot =            1
 Finished processing ient =            7 iquadrot =            2
 Finished processing ient =            6 iquadrot =            1
 Finished processing ient =            5 iquadrot =            1
 Finished processing ient =           10 iquadrot =            2
 Finished processing ient =            9 iquadrot =            1
 Finished processing ient =            8 iquadrot =            1
 Finished processing ient =           13 iquadrot =            2
 Finished processing ient =           12 iquadrot =            1
 Finished processing ient =           11 iquadrot =            1
 Finished processing ient =           16 iquadrot =            1
 Finished processing ient =           15 iquadrot =            1
 Finished processing ient =           14 iquadrot =            1
 Finished processing ient =           19 iquadrot =            1
 Finished processing ient =           18 iquadrot =            1
 Finished processing ient =           17 iquadrot =            1
 Finished processing ient =           22 iquadrot =            1
 Finished processing ient =           21 iquadrot =            1
 Finished processing ient =           20 iquadrot =            1
 Finished processing ient =           25 iquadrot =            1
 Finished processing ient =           24 iquadrot =            1
 Finished processing ient =           23 iquadrot =            1
 Finished processing ient =           28 iquadrot =            1
 Finished processing ient =           27 iquadrot =            1
 Finished processing ient =           26 iquadrot =            1
 Finished processing ient =           31 iquadrot =            1
 Finished processing ient =           30 iquadrot =            1
 Finished processing ient =           29 iquadrot =            1
 Finished processing ient =           34 iquadrot =            2
 Finished processing ient =           33 iquadrot =            1
 Finished processing ient =           32 iquadrot =            1
 Finished processing ient =           37 iquadrot =            2
 Finished processing ient =           36 iquadrot =            1
 Finished processing ient =           35 iquadrot =            1
 Finished processing ient =           40 iquadrot =            2
 Finished processing ient =           39 iquadrot =            1
 Finished processing ient =           38 iquadrot =            1
 Finished processing ient =           43 iquadrot =            2
 Finished processing ient =           42 iquadrot =            1
 Finished processing ient =           41 iquadrot =            1
 Finished processing ient =           45 iquadrot =            1
 Finished processing ient =           44 iquadrot =            1
 Finished processing ient =           47 iquadrot =            3
 Finished processing ient =           46 iquadrot =            1
 Finished processing ient =           50 iquadrot =            2
 Finished processing ient =           49 iquadrot =            1
 Finished processing ient =           48 iquadrot =            1
 Finished processing ient =           53 iquadrot =            2
 Finished processing ient =           52 iquadrot =            1
 Finished processing ient =           51 iquadrot =            1
 Finished processing ient =           56 iquadrot =            2
 Finished processing ient =           55 iquadrot =            1
 Finished processing ient =           54 iquadrot =            1
 Finished processing ient =           59 iquadrot =            2
 Finished processing ient =           58 iquadrot =            1
 Finished processing ient =           57 iquadrot =            1
 Finished processing ient =           62 iquadrot =            2
 Finished processing ient =           61 iquadrot =            1
 Finished processing ient =           60 iquadrot =            1
 Finished processing ient =           65 iquadrot =            2
 Finished processing ient =           64 iquadrot =            1
 Finished processing ient =           63 iquadrot =            1
 Finished processing ient =           68 iquadrot =            5
 Finished processing ient =           67 iquadrot =            1
 Finished processing ient =           66 iquadrot =            1
 Finished processing ient =           71 iquadrot =            1
 Finished processing ient =           70 iquadrot =            1
 Finished processing ient =           69 iquadrot =            1
 Finished processing ient =           74 iquadrot =            1
 Finished processing ient =           73 iquadrot =            1
 Finished processing ient =           72 iquadrot =            1
 Finished processing ient =           77 iquadrot =            2
 Finished processing ient =           76 iquadrot =            1
 Finished processing ient =           75 iquadrot =            1
 Finished processing ient =           80 iquadrot =            2
 Finished processing ient =           79 iquadrot =            1
 Finished processing ient =           78 iquadrot =            1
 Finished processing ient =           83 iquadrot =            2
 Finished processing ient =           82 iquadrot =            1
 Finished processing ient =           81 iquadrot =            1
 Finished processing ient =           86 iquadrot =            1
 Finished processing ient =           85 iquadrot =            1
 Finished processing ient =           84 iquadrot =            1
 Finished processing ient =           88 iquadrot =            2
 Finished processing ient =           87 iquadrot =            1
 Finished processing ient =           90 iquadrot =            2
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 iquad=           3 No root found, return dist. to Isotach
 Finished processing ient =           89 iquadrot =            1
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 iquad=           2 No root found, return dist. to Isotach
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 iquad=           2 No root found, return dist. to Isotach
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 iquad=           2 No root found, return dist. to Isotach
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 iquad=           2 No root found, return dist. to Isotach
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 iquad=           2 No root found, return dist. to Isotach
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 iquad=           2 No root found, return dist. to Isotach
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 iquad=           2 No root found, return dist. to Isotach
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 Finished processing ient =           91 iquadrot =            7
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 iquad=           4 No root found, return dist. to Isotach
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 FUNCTION findRoot: exceeded max # of iterations
 iquad=           4 No root found, return dist. to Isotach
 Finished processing ient =           92 iquadrot =            2
 Finished processing ient =           93 iquadrot =            2
 Finished processing ient =           94 iquadrot =            1
 Finished processing ient =           95 iquadrot =            2
 Finished processing ient =           96 iquadrot =            2
 Finished processing ient =           97 iquadrot =            1
 Finished processing ient =           98 iquadrot =            2

Looking at lines 89--91 in the fort.22.orig file that produced the FUNCTION findRoot: exceeded max # of iterations error message:

AL, 18, 2012103012,   , BEST, 156, 401N,  778W,  50,  978, EX,  34, NEQ,  450,  490,    0,  500, 1013,  480,  30,   0,   0,   L,   0,    ,   0,   0,      SANDY, M,
AL, 18, 2012103012,   , BEST, 156, 401N,  778W,  50,  978, EX,  50, NEQ,    0,    0,    0,  260, 1013,  480,  30,   0,   0,   L,   0,    ,   0,   0,      SANDY, M,
AL, 18, 2012103018,   , BEST, 162, 404N,  789W,  40,  986, EX,  34, NEQ,    0,  530,    0,  430, 1013,  480,  30,  50,   0,   L,   0,    ,   0,   0,      SANDY, M,
AL, 18, 2012103100,   , BEST, 168, 407N,  798W,  35,  992, EX,  34, NEQ,    0,    0,    0,  410, 1013,  480,  30,  50,   0,   L,   0,    ,   0,   0,      SANDY, M,

Deleting the corresponding lines from the BEST track file and rerunning storm_track_gen.pl and aswip resulted in the ASGS being able to produce a fort.22 file without any FUNCTION findRoot: exceeded max # of iterations error messages.

Upon running the Sandy hindcast with those lines removed, I found that ADCIRC went unstable (numerically) with the following messages in the padcswan.out file:

+time 20121029.164000   , step    410; iteration    6
 TIME STEP = 3084109      ITERATIONS =   15     TIME =  0.30841090E+07
  ELMAX =  2.0186E+001 AT NODE   395364  SPEEDMAX =  9.8903E+000 AT NODE   412260  ON MYPROC =  199   ** WARNING: Elevation.gt.WarnElev **
<...>
TIME STEP = 3084241      ITERATIONS =   16     TIME =  0.30842410E+07
  ELMAX =  3.6218E+003 AT NODE   461555  SPEEDMAX =  7.1708E+001 AT NODE   466283  ON MYPROC =  199
  ** ERROR: Elevation.gt.ErrorElev, ADCIRC stopping. **
 MPI terminated with Status =            0

Resources

The official file format documentation

NCAR real time guidance documentation.

Collection of resources and docuementation on ATCF from NRL Monterey.

BEST track changelog.

Wikipedia entry for the Automated Tropical Cyclone Forecasting (ATCF) system itself.

ATCF system requirements and functional specification (pdf) including GFS vortex removal and interfacing with WaveWatchII global wave model.

Automated Tropical Cyclone Forecast (ATCF) Data Files / Text Files documentation.

2021 National Hurricane Operations Plan (pdf).

Theory and implementation of GAHM (pptx)

Dissertation containing details on GAHM parametric vortex research and development: On the Surface Wind Stress for Storm Surge Modelling

⚠️ **GitHub.com Fallback** ⚠️