Skip to content

Commit

Permalink
Merge pull request #57 from Openscapes/stef-epa
Browse files Browse the repository at this point in the history
Working through EPA specific suggested edits
  • Loading branch information
jules32 authored Aug 27, 2024
2 parents 0d82388 + fe05921 commit e7ffa97
Show file tree
Hide file tree
Showing 15 changed files with 230 additions and 199 deletions.
60 changes: 29 additions & 31 deletions additional-lessons/code-of-conduct.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -4,59 +4,56 @@ aliases:
- ../additional-lessons/code-of-conduct.html
---

*Please see accompanying [slides](https://docs.google.com/presentation/d/11816HbwRCvnr8dFXkk8UqfSy_0O4svEoFFFyHOZ0IBE/) until this chapter is built out more.*

Please also refer to Openscapes' Code of Conduct: <https://openscapes.org/code-of-conduct>
Please see [Openscapes' Code of Conduct](https://openscapes.org/code-of-conduct) and [slides](https://docs.google.com/presentation/d/11816HbwRCvnr8dFXkk8UqfSy_0O4svEoFFFyHOZ0IBE/) (June 2021) that accompany this lesson.

```{=html}
<!--- other resources
https://mozilla.github.io/open-leadership-training-series/articles/building-communities-of-contributors/write-a-code-of-conduct/
https://internethealthreport.org/2019/codes-of-conduct-in-open-source-communities/
--->
```
Codes of Conduct are important for:

Important for:

- Conferences & workshops
- Online communities
- Labs & departments

## Code of Conduct also known as
- Online communities
- Conferences & workshops
- Laboratories & research departments
- Research teams & collaborators

Community Participation Guidelines
Code of Practice

Similar ideas:
Lab philosophy, mission statement, participation agreements
A Code of Conduct can also be known as Community Participation Guidelines or a Code of Practice. Related valuable concepts include documenting a research group or team philosophy, mission statement, or participation agreements.

## Requirements

- Clear explicit statements
- Seen and heard – that all participants know about
- Accessible and discoverable online
- Mentioned aloud in meetings/interviews/onboarding
- Avenues for action, identified committees, recusals
- Clear explicit statements
- Seen and heard – that all participants know about
- Accessible and discoverable online
- Mentioned aloud in meetings/interviews/onboarding
- Avenues for action, identified committees, recusals

## Case study: rOpenSci

[CoC itself](https://ropensci.org/code-of-conduct/)
[Blog post about the CoC](https://ropensci.org/blog/2019/01/14/conduct/)
[Blog post about creating the CoC](https://ropensci.org/blog/2016/12/21/commcallv12-review-coc/) — following a community call on the topic. Interesting points:
[CoC itself](https://ropensci.org/code-of-conduct/)\
[Blog post about the CoC](https://ropensci.org/blog/2019/01/14/conduct/)\
[Blog post about creating the CoC](https://ropensci.org/blog/2016/12/21/commcallv12-review-coc/) — following a community call on the topic.

Interesting points:

- Drafting – make it good and revisit; but not a living doc
- Adopting and sharing – so people know it exists & where to find it
- Reporting and enforcing – standardized form can help
- Drafting – make it good and revisit; but not a living doc
- Adopting and sharing – so people know it exists & where to find it
- Reporting and enforcing – a standardized form can help

## Examples to build from

- [rOpenSci CoC](https://ropensci.org/code-of-conduct/)
- [Buffer's CoC & Why It’s Important For Diversity And Inclusion](https://open.buffer.com/code-of-conduct/)
- [Mozilla Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/)
- [Template CoC for labs](https://github.com/dasaderi/Lab_CoC_templates/blob/master/CODE_OF_CONDUCT.md)
- [rOpenSci CoC](https://ropensci.org/code-of-conduct/)
- [Buffer's CoC & Why It’s Important For Diversity And Inclusion](https://open.buffer.com/code-of-conduct/)
- [Mozilla Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/)
- [Template CoC for labs](https://github.com/dasaderi/Lab_CoC_templates/blob/master/CODE_OF_CONDUCT.md)

## Further Reading

- [How Codes of Conduct Are Combatting Open Source’s Diversity Problem](https://eyeondesign.aiga.org/are-codes-of-conduct-changing-the-diversity-stats-in-open-source/) — Margaret Rhodes, AIGA Eye on Design
- [How Codes of Conduct Are Combatting Open Source’s Diversity Problem](https://eyeondesign.aiga.org/are-codes-of-conduct-changing-the-diversity-stats-in-open-source/) — Margaret Rhodes, AIGA Eye on Design

```{=html}
<!---
Radical gradualism RBG
Expand Down Expand Up @@ -113,3 +110,4 @@ Examples:
I hope this helps! Let me know if you want me to talk more about this. Our coding club called Eco-Data-Science actually is teaching text analysis in R on Feb 5 and you can Zoom in to see what it's like, or to code along if you'd like!
--->
```
23 changes: 11 additions & 12 deletions additional-lessons/reporting-scicomm.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,21 @@
title: Quarto/RMarkdown for reporting & science communication
---

We can use Quarto and RMarkdown as powerful tools for reporting and science communication. So much potential for public communication, lab protocols and documents, etc. with R and Python workflows.
We can use Quarto and RMarkdown as powerful tools for reporting and science communication. So much potential for public communication, methods protocols and documents, etc. with R and Python workflows.

We've talked and taught about this in different places:

- [Documenting things: openly for future us](https://openscapes.github.io/documenting-things/#/title-slide) - September 19, 2023, at posit::conf(2023) shared practical tips and repeatable strategies (from impact of NASA Openscapes & beyond)
- [Data science as an entryway to open publishing](https://docs.google.com/presentation/d/1Jv0akRHEnjG_4t_9P7t93682BCBJskYnRu_7EnaeDQI/edit?usp=sharing) - May 27, 2020: Fireside Chat co-presented with Dr. Nick Tierney at Open Publishing Fest.
- These 2019 Champions [slides](https://docs.google.com/presentation/d/1efJj7Dxg_g4ZRZT2b1agDQrT3DN5lVcNvv25IWcyGlw/edit?usp=sharing) show some early descriptions for teaching
We've talked and taught about this in different places:

- [Documenting things: openly for future us](https://openscapes.github.io/documenting-things/#/title-slide) - September 19, 2023, at posit::conf(2023) shared practical tips and repeatable strategies (from impact of NASA Openscapes & beyond)
- [Data science as an entryway to open publishing](https://docs.google.com/presentation/d/1Jv0akRHEnjG_4t_9P7t93682BCBJskYnRu_7EnaeDQI/edit?usp=sharing) - May 27, 2020: Fireside Chat co-presented with Dr. Nick Tierney at Open Publishing Fest.
- These 2019 Champions [slides](https://docs.google.com/presentation/d/1efJj7Dxg_g4ZRZT2b1agDQrT3DN5lVcNvv25IWcyGlw/edit?usp=sharing) show some early descriptions for teaching

## Further resources

Strategies with RMarkdown also apply to Quarto

- [RMarkdown](https://rmarkdown.rstudio.com) - RStudio (2021)
- [How I teach RMarkdown](https://www.apreshill.com/blog/2020-05-how-i-teach-r-markdown/) - Hill (2020)
- [R Markdown for scientists](https://rmd4sci.njtierney.com) - Tierney (2020)
- [R for Excel Users](https://rstudio-conf-2020.github.io/r-for-excel) - Lowndes & Horst (2020)
- [RMarkdown website tutorial](http://jules32.github.io/rmarkdown-website-tutorial) - Lowndes (2016)
- [Academic Publications with R Markdown](https://danovando.github.io/publications-with-rmarkdown/presentations/pubs-with-rmarkdown#9)- Ovando 2020
- [RMarkdown](https://rmarkdown.rstudio.com) - RStudio (2021)
- [How I teach RMarkdown](https://www.apreshill.com/blog/2020-05-how-i-teach-r-markdown/) - Hill (2020)
- [R Markdown for scientists](https://rmd4sci.njtierney.com) - Tierney (2020)
- [R for Excel Users](https://rstudio-conf-2020.github.io/r-for-excel) - Lowndes & Horst (2020)
- [RMarkdown website tutorial](http://jules32.github.io/rmarkdown-website-tutorial) - Lowndes (2016)
- [Academic Publications with R Markdown](https://danovando.github.io/publications-with-rmarkdown/presentations/pubs-with-rmarkdown#9)- Ovando 2020
8 changes: 5 additions & 3 deletions core-lessons/better-science.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ The OHI team started having "Seaside Chats": 1x/week where they discussed filena

### Create place

Creating place is critical for asynchronous collaboration. This includes GitHub Organizations, Repositories, Issues; Google Drive Folders, Docs, Spreadsheets, and Slides; Slack Organizations and Channels; JupyterHubs, etc.
Creating place is critical for asynchronous collaboration. It is a place for code, shared practices, resources, conversations. Critically, this involves making sure that everyone on the team is comfortable contributing through these channels. This means both with the technology, and the culture of the team.

It is a place for code, shared practices, resources, conversations. Critically, this involves making sure that everyone on the team is comfortable contributing through these channels. This means both with the technology, and the culture of the team.
Asynchronous collaboration often requires some form of version control so the team can understand what documentation, data, code, graph, etc., is current. Specific places depend on the tools and platforms used in a given organization or research group. These can include GitHub Organizations, Repositories, Issues, Projects; Google Drive Folders, Docs, Spreadsheets, Slides, Calendars; Slack Organizations and Channels; Teams, Sharepoint; JupyterHubs; etc.

### Find the common

Expand Down Expand Up @@ -119,8 +119,10 @@ Here are a few examples to showcase what is possible and being done by the commu

- [Regime Shifts in R & Data Science within the BC Public Service Observations from the field](https://stephhazlitt.github.io/regime-shifts/slides#1) - Stephanie Hazlitt, Government of British Columbia, slides from CascadiaRconf keynote
- [NMFSReports: Easily write NOAA reports and tech memos in R Markdown](https://github.com/EmilyMarkowitz-NOAA/NMFSReports/blob/main/presentations/2021-06-05NMFSReports-RCascadiaConf.pdf)! - Emily Markowitz, NOAA Alaska Fisheries Science Center, slides from CascadiaRconf talk
- [Automated reporting in Tampa Bay with open science](https://www.openscapes.org/blog/2020/11/16/tampa-bay-reporting/) - Marcus Beck, Tampa Bay Estuary Program, Openscapes blog
- Tampa Bay Estuary Program
- [Automated reporting in Tampa Bay with open science](https://www.openscapes.org/blog/2020/11/16/tampa-bay-reporting/) (blog) - Marcus Beck, Tampa Bay Estuary Program, Openscapes blog
- [TBEP's Data Management Workflow](https://tbep-tech.github.io/data-management-sop/workflow.html) and open science cake
- [Coordinated monitoring of the Piney Point wastewater discharge into Tampa Bay: Data synthesis and reporting](https://www.researchgate.net/publication/373388123_Coordinated_monitoring_of_the_Piney_Point_wastewater_discharge_into_Tampa_Bay_Data_synthesis_and_reporting), 2023. Florida Scientist, 86(2), pp.288-300 - Beck, M.W., Burke, M.C., Raulerson, G.E., Scolaro, S., Sherwood, E.T. and Whalen, J.

## Further resources

Expand Down
8 changes: 4 additions & 4 deletions core-lessons/coding-strategies.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -300,10 +300,10 @@ Reticulate](https://github.com/ttimbers/intro-to-reticulate/blob/main/slides/ret
If you're choosing between R, Python, and other modern languages, they
will aready be reproducible, auditable, and accurate. That leaves
collaboration -- what do your collaborators use? What do folks in your
lab, or field use? What is mentioned in the papers you read? There is
increasing interoperability between languages (e.g. see
[reticulate](https://rstudio.github.io/reticulate/) to run python code
from R) so when you have some idea it's best to get started!
lab, research team, or field of study use? What is mentioned in the
papers you read? There is increasing interoperability between languages
(e.g. see [reticulate](https://rstudio.github.io/reticulate/) to run
python code from R) so when you have some idea it's best to get started!

See also: [Opinionated analysis development (Parker
2017)](https://peerj.com/preprints/3210). Tools like RStudio are already
Expand Down
33 changes: 28 additions & 5 deletions core-lessons/communities.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -98,17 +98,40 @@ In the past, Twitter has been a legit tool for science, a good way to learn what
## Open community examples

### Government peer-learning groups
Each open community has a purpose. Many have missions focused on diversity, equity, inclusion, and justice, within a specific domain. These are just a few examples, roughly categorized.

- [NMFS Open Sci (NOAA Fisheries)](https://nmfs-opensci.github.io/)
- Data Science Learning Community ([DSLC](https://dslc.io/))
- [The Carpentries](https://carpentries.org/)
- [The Turing Way](https://the-turing-way.netlify.app/index.html)
- NASA's Transform to Open Science ([TOPS](https://nasa.github.io/Transform-to-Open-Science/))

- see also <https://openscapes.github.io/series/forkeds-lessons/#nmfs-openscapes>
### Language & Tools

- [rOpenSci](https://ropensci.org/)
- [R-Ladies](https://rladies.org/)
- [Posit](https://forum.posit.co/)
- [pyOpenSci](https://www.pyopensci.org/)
- [PyLadies](https://pyladies.com/)

### Domain

- [Pangeo](https://pangeo.io/)
- Black in Marine Science ([BIMS](https://www.blackinmarinescience.org/))
- Black women in Ecology, Evolution, and Marine Science ([BWEEMS](https://www.bweems.org/))
- [Ladies of Landsat](https://ladiesoflandsat.github.io/)

### Geographical / regional

- Local [R User Groups](https://www.r-consortium.org/all-projects/r-user-group-support-program)
- Interagency Ecological Program [Data Science Project Work Team](https://iep.ca.gov/Science-Synthesis-Service/Project-Work-Teams/Data-Science)

- [R Govys](https://rgovys.github.io/)
### Government

- EPA CEMM Data Science Technical Exchange, R & Python user groups, Data Science Community of Practice
- [NMFS Open Science](https://nmfs-opensci.github.io/) (National Marine Fisheries Service / NOAA Fisheries)
- [NMFS Openscapes](https://nmfs-openscapes.github.io/)
- [R Govys](https://rgovys.github.io/)
- [USGS-R](https://usgs-r.github.io/)
- U.S. EPA CEMM Data Science Technical Exchange, R & Python user groups, Data Science Community of Practice

### Campus coding clubs

Expand Down
16 changes: 8 additions & 8 deletions core-lessons/data-strategies.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Data strategies are part of a shared workflow strategy: How do we structure data

[Data strategies for Future Us for Cloud](https://nsidc.github.io/data_strategies_for_future_us/data_strategies_slides#/title-slide), by Andy Barrett, NASA National Snow and Ice Data Center (NSIDC) (2023)

[Data strategies for Future Us for Metadata](https://docs.google.com/presentation/d/10X5i9zZ0uVeEaTW6F2aSvkrcxLCgW0JU9rVZvPB1ZKc/edit#slide=id.g6532ff24f4_0_0), contributed by Jessica Couture (2021)
[Data strategies for Future Us for Metadata](https://docs.google.com/presentation/d/10X5i9zZ0uVeEaTW6F2aSvkrcxLCgW0JU9rVZvPB1ZKc/edit#slide=id.g6532ff24f4_0_0), contributed by Jessica Couture (2021), includes example from Exxon Valdez Oil Spill data projects
:::

::: {.callout-warning icon="false"}
Expand Down Expand Up @@ -113,7 +113,7 @@ Read their paper for strategies and examples behind changing the culture: There
```
## Tidy data for efficiency, reproducibility, & collaboration

We'll explore the concept of **tidy data** through the illustrated series [Tidy data for efficiency, reproducibility, & collaboration](https://www.openscapes.org/blog/2020/10/12/tidy-data/) by Lowndes & Horst 2020, posted on the Openscapes blog.
We'll explore the concept of **tidy data** through the illustrated series [Tidy data for efficiency, reproducibility, & collaboration](https://www.openscapes.org/blog/2020/10/12/tidy-data/) by Lowndes & Horst 2020, posted on the Openscapes blog.

When we talk about organizing data to help us work in an efficient, reproducible, and collaborative way, we are talking about TIDY DATA. We mean deliberately thinking about the shape and structure of data -- something that might not seem super exciting but is truly game-changing.

Expand All @@ -125,37 +125,37 @@ So let's talk about what tidy data is and why it is so empowering for your analy

Tidy data is a way to describe data that's organized with a particular structure -- a rectangular structure, where each variable has its own column, and each observation has its own row (Wickham 2014).

![](images/tidydata/tidydata_1.jpg){fig-align="center" width="80%"}
![](images/tidydata/tidydata_1.jpg){fig-align="center" width="80%"}

<br>

This standard structure of tidy data led Hadley Wickham to describe it the way Leo Tolstoy describes families. Leo says "Happy families are all alike; every unhappy family is unhappy in its own way". Similarly, Hadley says "tidy datasets are all alike, but every messy dataset is messy in its own way".

![](images/tidydata/tidydata_2.jpg){fig-align="center" width="80%"}
![](images/tidydata/tidydata_2.jpg){fig-align="center" width="80%"}

<br>

### Tidy data for more efficient data science

Tidy data allows you to be more efficient by using existing tools deliberately built to do the things you need to do, from subsetting portions of your data to plotting maps of your study area. Using existing tools saves you from building from scratch each time you work with a new dataset (which can be time-consuming and demoralizing). And luckily, there are a lot of tools specifically built to wrangle untidy data into tidy data (for example, in the tidyr package). By being more equipped to wrangle your data into a tidy format, you can get to your analyses faster to start answering the questions you're asking.

![](images/tidydata/tidydata_3.jpg){fig-align="center" width="80%"}
![](images/tidydata/tidydata_3.jpg){fig-align="center" width="80%"}

<br>

### Tidy data for easier collaboration

Tidy data makes it easier to collaborate because our friends can use the same tools in a familiar way. Whether thinking about collaborators as current teammates, your future self, or future teammates, organizing and sharing data in a consistent and predictable way means less adjustment, time, and effort for all.

![](images/tidydata/tidydata_4.jpg){fig-align="center" width="80%"}
![](images/tidydata/tidydata_4.jpg){fig-align="center" width="80%"}

<br>

### Tidy data for reproducibility and reuse

Tidy data also makes it easier to reproduce analyses because they are easier to understand, update, and reuse. By using tools together that all expect tidy data as inputs, you can build and iterate really powerful workflows. And, when you have additional data entries, it's no problem to re-run your code!

![](images/tidydata/tidydata_5.jpg){fig-align="center" width="80%"}
![](images/tidydata/tidydata_5.jpg){fig-align="center" width="80%"}

<br>

Expand All @@ -169,7 +169,7 @@ Once you are empowered with tools to work with tidy data generally, it opens up

So for more efficient, reproducible, and collaborative analyses, make friends with tidy data!

![](images/tidydata/tidydata_7.jpg){fig-align="center" width="80%"}
![](images/tidydata/tidydata_7.jpg){fig-align="center" width="80%"}

<br>

Expand Down
Loading

0 comments on commit e7ffa97

Please sign in to comment.