NAME
ghcn_extremes.pl - Report temperature extremes from ghcn_fetch.pl output
VERSION
version v0.0.010
SYNOPSIS
ghcn_extremes.pl [-limit <int>] [-ndays <int>]
[-peryear] [-daycounts] [-cold] [-nogaps]
[-outclip] [ file... ]
ghcn_extremes.pl [--help | -? | --usage]
DESCRIPTION
Report patterns of temperature extremes (heatwaves or coldwaves) by analyzing daily temperature records and looking for consecutive days of extreme temperatures. By default the script reports a count of heatwaves in each year of the input data, where a heatwave is defined as 5 or more consecutive days where the maximum temperature is 30 Celsius or higher.
Using the -cold option, it can report coldwaves; by default, where the temperatures are at or below -20 C for 5 days or more days.
When the -daycounts option is given, the script reports the year-month-day the heatwave (or coldwave) began along with a count of the number of consecutive days it lasted.
The input data must be tab-separated, in date order, and contain the following fields:
year, month, day, decade, # decade is 10 * int( year % 100 / 10 )
s_decade, s_year, s_qtr, # seasonal period (Jul-Jun years)
tmax, tmin, tavg, qflags, # qflags are ignored, so may be empty
stn_id, station_name
All trailing columns of data are ignored. This format is the one generated by ghcn_fetch -report detail; i.e. it is a report of daily weather data for each station id.
In typical use, you would extract the data of interest with
ghcn_fetch -report detail <other_options>
and then either pipe it to ghcn_extremes or save the output to a file and then use that file as input to ghcn_extremes.
PARAMETERS
Getoptions::Long is used, so either - or -- may be used. Parameter names may be abbreviated, so long as they remains unambiguous. Flag options may appear after filenames.
- -limit <int>
-
Sets the limit (in degrees Celsius) at or above which the TMAX temperature for the day is counted as part of a heatwave. Defaults to 30 Celsius.
When -cold is given, the limit is the temperature at or below which the TMIN temperature for the day is counted as part of a coldwave. Defaults to -20 Celsius.
- -ndays <int>
-
Consider any consecutive run of <int> or more days where the temperature exceeds that specified by -limit as a heatwave (or coldwave).
- peryear
-
Report number of heatwaves per year.
- -daycounts
-
Report the number of days in each heatwave (or coldwave, rather than the number of heatwaves (or coldwaves) per year.
- -cold
-
Report coldwaves instead of heatwaves. Days with temperatures less than or equal to the value specified by -limit will be counted. The default for -limit is set to -20 Celsius when this option is selected.
- -nogaps
-
When a year has no heat (or cold) waves, there will be no data for that year in the output. Thus, when charting, those years are missing from the x-axis, which not only distorts the picture, it can lead to inaccurate trend analysis.
When -nogaps is specified, the script will fill in these gaps by adding rows at the end with the missing years. It will be necessary to manually sort the table in Excel, or specify an ascending sort order for the year axis, in order for charts to look correct.
- -outclip
-
Send output to the Windows clipboard.
- -h | -help
-
Display this documentation.
INPUT
The input data is expected to be tab-separated, with columns year, month, day, then four other columns, then TMAX and TMIN columns. TMAX values are used for determining heatwaves. TMIN values are used for coldwaves.
The first row of data can be a row header, but column 1 must have the value 'Year' and columns 6 and 7 must begin with 'TMAX' and 'TMIN' respectively.
RELATED SCRIPTS
This script was designed to use the output from noaa_daily_parser.pl, specifically when the option "-report daily" is used. It generates the correct level and format of data for input to this script.
The option "-report detail" can also be used, but if the data contains multiple stations then this script will miscount.
AUTHOR
Gary Puckering (jgpuckering@rogers.com)
LICENSE AND COPYRIGHT
Copyright 2022, Gary Puckering