[R] Help with plotting and date-times for climate data

Richard O'Keefe r@oknz @end|ng |rom gm@||@com
Wed Sep 13 17:07:46 CEST 2023


I am well aware of the physiological implications
of temperature, and that is *why* I view recorded
TMIN and TMAX at a single point with an extremely
jaundiced eye.  TMAX at shoulder height has very
little relevance to an insect living in grass, for
example.  And if TMAX is sustained for one second,
that has very different consequences from if TMAX
is sustained for five minutes.  I can see the usefulness
of "proportion of day above Thi/below Tlo", but that
is quite different.

OK, so my interest in weather data was mainly based
around water management: precipitation, evaporation,
herd and crop water needs, that kind of thing.  And
the first thing you learn from that experience is
that ANY kind of single-point summary is seriously
misleading.

Let's end this digression.


On Thu, 14 Sept 2023 at 02:18, Ebert,Timothy Aaron <tebert using ufl.edu> wrote:

> I had the same question.
> However, I can partly answer the off-topic question. Min and max can be
> important as lower and upper development thresholds. Below the min no
> growth or development occur because reaction rates are too slow to enable
> such. Above max, temperatures are too hot. Protein function is impaired,
> and systems stop functioning. There is a considerable range between where
> systems shut down (but recover) and tissue death.
> In a simple form the growth and physiological stage of plants, insects,
> and many others, can be modeled as a function of temperature. These are
> often called growing degree day models (or some version of that). This is
> number of thermal units needed for the organism to develop to the next
> stage (e.g. instar for an insect, or fruit/flower formation for a plant).
> However, better accuracy is obtained if the model includes both min and max
> thresholds.
>
> All I have done is provide an example where min and max could have a real
> world use. I use max(temp) over some interval and then update an
> accumulated thermal units variable based on the outcome. That detail is not
> evident in the original request.
>
> Tim
>
> -----Original Message-----
> From: R-help <r-help-bounces using r-project.org> On Behalf Of Richard O'Keefe
> Sent: Wednesday, September 13, 2023 9:58 AM
> To: Kevin Zembower <kevin using zembower.org>
> Cc: r-help using r-project.org
> Subject: Re: [R] Help with plotting and date-times for climate data
>
> [External Email]
>
> Off-topic, but what is a "mean temperature max"
> and what good would it do you to know you if you did?
> I've been looking at a lot of weather station data and for no question
> I've ever had (except "would the newspapers get excited about this") was
> "max" (or min) the answer.  Considering the way that temperature can change
> by several degrees in a few minutes, or a few metres -- I meant
> horizontally when I wrote that, but as you know your head and feet don't
> experience the same temperature, again by more than one degree -- I am at
> something of a loss to ascribe much practical significance to TMAX.  Are
> you sure this is the analysis you want to do?  Is this the most informative
> data you can get?
>
> On Wed, 13 Sept 2023 at 08:51, Kevin Zembower via R-help <
> r-help using r-project.org> wrote:
>
> > Hello,
> >
> > I'm trying to calculate the mean temperature max from a file of
> > climate date, and plot it over a range of days in the year. I've
> > downloaded the data, and cleaned it up the way I think it should be.
> > However, when I plot it, the geom_smooth line doesn't show up. I think
> > that's because my x axis is characters or factors. Here's what I have so
> far:
> > ========================================
> > library(tidyverse)
> >
> > data <- read_csv("Ely_MN_Weather.csv")
> >
> > start_day = yday(as_date("2023-09-22")) end_day =
> > yday(as_date("2023-10-15"))
> >
> > d <- as_tibble(data) %>%
> >     select(DATE,TMAX,TMIN) %>%
> >     mutate(DATE = as_date(DATE),
> >            yday = yday(DATE),
> >            md = sprintf("%02d-%02d", month(DATE), mday(DATE))
> >            ) %>%
> >     filter(yday >= start_day & yday <= end_day) %>%
> >     mutate(md = as.factor(md))
> >
> > d_sum <- d %>%
> >     group_by(md) %>%
> >     summarize(tmax_mean = mean(TMAX, na.rm=TRUE))
> >
> > ## Here's the filtered data:
> > dput(d_sum)
> >
> > > structure(list(md = structure(1:25, levels = c("09-21", "09-22",
> > "09-23", "09-24", "09-25", "09-26", "09-27", "09-28", "09-29",
> > "09-30", "10-01", "10-02", "10-03", "10-04", "10-05", "10-06",
> > "10-07", "10-08", "10-09", "10-10", "10-11", "10-12", "10-13",
> > "10-14", "10-15"), class = "factor"), tmax_mean = c(65,
> > 62.2222222222222, 61.3, 63.8888888888889, 64.3, 60.1111111111111,
> > 62.3, 60.5, 61.9, 61.2, 63.6666666666667, 59.5, 59.5555555555556,
> > 61.5555555555556, 59.4444444444444, 58.7777777777778,
> > 55.8888888888889, 58.125, 58, 55.6666666666667, 57, 55.4444444444444,
> > 49.7777777777778, 48.75, 43.6666666666667)), class = c("tbl_df",
> > "tbl", "data.frame"
> > ), row.names = c(NA, -25L))
> > >
> > ggplot(data = d_sum, aes(x = md)) +
> >     geom_point(aes(y = tmax_mean, color = "blue")) +
> >     geom_smooth(aes(y = tmax_mean, color = "blue"))
> > =====================================
> > My questions are:
> > 1. Why isn't my geom_smooth plotting? How can I fix it?
> > 2. I don't think I'm handling the month and day combination correctly.
> > Is there a way to encode month and day (but not year) as a date?
> > 3. (Minor point) Why does my graph of tmax_mean come out red when I
> > specify "blue"?
> >
> > Thanks for any advice or guidance you can offer. I really appreciate
> > the expertise of this group.
> >
> > -Kevin
> >
> > ______________________________________________
> > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > https://stat/
> > .ethz.ch%2Fmailman%2Flistinfo%2Fr-help&data=05%7C01%7Ctebert%40ufl.edu
> > %7C41f002949dac426196de08dbb4619001%7C0d4da0f84a314d76ace60a62331e1b84
> > %7C0%7C0%7C638302103358987487%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAw
> > MDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sda
> > ta=dfC3W%2F%2BBsZI0EaAx%2FocRgw81PSJH8sVZHPFB4rMyiaM%3D&reserved=0
> > PLEASE do read the posting guide
> > http://www.r/
> > -project.org%2Fposting-guide.html&data=05%7C01%7Ctebert%40ufl.edu%7C41
> > f002949dac426196de08dbb4619001%7C0d4da0f84a314d76ace60a62331e1b84%7C0%
> > 7C0%7C638302103358987487%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL
> > CJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=zR
> > IyH2os0w%2Bi1M26YCGqRFZyXNN6KnS2ddNrEZ9BvVo%3D&reserved=0
> > and provide commented, minimal, self-contained, reproducible code.
> >
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.r-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list