Richard O'Keefe
2023-Sep-13 13:58 UTC
[R] Help with plotting and date-times for climate data
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 at 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 at 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]]
Ebert,Timothy Aaron
2023-Sep-13 14:18 UTC
[R] Help with plotting and date-times for climate data
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 at r-project.org> On Behalf Of Richard O'Keefe Sent: Wednesday, September 13, 2023 9:58 AM To: Kevin Zembower <kevin at zembower.org> Cc: r-help at 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 at 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 at 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 at 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.