Seattle has had a very warm and dry Fall season so far in 2022. I
showed elsewhere that in
looking at the traditional Water Year, starting 01-Oct, that 2023 is the
fifth driest in a century. However, in an analysis of an “Extended Water
Year,” starting 01-August, that EWY2023 is the driest in a
century and among the warmest in overnight temperatures. The
plantlife around Seattle is showing signs of stress.
This raises
the question, how long has Seattle really gone since the last
significant rainfall, and how does that compare to other years?
It
turns out 2022 is one for the record books; we’ve gone (so far) 130 days
without more than 0.1 inches of rain. The next longest “Dry-Summery
Interval” is 98 days, occuring in 1930. Of the seven longest Summer-Dry
Intervals in teh last century, six have happened with the last sixteen
years.
Data is from NOAA Climate data Online from 1921 onward. Since there was no single continuous monitoring station with all the data I wanted, I made the data by combining measurements from several stations.
Data analyzed consist of daily precipation (inches), and min and max temperatures (in degress F). To get a full data set where the data overlap values are averaged.
There is a large amount of year to year variability.
Data are from SEATTLE TACOMA AIRPORT, SEATTLE BOEING FIELD, SEATTLE PORTAGE BAY, BREMERTON, SEATTLE UNIVERSITY OF WASH, & KENT (stations: USW00024233, USW00024234, USW00024281, USC00450872, USC00457478, and USC00454169) covering 1921-01-01 to 2022-10-21.
Here is a look at the some of the raw data. The average of the points are shown as well, giving an indication of the fidelity of the process used later in this analysis.
1930 was a dry year as was 2003. 1970 is a year with a shorter Summer Dry Interval.
Seasonal rainfall totals can give an idea of stressfrom a lack of rainfall. However, what is really releveant is not only how much, but over what period of time.
A measure of regional Rain-Stress is the duration between the
last significant rainfall of Spring and the first significant rainfall
of late Summer and Fall. This analysis would be somewhat painful in
spreadsheet, but in R it’s easy!
Of course, what
qualifies as “significant” is a matter of judgement, so let’s make that
a parameter of the model as well.
To compute this we just need to define a “significance” level,
r_T
which can act as a cut-off. We start from the raw data
of daily regionally averaged rainfall totals.
## # A tibble: 37,184 × 4
## DATE PRCP TMIN TMAX
## <date> <dbl> <dbl> <dbl>
## 1 1921-01-01 0.203 41 52
## 2 1921-01-02 0.117 42.7 53
## 3 1921-01-03 0.293 38.3 50
## 4 1921-01-04 0.697 36.3 50.7
## 5 1921-01-05 0.413 37.3 44.3
## 6 1921-01-06 0.00333 35.3 42.7
## 7 1921-01-07 0.16 36.5 44
## 8 1921-01-08 0.0633 35.3 46.3
## 9 1921-01-09 0.13 28.7 42.7
## 10 1921-01-10 0 25.5 41.5
## # … with 37,174 more rows
r_T
A histogram of the rainfall distribution shows a transition to a long exponential \[p(R_{D}) = k*e^{(-R_{D}/R^{*})} \]
where \(R_{D}\) is daily rainfall, at about 0.10 inches. For sake of interest \(R^{*}\) is approximately 0.25 inches.
## significant rainfall
r_T <- 0.1
Based on limited experiments, the results are stable to small changes
in r_T
. For instance increasing r_T
by 50%
doesn’t change these conclusions. Larger adjustments do modify results,
but at smaller values rainfall levels are insignficant to have much
beneficial impact and much larger rainfall totals are distributed
randomly making results highly variable. For these reasons
r_T
= 0.10 seems reasonable.
Looking at the graphs of annual rainfall let’s just pick 0.1 inches
as significant rainfall threshold. The results are stable to small
changes in r_T
. For instance increasing r_T
by
50% doesn’t change these conclusions.
Computing the date of the last rainfall is done with a couple filter commands.
last_rainfall_date <- data %>%
group_by(YEAR) %>%
filter(MONTH < 8, PRCP >= r_T) %>%
filter(DATE == max(DATE)) %>%
ungroup()%>%
yo
THe results of the analysis show the dates of the last and first rainfalls.
first_rainfall_date <- data %>%
group_by(YEAR) %>%
filter(MONTH >=8, PRCP >= r_T) %>%
filter(DATE == min(DATE, as.Date("2023-10-21"))) %>%
ungroup()%>%
mutate(MONTH_DAY = as.Date(str_c(as.character(1900),"-",as.character(MONTH), "-", as.character(DAY)))) %>%
select(DATE_FIRST =DATE, YEAR, MONTH_FIRST = MONTH, DAY_FIRST = DAY, MONTH_DAY_FIRST = MONTH_DAY) %>%
yo
The graphs show there is variation in the last day and first days of rain. Some years rains stop exceptionally early. Other years rains start exceptionally late. In 2023 both of these phenomena occurred.
It’s worthile noting that the long duration of the SUMMER_DRY INTERVAL
for 2022 is due to an early “last rainfall” and, simultaneously, a late
“first rainfall.”
This shows the Summer Dry Interval can vary by a large factor, from just a few days to well over 100 days according to what is available the last century.
## # A tibble: 102 × 2
## YEAR DURATION
## <dbl> <drtn>
## 1 2022 133 days
## 2 1930 98 days
## 3 2021 95 days
## 4 2017 93 days
## 5 2006 90 days
## 6 2018 90 days
## 7 2012 85 days
## 8 1922 79 days
## 9 1945 74 days
## 10 1928 72 days
## # … with 92 more rows
Comparing years shows that 2022 has had the longest Summer-Dry
Interval in the last 100 years. This result is not highly sensitive to
r_T
.
R version 4.2.0 (2022-04-22 ucrt)
2022-10-21 08:57:32
@WinstonOnData