diff --git a/.prettierignore b/.prettierignore index d20268ad4..74222a5af 100644 --- a/.prettierignore +++ b/.prettierignore @@ -29,3 +29,4 @@ *.md *.jpeg *.ico +/themes/delphi/layouts/partials/webp-image.html \ No newline at end of file diff --git a/content/_index.md b/content/_index.md index 5f36b8ff8..14524bdfc 100644 --- a/content/_index.md +++ b/content/_index.md @@ -8,15 +8,15 @@ carousel: title: Real-time Indicators of COVID-19 Activity ref: covidcast alt: Explore COVIDCast - image: covidcast_withfill.png + image: covidcast_withfill.jpg - pre: Our Blog Post title: New and improved COVID Symptom Survey Tracks Testing and Mask-Wearing ref: 2020-10-06-survey-wave-4 alt: Learn more - image: landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.png + image: landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.jpg - pre: Our Research and White Papers title: "Pancasting: forecasting epidemics from provisional data" link: https://delphi.cmu.edu/~lcbrooks/brooks2020pancasting.pdf alt: View Paper - image: landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.png + image: landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.jpg --- diff --git a/content/about/publications/images/evaluation.jpg b/content/about/publications/images/evaluation.jpg new file mode 100644 index 000000000..36ee42d10 Binary files /dev/null and b/content/about/publications/images/evaluation.jpg differ diff --git a/content/about/publications/images/evaluation.png b/content/about/publications/images/evaluation.png deleted file mode 100644 index 36e379d6c..000000000 Binary files a/content/about/publications/images/evaluation.png and /dev/null differ diff --git a/content/about/publications/images/flexible_modeling.jpg b/content/about/publications/images/flexible_modeling.jpg new file mode 100644 index 000000000..edadd5ccd Binary files /dev/null and b/content/about/publications/images/flexible_modeling.jpg differ diff --git a/content/about/publications/images/flexible_modeling.png b/content/about/publications/images/flexible_modeling.png deleted file mode 100644 index 1d64f6c1b..000000000 Binary files a/content/about/publications/images/flexible_modeling.png and /dev/null differ diff --git a/content/about/publications/images/human.jpg b/content/about/publications/images/human.jpg new file mode 100644 index 000000000..021e74de8 Binary files /dev/null and b/content/about/publications/images/human.jpg differ diff --git a/content/about/publications/images/human.png b/content/about/publications/images/human.png deleted file mode 100644 index e20a8ee82..000000000 Binary files a/content/about/publications/images/human.png and /dev/null differ diff --git a/content/about/publications/images/kalman_filter.jpg b/content/about/publications/images/kalman_filter.jpg new file mode 100644 index 000000000..631d7c3a4 Binary files /dev/null and b/content/about/publications/images/kalman_filter.jpg differ diff --git a/content/about/publications/images/kalman_filter.png b/content/about/publications/images/kalman_filter.png deleted file mode 100644 index 6dcf22cfc..000000000 Binary files a/content/about/publications/images/kalman_filter.png and /dev/null differ diff --git a/content/about/publications/images/modeling.jpg b/content/about/publications/images/modeling.jpg new file mode 100644 index 000000000..cf16913c8 Binary files /dev/null and b/content/about/publications/images/modeling.jpg differ diff --git a/content/about/publications/images/modeling.png b/content/about/publications/images/modeling.png deleted file mode 100644 index b168df703..000000000 Binary files a/content/about/publications/images/modeling.png and /dev/null differ diff --git a/content/about/publications/images/nonmechanistic_forecasts.jpg b/content/about/publications/images/nonmechanistic_forecasts.jpg new file mode 100644 index 000000000..905efe508 Binary files /dev/null and b/content/about/publications/images/nonmechanistic_forecasts.jpg differ diff --git a/content/about/publications/images/nonmechanistic_forecasts.png b/content/about/publications/images/nonmechanistic_forecasts.png deleted file mode 100644 index 8a054e0d9..000000000 Binary files a/content/about/publications/images/nonmechanistic_forecasts.png and /dev/null differ diff --git a/content/about/publications/images/pancasting.jpg b/content/about/publications/images/pancasting.jpg new file mode 100644 index 000000000..5b4a4b968 Binary files /dev/null and b/content/about/publications/images/pancasting.jpg differ diff --git a/content/about/publications/images/pancasting.png b/content/about/publications/images/pancasting.png deleted file mode 100644 index 2a4af5481..000000000 Binary files a/content/about/publications/images/pancasting.png and /dev/null differ diff --git a/content/about/publications/images/predicting.jpg b/content/about/publications/images/predicting.jpg new file mode 100644 index 000000000..ac3a09f4c Binary files /dev/null and b/content/about/publications/images/predicting.jpg differ diff --git a/content/about/publications/images/predicting.png b/content/about/publications/images/predicting.png deleted file mode 100644 index c25b5edd0..000000000 Binary files a/content/about/publications/images/predicting.png and /dev/null differ diff --git a/content/about/publications/index.md b/content/about/publications/index.md index 2ba78888b..d3a133b5a 100644 --- a/content/about/publications/index.md +++ b/content/about/publications/index.md @@ -2,49 +2,49 @@ title: Research and White Papers papers: - title: "Pancasting: forecasting epidemics from provisional data" - image: pancasting.png + image: pancasting.jpg authors: Brooks link: https://delphi.cmu.edu/~lcbrooks/brooks2020pancasting.pdf journal: PhD thesis year: 2020 - title: "Kalman filter, sensor fusion, and constrained regression: equivalences and insights" - image: kalman_filter.png + image: kalman_filter.jpg authors: Jahja, Farrow, Rosenfeld, Tibshirani link: https://papers.nips.cc/paper/9475-kalman-filter-sensor-fusion-and-constrained-regression-equivalences-and-insights journal: Neural Information Processing Systems year: 2019 - title: "Nonmechanistic forecasts of seasonal influenza with iterative one-week-ahead distributions" - image: nonmechanistic_forecasts.png + image: nonmechanistic_forecasts.jpg authors: Brooks, Farrow, Hyun, Tibshirani, Rosenfeld link: https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1006134 journal: PLOS Computational Biology year: 2018 - title: "A human judgment approach to epidemiological forecasting" - image: human.png + image: human.jpg authors: Farrow, Brooks, Hyun, Tibshirani, Burke, Rosenfeld link: https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005248 journal: PLOS Computational Biology year: 2017 - title: "Modeling the past, present, and future of influenza" - image: modeling.png + image: modeling.jpg authors: Farrow link: https://delphi.cmu.edu/~dfarrow/thesis.pdf journal: PhD thesis year: 2016 - title: "Flexible modeling of epidemics with an empirical Bayes framework" - image: flexible_modeling.png + image: flexible_modeling.jpg authors: Brooks, Farrow, Hyun, Tibshirani, Rosenfeld link: https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1004382 journal: PLOS Computational Biology year: 2015 - title: "Predicting the predictable" - image: predicting.png + image: predicting.jpg authors: Rosenfeld link: https://delphi.cmu.edu/files/PredictingThePredictable_13-04-03.pdf journal: presentation year: 2013 - title: "A proposal for standardized evaluation of epidemiological models" - image: evaluation.png + image: evaluation.jpg authors: Rosenfeld, Grefenstette, Burke link: http://www.cs.cmu.edu/~roni/standardized-evaluation-of-epi-models-rev-09nov2012.pdf journal: White paper diff --git a/content/blog/2015-07-23-template-post.Rmd b/content/blog/2015-07-23-template-post.Rmd index ba4887db3..c44aa5852 100644 --- a/content/blog/2015-07-23-template-post.Rmd +++ b/content/blog/2015-07-23-template-post.Rmd @@ -9,8 +9,8 @@ tags: draft: true # remove this line in new blog posts authors: # list of author keys, see /data/authors.yaml - frida -heroImage: /blog/images/blog-lg-img_hello-world.png -heroImageThumb: /blog/images/blog-thumb-img_hello-world.png +heroImage: /blog/images/blog-lg-img_hello-world.jpg +heroImageThumb: /blog/images/blog-thumb-img_hello-world.jpg summary: | Blog summary, the first 150 characters are used for the blog list acknowledgements: | diff --git a/content/blog/2015-07-23-template-post.html b/content/blog/2015-07-23-template-post.html index 03936f4cc..19cc04435 100644 --- a/content/blog/2015-07-23-template-post.html +++ b/content/blog/2015-07-23-template-post.html @@ -9,8 +9,8 @@ draft: true # remove this line in new blog posts authors: # list of author keys, see /data/authors.yaml - frida -heroImage: /blog/images/blog-lg-img_hello-world.png -heroImageThumb: /blog/images/blog-thumb-img_hello-world.png +heroImage: /blog/images/blog-lg-img_hello-world.jpg +heroImageThumb: /blog/images/blog-thumb-img_hello-world.jpg summary: | Blog summary, the first 150 characters are used for the blog list acknowledgements: | @@ -49,21 +49,21 @@ see http://rmarkdown.rstudio.com.

You can embed an R code chunk like this:

summary(cars)
-##      speed           dist       
-##  Min.   : 4.0   Min.   :  2.00  
-##  1st Qu.:12.0   1st Qu.: 26.00  
-##  Median :15.0   Median : 36.00  
-##  Mean   :15.4   Mean   : 42.98  
-##  3rd Qu.:19.0   3rd Qu.: 56.00  
+##      speed           dist
+##  Min.   : 4.0   Min.   :  2.00
+##  1st Qu.:12.0   1st Qu.: 26.00
+##  Median :15.0   Median : 36.00
+##  Mean   :15.4   Mean   : 42.98
+##  3rd Qu.:19.0   3rd Qu.: 56.00
 ##  Max.   :25.0   Max.   :120.00
 fit <- lm(dist ~ speed, data = cars)
 fit
-## 
+##
 ## Call:
 ## lm(formula = dist ~ speed, data = cars)
-## 
+##
 ## Coefficients:
-## (Intercept)        speed  
+## (Intercept)        speed
 ##     -17.579        3.932

Including Plots

diff --git a/content/blog/2020-08-10-hello-world.Rmd b/content/blog/2020-08-10-hello-world.Rmd index 31d12e6b7..572115a12 100644 --- a/content/blog/2020-08-10-hello-world.Rmd +++ b/content/blog/2020-08-10-hello-world.Rmd @@ -7,8 +7,8 @@ tags: authors: - roni - ryan -heroImage: /blog/images/blog-lg-img_hello-world.png -heroImageThumb: /blog/images/blog-thumb-img_hello-world.png +heroImage: /blog/images/blog-lg-img_hello-world.jpg +heroImageThumb: /blog/images/blog-thumb-img_hello-world.jpg summary: | Hello from the Delphi research group at Carnegie Mellon University! We're a group of faculty, students, and staff, based primarily out of CMU diff --git a/content/blog/2020-08-10-hello-world.html b/content/blog/2020-08-10-hello-world.html index bca6020a8..f683c0b12 100644 --- a/content/blog/2020-08-10-hello-world.html +++ b/content/blog/2020-08-10-hello-world.html @@ -7,18 +7,18 @@ authors: - roni - ryan -heroImage: /blog/images/blog-lg-img_hello-world.png -heroImageThumb: /blog/images/blog-thumb-img_hello-world.png +heroImage: /blog/images/blog-lg-img_hello-world.jpg +heroImageThumb: /blog/images/blog-thumb-img_hello-world.jpg summary: | Hello from the Delphi research group at Carnegie Mellon University! We're a group of faculty, students, and staff, based primarily out of CMU together with strong collaborators from other universities and industry. - Our group was founded in 2012 to advance the theory and practice of epidemic - forecasting. Since March 2020, we have refocused efforts towards helping combat + Our group was founded in 2012 to advance the theory and practice of epidemic + forecasting. Since March 2020, we have refocused efforts towards helping combat the COVID-19 pandemic, by supporting informed decision-making at federal, state, and local levels of government and in the healthcare sector. Until now, we've - been pretty “heads down” with our work, and slow to communicate what we've been - up to. But at last ... Delphi finally has a blog! This first post serves as an + been pretty “heads down” with our work, and slow to communicate what we've been + up to. But at last ... Delphi finally has a blog! This first post serves as an introduction of sorts. Future posts will dive deeper into our various projects. output: blogdown::html_page: diff --git a/content/blog/2020-08-26-fb-survey.Rmd b/content/blog/2020-08-26-fb-survey.Rmd index 01082460b..cf7ca4e82 100644 --- a/content/blog/2020-08-26-fb-survey.Rmd +++ b/content/blog/2020-08-26-fb-survey.Rmd @@ -9,8 +9,8 @@ tags: authors: - alex - ryan -heroImage: /blog/images/blog-lg-img_facebook-survey-post.png -heroImageThumb: /blog/images/blog-thumb-img_facebook-survey-post.png +heroImage: /blog/images/blog-lg-img_facebook-survey-post.jpg +heroImageThumb: /blog/images/blog-thumb-img_facebook-survey-post.jpg summary: | Since April 2020, in collaboration with Facebook, partner universities, and public health officials, diff --git a/content/blog/2020-08-26-fb-survey.html b/content/blog/2020-08-26-fb-survey.html index 3138a7e7a..cd2bdc214 100644 --- a/content/blog/2020-08-26-fb-survey.html +++ b/content/blog/2020-08-26-fb-survey.html @@ -9,8 +9,8 @@ authors: - alex - ryan -heroImage: /blog/images/blog-lg-img_facebook-survey-post.png -heroImageThumb: /blog/images/blog-thumb-img_facebook-survey-post.png +heroImage: /blog/images/blog-lg-img_facebook-survey-post.jpg +heroImageThumb: /blog/images/blog-thumb-img_facebook-survey-post.jpg summary: | Since April 2020, in collaboration with Facebook, partner universities, and public health officials, @@ -36,7 +36,7 @@ survey data. The COVIDcast API, which serves these estimates and is updated daily, is a much larger effort run by the Delphi group, and our entire engineering team is owed a lot of credit here. Ryan came up with the - idea of running the surveys, and worked with Facebook to make this a reality. + idea of running the surveys, and worked with Facebook to make this a reality. On the Facebook side, Curtiss Cobb and Jonathan McKay played big roles. The University of Maryland team, including Adrianne Bradford and Samantha Chiu and led by Frauke Kreuter, made many contributions to the survey design. diff --git a/content/blog/2020-08-28-api.Rmd b/content/blog/2020-08-28-api.Rmd index 4d8bc32f0..926f08767 100644 --- a/content/blog/2020-08-28-api.Rmd +++ b/content/blog/2020-08-28-api.Rmd @@ -10,8 +10,8 @@ tags: authors: - kathryn - alex -heroImage: /blog/images/blog-lg-img_Accessing Open COVID-19.png -heroImageThumb: /blog/images/blog-thumb-img_Accessing Open COVID-19.png +heroImage: /blog/images/blog-lg-img_Accessing Open COVID-19.jpg +heroImageThumb: /blog/images/blog-thumb-img_Accessing Open COVID-19.jpg summary: | One of our primary initiatives at the Delphi COVIDcast project has been to curate a diverse set of COVID-related data streams, diff --git a/content/blog/2020-08-28-api.html b/content/blog/2020-08-28-api.html index 8f3c6d8a4..8fa1a3ee2 100644 --- a/content/blog/2020-08-28-api.html +++ b/content/blog/2020-08-28-api.html @@ -10,8 +10,8 @@ authors: - kathryn - alex -heroImage: /blog/images/blog-lg-img_Accessing Open COVID-19.png -heroImageThumb: /blog/images/blog-thumb-img_Accessing Open COVID-19.png +heroImage: /blog/images/blog-lg-img_Accessing Open COVID-19.jpg +heroImageThumb: /blog/images/blog-thumb-img_Accessing Open COVID-19.jpg summary: | One of our primary initiatives at the Delphi COVIDcast project has been to curate a diverse set of COVID-related data streams, diff --git a/content/blog/2020-09-18-google-survey.Rmd b/content/blog/2020-09-18-google-survey.Rmd index 86b22e618..ea565b0ca 100644 --- a/content/blog/2020-09-18-google-survey.Rmd +++ b/content/blog/2020-09-18-google-survey.Rmd @@ -8,8 +8,8 @@ tags: - R authors: - ryan -heroImage: /blog/images/blog-lg-img_google-survey-post.png -heroImageThumb: /blog/images/blog-thumb-img_google-survey-post.png +heroImage: /blog/images/blog-lg-img_google-survey-post.jpg +heroImageThumb: /blog/images/blog-thumb-img_google-survey-post.jpg summary: | Since April 2020, in addition to our massive daily survey advertised on Facebook, we've been running (even-more-massive) surveys through Google to diff --git a/content/blog/2020-09-18-google-survey.html b/content/blog/2020-09-18-google-survey.html index 83520de30..a58fca1bc 100644 --- a/content/blog/2020-09-18-google-survey.html +++ b/content/blog/2020-09-18-google-survey.html @@ -8,30 +8,30 @@ - R authors: - ryan -heroImage: /blog/images/blog-lg-img_google-survey-post.png -heroImageThumb: /blog/images/blog-thumb-img_google-survey-post.png +heroImage: /blog/images/blog-lg-img_google-survey-post.jpg +heroImageThumb: /blog/images/blog-thumb-img_google-survey-post.jpg summary: | - Since April 2020, in addition to our massive daily survey advertised on - Facebook, we've been running (even-more-massive) surveys through Google to - track the spread of COVID-19 in the United States. - At its peak, our Google survey was taken by over 1.2 million people in a single - day, and over its first month in operation, averaged over 600,000 daily - respondents. In mid-May, we paused daily dissemination of this survey in order + Since April 2020, in addition to our massive daily survey advertised on + Facebook, we've been running (even-more-massive) surveys through Google to + track the spread of COVID-19 in the United States. + At its peak, our Google survey was taken by over 1.2 million people in a single + day, and over its first month in operation, averaged over 600,000 daily + respondents. In mid-May, we paused daily dissemination of this survey in order to focus on our (longer, more complex) survey through Facebook, - but we plan to bring back the Google survey this fall. - This short post covers some key differences between our Google and Facebook + but we plan to bring back the Google survey this fall. + This short post covers some key differences between our Google and Facebook surveys, explains the backstory behind the "CLI-in-community" question - as it arose through our collaboration with Google, + as it arose through our collaboration with Google, and shares some of our thinking about next steps for the Google survey. acknowledgements: | - Ryan Tibshirani wrote the initial code for producing - estimates from the aggregated survey data. Sangwon Hyun, Natalia Lombardi de + Ryan Tibshirani wrote the initial code for producing + estimates from the aggregated survey data. Sangwon Hyun, Natalia Lombardi de Oliveira, and Lester Mackey greatly extended and improved this codebase, and - they developed, along with Ryan, the underlying statistical methodology. Ryan - came up with the idea of running the surveys, and worked with Google to make - this a reality. On the Google side, Brett Slatkin and Hal Varian have been key - collaborators; Brett wrote the code to get daily survey data over to Delphi's - estimation pipeline; and both contributed numerous important ideas at various + they developed, along with Ryan, the underlying statistical methodology. Ryan + came up with the idea of running the surveys, and worked with Google to make + this a reality. On the Google side, Brett Slatkin and Hal Varian have been key + collaborators; Brett wrote the code to get daily survey data over to Delphi's + estimation pipeline; and both contributed numerous important ideas at various stages of the project. output: html_document: diff --git a/content/blog/2020-09-21-forecast-demo.Rmd b/content/blog/2020-09-21-forecast-demo.Rmd index e360aa9e3..d10b13a81 100644 --- a/content/blog/2020-09-21-forecast-demo.Rmd +++ b/content/blog/2020-09-21-forecast-demo.Rmd @@ -9,8 +9,8 @@ tags: - R authors: - ryan -heroImage: /blog/images/blog-Lg-img_can symptoms surveys improve covid-19.png -heroImageThumb: /blog/images/blog-thumbnail_can symptoms surveys improve covid-19.png +heroImage: /blog/images/blog-Lg-img_can symptoms surveys improve covid-19.jpg +heroImageThumb: /blog/images/blog-thumbnail_can symptoms surveys improve covid-19.jpg summary: | Building on our previous two posts (on our COVID-19 symptom surveys through Facebook and Google) diff --git a/content/blog/2020-09-21-forecast-demo.html b/content/blog/2020-09-21-forecast-demo.html index defcebb63..632638cf3 100644 --- a/content/blog/2020-09-21-forecast-demo.html +++ b/content/blog/2020-09-21-forecast-demo.html @@ -9,19 +9,19 @@ - R authors: - ryan -heroImage: /blog/images/blog-Lg-img_can symptoms surveys improve covid-19.png -heroImageThumb: /blog/images/blog-thumbnail_can symptoms surveys improve covid-19.png +heroImage: /blog/images/blog-Lg-img_can symptoms surveys improve covid-19.jpg +heroImageThumb: /blog/images/blog-thumbnail_can symptoms surveys improve covid-19.jpg summary: | Building on our previous two posts (on our COVID-19 symptom surveys through Facebook and Google) - this post offers a deeper dive into empirical analysis, examining whether the - % CLI-in-community indicators from our two surveys can be used to improve + this post offers a deeper dive into empirical analysis, examining whether the + % CLI-in-community indicators from our two surveys can be used to improve the accuracy of short-term forecasts of county-level COVID-19 case rates. acknowledgements: | Delphi's forecasting effort involves many people from our - modeling team, from forecaster design, to implementation, to evaluation. The + modeling team, from forecaster design, to implementation, to evaluation. The broader insights on forecasting shared in this post certainly cannot be - attributable to Ryan's work alone, and are a reflection of the work carried out + attributable to Ryan's work alone, and are a reflection of the work carried out by all these team members. related: - 2020-09-18-google-survey @@ -217,17 +217,17 @@

Forecasting Code

as.Date(max(time_value)), by = "day")) %>% ungroup() df = full_join(df, df_all, by = c("geo_value", "time_value")) - + # Group by geo value, sort rows by increasing time - df = df %>% group_by(geo_value) %>% arrange(time_value) - + df = df %>% group_by(geo_value) %>% arrange(time_value) + # Load over shifts, and add lag value or lead value for (shift in shifts) { fun = ifelse(shift < 0, lag, lead) varname = sprintf("value%+d", shift) df = mutate(df, !!varname := fun(value, n = abs(shift))) } - + # Ungroup and return return(ungroup(df)) } @@ -261,40 +261,40 @@

Forecasting Code

case_num = 200 geo_values = covidcast_signal("jhu-csse", "confirmed_cumulative_num", "2020-05-14", "2020-05-14") %>% - filter(value >= case_num) %>% pull(geo_value) + filter(value >= case_num) %>% pull(geo_value) # Fetch county-level Google and Facebook % CLI-in-community signals, and JHU # confirmed case incidence proportion start_day = "2020-04-11" end_day = "2020-09-01" g = covidcast_signal("google-survey", "smoothed_cli") %>% - filter(geo_value %in% geo_values) %>% - select(geo_value, time_value, value) -f = covidcast_signal("fb-survey", "smoothed_hh_cmnty_cli", + filter(geo_value %in% geo_values) %>% + select(geo_value, time_value, value) +f = covidcast_signal("fb-survey", "smoothed_hh_cmnty_cli", start_day, end_day) %>% - filter(geo_value %in% geo_values) %>% - select(geo_value, time_value, value) + filter(geo_value %in% geo_values) %>% + select(geo_value, time_value, value) c = covidcast_signal("jhu-csse", "confirmed_7dav_incidence_prop", start_day, end_day) %>% - filter(geo_value %in% geo_values) %>% + filter(geo_value %in% geo_values) %>% select(geo_value, time_value, value) -# Find "complete" counties, present in all three data signals at all times +# Find "complete" counties, present in all three data signals at all times geo_values_complete = intersect(intersect(g$geo_value, f$geo_value), c$geo_value) -# Filter to complete counties, transform the signals, append 1-2 week lags to +# Filter to complete counties, transform the signals, append 1-2 week lags to # all three, and also 1-2 week leads to case rates -lags = 1:2 * -7 +lags = 1:2 * -7 leads = 1:2 * 7 -g = g %>% filter(geo_value %in% geo_values_complete) %>% - mutate(value = trans(value * rescale_g)) %>% - append_shifts(shifts = lags) -f = f %>% filter(geo_value %in% geo_values_complete) %>% - mutate(value = trans(value * rescale_f)) %>% - append_shifts(shifts = lags) +g = g %>% filter(geo_value %in% geo_values_complete) %>% + mutate(value = trans(value * rescale_g)) %>% + append_shifts(shifts = lags) +f = f %>% filter(geo_value %in% geo_values_complete) %>% + mutate(value = trans(value * rescale_f)) %>% + append_shifts(shifts = lags) c = c %>% filter(geo_value %in% geo_values_complete) %>% - mutate(value = trans(value * rescale_c)) %>% + mutate(value = trans(value * rescale_c)) %>% append_shifts(shifts = c(lags, leads)) # Rename columns @@ -310,47 +310,47 @@

Forecasting Code

# Use quantgen for LAD regression (this package supports quantile regression and # more; you can find it on GitHub here: https://github.com/ryantibs/quantgen) -library(quantgen) +library(quantgen) res_list = vector("list", length = length(leads)) # Loop over lead, forecast dates, build models and record errors (warning: this # computation takes a while) -for (i in 1:length(leads)) { +for (i in 1:length(leads)) { lead = leads[i]; if (verbose) cat("***", lead, "***\n") - + # Create a data frame to store our forecast results. Code below populates its - # rows in a way that breaks from typical dplyr operations, done for efficiency - res_list[[i]] = z %>% - filter(between(time_value, as.Date(start_day) - min(lags) + lead, + # rows in a way that breaks from typical dplyr operations, done for efficiency + res_list[[i]] = z %>% + filter(between(time_value, as.Date(start_day) - min(lags) + lead, as.Date(end_day) - lead)) %>% select(geo_value, time_value) %>% - mutate(err0 = as.double(NA), err1 = as.double(NA), err2 = as.double(NA), - err3 = as.double(NA), err4 = as.double(NA), lead = lead) + mutate(err0 = as.double(NA), err1 = as.double(NA), err2 = as.double(NA), + err3 = as.double(NA), err4 = as.double(NA), lead = lead) valid_dates = unique(res_list[[i]]$time_value) - + for (k in 1:length(valid_dates)) { date = valid_dates[k]; if (verbose) cat(format(date), "... ") - + # Filter down to training set and test set z_tr = z %>% filter(between(time_value, date - lead - n, date - lead)) z_te = z %>% filter(time_value == date) inds = which(res_list[[i]]$time_value == date) - + # Create training and test responses y_tr = z_tr %>% pull(paste0("case+", lead)) y_te = z_te %>% pull(paste0("case+", lead)) - + # Strawman model if (verbose) cat("0") y_hat = z_te %>% pull(case) res_list[[i]][inds,]$err0 = abs(inv_trans(y_hat) - inv_trans(y_te)) - + # Cases only model if (verbose) cat("1") x_tr_case = z_tr %>% select(starts_with("case") & !contains("+")) x_te_case = z_te %>% select(starts_with("case") & !contains("+")) - x_tr = x_tr_case; x_te = x_te_case # For symmetry wrt what follows + x_tr = x_tr_case; x_te = x_te_case # For symmetry wrt what follows ok = complete.cases(x_tr, y_tr) if (sum(ok) > 0) { obj = quantile_lasso(as.matrix(x_tr[ok,]), y_tr[ok], tau = 0.5, @@ -358,7 +358,7 @@

Forecasting Code

y_hat = as.numeric(predict(obj, newx = as.matrix(x_te))) res_list[[i]][inds,]$err1 = abs(inv_trans(y_hat) - inv_trans(y_te)) } - + # Cases and Facebook model if (verbose) cat("2") x_tr_fb = z_tr %>% select(starts_with("fb")) @@ -386,7 +386,7 @@

Forecasting Code

y_hat = as.numeric(predict(obj, newx = as.matrix(x_te))) res_list[[i]][inds,]$err3 = abs(inv_trans(y_hat) - inv_trans(y_te)) } - + # Cases, Facebook, and Google model if (verbose) cat("4\n") x_tr = cbind(x_tr_case, x_tr_fb, x_tr_goog) @@ -401,7 +401,7 @@

Forecasting Code

} } -# Bind results over different leads into one big data frame, and save +# Bind results over different leads into one big data frame, and save res = do.call(rbind, res_list) save(list = ls(), file = "demo.rda")
diff --git a/content/blog/2020-10-06-survey-wave-4.Rmd b/content/blog/2020-10-06-survey-wave-4.Rmd index 4878617ec..ad8ea7d5f 100644 --- a/content/blog/2020-10-06-survey-wave-4.Rmd +++ b/content/blog/2020-10-06-survey-wave-4.Rmd @@ -12,8 +12,8 @@ summary: | Today we release new public datasets and share maps revealing access to COVID testing, test results, and public use of masks. authors: - alex -heroImage: /blog/images/blog-lg-img_New and Improved COVID.png -heroImageThumb: /blog/images/blog-thumb-img_New and Improved COVID.png +heroImage: /blog/images/blog-lg-img_New and Improved COVID.jpg +heroImageThumb: /blog/images/blog-thumb-img_New and Improved COVID.jpg acknowledgements: | Many items in Wave 4 of our survey are based on work by the team at the Joint Program in Survey Methodology at the University of diff --git a/content/blog/2020-10-06-survey-wave-4.html b/content/blog/2020-10-06-survey-wave-4.html index 9dd48f166..bea390eb1 100644 --- a/content/blog/2020-10-06-survey-wave-4.html +++ b/content/blog/2020-10-06-survey-wave-4.html @@ -7,13 +7,13 @@ - COVIDcast - R summary: | - Beginning on September 8, 2020, we deployed a new version of our symptom survey. - Facebook helps us recruit tens of thousands of respondents daily, and the new survey gives us unprecedented insights into the effects of COVID-19 across the United States. + Beginning on September 8, 2020, we deployed a new version of our symptom survey. + Facebook helps us recruit tens of thousands of respondents daily, and the new survey gives us unprecedented insights into the effects of COVID-19 across the United States. Today we release new public datasets and share maps revealing access to COVID testing, test results, and public use of masks. authors: - alex -heroImage: /blog/images/blog-lg-img_New and Improved COVID.png -heroImageThumb: /blog/images/blog-thumb-img_New and Improved COVID.png +heroImage: /blog/images/blog-lg-img_New and Improved COVID.jpg +heroImageThumb: /blog/images/blog-thumb-img_New and Improved COVID.jpg acknowledgements: | Many items in Wave 4 of our survey are based on work by the team at the Joint Program in Survey Methodology at the University of diff --git a/content/blog/2020-10-14-dv-signal.Rmd b/content/blog/2020-10-14-dv-signal.Rmd index 0abe6dd81..f5b4119ba 100644 --- a/content/blog/2020-10-14-dv-signal.Rmd +++ b/content/blog/2020-10-14-dv-signal.Rmd @@ -9,8 +9,8 @@ tags: authors: - aaron - roni -heroImage: /blog/images/blog-img_A Syndromic COVID-19.png -heroImageThumb: /blog/images/blog-thumb-img_A Syndromic COVID-19.png +heroImage: /blog/images/blog-img_A Syndromic COVID-19.jpg +heroImageThumb: /blog/images/blog-thumb-img_A Syndromic COVID-19.jpg related: - 2020-09-18-google-survey - 2020-08-26-fb-survey diff --git a/content/blog/2020-10-14-dv-signal.html b/content/blog/2020-10-14-dv-signal.html index 0eec260d0..deaebcd25 100644 --- a/content/blog/2020-10-14-dv-signal.html +++ b/content/blog/2020-10-14-dv-signal.html @@ -9,16 +9,16 @@ authors: - aaron - roni -heroImage: /blog/images/blog-img_A Syndromic COVID-19.png -heroImageThumb: /blog/images/blog-thumb-img_A Syndromic COVID-19.png +heroImage: /blog/images/blog-img_A Syndromic COVID-19.jpg +heroImageThumb: /blog/images/blog-thumb-img_A Syndromic COVID-19.jpg related: - 2020-09-18-google-survey - 2020-08-26-fb-survey summary: | In previous posts, we discussed our massive ongoing symptom surveys that have reached over 12 million people in the U.S. since April 2020, in partnership with Facebook and Google. Another one of our major data initiatives is based on partnerships with healthcare systems, granting us access to various aggregate statistics from hospital records and insurance claims covering 10-15% of the United States population. From these data, we can extract informative indicators that can be early indicators of COVID activity. This post focuses on one indicator in particular, based on outpatient visits, and demonstrates both the challenges and promises associated with medical records data. acknowledgements: | - Maria Jahja contributed immensely to every stage of this project, from determining which ICD codes to use to the final implementation of the indicator. - Aaron Rumack devised the weekday adjustment and analyzed the performance of the DV indicator. + Maria Jahja contributed immensely to every stage of this project, from determining which ICD codes to use to the final implementation of the indicator. + Aaron Rumack devised the weekday adjustment and analyzed the performance of the DV indicator. Roni Rosenfeld worked closely with our health systems partners to get access to the data and provided domain knowledge to ensure that the data was useful. Both Roni and Ryan Tibshirani provided helpful suggestions and insights towards the methodology and analysis. output: diff --git a/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.jpg b/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.jpg new file mode 100644 index 000000000..9be2ea1d0 Binary files /dev/null and b/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.jpg differ diff --git a/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.png b/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.png deleted file mode 100644 index 7c680deec..000000000 Binary files a/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.png and /dev/null differ diff --git a/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.webp b/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.webp new file mode 100644 index 000000000..ac7f40f37 Binary files /dev/null and b/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.webp differ diff --git a/static/blog/images/blog-img_A Syndromic COVID-19.jpg b/static/blog/images/blog-img_A Syndromic COVID-19.jpg new file mode 100644 index 000000000..93965df70 Binary files /dev/null and b/static/blog/images/blog-img_A Syndromic COVID-19.jpg differ diff --git a/static/blog/images/blog-img_A Syndromic COVID-19.png b/static/blog/images/blog-img_A Syndromic COVID-19.png deleted file mode 100644 index b82cdf77c..000000000 Binary files a/static/blog/images/blog-img_A Syndromic COVID-19.png and /dev/null differ diff --git a/static/blog/images/blog-img_A Syndromic COVID-19.webp b/static/blog/images/blog-img_A Syndromic COVID-19.webp new file mode 100644 index 000000000..c1c77008c Binary files /dev/null and b/static/blog/images/blog-img_A Syndromic COVID-19.webp differ diff --git a/static/blog/images/blog-lg-img_Accessing Open COVID-19.jpg b/static/blog/images/blog-lg-img_Accessing Open COVID-19.jpg new file mode 100644 index 000000000..b049d4bd7 Binary files /dev/null and b/static/blog/images/blog-lg-img_Accessing Open COVID-19.jpg differ diff --git a/static/blog/images/blog-lg-img_Accessing Open COVID-19.png b/static/blog/images/blog-lg-img_Accessing Open COVID-19.png deleted file mode 100644 index 97858730a..000000000 Binary files a/static/blog/images/blog-lg-img_Accessing Open COVID-19.png and /dev/null differ diff --git a/static/blog/images/blog-lg-img_Accessing Open COVID-19.webp b/static/blog/images/blog-lg-img_Accessing Open COVID-19.webp new file mode 100644 index 000000000..37d3abce9 Binary files /dev/null and b/static/blog/images/blog-lg-img_Accessing Open COVID-19.webp differ diff --git a/static/blog/images/blog-lg-img_New and Improved COVID.jpg b/static/blog/images/blog-lg-img_New and Improved COVID.jpg new file mode 100644 index 000000000..6725bdf09 Binary files /dev/null and b/static/blog/images/blog-lg-img_New and Improved COVID.jpg differ diff --git a/static/blog/images/blog-lg-img_New and Improved COVID.png b/static/blog/images/blog-lg-img_New and Improved COVID.png deleted file mode 100644 index 3dfe3c34a..000000000 Binary files a/static/blog/images/blog-lg-img_New and Improved COVID.png and /dev/null differ diff --git a/static/blog/images/blog-lg-img_New and Improved COVID.webp b/static/blog/images/blog-lg-img_New and Improved COVID.webp new file mode 100644 index 000000000..9e5eeadd1 Binary files /dev/null and b/static/blog/images/blog-lg-img_New and Improved COVID.webp differ diff --git a/static/blog/images/blog-lg-img_facebook-survey-post.jpg b/static/blog/images/blog-lg-img_facebook-survey-post.jpg new file mode 100644 index 000000000..212c46a3c Binary files /dev/null and b/static/blog/images/blog-lg-img_facebook-survey-post.jpg differ diff --git a/static/blog/images/blog-lg-img_facebook-survey-post.png b/static/blog/images/blog-lg-img_facebook-survey-post.png deleted file mode 100644 index 9cc5fb8c7..000000000 Binary files a/static/blog/images/blog-lg-img_facebook-survey-post.png and /dev/null differ diff --git a/static/blog/images/blog-lg-img_facebook-survey-post.webp b/static/blog/images/blog-lg-img_facebook-survey-post.webp new file mode 100644 index 000000000..6a8cd78b4 Binary files /dev/null and b/static/blog/images/blog-lg-img_facebook-survey-post.webp differ diff --git a/static/blog/images/blog-lg-img_google-survey-post.jpg b/static/blog/images/blog-lg-img_google-survey-post.jpg new file mode 100644 index 000000000..4de0a9fcb Binary files /dev/null and b/static/blog/images/blog-lg-img_google-survey-post.jpg differ diff --git a/static/blog/images/blog-lg-img_google-survey-post.png b/static/blog/images/blog-lg-img_google-survey-post.png deleted file mode 100644 index e3551bb66..000000000 Binary files a/static/blog/images/blog-lg-img_google-survey-post.png and /dev/null differ diff --git a/static/blog/images/blog-lg-img_google-survey-post.webp b/static/blog/images/blog-lg-img_google-survey-post.webp new file mode 100644 index 000000000..10f54144a Binary files /dev/null and b/static/blog/images/blog-lg-img_google-survey-post.webp differ diff --git a/static/blog/images/blog-lg-img_hello-world.jpg b/static/blog/images/blog-lg-img_hello-world.jpg new file mode 100644 index 000000000..bb8eaeb95 Binary files /dev/null and b/static/blog/images/blog-lg-img_hello-world.jpg differ diff --git a/static/blog/images/blog-lg-img_hello-world.png b/static/blog/images/blog-lg-img_hello-world.png deleted file mode 100644 index ce543bba4..000000000 Binary files a/static/blog/images/blog-lg-img_hello-world.png and /dev/null differ diff --git a/static/blog/images/blog-lg-img_hello-world.webp b/static/blog/images/blog-lg-img_hello-world.webp new file mode 100644 index 000000000..98169c9c4 Binary files /dev/null and b/static/blog/images/blog-lg-img_hello-world.webp differ diff --git a/static/blog/images/blog-thumb-img_A Syndromic COVID-19.jpg b/static/blog/images/blog-thumb-img_A Syndromic COVID-19.jpg new file mode 100644 index 000000000..b57360278 Binary files /dev/null and b/static/blog/images/blog-thumb-img_A Syndromic COVID-19.jpg differ diff --git a/static/blog/images/blog-thumb-img_A Syndromic COVID-19.png b/static/blog/images/blog-thumb-img_A Syndromic COVID-19.png deleted file mode 100644 index f57f06156..000000000 Binary files a/static/blog/images/blog-thumb-img_A Syndromic COVID-19.png and /dev/null differ diff --git a/static/blog/images/blog-thumb-img_A Syndromic COVID-19.webp b/static/blog/images/blog-thumb-img_A Syndromic COVID-19.webp new file mode 100644 index 000000000..6d10cbcd8 Binary files /dev/null and b/static/blog/images/blog-thumb-img_A Syndromic COVID-19.webp differ diff --git a/static/blog/images/blog-thumb-img_Accessing Open COVID-19.jpg b/static/blog/images/blog-thumb-img_Accessing Open COVID-19.jpg new file mode 100644 index 000000000..b001a089a Binary files /dev/null and b/static/blog/images/blog-thumb-img_Accessing Open COVID-19.jpg differ diff --git a/static/blog/images/blog-thumb-img_Accessing Open COVID-19.png b/static/blog/images/blog-thumb-img_Accessing Open COVID-19.png deleted file mode 100644 index 7e1b4d8a2..000000000 Binary files a/static/blog/images/blog-thumb-img_Accessing Open COVID-19.png and /dev/null differ diff --git a/static/blog/images/blog-thumb-img_Accessing Open COVID-19.webp b/static/blog/images/blog-thumb-img_Accessing Open COVID-19.webp new file mode 100644 index 000000000..0bb50e0d5 Binary files /dev/null and b/static/blog/images/blog-thumb-img_Accessing Open COVID-19.webp differ diff --git a/static/blog/images/blog-thumb-img_New and Improved COVID.jpg b/static/blog/images/blog-thumb-img_New and Improved COVID.jpg new file mode 100644 index 000000000..55f4ccc35 Binary files /dev/null and b/static/blog/images/blog-thumb-img_New and Improved COVID.jpg differ diff --git a/static/blog/images/blog-thumb-img_New and Improved COVID.png b/static/blog/images/blog-thumb-img_New and Improved COVID.png deleted file mode 100644 index 02a2a5a83..000000000 Binary files a/static/blog/images/blog-thumb-img_New and Improved COVID.png and /dev/null differ diff --git a/static/blog/images/blog-thumb-img_New and Improved COVID.webp b/static/blog/images/blog-thumb-img_New and Improved COVID.webp new file mode 100644 index 000000000..8fd82e5df Binary files /dev/null and b/static/blog/images/blog-thumb-img_New and Improved COVID.webp differ diff --git a/static/blog/images/blog-thumb-img_facebook-survey-post.jpg b/static/blog/images/blog-thumb-img_facebook-survey-post.jpg new file mode 100644 index 000000000..9fec45125 Binary files /dev/null and b/static/blog/images/blog-thumb-img_facebook-survey-post.jpg differ diff --git a/static/blog/images/blog-thumb-img_facebook-survey-post.png b/static/blog/images/blog-thumb-img_facebook-survey-post.png deleted file mode 100644 index 61f7b5638..000000000 Binary files a/static/blog/images/blog-thumb-img_facebook-survey-post.png and /dev/null differ diff --git a/static/blog/images/blog-thumb-img_facebook-survey-post.webp b/static/blog/images/blog-thumb-img_facebook-survey-post.webp new file mode 100644 index 000000000..ac5d58aab Binary files /dev/null and b/static/blog/images/blog-thumb-img_facebook-survey-post.webp differ diff --git a/static/blog/images/blog-thumb-img_google-survey-post.jpg b/static/blog/images/blog-thumb-img_google-survey-post.jpg new file mode 100644 index 000000000..0f4ae956e Binary files /dev/null and b/static/blog/images/blog-thumb-img_google-survey-post.jpg differ diff --git a/static/blog/images/blog-thumb-img_google-survey-post.png b/static/blog/images/blog-thumb-img_google-survey-post.png deleted file mode 100644 index 308af47b0..000000000 Binary files a/static/blog/images/blog-thumb-img_google-survey-post.png and /dev/null differ diff --git a/static/blog/images/blog-thumb-img_google-survey-post.webp b/static/blog/images/blog-thumb-img_google-survey-post.webp new file mode 100644 index 000000000..2b2877137 Binary files /dev/null and b/static/blog/images/blog-thumb-img_google-survey-post.webp differ diff --git a/static/blog/images/blog-thumb-img_hello-world.jpg b/static/blog/images/blog-thumb-img_hello-world.jpg new file mode 100644 index 000000000..2cbcb13eb Binary files /dev/null and b/static/blog/images/blog-thumb-img_hello-world.jpg differ diff --git a/static/blog/images/blog-thumb-img_hello-world.png b/static/blog/images/blog-thumb-img_hello-world.png deleted file mode 100644 index 7aafb8ed8..000000000 Binary files a/static/blog/images/blog-thumb-img_hello-world.png and /dev/null differ diff --git a/static/blog/images/blog-thumb-img_hello-world.webp b/static/blog/images/blog-thumb-img_hello-world.webp new file mode 100644 index 000000000..41689d2dd Binary files /dev/null and b/static/blog/images/blog-thumb-img_hello-world.webp differ diff --git a/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.jpg b/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.jpg new file mode 100644 index 000000000..68c476a71 Binary files /dev/null and b/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.jpg differ diff --git a/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.png b/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.png deleted file mode 100644 index 0dc7dc30f..000000000 Binary files a/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.png and /dev/null differ diff --git a/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.webp b/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.webp new file mode 100644 index 000000000..2d744d85e Binary files /dev/null and b/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.webp differ diff --git a/static/blog/images/masks-public-full-size.webp b/static/blog/images/masks-public-full-size.webp new file mode 100644 index 000000000..7cfb9560e Binary files /dev/null and b/static/blog/images/masks-public-full-size.webp differ diff --git a/static/blog/images/masks-public-thumb.webp b/static/blog/images/masks-public-thumb.webp new file mode 100644 index 000000000..8c1cacfbc Binary files /dev/null and b/static/blog/images/masks-public-thumb.webp differ diff --git a/static/images/landing-page/API-image.jpg b/static/images/landing-page/API-image.jpg new file mode 100644 index 000000000..3bcabc6b0 Binary files /dev/null and b/static/images/landing-page/API-image.jpg differ diff --git a/static/images/landing-page/API-image.png b/static/images/landing-page/API-image.png deleted file mode 100644 index c4096b143..000000000 Binary files a/static/images/landing-page/API-image.png and /dev/null differ diff --git a/static/images/landing-page/hero-images/covidcast_withfill.jpg b/static/images/landing-page/hero-images/covidcast_withfill.jpg new file mode 100644 index 000000000..e9fca8f03 Binary files /dev/null and b/static/images/landing-page/hero-images/covidcast_withfill.jpg differ diff --git a/static/images/landing-page/hero-images/covidcast_withfill.png b/static/images/landing-page/hero-images/covidcast_withfill.png deleted file mode 100644 index f84bba04f..000000000 Binary files a/static/images/landing-page/hero-images/covidcast_withfill.png and /dev/null differ diff --git a/static/images/landing-page/hero-images/covidcast_withfill.webp b/static/images/landing-page/hero-images/covidcast_withfill.webp new file mode 100644 index 000000000..a3e9ea750 Binary files /dev/null and b/static/images/landing-page/hero-images/covidcast_withfill.webp differ diff --git a/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.jpg b/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.jpg new file mode 100644 index 000000000..91f4e5fad Binary files /dev/null and b/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.jpg differ diff --git a/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.png b/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.png deleted file mode 100644 index 3b41eb47e..000000000 Binary files a/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.png and /dev/null differ diff --git a/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.webp b/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.webp new file mode 100644 index 000000000..6cdef2e26 Binary files /dev/null and b/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.webp differ diff --git a/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.jpg b/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.jpg new file mode 100644 index 000000000..12ff95b9a Binary files /dev/null and b/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.jpg differ diff --git a/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.png b/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.png deleted file mode 100644 index 944fbef34..000000000 Binary files a/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.png and /dev/null differ diff --git a/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.webp b/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.webp new file mode 100644 index 000000000..058136891 Binary files /dev/null and b/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.webp differ diff --git a/static/images/red-bubble-map_mission-pg-short.webp b/static/images/red-bubble-map_mission-pg-short.webp new file mode 100644 index 000000000..a949c6c90 Binary files /dev/null and b/static/images/red-bubble-map_mission-pg-short.webp differ diff --git a/themes/delphi/assets/css/components/_card_grid.scss b/themes/delphi/assets/css/components/_card_grid.scss index 170fce8bb..5ec421bec 100644 --- a/themes/delphi/assets/css/components/_card_grid.scss +++ b/themes/delphi/assets/css/components/_card_grid.scss @@ -30,9 +30,14 @@ margin: 1em 1em 0 8em; } + .card-grid-item > picture { + width: 12em; + flex-shrink: 0; + } + .card-grid-item-img { - width: 14em; - height: unset; + width: 12em; + height: 100%; border-radius: 8px 0 0 8px; } diff --git a/themes/delphi/assets/css/pages/_about.scss b/themes/delphi/assets/css/pages/_about.scss index 44371bbc6..986f90572 100644 --- a/themes/delphi/assets/css/pages/_about.scss +++ b/themes/delphi/assets/css/pages/_about.scss @@ -1,7 +1,9 @@ .about-mission { - background-image: url("../images/red-bubble-map_mission-pg-short.jpg"); - background-size: auto; height: 200px; + display: flex; +} +.about-mission-img { + flex: 1 1 0; } .mission-text { diff --git a/themes/delphi/assets/css/pages/_landing.scss b/themes/delphi/assets/css/pages/_landing.scss index a0c060695..d7600dc76 100644 --- a/themes/delphi/assets/css/pages/_landing.scss +++ b/themes/delphi/assets/css/pages/_landing.scss @@ -21,6 +21,10 @@ $carousel-height: 500px; img { z-index: -1; + width: 100%; + height: 100%; + object-fit: cover; + position: absolute; } } @@ -99,6 +103,9 @@ $carousel-height: 500px; max-width: 100%; max-height: 100%; } + > img { + border-radius: 5px; + } } .latest-news { @@ -112,4 +119,16 @@ $carousel-height: 500px; > img { filter: grayscale(100%); } + > img:first-of-type { + border-top-left-radius: 5px; + } + > img:nth-child(4) { + border-top-right-radius: 5px; + } + > img:nth-child(5) { + border-bottom-left-radius: 5px; + } + > img:last-of-type { + border-bottom-right-radius: 5px; + } } diff --git a/themes/delphi/layouts/_default/about.html b/themes/delphi/layouts/_default/about.html index a828d9841..035ad24d0 100644 --- a/themes/delphi/layouts/_default/about.html +++ b/themes/delphi/layouts/_default/about.html @@ -1,5 +1,7 @@ {{ define "main" }} -
+
+ {{ partial "webp-image.html" (dict "src" "/images/red-bubble-map_mission-pg-short.jpg" "class" "about-mission-img") }} +

Delphi Research Group

diff --git a/themes/delphi/layouts/blog/list.html b/themes/delphi/layouts/blog/list.html index d76ea371d..0ea59ffe9 100644 --- a/themes/delphi/layouts/blog/list.html +++ b/themes/delphi/layouts/blog/list.html @@ -7,13 +7,7 @@

{{ .Description }}

{{ range .Paginator.Pages }}
{{ .Date.Format "Jan _2" }}
- {{ .Title }} - Hero Image + {{ partial "webp-image.html" (dict "src" .Params.heroImageThumb "alt" .Title "class" "card-grid-item-img") }}

{{ .Title }}

diff --git a/themes/delphi/layouts/blog/single.html b/themes/delphi/layouts/blog/single.html index 6bb8435d3..cda352198 100644 --- a/themes/delphi/layouts/blog/single.html +++ b/themes/delphi/layouts/blog/single.html @@ -13,7 +13,7 @@

{{ .Title }}

{{ partial "blog/tags.html" . }} {{ if isset .Params "heroimage" }}
- {{ .Title }} - Hero Image + {{ partial "webp-image.html" (dict "src" .Params.heroImage "width" 1120 "height" 440 "alt" .Title) }}
{{ end }}
diff --git a/themes/delphi/layouts/landing.html b/themes/delphi/layouts/landing.html index 25f8de2d4..5e7cc3de1 100644 --- a/themes/delphi/layouts/landing.html +++ b/themes/delphi/layouts/landing.html @@ -24,7 +24,7 @@

Our Team

- +

Our API

Access our data and tools

diff --git a/themes/delphi/layouts/partials/blog/card.html b/themes/delphi/layouts/partials/blog/card.html index 9e650dceb..d17020c6e 100644 --- a/themes/delphi/layouts/partials/blog/card.html +++ b/themes/delphi/layouts/partials/blog/card.html @@ -1,13 +1,8 @@
{{ partial "blog/tags.html" . }} diff --git a/themes/delphi/layouts/partials/landing/carousel.html b/themes/delphi/layouts/partials/landing/carousel.html index e0a7b1054..44e8df906 100644 --- a/themes/delphi/layouts/partials/landing/carousel.html +++ b/themes/delphi/layouts/partials/landing/carousel.html @@ -8,7 +8,7 @@
    {{ range .Params.carousel }}
  • - + {{ partial "webp-image.html" (dict "src" (path.Join "/images/landing-page/hero-images" .image)) }}

    {{ .pre }}

    diff --git a/themes/delphi/layouts/partials/landing/latest-card.html b/themes/delphi/layouts/partials/landing/latest-card.html index d730da0bb..8d26125e9 100644 --- a/themes/delphi/layouts/partials/landing/latest-card.html +++ b/themes/delphi/layouts/partials/landing/latest-card.html @@ -1,6 +1,6 @@
    - {{ .title }} + {{ partial "webp-image.html" (dict "src" .image "alt" .title) }}
    {{ .source }}
    diff --git a/themes/delphi/layouts/partials/webp-image.html b/themes/delphi/layouts/partials/webp-image.html new file mode 100644 index 000000000..ff24105c0 --- /dev/null +++ b/themes/delphi/layouts/partials/webp-image.html @@ -0,0 +1,9 @@ +{{- $webpImage := (replace .src (path.Ext .src) ".webp") }} +{{ if fileExists (path.Join "static" $webpImage) }} + + + + + {{ else }} + +{{ end }} diff --git a/themes/delphi/layouts/shortcodes/research-papers.html b/themes/delphi/layouts/shortcodes/research-papers.html index 2948530da..4a77cb258 100644 --- a/themes/delphi/layouts/shortcodes/research-papers.html +++ b/themes/delphi/layouts/shortcodes/research-papers.html @@ -4,7 +4,7 @@ {{ $img := $images.GetMatch (path.Join "images" .image) }}
    {{ .year }}
    - +