diff --git a/01-BioDIGS_project_overview.Rmd b/01-BioDIGS_project_overview.Rmd new file mode 100644 index 0000000..9db7fd9 --- /dev/null +++ b/01-BioDIGS_project_overview.Rmd @@ -0,0 +1,8 @@ +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "docs/01-BioDIGS_project_overview.md", + repo_name = "fhdsl/GDSCN_BioDIGS_Book" +) +``` +:::: diff --git a/01-intro.Rmd b/01-intro.Rmd deleted file mode 100644 index f98f519..0000000 --- a/01-intro.Rmd +++ /dev/null @@ -1,20 +0,0 @@ -# (PART\*) Demo Chapters {-} - - -```{r, include = FALSE} -ottrpal::set_knitr_image_path() -``` - -# Introduction - - -## Motivation - - -## Target Audience - -The course is intended for ... - -## Curriculum - -The course covers... diff --git a/02-chapter_of_course.Rmd b/02-chapter_of_course.Rmd deleted file mode 100644 index 88bb0bd..0000000 --- a/02-chapter_of_course.Rmd +++ /dev/null @@ -1,187 +0,0 @@ - -# A new chapter - -*If you haven't yet read the getting started Wiki pages; [start there](https://github.com/jhudsl/OTTR_Template/wiki/Getting-started) - -Every chapter needs to start out with this chunk of code: - -```{r, include = FALSE} -ottrpal::set_knitr_image_path() -``` - -## Learning Objectives - -*Every chapter also needs Learning objectives that will look like this: - -This chapter will cover: - -- {You can use https://tips.uark.edu/using-blooms-taxonomy/ to define some learning objectives here} -- {Another learning objective} - -## Libraries - -For this chapter, we'll need the following packages attached: - -*Remember to add [any additional packages you need to your course's own docker image](https://github.com/jhudsl/OTTR_Template/wiki/Using-Docker#starting-a-new-docker-image). - -```{r} -library(magrittr) -``` - - -## Subtopic - -Here's a subheading and some text in this subsection! - -### Code examples - -You can demonstrate code like this: - -```{r} -output_dir <- file.path("resources", "code_output") -if (!dir.exists(output_dir)) { - dir.create(output_dir) -} -``` - -And make plots too: - -```{r} -hist_plot <- hist(iris$Sepal.Length) -``` - -You can also save these plots to file: - -```{r} -png(file.path(output_dir, "test_plot.png")) -hist_plot -dev.off() -``` - -### Image example - -How to include a Google slide. It's simplest to use the `ottrpal` package: - -```{r, fig.align='center', echo = FALSE, fig.alt= "Major point!! example image"} -ottrpal::include_slide("https://docs.google.com/presentation/d/1YmwKdIy9BeQ3EShgZhvtb3MgR8P6iDX4DfFD65W_gdQ/edit#slide=id.gcc4fbee202_0_141") -``` - -But if you have the slide or some other image locally downloaded you can also use html like this: - -Major point!! example image - -### Video examples - -To show videos in your course, you can use markdown syntax like this: - -[A video we want to show](https://www.youtube.com/embed/VOCYL-FNbr0) - -Alternatively, you can use `knitr::include_url()` like this: -Note that we are using `echo=FALSE` in the code chunk because we don't want the code part of this to show up. -If you are unfamiliar with [how R Markdown code chunks work, read this](https://rmarkdown.rstudio.com/lesson-3.html). - -```{r, echo=FALSE} -knitr::include_url("https://www.youtube.com/embed/VOCYL-FNbr0") -``` - -OR this works: - - - -### Links to files - -This works: - -```{r, fig.align="center", echo=FALSE} -knitr::include_url("https://www.bgsu.edu/content/dam/BGSU/center-for-faculty-excellence/docs/TLGuides/TLGuide-Learning-Objectives.pdf", height = "800px") -``` - -Or this: - -[This works](https://www.bgsu.edu/content/dam/BGSU/center-for-faculty-excellence/docs/TLGuides/TLGuide-Learning-Objectives.pdf). - -Or this: - - - -### Links to websites - -Examples of including a website link. - -This works: - -```{r, fig.align="center", echo=FALSE} -knitr::include_url("https://yihui.org") -``` - -OR this: - -![Another link](https://yihui.org) - -OR this: - - - -### Citation examples - -We can put citations at the end of a sentence like this [@rmarkdown2021]. -Or multiple citations [@rmarkdown2021, @Xie2018]. - -but they need a ; separator [@rmarkdown2021; @Xie2018]. - -In text, we can put citations like this @rmarkdown2021. - -### Callout boxes - -There are some preset callout boxes available, which can be used like so: - -`notice`: - -::: {.notice} -Here's something interesting. -::: - -`warning`: - -::: {.warning} -Look out! -::: - -`dictionary`: - -::: {.dictionary} -Here's a definition. -::: - -`reflection`: - -::: {.reflection} -Consider this! -::: - -`github`: - -::: {.github} -Here's how you use GitHub. -::: - -`wip`: - -::: {.wip} -This section is a **Work in Progress**. -::: - -### Dropdown summaries - -
You can hide additional information in a dropdown menu -Here's more words that are hidden. -
- -## Print out session info - -You should print out session info when you have code for [reproducibility purposes](https://jhudatascience.org/Reproducibility_in_Cancer_Informatics/managing-package-versions.html). - -```{r} -devtools::session_info() -``` - diff --git a/02-research_team.Rmd b/02-research_team.Rmd new file mode 100644 index 0000000..9f16396 --- /dev/null +++ b/02-research_team.Rmd @@ -0,0 +1,8 @@ +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "docs/02-research_team.md", + repo_name = "fhdsl/GDSCN_BioDIGS_Book" +) +``` +:::: diff --git a/03-AnVIL_modules.Rmd b/03-AnVIL_modules.Rmd deleted file mode 100644 index 83a9642..0000000 --- a/03-AnVIL_modules.Rmd +++ /dev/null @@ -1,52 +0,0 @@ -# AnVIL Module Library - -There are several pieces of content that are useful across multiple books, such as "How to Create a Workspace". To reduce maintenance burden, the `AnVIL_Template` repository has a collection of `_child` R Markdown documents that can be included in your books. - -You can see all the available AnVIL modules in the [AnVIL_Template book](https://jhudatascience.org/AnVIL_Template/) - -## Include using `cow::borrow_chapter()` - -To add a module to your book, include a code chunk with the `cow::borrow_chapter()` function, specifying the file for the module you want to borrow and the repository you want to borrow it from (the `AnVIL_Template` repository). - -See the OTTR_Template [wiki page](https://github.com/jhudsl/OTTR_Template/wiki/Borrowing-chapters-between-courses) for the most recent instructions and additional details. - -Here is an example of including the `_child_workspace_create.Rmd` with `cow::borrow_chapter()` - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_workspace_create.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - -## Background Highlighting for Borrowed Chapters - -You can use the `borrowed_chunk` [custom div block](https://bookdown.org/yihui/rmarkdown-cookbook/custom-blocks.html) to highlight borrowed content or any other content you choose. - -**Basic format:** - -``` -:::: {.borrowed_chunk} -Code/Content here -:::: -``` - -**Rendered with highlighting:** - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_google_create_account.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -**Rendered without highlighting:** - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_google_create_account.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` diff --git a/03-data_tour.Rmd b/03-data_tour.Rmd new file mode 100644 index 0000000..791df4a --- /dev/null +++ b/03-data_tour.Rmd @@ -0,0 +1,8 @@ +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "docs/03-data_tour.md", + repo_name = "fhdsl/GDSCN_BioDIGS_Book" +) +``` +:::: diff --git a/04-billing_modules.Rmd b/04-billing_modules.Rmd new file mode 100644 index 0000000..26bf635 --- /dev/null +++ b/04-billing_modules.Rmd @@ -0,0 +1,8 @@ +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "docs/04-billing_modules.md", + repo_name = "fhdsl/GDSCN_BioDIGS_Book" +) +``` +:::: diff --git a/04-workspace_modules.Rmd b/04-workspace_modules.Rmd deleted file mode 100644 index 1b582b5..0000000 --- a/04-workspace_modules.Rmd +++ /dev/null @@ -1,44 +0,0 @@ -# (PART\*) AnVIL Modules {-} - -# Workspaces - -Modules about Terra Workspaces - -
- -## Clone a Workspace - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_workspace_clone.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - -## Create a Workspace - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_workspace_create.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - -## Open a Workspace - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_workspace_open.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - -## Share a Workspace - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_workspace_share.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - diff --git a/05-anvil_onboarding.Rmd b/05-anvil_onboarding.Rmd new file mode 100644 index 0000000..696860f --- /dev/null +++ b/05-anvil_onboarding.Rmd @@ -0,0 +1,10 @@ +# (PART\*) Student Guide to AnVIL {-} + +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "docs/05-anvil_onboarding.md", + repo_name = "fhdsl/GDSCN_BioDIGS_Book" +) +``` +:::: diff --git a/05-billing_modules.Rmd b/05-billing_modules.Rmd deleted file mode 100644 index 8c8844c..0000000 --- a/05-billing_modules.Rmd +++ /dev/null @@ -1,109 +0,0 @@ -```{r echo = FALSE} -knitr::opts_chunk$set(out.width = "100%") -``` - -# Billing - -Modules about billing and Billing Projects on Google Cloud Platform and Terra. - -
- -## Create Google Billing Account - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_google_billing_create_account.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Add Terra to Google Billing Account - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_google_billing_add_terra.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Add Members to Google Billing Account - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_google_billing_add_member.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Set Alerts for Google Billing - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_google_billing_set_alerts.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## View Spend for Google Billing - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_google_billing_view_spend.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Create Terra Billing Project - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_terra_billing_project_create.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Add Member to Terra Billing Project - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_terra_billing_project_add_member.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Disable Terra Billing Project - -By default this module includes a warning to make sure people understand they will lose access to their Workspace buckets. You can remove the warning from this module by setting `AnVIL_module_settings$warning` to `FALSE` before running `cow::borrow_chapter`: - -``` -AnVIL_module_settings <- list( - warning = FALSE -) -cow::borrow_chapter( - doc_path = "child/_child_terra_billing_project_disable.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_terra_billing_project_disable.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: diff --git a/06-onboarding_modules.Rmd b/06-onboarding_modules.Rmd deleted file mode 100644 index 7b6e32a..0000000 --- a/06-onboarding_modules.Rmd +++ /dev/null @@ -1,15 +0,0 @@ -# Onboarding - -Joining a team on AnVIL. - -
- -## Create Google Account - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_google_create_account.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - diff --git a/07-instructor_guide.Rmd b/07-instructor_guide.Rmd new file mode 100644 index 0000000..ba92e1c --- /dev/null +++ b/07-instructor_guide.Rmd @@ -0,0 +1,10 @@ +# (PART\*) Instructor Checklist for AnVIL {-} + +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "docs/07-instructor_guide.md", + repo_name = "fhdsl/GDSCN_BioDIGS_Book" +) +``` +:::: diff --git a/07-using_platforms_modules.Rmd b/07-using_platforms_modules.Rmd deleted file mode 100644 index c1cab54..0000000 --- a/07-using_platforms_modules.Rmd +++ /dev/null @@ -1,124 +0,0 @@ -```{r echo = FALSE} -knitr::opts_chunk$set(out.width = "100%") -``` - -# Using programming platforms on AnVIL - -Modules about opening, touring, and closing AnVIL platforms - -
- -## Video overview on using Jupyter Notebooks - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_jupyter_video.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - -## Launching Jupyter - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_jupyter_launch.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Video overview on using Galaxy - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_galaxy_video.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - -## Starting Galaxy - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_galaxy_start.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Navigating Galaxy - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_galaxy_navigate.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Deleting Galaxy - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_galaxy_delete.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Video overview on using RStudio - -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_rstudio_video.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` - -## Launching RStudio - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_rstudio_launch.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Touring RStudio - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_rstudio_tour.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Pausing RStudio - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_rstudio_pause.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Deleting RStudio - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_rstudio_delete.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: diff --git a/08-student_modules.Rmd b/08-student_modules.Rmd deleted file mode 100644 index efb5178..0000000 --- a/08-student_modules.Rmd +++ /dev/null @@ -1,141 +0,0 @@ -```{r echo = FALSE} -knitr::opts_chunk$set(out.width = "100%") -``` - -# Student instructions - -Modules aimed at students in a course or workshop. - -
- -## Student Account Setup - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_student_create_account.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Student instructions for cloning a Workspace - -These instructions can be customized to a specific workspace by setting certain variables before running `cow::borrow_chapter()`. If these variables have not been set, reasonable defaults are provided (e.g. "ask your instructor"). - -### With no variables set: - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_student_workspace_clone.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -### With variables set: - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -# Specify variables -AnVIL_module_settings <- list( - workspace_name = "Example_Workspace", - workspace_link = "http://example.com/", - billing_project = "Example Billing Project" -) - -cow::borrow_chapter( - doc_path = "child/_child_student_workspace_clone.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Student instructions for launching Jupyter - -The module below is specially customized for students, allowing you to give more specific instructions on the settings for their Jupyter environment. There are several other general purpose modules that may also be useful for students (e.g. Pausing Jupyter, Deleting Jupyter) that can be found in other chapters of this book. - -The following instructions can be customized by setting certain variables before running `cow::borrow_chapter()`. Developers should create these variables as a list `AnVIL_module_settings`. The following variables can be provided: - -- `audience` = Defaults to `general`, telling them to use the default Jupyter settings. If `audience` is set to `student`, it gives more specific instructions. -- `docker_image` = Optional, it will tell them how to set the image. -- `startup_script` = Optional, it will tell them how to set the script. - -### Using default Jupyter environment: - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -# Specify variables -AnVIL_module_settings <- list( - audience = "student" -) - -cow::borrow_chapter( - doc_path = "child/_child_jupyter_launch.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -### Using custom Jupyter environment: - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -# Specify variables -AnVIL_module_settings <- list( - audience = "student", - docker_image = "example docker", - startup_script = "example startup script" -) - -cow::borrow_chapter( - doc_path = "child/_child_jupyter_launch.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Student instructions for launching RStudio - -The module below is specially customized for students, allowing you to give more specific instructions on the settings for their RStudio environment. There are several other general purpose modules that may also be useful for students (e.g. Pausing RStudio, Deleting RStudio) that can be found in other chapters of this book. - -The following instructions can be customized by setting certain variables before running `cow::borrow_chapter()`. Developers should create these variables as a list `AnVIL_module_settings`. The following variables can be provided: - -- `audience` = Defaults to `general`, telling them to use the default RStudio settings. If `audience` is set to `student`, it gives more specific instructions. -- `docker_image` = Optional, it will tell them to open the customization dialogue and direct them on how to set the image. -- `startup_script` = Optional, it will tell them to open the customization dialogue and direct them on how to set the script. - -### Using default RStudio environment: - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -# Specify variables -AnVIL_module_settings <- list( - audience = "student" -) - -cow::borrow_chapter( - doc_path = "child/_child_rstudio_launch.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -### Using custom RStudio environment: - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -# Specify variables -AnVIL_module_settings <- list( - audience = "student", - docker_image = "example docker", - startup_script = "example startup script" -) - -cow::borrow_chapter( - doc_path = "child/_child_rstudio_launch.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: diff --git a/08-student_using_rstudio.Rmd b/08-student_using_rstudio.Rmd new file mode 100644 index 0000000..71574a6 --- /dev/null +++ b/08-student_using_rstudio.Rmd @@ -0,0 +1,8 @@ +:::: {.borrowed_chunk} +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "docs/08-student_using_rstudio.md", + repo_name = "fhdsl/GDSCN_BioDIGS_Book" +) +``` +:::: diff --git a/09-soil_exploration_module.Rmd b/09-soil_exploration_module.Rmd new file mode 100644 index 0000000..a39c610 --- /dev/null +++ b/09-soil_exploration_module.Rmd @@ -0,0 +1,269 @@ +# (PART\*) Data Exploration {-} + + +```{r, include = FALSE} +ottrpal::set_knitr_image_path() +``` + +# Exploring Soil Testing Data With R + +In this activity, you'll have a chance to become familiar with the BioDIGS soil testing data. This dataset includes information on the inorganic components of each soil sample, particularly metal concentrations. Human activity can increase the concentration of inorganic compounds in the soil. When cars drive on roads, compounds from the exhaust, oil, and other fluids might settle onto the roads and be washed into the soil. When we put salt on roads, parking lots, and sidewalks, the salts themselves will eventually be washed away and enter the ecosystem through both water and soil. Chemicals from factories and other businesses also leech into our environment. All of this means the concentration of heavy metals and other chemicals will vary among the soil samples collected for the BioDIGS project. + +## Before You Start + +```{r, echo = FALSE, results='asis'} +cow::borrow_chapter( + doc_path = "child/_child_google_create_account.Rmd", + repo_name = "jhudsl/AnVIL_Template" +) +``` + +## Objectives + +This activity will teach you how to use the AnVIL platform to: + +1. Import data into RStudio +1. Examine a csv file that contains the soil testing data from the BioDIGS project +1. Calculate summary statistics for variables in the soil testing data +1. Create and interpret histograms and boxplots for variables in the soil testing data + + +## Part 1. Data Import + +We will use the `BioDIGS` package to retrieve the data. We first need to install the package from where it is stored on GitHub. + +```{r, message = FALSE, warning = FALSE, echo = FALSE} + +library(readr) +soil.values <- read_csv(file = "soil_testing_data.csv") +``` + + +```{r, message = FALSE, warning = FALSE, eval=F} + +devtools::install_github("fhdsl/BioDIGSData") +``` + +Once you've installed the package, we can load the library and assign the soil testing data to an _object_. This command follows the code structure: + +dataset_object_name <- stored_BioDIGS_dataset + +```{r, message = FALSE, warning = FALSE, eval=F} + +library(BioDIGSData) + +soil.values <- BioDIGS_soil_data() +``` + +It _seems_ like the dataset loaded, but it's always a good idea to verify. There are many ways to check, but the easiest approach (if you're using RStudio) is to look at the Environment tab on the upper right-hand side of the screen. You should now have an object called `soil.values` that includes some number of observations for 28 variables. The _observations_ refer to the number of rows in the dataset, while the _variables_ tell you the number of columns. As long as neither the observations or variables are 0, you can be confident that your dataset loaded. + +Let's take a quick look at the dataset. We can do this by clicking on soil.values object in the Environment tab. (Note: this is equivalent to typing `View(soil.values)` in the R console.) + +If the dataset loaded, you will see an object with non-zero observations and variables in the Environment tab + + +This will open a new window for us to scroll through the dataset. + +You can click on the object in the Environment tab to open a new window that allows you to scroll through the loaded dataset + +Well, the data definitely loaded, but those column names aren't immediately understandable. What could **As_EPA3051** possibly mean? In addition to the dataset, we need to load the _data dictionary_ as well. + +:::{.dictionary} + +**Data dictionary:** a file containing the names, definitions, and attributes about data in a database or dataset. + +::: + +In this case, the data dictionary can help us make sense of what sort of values each column represents. The data dictionary for the BioDIGS soil testing data is available in the R package (see code below), but we have also reproduced it here. + +```{r, message = FALSE, warning = FALSE, eval=FALSE} + +?BioDIGS_soil_data() +``` + +:::{.dictionary} + +- **site_id** Unique letter and number site name +- **full_name** Full site name +- **As_EPA3051** Arsenic (mg/kg), EPA Method 3051A. Quantities < 3.0 are not detectable. +- **Cd_EPA3051** Cadmium (mg/kg), EPA Method 3051A. Quantities < 0.2 are not detectable. +- **Cr_EPA3051** Chromium (mg/kg), EPA Method 3051A +- **Cu_EPA3051** Copper (mg/kg), EPA Method 3051A +- **Ni_EPA3051** Nickel (mg/kg), EPA Method 3051A +- **Pb_EPA3051** Lead (mg/kg), EPA Method 3051A +- **Zn_EPA3051** Zinc (mg/kg), EPA Method 3051A +- **water_pH** +- **A-E_Buffer_pH** +- **OM_by_LOI_pct** Organic Matter by Loss on Ignition +- **P_Mehlich3** Phosphorus (mg/kg), using the Mehlich 3 soil test extractant +- **K_Mehlich3 Potassium** (mg/kg), using the Mehlich 3 soil test extractant +- **Ca_Mehlich3** Calcium (mg/kg), using the Mehlich 3 soil test extractant +- **Mg_Mehlich3** Magnesium (mg/kg), using the Mehlich 3 soil test extractant +- **Mn_Mehlich3** Manganese (mg/kg), using the Mehlich 3 soil test extractant +- **Zn_Mehlich3** Zinc (mg/kg), using the Mehlich 3 soil test extractant +- **Cu_Mehlich3** Copper (mg/kg), using the Mehlich 3 soil test extractant +- **Fe_Mehlich3** Iron (mg/kg), using the Mehlich 3 soil test extractant +- **B_Mehlich3** Boron (mg/kg), using the Mehlich 3 soil test extractant +- **S_Mehlich3** Sulfur (mg/kg), using the Mehlich 3 soil test extractant +- **Na_Mehlich3** Sodium (mg/kg), using the Mehlich 3 soil test extractant +- **Al_Mehlich3** Aluminum (mg/kg), using the Mehlich 3 soil test extractant +- **Est_CEC** Cation Exchange Capacity (meq/100g) at pH 7.0 (CEC) +- **Base_Sat_pct** Base saturation (BS). This represents the percentage of CEC occupied by bases (Ca2+, Mg2+, K+, and Na+). The %BS increases with increasing soil pH. The availability of Ca2+, Mg2+, and K+ increases with increasing %BS. +- **P_Sat_ratio** Phosphorus saturation ratio. This is the ratio between the amount of phosphorus present in the soil and the total capacity of that soil to retain phosphorus. The ability of phosphorus to be bound in the soil is primary a function of iron (Fe) and aluminum (Al) content in that soil. + +::: + +Using the data dictionary, we find that the values in column `As_EPA3051` give us the arsenic concentration in mg/kg of each soil sample, as determined by EPA Method 3051A. While arsenic can occur naturally in soils, higher levels suggest the soil may have been contaminated by mining, hazardous waste, or pesticide application. Arsenic is toxic to humans. + +We can also look at just the names of all the columns using the R console using the `colnames()` command. + +```{r, message = FALSE, warning = FALSE} + +colnames(soil.values) +``` + +Most of the column names are found in the data dictionary, but the very last column ("region") isn't. How peculiar! Let's look at what sort of values this particular column contains. The tab with the table of the `soil.views` object should still be open in the upper left pane of the RStudio window. If not, you can open it again by clicking on `soils.view` in the Environment pane, or by using the `View()` command. + +```{r, message = FALSE, warning = FALSE, eval = F} + +View(soil.values) +``` + +Switch to the soil.values tab to look at what values are in the region column + + +If you scroll to the end of the table, we can see that "region" seems to refer to the city or area where the samples were collected. For example, the first 24 samples all come from Baltimore City. + +We can see the first samples in the dataset were collected in Baltimore City + + +You may notice that some cells in the `soil.values` table contain _NA_. This just means that the soil testing data for that sample isn't available yet. We'll take care of those values in the next part. + +::: {.reflection} +QUESTIONS: + +1. How many observations are in the soil testing values dataset that you loaded? What do each of these observations refer to? + +2. What data is found in the column labeled "Fe_Mehlich3"? Why would we be interested how much of this is in the soil? (You may have to search the internet for this answer.) + +::: + +## Part 2. Data Summarization + +Now that we have the dataset loaded, let's explore the data in more depth. + +First, we should remove those samples that don't have soil testing data yet. We _could_ keep them in the dataset, but removing them at this stage will make the analysis a little cleaner. In this case, as we know the reason the data are missing (and that reason will not skew our analysis), we can safely remove these samples. This will not be the case for every data analysis. + +We can remove the unanalyzed samples using the `drop_na()` function from the `tidyr` package. This function removes any rows from a table that contains _NA_ for a particular column. This command follows the code structure: + +dataset_new_name <- dataset %>% drop_na(column_name) + +The `%>% is called a pipe and it tells R that the commands after it should all be applied to the object in front of it. (In this case, we can filter out all samples missing a value for "As_EPA3051" as a proxy for samples without soil testing data.) + +```{r, message = FALSE, warning = FALSE} + +library(tidyr) + +soil.values.clean <- soil.values %>% drop_na(As_EPA3051) +``` + +Great! Now let's calculate some basic statistics. For example, we might want to know what the mean (average) lead concentration is for each soil sample. According to the data dictionary, the values for lead concentration are in the column labeled "Pb_EPA3051". We can use a combination of two functions: `pull()` and `mean()`.`pull()` lets you extract a column from your table for statistical analysis, while `mean()` calculates the average value for the extracted column. + +This command follows the code structure: + +OBJECT %>% pull(column_name) %>% mean() + +`pull()` is a command from the `tidyverse` package, so we'll need to load that library before our command. + +```{r, message = FALSE, warning = FALSE} + +library(tidyverse) + +soil.values.clean %>% pull(As_EPA3051) %>% mean() +``` + +We can run similar commands to calculate the standard deviation, minimum, and maximum for the soil arsenic values. + +```{r, message = FALSE, warning = FALSE} + +soil.values.clean %>% pull(As_EPA3051) %>% sd() +soil.values.clean %>% pull(As_EPA3051) %>% min() +soil.values.clean %>% pull(As_EPA3051) %>% max() +``` +As you can see, the standard deviation of the arsenic concentrations is listed first, then the minimum concentration, and finally the maximum concentration. + +The soil testing dataset contains samples from multiple geographic regions, so maybe it's more meaningful to find out what the average arsenic values are for each region. We have to do a little bit of clever coding trickery for this using the `group_by` and `summarize` functions. First, we tell R to split our dataset up by a particular column (in this case, region) using the `group_by` function, then we tell R to summarize the mean arsenic concentration for each group. Because there are several different functions with the name `summarize` in R, we have to specify that we want to use `summarize` from the `dplyr` package. This command follows the code structure: + +dataset %>% + group_by(column_name) %>% + dplyr::summarize(Mean = mean(column_name)) + +```{r, message = FALSE, warning = FALSE} + +soil.values.clean %>% + group_by(region) %>% + dplyr::summarize(Mean = mean(As_EPA3051)) +``` + +Now we know that the mean arsenic concentration might be different for each region, and appears higher for the Baltimore City samples than the Montgomery County samples. + +::: {.reflection} +QUESTIONS: + +3. What is the mean iron concentration for samples in this dataset? What about the standard deviation, minimum value, and maximum value? + +2. Calculate the mean iron concentration by region. Which region has the highest mean iron concentration? What about the lowest? + +::: + +## Part 3. Data Visualization + +Often, it can be easier to immediately interpret data displayed as a plot than as a list of values. For example, we can more easily understand how the arsenic concentration of the soil samples are distributed if we create histograms compared to looking at point values like mean, standard deviation, minimum, and maximum. + +One way to make histograms in R is to use the `hist()` function. We can again use the `pull()` command and pipes (`%>%`) to choose the column we want from the `soil.values.clean` dataset and make a histogram of them. Remember, this command follows the code structure: + +dataset %>% + pull(column_name) %>% + hist(main = chart_title, xlab = x_axis_title) + +In this case, we do _not_ have to use the `dplyr::summarize` command before `hist()` because there's only one function called `hist()` in the packages we're using. + +```{r, message = FALSE, warning = FALSE} + +soil.values.clean %>% + pull(As_EPA3051) %>% + hist(main = 'Histogram of Arsenic Concentration', + xlab ='Concentration in mg/kg' ) +``` + +We can see that almost all the soil samples had very low concentrations of arsenic (which is good news for the soil health!). In fact, many of them had arsenic concentrations close to 0, and only one sampling location appears to have high levels of arsenic. + +We might also want to graphically compare arsenic concentrations among the geographic regions in our dataset. We can do this by creating boxplots. Boxplots are particularly useful when comparing the mean, variation, and distributions among multiple groups. In R, one way to create a boxplot is using the `boxplot()` function. We don't need to use pipes for this command, but instead will specify what columns we want to use from the dataset inside the `boxplot()` function itself. + +This command follows the code structure: + +boxplot(arsenic_concentration ~ grouping_variable, + data = dataset, + main = "Title of Graph", + xlab = "x_axis_title", + ylab = "y_axis_title") + +```{r, message = FALSE, warning = FALSE} +boxplot(As_EPA3051 ~ region, data = soil.values.clean, + main = "Arsenic Concentration by Geographic Region", + xlab = "Region", + ylab = "Arsenic Concentration in mg/kg") +``` + +By using a boxplot, we can quickly see that, while one sampling site within Baltimore City has a very high concentration of arsenic in the soil, in general there isn't a difference in arsenic content between Baltimore City and Montgomery County. + +::: {.reflection} +QUESTIONS: + +5. Create a histogram for _iron_ concentration, as well as a boxplot comparing iron concentration by region. Is the iron concentration similar among regions? Are there any outlier sites with unusually high or low iron concentrations? + +6. Create a histogram for _lead_ concentration, as well as a boxplot comparing lead concentration by region. Is the lead concentration similar among regions? Are there any outlier sites with unusually high or low lead concentrations? + +7. Look at the maps for [iron](https://biodigs.org/#iron_map) and [lead](https://biodigs.org/#lead_map) on the BioDIGS website. Do the boxplots you created make sense, given what you see on these maps? Why or why not? + +::: diff --git a/09-student_guide.Rmd b/09-student_guide.Rmd index d6fff4a..7fef200 100644 --- a/09-student_guide.Rmd +++ b/09-student_guide.Rmd @@ -7,4 +7,4 @@ You might want to create a student guide that contains a different subset of Rmd ## Activity Two -Steps of the guide could go here. \ No newline at end of file +Steps of the guide _could_ go here. diff --git a/10-user_management_modules.Rmd b/10-user_management_modules.Rmd deleted file mode 100644 index e618f21..0000000 --- a/10-user_management_modules.Rmd +++ /dev/null @@ -1,38 +0,0 @@ -# User Management - -Modules about Groups and user management - -
- -## Create Terra Group - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_terra_group_create.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Add Member to Terra Group - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_terra_group_add_member.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Find Group Email - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_terra_group_find_email.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: diff --git a/11-why-anvil.Rmd b/11-why-anvil.Rmd deleted file mode 100644 index c8d7e59..0000000 --- a/11-why-anvil.Rmd +++ /dev/null @@ -1,16 +0,0 @@ -# Why AnVIL - -Modules describing why AnVIL is useful for different personas. - -
- -## Why AnVIL for Instructors? - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_why_AnVIL_instructor.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: diff --git a/12-instructor_modules.Rmd b/12-instructor_modules.Rmd deleted file mode 100644 index c2bbc00..0000000 --- a/12-instructor_modules.Rmd +++ /dev/null @@ -1,49 +0,0 @@ -# Instructor modules - -Modules aimed at instructors. - -
- -## Why AnVIL for Instructors? - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_why_AnVIL_instructor.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Checklist Link - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_instructor_checklist_link.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Checklist Timeline (premade content) - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_instructor_timeline_premade.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: - -## Recommendation to use STRIDES - -:::: {.borrowed_chunk} -```{r, echo = FALSE, results='asis'} -cow::borrow_chapter( - doc_path = "child/_child_instructor_STRIDES.Rmd", - repo_name = "jhudsl/AnVIL_Template" -) -``` -:::: diff --git a/About.Rmd b/About.Rmd index d79967a..1f992e0 100644 --- a/About.Rmd +++ b/About.Rmd @@ -1,4 +1,3 @@ - # About the Authors {-} These credits are based on our [course contributors table guidelines](https://github.com/jhudsl/OTTR_Template/wiki/How-to-give-credits). @@ -6,61 +5,57 @@ These credits are based on our [course contributors table guidelines](https://gi     - - |Credits|Names| |-------|-----| |**Pedagogy**|| -|Lead Content Instructor(s)|[FirstName LastName]| -|Lecturer(s) (include chapter name/link in parentheses if only for specific chapters) - make new line if more than one chapter involved| Delivered the course in some way - video or audio| -|Content Author(s) (include chapter name/link in parentheses if only for specific chapters) - make new line if more than one chapter involved | If any other authors besides lead instructor| -|Content Contributor(s) (include section name/link in parentheses) - make new line if more than one section involved| Wrote less than a chapter

AnVIL instructions: [Katherine Cox], [Ava Hoffman], [Elizabeth Humphries]| -|Content Editor(s)/Reviewer(s) | Checked your content| -|Content Director(s) | Helped guide the content direction| -|Content Consultants (include chapter name/link in parentheses or word "General") - make new line if more than one chapter involved | Gave high level advice on content

AnVIL instructions: [Allie Cliffe]| -|Acknowledgments| Gave small assistance to content but not to the level of consulting | +|Content Developer|Elizabeth Humphries| +|Content Editors|[Ava Hoffman], [Kate Isaac]| +|Project Directors|[Ava Hoffman], [Michael Schatz], [Jeff Leek], [Frederick Tan]| |**Production**|| -|Content Publisher(s)| Helped with publishing platform| -|Content Publishing Reviewer(s)| Reviewed overall content and aesthetics on publishing platform| +|Content Publisher|[Ira Gooding]| |**Technical**|| -|Course Publishing Engineer(s)| Helped with the code for the technical aspects related to the specific course generation| -|Template Publishing Engineers|[Candace Savonen], [Carrie Wright]| +|Template Publishing Engineers|[Candace Savonen], [Carrie Wright], [Ava Hoffman]| |Publishing Maintenance Engineer|[Candace Savonen]| |Technical Publishing Stylists|[Carrie Wright], [Candace Savonen]| |Package Developers ([ottrpal])|[John Muschelli], [Candace Savonen], [Carrie Wright]| -|**Art and Design**|| -|Illustrator(s)| Created graphics for the course| -|Figure Artist(s)| Created figures/plots for course| -|Videographer(s)| Filmed videos| -|Videography Editor(s)| Edited film| -|Audiographer(s)| Recorded audio| -|Audiography Editor(s)| Edited audio recordings| +|Package Developer ([BioDIGSData])| [Ava Hoffman]| |**Funding**|| -|Funder(s)| Institution/individual who funded course including grant number| -|Funding Staff| Staff members who help with funding| +|Funder| [National Human Genome Research Institute (NHGRI)] | +|Funding Staff| Fallon Bachman, Jennifer Vessio, Emily Voeglein|   + + + + + + ```{r, echo = FALSE} devtools::session_info() ``` -[FirstName LastName]: link to personal website -[Allie Cliffe]: https://alliecliffe.com/ -[Katherine Cox]: https://katherinecox.github.io/ + +[Katherine Cox]: https://publichealth.jhu.edu/faculty/4170/katherine-cox +[Ira Gooding]: https://publichealth.jhu.edu/faculty/4130/ira-gooding [Ava Hoffman]: https://www.avahoffman.com/ -[Elizabeth Humphries]: https://www.linkedin.com/in/elizabeth-humphries-61202a103/ +[Kate Isaac]: https://kweav.github.io/ +[Jeff Leek]: https://jtleek.com/ [John Muschelli]: https://johnmuschelli.com/ +[National Human Genome Research Institute (NHGRI)]: https://www.genome.gov/ [Candace Savonen]: https://www.cansavvy.com/ +[Michael Schatz]: http://schatz-lab.org/ +[Frederick Tan]: https://carnegiescience.edu/frederick-tan [Carrie Wright]: https://carriewright11.github.io/ -[ottrpal]: https://github.com/jhudsl/ottrpal +[Ottrpal]: https://github.com/jhudsl/ottrpal +[BioDIGSData]: https://github.com/fhdsl/BioDIGSData - +![BioDIGS logo](https://raw.githubusercontent.com/fhdsl/AnVIL_BioDIGS_Book/main/assets/GDSCN_style/logo_BioDIGS_final.png){width=300px} -_Programming skills_ - -::: +## Target Audience -## AnVIL Collection {-} +The activities in this guide are written for undergraduate students and beginning graduate students. Some sections require basic understanding of the R programming language, which is indicated at the beginning of the chapter. -Please check out our full collection of AnVIL and related resources: https://hutchdatascience.org/AnVIL_Collection/ +## Platform -# Learning Objectives {-} +The activities in this guide are demonstrated on NHGRI's [AnVIL](https://anvilproject.org/) cloud computing platform. AnVIL is the preferred computing platform for the GDSCN. However, all of these activities can be done using your personal installation of R or using the online [Galaxy](usegalaxy.org) portal. - +## Data - - - +The data generated by the BioDIGS project is available through the [BioDIGS website](biodigs.org), as well as through an [AnVIL workspace](https://anvilproject.org). - +Data about the soil itself as well as soil metal content was generated by the [Delaware Soil Testing Program](https://www.udel.edu/canr/cooperative-extension/environmental-stewardship/soil-testing/) at the University of Delaware. Sequences were generated by the [Johns Hopkins University Genetic Resources Core Facility](https://grcf.jhmi.edu/) and by [PacBio](https://www.pacb.com/). diff --git a/resources/dictionary.txt b/resources/dictionary.txt index 5f9e573..b476a07 100644 --- a/resources/dictionary.txt +++ b/resources/dictionary.txt @@ -1,44 +1,157 @@ +abiotic +AGBT +al +Annandale AnVIL +Audiographer +Audiography +automagic +Bachman BiocManager +BioDIGS +BioDIGSData +BioDiversity bioinformatics BIPOC Bloomberg +bookdown +Bookdown +bmr +Brevik +Buffalari callout Callout +Canner +cbe +CEC +Cliffe +csv colData +CosmosID +Coursera CoV +creativecommons +Cruces +culturable +CUNY customizations dex dexamethasone +Dine +DISCOVERABLE +doi +dplyr dropdown +El +enforceability +et +ExampleWorkspace +extractant +Fallon +faq +FHDaSL +Firstname +FirstName +Funder GDSCN +Generis github Glimma glimmaMDS Gmail +Gooding +Gorovtsov +GSuite +Guttman +Harrisonburg +Hawai'i +HBCUs +Humphries +https +ies +Illumina +immunities impactful Inclusivity +jenvman +jhu Jupyter +Jurkowski +Lastname +LastName +Leanpub +Licensor +LICENSOR limma +LOI +Manoa MDS +MERCHANTABILITY +Meharry +Mehlich mentorship +meq +metagenomics +Metagenomics +Muschelli +na +Nanopore +ncbi NCI NHGRI NHGRI's +nih +nlm +noa +Notre Onboarding OTTR ottrpal +ottrproject +PacBio +Paso +Petersburg plotMDS +pmc +PMC precompiled premade preprint programmatically +pubmed px reproducibility +RMarkdown Rmd RStudio +Savonen +Schatz +scitable +scitotenv +sexualized +socio +Spelman +summarization +Summarization +synched +textbox +tidyverse timeframe +Towson +Tsaile +unanalyzed +underresourced underserved -Workspaces +Vessio +Videographer +Videography +Voeglein +wip +WIPO Workspace's +Workspaces www +xlab +Yan +ylab + diff --git a/resources/ignore-urls.txt b/resources/ignore-urls.txt new file mode 100644 index 0000000..c1fe918 --- /dev/null +++ b/resources/ignore-urls.txt @@ -0,0 +1 @@ +https://www.bgsu.edu/content/dam/BGSU/center-for-faculty-excellence/docs/TLGuides/TLGuide-Learning-Objectives.pdf \ No newline at end of file diff --git a/soil_data.csv b/soil_data.csv new file mode 100644 index 0000000..8d243f0 --- /dev/null +++ b/soil_data.csv @@ -0,0 +1,67 @@ +"","Timestamp.x","What is your site name?","Who was on your field crew?","What are the GPS coordinates for your site? You can drop a pin using Google Maps or Apple Maps to get these coordinates.","type","type2","What date did you sample?","What time did you sample?","Timestamp.y","site_name","site_id","full_name","google_img_id","ul_hydration","qubit_concentration_ng_ul","total_ng","As_EPA3051","Cd_EPA3051","Cr_EPA3051","Cu_EPA3051","Ni_EPA3051","Pb_EPA3051","Zn_EPA3051","water_pH","A-E_Buffer_pH","OM_by_LOI_pct","P_Mehlich3","K_Mehlich3","Ca_Mehlich3","Mg_Mehlich3","Mn_Mehlich3","Zn_Mehlich3","Cu_Mehlich3","Fe_Mehlich3","B_Mehlich3","S_Mehlich3","Na_Mehlich3","Al_Mehlich3","Est_CEC","Base_Sat_pct","P_Sat_ratio" +"1","5/31/2023 8:45:48","Decker Quad","Ava, Elizabeth, Stephen, Fred","39.3262120, -76.6213047","Managed"," mowed/tended lawns, yard, or park","5/31/2023",08:45:00,"5/31/2023 8:45:48","Decker Quad","B01","B01-Decker Quad","1TQ4lQDBbhQ0Rczf2g_AsmnjHsfgIN5RP",60,109,6540,"< 3.0","0.26",12.77,13.54,6.93,10.69,33.71,6.8,7.95,3.4,47.4,136.87,1384.37,198.67,36.89,5.46,5.21,229.75,0.49,15.42,18.2,472.72,9.3,95.7,21.4 +"2","5/31/2023 9:15:22","Wyman Dell","Ava, Elizabeth, Stephen, Fred","39.3253092, -76.6180579","Managed"," mowed/tended lawns, yard, or park","5/31/2023",09:15:00,"5/31/2023 9:15:22","Wyman Dell","B02","B02-Wyman Dell","14B_XDr6GmiixkYcRCtMPrlboFr6yHV9g",60,194,11640,"5.04","0.53",29.02,31.48,10.75,88.21,83.35,7.2,7.91,6.7,82.21,139.38,3062.75,276.56,43.55,16.45,8.64,256.86,1.5,11.79,17.34,371.99,18.7,96.1,38.9 +"3","5/31/2023 9:58:28","Stony Run","Ava; Elizabeth; Fred; Stephen","(39.3241847, -76.6263905)","Unmanaged"," wild plants/weeds, forest, or grassland","5/31/0023",09:58:00,"5/31/2023 9:58:28","Stony Run","B03","B03-Stony Run","1mgTAftS5EXaqPN-a7Seg2BKXaX2aZcNd",60,458,27480,"6.39","0.68",40.64,56.91,27.12,125.29,160.54,6.8,7.77,8.7,32.98,167.63,1792.92,234.18,65.42,15.95,7.03,136.88,0.86,8.09,4.86,448.43,13.2,86,17.8 +"4","6/1/2023 8:50:17","NDMU Playground","Ava, Fred, Jenn, Stephen, Elizabeth, Tyler, Loraye, Madeline","(39.3519629, -76.6194265)","Managed"," mowed/tended lawns, yard, or park","6/1/2023",08:50:00,"6/1/2023 8:50:17","NDMU Playground","B04","B04-NDMU Playground","1L_XzHPIZefOsbPovznJJzdEqzz2LlSfi",60,137,8220,"4.87","0.35",23.78,25.53,11.58,43.73,71.66,6.8,7.77,5.2,13.15,184.91,1577.25,270.1,34.55,6.29,6.36,139,0.66,8.75,3.33,579.18,12.5,85.2,8.7 +"5","6/1/2023 9:22:57","NDMU Tennis Grove","Ava, Fred, Jenn, Stephen, Elizabeth, Tyler, Loraye, Madeline","(39.3528954, -76.6188471)","Unmanaged"," wild plants/weeds, forest, or grassland","6/1/2023",09:22:00,"6/1/2023 9:22:57","NDMU Tennis Grove","B05","B05-NDMU Tennis Grove","1Puac4ceuMiCiHO6eIlTT2D0YunsAi7UQ",60,142,8520,"7.77","0.46",26.51,30.12,12.53,120.36,98.55,6.5,7.7,5.6,20.8,148.15,1268.44,179.83,22.99,8.55,7.92,126.34,0.44,8.36,3.52,642.73,10.6,77.4,10.7 +"6","6/1/2023 10:04:32","NDMU Library Stream","Ava, Fred, Jenn, Stephen, Elizabeth, Tyler, Loraye, Madeline","(39.3496891, -76.6178148)","Unmanaged"," wild plants/weeds, forest, or grassland","6/1/2023",10:04:00,"6/1/2023 10:04:32","NDMU Library Stream","B06","B06-NDMU Library Stream","1oeucaanReM5nL6G4K1VFy1bQ9tTA9bbk",60,54.6,3276,"4.85","0.3",29.8,25.12,13.3,56.79,100.28,6.8,7.83,4.5,13.15,105.27,1921.19,180.01,35.01,13.36,5.43,156.36,0.77,8.74,5.1,493.12,12.7,89.3,9.3 +"7","6/2/2023 8:46:23","Rock Creek Park Needwood Parking Lot","Ava, Madeline, David, Daniel, Mike, Stephen, Fred, Elizabeth","39.114081, -77.128242","Managed"," mowed/tended lawns, yard, or park","6/2/2023",08:46:00,"6/2/2023 8:46:23","Rock Creek Park Needwood Parking Lot","M01","M01-Rock Creek Park Needwood Parking Lot","1rozkLu0BLnlw3hMvgH493om1AVX9Q0n4",60,71.4,4284,"3.24","< 0.2",37.78,25.96,28,19.39,44.01,6,7.68,5.1,8.57,59.84,1411.22,180.09,38.28,1.89,2.42,163.04,0.4,8.07,4.03,465.32,11.3,77.3,7.8 +"8","6/2/2023 9:13:06","Rock Creek Park Needwood Forest","Mike; Stephen; Fred; Ava; Madeline; Daniel; David; Elizabeth","39.11580, 77.12721","Unmanaged"," wild plants/weeds, forest, or grassland","6/2/2923",09:00:00,"6/2/2023 9:13:06","Rock Creek Park Needwood Forest","M02","M02-Rock Creek Park Needwood Forest","1vFna4SQPgot0nNbhkX0S0ioAsVFYv1ij",60,53.4,3204,"5.18","< 0.2",41.03,19.6,71.89,32.25,52.95,6,7.7,4,5.46,93.96,1541.87,136.56,184,2.9,2.26,120.63,0.83,7.82,2.67,581.5,11.5,79.1,6.3 +"9","6/2/2023 9:38:01","Rock Creek Park Needwood Pavilion","Ava, Madeline, David, Daniel, Mike, Stephen, Fred, Elizabeth","39.11643, -77.12852","Managed"," mowed/tended lawns, yard, or park","6/2/2023",09:37:00,"6/2/2023 9:38:01","Rock Creek Park Needwood Pavilion","M03","M03-Rock Creek Park Needwood Pavilion","1RxbvnHTsCrhvwPC6lD4xj173q8_lC_6E",60,149,8940,"3.13","0.34",57.91,26.9,93.58,61.99,101.24,6,7.66,5.8,15.91,115.43,1451.54,277.71,87.33,10.3,4.81,189.06,0.39,8.71,3.97,547.11,12.6,78.4,9.7 +"10","6/2/2023 10:08:31","Rock Creek Park Hill Trail","Mike Schatz, Madeline Graham, Daniel Chin, David Soussana, Ava Hoffman, Elizabeth Humphries, Stephen Mosher, Fred Tan","39.118353, -77.126822","Unmanaged"," wild plants/weeds, forest, or grassland","6/2/2023",10:07:00,"6/2/2023 10:08:31","Rock Creek Park Hill Trail","M04","M04-Rock Creek Park Hill Trail","1cHKy1TivJG_bDzaVJqrIt5NEh-u3-w-0",60,98.2,5892,"3.87","< 0.2",20.3,17.62,11.41,42.46,34.38,4.9,7.12,7.9,9.54,69.05,74.82,40.38,14.13,2.13,1.08,249.88,0.05,16.18,2.65,907.18,7.9,11.2,6.4 +"11","6/6/2023 7:29:36","Druid Hill Park Playground","Ava, Elizabeth","39.3212027, -76.6417958","Managed"," mowed/tended lawns, yard, or park","6/6/2023",07:29:00,"6/6/2023 7:29:36","Druid Hill Park Playground","B07","B07-Druid Hill Park Playground","10xkePfbIWOZ60QMaNIXDyl0N7IqnZwak",60,92,5520,"27.3","0.61",21.47,21.74,8.55,53.78,75.08,6.4,7.75,5.4,38.85,68.75,1765.21,141.54,57,11.17,6.34,222.72,0.8,11.94,6.77,528.76,12.2,83.6,17.2 +"12","6/6/2023 7:49:45","Druid Hill Park Thicket","Ava, Elizabeth","39.3219790, -76.6415973","Unmanaged"," wild plants/weeds, forest, or grassland","6/6/2023",07:49:00,"6/6/2023 7:49:45","Druid Hill Park Thicket","B08","B08-Druid Hill Park Thicket","1uKI3nE39rrjEO5gwHXkxVBlqrdtg7jLi",60,130,7800,"7.47","0.33",26.65,24.16,11.01,86.8,64.7,5.7,7.61,5.2,26.81,117.21,614.2,90.43,94.1,7.5,6.86,135.78,0.26,14.48,4.33,893.46,7.2,56.9,10.3 +"13","6/6/2023 8:11:05","Druid Hill Park Hiking Trail","Ava, Elizabeth","(39.3204848, -76.6444267)","Unmanaged"," wild plants/weeds, forest, or grassland","6/6/2023",08:10:00,"6/6/2023 8:11:05","Druid Hill Park Hiking Trail","B09","B09-Druid Hill Park Hiking Trail","1V47nj_2yMm1DAzmp9amQhu8WQkttvtDe",60,204,12240,"26.66","0.46",38.04,50.11,21.58,69.97,108.65,6.1,7.62,6.8,7.48,183.55,2104.25,356.01,95.76,11.89,7.28,129.19,0.77,9.19,5.94,663.58,17,82.1,6.7 +"14","6/6/2023 8:34:54","Druid Hill Park Baseball Field","Ava, Elizabeth","(39.3195710, -76.6441182)","Managed"," mowed/tended lawns, yard, or park","6/6/2023",08:30:00,"6/6/2023 8:34:54","Druid Hill Park Baseball Field","B10","B10-Druid Hill Park Baseball Field","1SKT1JpADnzUQaPP5OQEiuzWrHzTXkpEs",60,129,7740,"3.43","0.25",21.08,16.24,8.9,80.09,59.97,5.8,7.62,5.8,15.43,62.84,802.97,178.71,29.01,7.91,4.12,357.8,0.4,14.41,21.33,627.9,8.7,65.1,8.5 +"15","6/6/2023 9:24:21","Gwynns Grassland","Ava, Elizabeth","39.2725685, -76.6515768","Unmanaged"," wild plants/weeds, forest, or grassland","6/6/2023",09:23:00,"6/6/2023 9:24:21","Gwynns Grassland","B11","B11-Gwynns Grassland","1uocCMOo_15LMz62b9d6ZiiTMpuWOQgvX",60,130,7800,"< 3.0","1.06",42.85,60.06,24.51,118.74,296.39,6.9,7.92,5.3,25.88,100.88,2209,336.88,44.07,63.33,18.78,243.56,1.22,8.47,7.31,365.72,14.8,95.7,15.6 +"16","6/6/2023 9:36:16","Gwynns Glade","Ava, Elizabeth","39.2731493, -76.6527808","Unmanaged"," wild plants/weeds, forest, or grassland","6/6/2023",09:35:00,"6/6/2023 9:36:16","Gwynns Glade","B12","B12-Gwynns Glade","1R2y8KUXSma4ih77saOlT4lJLK3hsEPxq",60,147,8820,"< 3.0","1.08",51.62,68.57,30.5,124.34,302.42,7.2,7.96,6.4,19.98,88.15,2992.05,243.62,40.13,55.19,22.9,293.57,2.02,10.44,8.46,338.2,17.5,98.2,13.2 +"17","6/6/2023 9:53:26","Gwynns Trailhead","Ava, Elizabeth","39.271642, -76.6482257","Managed"," mowed/tended lawns, yard, or park","6/6/2023",09:52:00,"6/6/2023 9:53:26","Gwynns Trailhead","B13","B13-Gwynns Trailhead","1RSp-9SLtIF71288f_1NtL7WvnumPfSSb",60,147,8820,"3.96","0.35",25.02,20.72,13.22,38.03,86.02,7,7.91,5.3,56.11,133.28,2114.93,252.28,66.44,17.91,6.28,234.11,1.07,11.35,12.36,545.68,13.7,94.8,22.2 +"18","6/7/2023 7:39:15","Herring Run Stump","Ava, Elizabeth","(39.3321370, -76.5758902)","Managed"," mowed/tended lawns, yard, or park","6/7/2023",07:39:00,"6/7/2023 7:39:15","Herring Run Stump","B14","B14-Herring Run Stump","1IABQk4yCQEbRrAgl7XJ2pBB-DO8fzNI3",60,212,12720,"12.98","0.35",27.23,28.46,13.35,56.97,90.02,6.4,7.7,6.7,23.37,120.92,1744.72,196.62,37.77,7.42,6.96,149.24,0.63,11.94,9,565.88,13.1,81.6,12.1 +"19","6/7/2023 8:01:44","Herring Run Field","Ava, Elizabeth","(39.3302272, -76.5726679)","Managed"," mowed/tended lawns, yard, or park","6/7/2023",08:01:00,"6/7/2023 8:01:44","Herring Run Field","B15","B15-Herring Run Field","1jktBKZd9I0pze5GQzDVIJ_2VCf5WYWbT",60,93.8,5628,"4.09","0.29",26.2,23.74,14.35,67.47,110.6,6.3,7.67,4.7,22.9,165.62,1029.4,208.05,30.58,7.78,5.4,154.14,0.39,8.85,3.41,610.94,9.9,73.5,11.5 +"20","6/7/2023 8:21:24","Herring Run Stream Bank","Ava, Elizabeth","(39.3294746, -76.5708624)","Unmanaged"," wild plants/weeds, forest, or grassland","6/7/2023",08:21:00,"6/7/2023 8:21:24","Herring Run Stream Bank","B16","B16-Herring Run Stream Bank","1pYEeggxUF50Q-wAr4o1mWbHN32MiEeoL",60,18.4,1104,"4.84","0.53",27.61,30.22,15.24,102.41,135.78,6.6,7.84,3.3,18.79,113.76,1315.62,205.74,33.41,10.56,8.64,141.64,0.67,6.97,2.72,586.8,9.9,87,10.5 +"21","6/7/2023 8:42:45","Herring Run Hillside Forest","Ava, Elizabeth","(39.3284985, -76.5712121)","Unmanaged"," wild plants/weeds, forest, or grassland","6/7/2023",08:42:00,"6/7/2023 8:42:45","Herring Run Hillside Forest","B17","B17-Herring Run Hillside Forest","1b0Tk7DoTT-Zvj42uPT41n4vldVaYmDxr",60,48.4,2904,"< 3.0","< 0.2",51.21,58.15,31.56,29.24,84.54,6.2,7.67,4.3,11.6,269.55,1021.61,355.35,42.67,2.86,7.57,109.57,0.28,11.93,3.96,860.79,11.4,76.8,7.2 +"22","6/7/2023 9:17:45","Herring Run Footbridge","Ava, Elizabeth","(39.3328439, -76.5739265)","Unmanaged"," wild plants/weeds, forest, or grassland","6/7/2023",09:17:00,"6/7/2023 9:17:45","Herring Run Footbridge","B18","B18-Herring Run Footbridge","1OVfRdY_I4jW1jWnSTrRZM5lEn5e25sst",60,97.6,5856,"5.44","0.51",47.56,58.68,33.39,94.05,162.49,6.5,7.86,6.4,11.28,219.11,1302.45,467.11,91.08,10.03,8.68,119.04,0.94,7.6,4.82,504.38,12.1,90.7,8.7 +"23","6/7/2023 9:59:34","Herring Run Montebello","Ava, Elizabeth","(39.3319241, -76.5796275)","Managed"," mowed/tended lawns, yard, or park","6/7/2023",09:59:00,"6/7/2023 9:59:34","Herring Run Montebello","B19","B19-Herring Run Montebello","1EIz00fHcrx4WAcM9t5F_A6UTQ0viWTx9",60,56.2,3372,"4.47","0.22",23.88,26.02,9.63,76.37,96.93,5.6,7.55,5.3,33.58,121.94,507.65,81.72,17.13,16.25,5.31,196.83,0.14,15.17,4.76,666.95,7.1,49.5,13.7 +"24","6/13/2023 7:27:53","Leakin Trailhead","Ava & Elizabeth","(39.3042679, -76.6944519)","Managed"," mowed/tended lawns, yard, or park","6/12/2023",07:27:00,"6/13/2023 7:27:53","Leakin Trailhead","B20","B20-Leakin Trailhead","13YnUcxXuTPsrTwO6CUMtLbaOA94S3dGL",60,90.4,5424,"< 3.0","< 0.2",77.57,32.21,22.53,33.98,59.02,6.6,7.95,3.7,3.56,71.51,1604.57,349.03,33.99,3.24,4.75,101.76,0.65,5.49,5.72,517.58,11.5,96.5,5.8 +"25","6/13/2023 7:50:18","Leakin Poplar","Ava & Elizabeth","(39.3027325, -76.6957974)","Managed"," mowed/tended lawns, yard, or park","6/12/2023",07:50:00,"6/13/2023 7:50:18","Leakin Poplar","B21","B21-Leakin Poplar","12KYeJZU_nQWCgHpyUgOeaVpVLhVzy5vf",60,73.2,4392,"< 3.0","< 0.2",20.04,28.49,14.65,26.94,51.11,6,7.66,3.7,10.01,135.55,491.18,118.71,20.14,1.38,2.05,82.69,0.18,7.86,4.8,777.54,6.5,58.2,7.1 +"26","6/13/2023 8:06:31","Leakin Glen","Ava, Elizabeth","39.3017521, -76.6965910","Unmanaged"," wild plants/weeds, forest, or grassland","6/13/2023",08:06:00,"6/13/2023 8:06:31","Leakin Glen","B22","B22-Leakin Glen","1f4NGYrVxaG4iSyiCvcOHR3uFln0LG6fN",60,81.4,4884,"< 3.0","< 0.2",77.7,27.48,23.15,23.6,44.66,6.5,7.88,4.4,3.48,73.5,1963.72,254.52,43.9,4.67,5.02,186.88,0.73,5.96,5.3,370.13,13.1,92.7,6.1 +"27","6/13/2023 8:33:45","Leakin Forest","Ava & Elizabeth","(39.3056304, -76.6947600)","Unmanaged"," wild plants/weeds, forest, or grassland","6/13/2023",08:33:00,"6/13/2023 8:33:45","Leakin Forest","B23","B23-Leakin Forest","1MMVp-SnXLo79ISNy8ypHiQrff_JdN_7G",60,63,3780,"3.92","< 0.2",21.44,29.98,19.14,50.04,63.8,5.5,7.25,5.9,7.86,106.32,191.61,86,10.01,2.73,3.43,181.41,0.14,11.04,3.72,916.25,7.9,24.5,6.1 +"28","6/13/2023 8:48:14","Leakin Nature Center","Ava & Elizabeth","(39.3072080, -76.6949263)","Managed"," mowed/tended lawns, yard, or park","6/13/2023",08:48:00,"6/13/2023 8:48:14","Leakin Nature Center","B24","B24-Leakin Nature Center","1p48KBMw5cm4L5UNp-BgNMGqoWO20ypNJ",60,66.8,4008,"< 3.0","< 0.2",39.4,52.81,21.01,34.12,57.4,6.7,7.89,4,10.11,188.37,2138.35,272.19,55.36,8.22,9.16,156.78,0.85,6.33,5.29,463.16,14.3,93.9,8.4 +"29","6/19/2023 8:15:42","Black Hill Visitor Center","Ava & elizabeth","(39.1924796, -77.2958082)","Managed"," mowed/tended lawns, yard, or park","6/19/2023",08:15:00,"6/19/2023 8:15:42","Black Hill Visitor Center","M05","M05-Black Hill Visitor Center","1jINlFvfNqr9O1mBZFWYew-jQNuMQwohO",60,105,6300,"< 3.0","< 0.2",19.15,25.06,18.91,18.13,85.35,6.1,7.84,5.4,15.37,37.1,1889.32,168.38,42.12,2.94,3.24,126.65,0.6,9.86,158.82,365.41,12.2,89.5,12 +"30","6/19/2023 8:32:09","Black Hill Small Wood","Ava & Elizabeth","(39.1923697, -77.2938525)","Unmanaged"," wild plants/weeds, forest, or grassland","6/19/2023",08:32:00,"6/19/2023 8:32:09","Black Hill Small Wood","M06","M06-Black Hill Small Wood","1ncKWeNNzdw52164UluHO_aKH5Q1J2eZ1",60,136,8160,"9.34","< 0.2",14.93,11.56,9.21,54.58,44.01,6,7.23,9.3,10.45,235.73,391.73,102.02,96.85,1.36,0.76,135.75,0.27,13.77,3.23,956.02,9.6,35.7,6.6 +"31","6/19/2023 8:50:13","Black Hill Pavilion A","Ava & Elizabeth","(39.1951344, -77.2909008)","Managed"," mowed/tended lawns, yard, or park","6/19/2023",08:50:00,"6/19/2023 8:50:13","Black Hill Pavilion A","M07","M07-Black Hill Pavilion A","1CW01fLj9fhJnVFXm13vfqicvnekfXBzn",60,176,10560,"7.31","< 0.2",16.91,17.12,12.67,17.83,49.55,6.1,7.46,6.6,15.27,225.95,738.79,179.23,86.01,1.93,1.14,127.1,0.25,11.98,4.26,658.61,10.1,57.2,8.9 +"32","6/19/2023 9:04:20","Black Hill Tiny Meadow","Ava & Elizabeth","(39.1955480, -77.2893639)","Unmanaged"," wild plants/weeds, forest, or grassland","6/19/2023",09:04:00,"6/19/2023 9:04:20","Black Hill Tiny Meadow","M08","M08-Black Hill Tiny Meadow","1pnrMNAW2nDH_pNeNBYLDvd_kLzs4JB7_",60,99,5940,"11.1","0.21",16.03,13.46,10.77,35.93,49.54,6.1,7.5,5.9,18.51,114.43,681.63,96.04,96.78,1.73,0.91,95.26,0.35,14.13,3.19,894.97,8.5,53,8.6 +"33","6/19/2023 9:37:47","Ridge Road Oak Grove","Ava & Elizabeth","(39.2096095, -77.2436929)","Unmanaged"," wild plants/weeds, forest, or grassland","6/19/2023",09:37:00,"6/19/2023 9:37:47","Ridge Road Oak Grove","M09","M09-Ridge Road Oak Grove","1EUTS2qsooMUeQu_WPhRuZo3J3HMV0S7s",60,100,6000,"5.42","< 0.2",15.08,14.17,6.87,53.71,31.7,5.6,7.36,7.9,23.43,136.22,298.76,62.4,47.46,2.18,1.31,217.01,0.12,16.96,3.55,908.8,7.5,31.6,9.3 +"34","6/19/2023 9:51:24","Ridge Road Pine Field","Ava, Elizabeth","39.2099919, -77.2439618","Managed"," mowed/tended lawns, yard, or park","6/19/2023",09:51:00,"6/19/2023 9:51:24","Ridge Road Pine Field","M10","M10-Ridge Road Pine Field","17z8YsxNfHT-wF8YGNgPYeyua7YeIyHZi",60,77.4,4644,"8.95","< 0.2",17.15,25.39,10.57,21.35,35.11,5.7,7.6,4.9,7.72,143.34,1082.18,158.42,95.89,1.38,1.75,144.92,0.29,7,6.04,622.95,10.3,68.9,6.8 +"35","6/19/2023 10:10:53","Ridge Road Leafy Trail","Ava & Elizabeth","(39.2074954, -77.2422723)","Unmanaged"," wild plants/weeds, forest, or grassland","6/19/2023",10:10:00,"6/19/2023 10:10:53","Ridge Road Leafy Trail","M11","M11-Ridge Road Leafy Trail","13W5snhWYSWxQ--QsR2m2d1A0rbvRhGNZ",60,100,6000,"7.34","< 0.2",14.87,11.24,7.01,67.32,29.02,5.3,7.5,10.6,9.7,49.57,141.25,36.49,45.89,2.87,0.59,237.65,0.02,22.28,4.04,978.59,5.1,22.1,6.4 +"36","6/19/2023 10:23:24","Ridge Road Tennis Court","Ava & Elizabeth","(39.2084737, -77.2425640)","Managed"," mowed/tended lawns, yard, or park","6/19/2023",10:23:00,"6/19/2023 10:23:24","Ridge Road Tennis Court","M12","M12-Ridge Road Tennis Court","1FLHR2DmC0QVQKLntWGh0q3D4ijFCvRdv",60,87,5220,"9.71","< 0.2",18.08,31.04,11.7,23.24,48.97,5.8,7.79,5.5,10.2,169.81,1258.23,154.54,72.71,3.4,3.79,127.36,0.47,7.31,3.06,523.3,9.7,82.7,8.1 +"37","6/20/2023 8:12:10","Goshen Stream Davis Mill","Ava, Elizabeth","39.2108606, -77.2053983","Managed"," mowed/tended lawns, yard, or park","6/20/2023",08:12:00,"6/20/2023 8:12:10","Goshen Stream Davis Mill","M13","M13-Goshen Stream Davis Mill","1LrilZORD3AZeupIKsQrutBO4A2aHv5L_",60,28.8,1728,"3.11","0.98",21.29,27.45,22.51,24.55,68.19,5.6,7.81,4.6,8.3,63.77,1366.44,142.01,122.3,4.03,2.88,181.59,0.52,6.92,6.47,480.73,9.7,84.3,7.6 +"38","6/20/2023 8:23:50","Goshen Stream Glade","Ava, Elizabeth","39.2109581, -77.2046218","Unmanaged"," wild plants/weeds, forest, or grassland","6/20/2023",08:23:00,"6/20/2023 8:23:50","Goshen Stream Glade","M14","M14-Goshen Stream Glade","116VaDyIuBjiaSV8ZX4tfARsnmnSfjaNj",60,53.8,3228,"4.79","0.96",22.93,21.74,19.02,22.35,64.65,5,7.56,5.6,12.44,69.91,671.32,113.5,55.16,3.86,2.19,172.14,0.18,8.6,4.46,639.72,8,56,8.1 +"39","6/20/2023 8:46:17","Goshen Stream Seneca Trailhead","Ava, Elizabeth","39.2019044, -77.2025498","Managed"," mowed/tended lawns, yard, or park","6/20/2023",08:46:00,"6/20/2023 8:46:17","Goshen Stream Seneca Trailhead","M15","M15-Goshen Stream Seneca Trailhead","1coKQBwchZR4I60PeLKQ2lb5VomMu08Yz",60,38.6,2316,"< 3.0","0.9",20.79,19.15,16.04,21.55,54.52,6.4,7.83,3.8,47.19,272.9,1405.53,110.35,39.61,1.88,1.9,137.51,0.59,10.15,4.14,630.94,10,86.4,18.6 +"40","6/20/2023 8:59:47","Goshen Stream Fern Gully","Ava, Elizabeth","39.2023669, -77.2013220","Unmanaged"," wild plants/weeds, forest, or grassland","6/20/2023",08:59:00,"6/20/2023 8:59:47","Goshen Stream Fern Gully","M16","M16-Goshen Stream Fern Gully","10xhoJuhx3u7wKLo20Zsc1-dmVUlNBxhs",60,69.6,4176,"< 3.0","0.91",18.77,28.02,20.63,35.61,64.66,4.7,7.1,11.5,11.69,64.96,115.16,60.42,9.26,2.49,1.66,373.66,0.03,18.83,3.57,893.95,8.4,14.8,6.8 +"41","6/20/2023 10:18:21","Goshen Rec Grass","Ava, Elizabeth","39.2238459, -77.2123519","Managed"," mowed/tended lawns, yard, or park","6/20/2023",10:18:00,"6/20/2023 10:18:21","Goshen Rec Grass","M17","M17-Goshen Rec Grass","15Zxa_xtn7wnGK_4bAicZO99r3NnyJbtR",60,144,8640,"< 3.0","1.19",33.91,32.39,51,53.13,99.07,5.5,7.7,6.5,25.7,193.93,1605.62,212.78,42.32,14.6,4.34,184.51,0.82,9.81,4.71,455.44,12.7,81.1,14.3 +"42","6/20/2023 10:31:18","Goshen Rec Arched Tree","Ava, Elizabeth","39.2238549, -77.2126031","Unmanaged"," wild plants/weeds, forest, or grassland","6/20/2023",10:31:00,"6/20/2023 10:31:18","Goshen Rec Arched Tree","M18","M18-Goshen Rec Arched Tree","1JqR-X9Rw6ORPioI2lRd14iZoaFuNyIzB",60,58.6,3516,"3.63","1.08",16.03,22.07,12.11,59.15,119.85,5.2,7.6,4.9,152.04,192.86,799.26,106.83,24.27,13.92,1.92,307.92,0.18,10.27,3,687.28,8.6,62.7,42.2 +"43","6/21/2023 8:16:55","Farm Park Bird Field","Ava, Elizabeth","39.1642713, -77.1349229","Managed"," mowed/tended lawns, yard, or park","6/21/2023",08:16:00,"6/21/2023 8:16:55","Farm Park Bird Field","M19","M19-Farm Park Bird Field","1-UxtRseqxDVwUQyPKGWxW3bqA-OvxS6_",60,111,6660,"4.89","1.1",50.65,47.34,22.68,50.75,136.88,5.7,7.64,6,132.46,128.51,1259.5,156.73,21.95,22.7,8.69,308.55,0.27,11.06,8,586.81,10.8,73.4,41.9 +"44","6/21/2023 8:33:05","Farm Park Stream Side","Ava, Elizabeth","39.1627040, -77.1327725","Unmanaged"," wild plants/weeds, forest, or grassland","6/21/2023",08:33:00,"6/21/2023 8:33:05","Farm Park Stream Side","M20","M20-Farm Park Stream Side","14_lYo5z76LGVbYmxdmKNMOldmlhME2vI",60,63.2,3792,"4.49","0.6",57.32,53.43,18.64,65.61,71.66,5,7.32,6,185.26,65.04,504.29,76.92,18.84,7.14,7.18,510.09,0.03,12.47,7.13,723.9,8.8,38,44.1 +"45","6/21/2023 8:58:01","Farm Park Farmhouse","Ava, Elizabeth","39.1637646, -77.1305888","Managed"," mowed/tended lawns, yard, or park","6/21/2023",08:57:00,"6/21/2023 8:58:01","Farm Park Farmhouse","M21","M21-Farm Park Farmhouse","1FKkWG4N7Q_tz0ZHepfsiXL-jOr51Mfc-",60,99,5940,"3.49","0.27",26.42,30.52,17.31,30.42,77.64,5.3,7.59,5.6,27.92,183.39,756.42,109.82,50.87,5.56,2.32,106.93,0.26,13.26,3.71,625.83,8.4,61.2,13.1 +"46","6/21/2023 9:20:13","Farm Park Spice Bush Thicket","Ava, Elizabeth","39.1657660, -77.1289020","Unmanaged"," wild plants/weeds, forest, or grassland","6/21/2023",09:20:00,"6/21/2023 9:20:13","Farm Park Spice Bush Thicket","M22","M22-Farm Park Spice Bush Thicket","1sCrim628NH3vjqMrzWO2UkGHEvzgeSpp",60,54.6,3276,"5.83","0.37",24.95,28.96,17,34.19,70.43,5.3,7.64,5.2,20.68,180.73,840.06,141.15,50.44,4.53,2.84,103.21,0.39,8.73,3.13,654.19,8.7,67,10.6 +"47","6/21/2023 10:18:14","Cabin John Tai Chi Court","Ava, Elizabeth","39.0351753, -77.1481955","Managed"," mowed/tended lawns, yard, or park","6/21/2023",10:18:00,"6/21/2023 10:18:14","Cabin John Tai Chi Court","M23","M23-Cabin John Tai Chi Court","1VsBNm_cnqhIiueyWG_CGaLFIyBTKiYzY",60,111,6660,"3.36","0.44",51.46,18.95,24.71,54.98,70.75,6,7.79,5.1,8.14,171.86,1391.94,224.92,132.97,6.25,2.75,147.41,1.3,7.53,4.38,465.19,11,84.7,7.7 +"48","6/21/2023 10:39:35","Cabin John Conifers","Ava, Elizabeth","39.0341792, -77.1495557","Unmanaged"," wild plants/weeds, forest, or grassland","6/21/2023",10:39:00,"6/21/2023 10:39:35","Cabin John Conifers","M24","M24-Cabin John Conifers","1GAtzlyaS7j64QcbF8Hj9cO585k8b1iXW",60,103,6180,"3.56","0.31",83.52,14.97,28.42,28.63,66.14,6,7.73,4.8,5.51,184.3,917.74,274.97,148.81,2.7,1.23,115.71,0.6,6.26,3.29,520.97,9.5,77.3,6.5 +"49","8/14/2023 17:42:05","Fred Hutch Arnold Yard","Ava Hoffman, Elizabeth Humphries, Natalie Kucher, Jeff Leek, Sidd Pratap, Mike Schatz, Joelle Taganna, Carl Pontino, Randon Serikawa, Jenn Vessio, Stephen Mosher, Fred Tan, Shurjo Sen","47.6275429, -122.3320589","Managed"," mowed/tended lawns, yard, or park","8/14/2023",14:41:00,"8/14/2023 17:42:05","Fred Hutch Arnold Yard","S01","S01-Fred Hutch Arnold Yard","1YHYVo6PhG7GrLOU5eMmbTdRI8Vprz2Jk",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"50","8/14/2023 18:16:22","Fred Hutch Pine Lot","Ava Hoffman, Elizabeth Humphries, Mike Schatz, Carl Pontino, Matheus Fernandes, Joelle Taganna, Randon Serikawa, Stephen Mosher, Natalie Kucher","47.6274891, -122.3302119","Unmanaged"," wild plants/weeds, forest, or grassland","8/14/2023",15:16:00,"8/14/2023 18:16:22","Fred Hutch Pine Lot","S02","S02-Fred Hutch Pine Lot","1Ztx7jlmLQVTBEKVKkB1p06BdAuynbkHU",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"51","11/6/2023 13:42:02","Mission de El Paso TX","EPCC Rise to the Challenge Bridge Interns","31.6781066, -106.2660366","Unmanaged"," wild plants/weeds, forest, or grassland","11/3/2023",14:30:00,"11/6/2023 13:42:02","Mission de El Paso TX","E01","E01-Mission de El Paso TX",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"52","12/10/2023 21:20:49","CCC SE","Clovis Community College Fall 2023 Environmental Science Class","36.883255, -119.731121","Unmanaged"," wild plants/weeds, forest, or grassland","11/7/2023",16:00:00,"12/10/2023 21:20:49","CCC SE","F01","F01-CCC SE",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"53","12/10/2023 21:22:47","Organic Vineyard","Grace Freymiller","36.52463644789908, -119.84277618509098","Managed"," mowed/tended lawns, yard, or park","12/10/2023",15:30:00,"12/10/2023 21:22:47","Organic Vineyard","F02","F02-Organic Vineyard",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"54","12/10/2023 21:23:44","Fallow Field","Grace Freymiller","36.52245507825071, -119.84432651684219","Unmanaged"," wild plants/weeds, forest, or grassland","12/10/2023",14:30:00,"12/10/2023 21:23:44","Fallow Field","F03","F03-Fallow Field",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"55","12/10/2023 21:25:37","Rural Home Lawn","Grace Freymiller","36.52336448885364, -119.84505582626596","Managed"," mowed/tended lawns, yard, or park","12/10/2023",15:00:00,"12/10/2023 21:25:37","Rural Home Lawn","F04","F04-Rural Home Lawn",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"56","12/10/2023 21:26:30","Vineyard Pesticide Buffer","Grace Freymiller","36.52537896390843, -119.84267048162928","Managed"," mowed/tended lawns, yard, or park","12/10/2023",15:15:00,"12/10/2023 21:26:30","Vineyard Pesticide Buffer","F05","F05-Vineyard Pesticide Buffer","1k5iONZak16NdGy9EyF7TK3hF77z7GnGB",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"57","12/11/2023 13:29:36","UTEP Hill","Frida Delgadillo, Armando Jimenez, Keyan Ozuna","31.77391, -106.50386","Unmanaged"," wild plants/weeds, forest, or grassland","12/7/2023",13:30:00,"12/11/2023 13:29:36","UTEP Hill","E02","E02-UTEP Hill","1ilh1juEEQxg2mlbnXhPpZpij_y1QxwMi",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"58","1/2/2024 12:57:53","EP Mundy Park","Frida Delgadillo, Armando Jimenez","31.76397, -106.50203","Managed"," mowed/tended lawns, yard, or park","12/21/2023",09:35:00,"1/2/2024 12:57:53","EP Mundy Park","E03","E03-EP Mundy Park",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"59","1/2/2024 13:00:27","EP Memorial Park Channel","Frida Delgadillo, Armando Jimenez","31.79024, -106.45513","Managed"," mowed/tended lawns, yard, or park","12/21/2023",11:45:00,"1/2/2024 13:00:27","EP Memorial Park Channel","E04","E04-EP Memorial Park Channel",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"60","1/2/2024 13:02:43","EP Memorial Park Open Area","Frida Delgadillo, Armando Jimenez","31.78962, -106.45770","Managed"," mowed/tended lawns, yard, or park","12/21/2023",13:15:00,"1/2/2024 13:02:43","EP Memorial Park Open Area","E05","E05-EP Memorial Park Open Area",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"61","1/2/2024 13:05:12","EP Ascarate Park Picnic Area","Frida Delgadillo, Keyan Ozuna","31.75547, -106.40452","Managed"," mowed/tended lawns, yard, or park","12/22/2023",09:30:00,"1/2/2024 13:05:12","EP Ascarate Park Picnic Area","E06","E06-EP Ascarate Park Picnic Area",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"62","1/4/2024 16:10:42","Virginia State University - Site 1","Xianfa Xie, Michael Marone","37.231667, -77.419","Unmanaged"," wild plants/weeds, forest, or grassland","1/2/2024",15:20:00,"1/4/2024 16:10:42","Virginia State University - Site 1","P01","P01-Virginia State University - Site 1",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"63","1/4/2024 16:11:58","Virginia State University - Site 2","Xianfa Xie, Michael Marone","37.229556, -77.42225","Unmanaged"," wild plants/weeds, forest, or grassland","1/2/2024",16:00:00,"1/4/2024 16:11:58","Virginia State University - Site 2","P02","P02-Virginia State University - Site 2",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"64","1/4/2024 16:13:19","Virginia State University - Site 3","Michael Marone","37.235556, -77.413611","Unmanaged"," wild plants/weeds, forest, or grassland","1/3/2024",14:20:00,"1/4/2024 16:13:19","Virginia State University - Site 3","P03","P03-Virginia State University - Site 3",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"65","1/4/2024 16:14:22","Virginia State University - Site 4","Michael Marone","37.235278, -77.411667","Unmanaged"," wild plants/weeds, forest, or grassland","1/3/2024",15:00:00,"1/4/2024 16:14:22","Virginia State University - Site 4","P04","P04-Virginia State University - Site 4",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"66","1/4/2024 16:16:15","Virginia State University - Site 5","Xianfa Xie, Michael Marone","37.235278, -77.416639","Managed"," mowed/tended lawns, yard, or park","1/4/2024",15:30:00,"1/4/2024 16:16:15","Virginia State University - Site 5","P05","P05-Virginia State University - Site 5",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA diff --git a/soil_testing_data.csv b/soil_testing_data.csv new file mode 100644 index 0000000..78fc6da --- /dev/null +++ b/soil_testing_data.csv @@ -0,0 +1,66 @@ +"site_id","site_name","type","As_EPA3051","Cd_EPA3051","Cr_EPA3051","Cu_EPA3051","Ni_EPA3051","Pb_EPA3051","Zn_EPA3051","water_pH","OM_by_LOI_pct","P_Mehlich3","K_Mehlich3","Ca_Mehlich3","Mg_Mehlich3","Mn_Mehlich3","Zn_Mehlich3","Cu_Mehlich3","Fe_Mehlich3","B_Mehlich3","S_Mehlich3","Na_Mehlich3","Al_Mehlich3","Est_CEC","Base_Sat_pct","P_Sat_ratio","region" +"B01","Decker Quad","Managed",0,0.26,12.77,13.54,6.93,10.69,33.71,6.8,3.4,47.4,136.87,1384.37,198.67,36.89,5.46,5.21,229.75,0.49,15.42,18.2,472.72,9.3,95.7,21.4,"Baltimore City" +"B02","Wyman Dell","Managed",5.04,0.53,29.02,31.48,10.75,88.21,83.35,7.2,6.7,82.21,139.38,3062.75,276.56,43.55,16.45,8.64,256.86,1.5,11.79,17.34,371.99,18.7,96.1,38.9,"Baltimore City" +"B03","Stony Run","Unmanaged",6.39,0.68,40.64,56.91,27.12,125.29,160.54,6.8,8.7,32.98,167.63,1792.92,234.18,65.42,15.95,7.03,136.88,0.86,8.09,4.86,448.43,13.2,86,17.8,"Baltimore City" +"B04","NDMU Playground","Managed",4.87,0.35,23.78,25.53,11.58,43.73,71.66,6.8,5.2,13.15,184.91,1577.25,270.1,34.55,6.29,6.36,139,0.66,8.75,3.33,579.18,12.5,85.2,8.7,"Baltimore City" +"B05","NDMU Tennis Grove","Unmanaged",7.77,0.46,26.51,30.12,12.53,120.36,98.55,6.5,5.6,20.8,148.15,1268.44,179.83,22.99,8.55,7.92,126.34,0.44,8.36,3.52,642.73,10.6,77.4,10.7,"Baltimore City" +"B06","NDMU Library Stream","Unmanaged",4.85,0.3,29.8,25.12,13.3,56.79,100.28,6.8,4.5,13.15,105.27,1921.19,180.01,35.01,13.36,5.43,156.36,0.77,8.74,5.1,493.12,12.7,89.3,9.3,"Baltimore City" +"M01","Rock Creek Park Needwood Parking Lot","Managed",3.24,0,37.78,25.96,28,19.39,44.01,6,5.1,8.57,59.84,1411.22,180.09,38.28,1.89,2.42,163.04,0.4,8.07,4.03,465.32,11.3,77.3,7.8,"Montgomery County" +"M02","Rock Creek Park Needwood Forest","Unmanaged",5.18,0,41.03,19.6,71.89,32.25,52.95,6,4,5.46,93.96,1541.87,136.56,184,2.9,2.26,120.63,0.83,7.82,2.67,581.5,11.5,79.1,6.3,"Montgomery County" +"M03","Rock Creek Park Needwood Pavilion","Managed",3.13,0.34,57.91,26.9,93.58,61.99,101.24,6,5.8,15.91,115.43,1451.54,277.71,87.33,10.3,4.81,189.06,0.39,8.71,3.97,547.11,12.6,78.4,9.7,"Montgomery County" +"M04","Rock Creek Park Hill Trail","Unmanaged",3.87,0,20.3,17.62,11.41,42.46,34.38,4.9,7.9,9.54,69.05,74.82,40.38,14.13,2.13,1.08,249.88,0.05,16.18,2.65,907.18,7.9,11.2,6.4,"Montgomery County" +"B07","Druid Hill Park Playground","Managed",27.3,0.61,21.47,21.74,8.55,53.78,75.08,6.4,5.4,38.85,68.75,1765.21,141.54,57,11.17,6.34,222.72,0.8,11.94,6.77,528.76,12.2,83.6,17.2,"Baltimore City" +"B08","Druid Hill Park Thicket","Unmanaged",7.47,0.33,26.65,24.16,11.01,86.8,64.7,5.7,5.2,26.81,117.21,614.2,90.43,94.1,7.5,6.86,135.78,0.26,14.48,4.33,893.46,7.2,56.9,10.3,"Baltimore City" +"B09","Druid Hill Park Hiking Trail","Unmanaged",26.66,0.46,38.04,50.11,21.58,69.97,108.65,6.1,6.8,7.48,183.55,2104.25,356.01,95.76,11.89,7.28,129.19,0.77,9.19,5.94,663.58,17,82.1,6.7,"Baltimore City" +"B10","Druid Hill Park Baseball Field","Managed",3.43,0.25,21.08,16.24,8.9,80.09,59.97,5.8,5.8,15.43,62.84,802.97,178.71,29.01,7.91,4.12,357.8,0.4,14.41,21.33,627.9,8.7,65.1,8.5,"Baltimore City" +"B11","Gwynns Grassland","Unmanaged",0,1.06,42.85,60.06,24.51,118.74,296.39,6.9,5.3,25.88,100.88,2209,336.88,44.07,63.33,18.78,243.56,1.22,8.47,7.31,365.72,14.8,95.7,15.6,"Baltimore City" +"B12","Gwynns Glade","Unmanaged",0,1.08,51.62,68.57,30.5,124.34,302.42,7.2,6.4,19.98,88.15,2992.05,243.62,40.13,55.19,22.9,293.57,2.02,10.44,8.46,338.2,17.5,98.2,13.2,"Baltimore City" +"B13","Gwynns Trailhead","Managed",3.96,0.35,25.02,20.72,13.22,38.03,86.02,7,5.3,56.11,133.28,2114.93,252.28,66.44,17.91,6.28,234.11,1.07,11.35,12.36,545.68,13.7,94.8,22.2,"Baltimore City" +"B14","Herring Run Stump","Managed",12.98,0.35,27.23,28.46,13.35,56.97,90.02,6.4,6.7,23.37,120.92,1744.72,196.62,37.77,7.42,6.96,149.24,0.63,11.94,9,565.88,13.1,81.6,12.1,"Baltimore City" +"B15","Herring Run Field","Managed",4.09,0.29,26.2,23.74,14.35,67.47,110.6,6.3,4.7,22.9,165.62,1029.4,208.05,30.58,7.78,5.4,154.14,0.39,8.85,3.41,610.94,9.9,73.5,11.5,"Baltimore City" +"B16","Herring Run Stream Bank","Unmanaged",4.84,0.53,27.61,30.22,15.24,102.41,135.78,6.6,3.3,18.79,113.76,1315.62,205.74,33.41,10.56,8.64,141.64,0.67,6.97,2.72,586.8,9.9,87,10.5,"Baltimore City" +"B17","Herring Run Hillside Forest","Unmanaged",0,0,51.21,58.15,31.56,29.24,84.54,6.2,4.3,11.6,269.55,1021.61,355.35,42.67,2.86,7.57,109.57,0.28,11.93,3.96,860.79,11.4,76.8,7.2,"Baltimore City" +"B18","Herring Run Footbridge","Unmanaged",5.44,0.51,47.56,58.68,33.39,94.05,162.49,6.5,6.4,11.28,219.11,1302.45,467.11,91.08,10.03,8.68,119.04,0.94,7.6,4.82,504.38,12.1,90.7,8.7,"Baltimore City" +"B19","Herring Run Montebello","Managed",4.47,0.22,23.88,26.02,9.63,76.37,96.93,5.6,5.3,33.58,121.94,507.65,81.72,17.13,16.25,5.31,196.83,0.14,15.17,4.76,666.95,7.1,49.5,13.7,"Baltimore City" +"B20","Leakin Trailhead","Managed",0,0,77.57,32.21,22.53,33.98,59.02,6.6,3.7,3.56,71.51,1604.57,349.03,33.99,3.24,4.75,101.76,0.65,5.49,5.72,517.58,11.5,96.5,5.8,"Baltimore City" +"B21","Leakin Poplar","Managed",0,0,20.04,28.49,14.65,26.94,51.11,6,3.7,10.01,135.55,491.18,118.71,20.14,1.38,2.05,82.69,0.18,7.86,4.8,777.54,6.5,58.2,7.1,"Baltimore City" +"B22","Leakin Glen","Unmanaged",0,0,77.7,27.48,23.15,23.6,44.66,6.5,4.4,3.48,73.5,1963.72,254.52,43.9,4.67,5.02,186.88,0.73,5.96,5.3,370.13,13.1,92.7,6.1,"Baltimore City" +"B23","Leakin Forest","Unmanaged",3.92,0,21.44,29.98,19.14,50.04,63.8,5.5,5.9,7.86,106.32,191.61,86,10.01,2.73,3.43,181.41,0.14,11.04,3.72,916.25,7.9,24.5,6.1,"Baltimore City" +"B24","Leakin Nature Center","Managed",0,0,39.4,52.81,21.01,34.12,57.4,6.7,4,10.11,188.37,2138.35,272.19,55.36,8.22,9.16,156.78,0.85,6.33,5.29,463.16,14.3,93.9,8.4,"Baltimore City" +"M05","Black Hill Visitor Center","Managed",0,0,19.15,25.06,18.91,18.13,85.35,6.1,5.4,15.37,37.1,1889.32,168.38,42.12,2.94,3.24,126.65,0.6,9.86,158.82,365.41,12.2,89.5,12,"Montgomery County" +"M06","Black Hill Small Wood","Unmanaged",9.34,0,14.93,11.56,9.21,54.58,44.01,6,9.3,10.45,235.73,391.73,102.02,96.85,1.36,0.76,135.75,0.27,13.77,3.23,956.02,9.6,35.7,6.6,"Montgomery County" +"M07","Black Hill Pavilion A","Managed",7.31,0,16.91,17.12,12.67,17.83,49.55,6.1,6.6,15.27,225.95,738.79,179.23,86.01,1.93,1.14,127.1,0.25,11.98,4.26,658.61,10.1,57.2,8.9,"Montgomery County" +"M08","Black Hill Tiny Meadow","Unmanaged",11.1,0.21,16.03,13.46,10.77,35.93,49.54,6.1,5.9,18.51,114.43,681.63,96.04,96.78,1.73,0.91,95.26,0.35,14.13,3.19,894.97,8.5,53,8.6,"Montgomery County" +"M09","Ridge Road Oak Grove","Unmanaged",5.42,0,15.08,14.17,6.87,53.71,31.7,5.6,7.9,23.43,136.22,298.76,62.4,47.46,2.18,1.31,217.01,0.12,16.96,3.55,908.8,7.5,31.6,9.3,"Montgomery County" +"M10","Ridge Road Pine Field","Managed",8.95,0,17.15,25.39,10.57,21.35,35.11,5.7,4.9,7.72,143.34,1082.18,158.42,95.89,1.38,1.75,144.92,0.29,7,6.04,622.95,10.3,68.9,6.8,"Montgomery County" +"M11","Ridge Road Leafy Trail","Unmanaged",7.34,0,14.87,11.24,7.01,67.32,29.02,5.3,10.6,9.7,49.57,141.25,36.49,45.89,2.87,0.59,237.65,0.02,22.28,4.04,978.59,5.1,22.1,6.4,"Montgomery County" +"M12","Ridge Road Tennis Court","Managed",9.71,0,18.08,31.04,11.7,23.24,48.97,5.8,5.5,10.2,169.81,1258.23,154.54,72.71,3.4,3.79,127.36,0.47,7.31,3.06,523.3,9.7,82.7,8.1,"Montgomery County" +"M13","Goshen Stream Davis Mill","Managed",3.11,0.98,21.29,27.45,22.51,24.55,68.19,5.6,4.6,8.3,63.77,1366.44,142.01,122.3,4.03,2.88,181.59,0.52,6.92,6.47,480.73,9.7,84.3,7.6,"Montgomery County" +"M14","Goshen Stream Glade","Unmanaged",4.79,0.96,22.93,21.74,19.02,22.35,64.65,5,5.6,12.44,69.91,671.32,113.5,55.16,3.86,2.19,172.14,0.18,8.6,4.46,639.72,8,56,8.1,"Montgomery County" +"M15","Goshen Stream Seneca Trailhead","Managed",0,0.9,20.79,19.15,16.04,21.55,54.52,6.4,3.8,47.19,272.9,1405.53,110.35,39.61,1.88,1.9,137.51,0.59,10.15,4.14,630.94,10,86.4,18.6,"Montgomery County" +"M16","Goshen Stream Fern Gully","Unmanaged",0,0.91,18.77,28.02,20.63,35.61,64.66,4.7,11.5,11.69,64.96,115.16,60.42,9.26,2.49,1.66,373.66,0.03,18.83,3.57,893.95,8.4,14.8,6.8,"Montgomery County" +"M17","Goshen Rec Grass","Managed",0,1.19,33.91,32.39,51,53.13,99.07,5.5,6.5,25.7,193.93,1605.62,212.78,42.32,14.6,4.34,184.51,0.82,9.81,4.71,455.44,12.7,81.1,14.3,"Montgomery County" +"M18","Goshen Rec Arched Tree","Unmanaged",3.63,1.08,16.03,22.07,12.11,59.15,119.85,5.2,4.9,152.04,192.86,799.26,106.83,24.27,13.92,1.92,307.92,0.18,10.27,3,687.28,8.6,62.7,42.2,"Montgomery County" +"M19","Farm Park Bird Field","Managed",4.89,1.1,50.65,47.34,22.68,50.75,136.88,5.7,6,132.46,128.51,1259.5,156.73,21.95,22.7,8.69,308.55,0.27,11.06,8,586.81,10.8,73.4,41.9,"Montgomery County" +"M20","Farm Park Stream Side","Unmanaged",4.49,0.6,57.32,53.43,18.64,65.61,71.66,5,6,185.26,65.04,504.29,76.92,18.84,7.14,7.18,510.09,0.03,12.47,7.13,723.9,8.8,38,44.1,"Montgomery County" +"M21","Farm Park Farmhouse","Managed",3.49,0.27,26.42,30.52,17.31,30.42,77.64,5.3,5.6,27.92,183.39,756.42,109.82,50.87,5.56,2.32,106.93,0.26,13.26,3.71,625.83,8.4,61.2,13.1,"Montgomery County" +"M22","Farm Park Spice Bush Thicket","Unmanaged",5.83,0.37,24.95,28.96,17,34.19,70.43,5.3,5.2,20.68,180.73,840.06,141.15,50.44,4.53,2.84,103.21,0.39,8.73,3.13,654.19,8.7,67,10.6,"Montgomery County" +"M23","Cabin John Tai Chi Court","Managed",3.36,0.44,51.46,18.95,24.71,54.98,70.75,6,5.1,8.14,171.86,1391.94,224.92,132.97,6.25,2.75,147.41,1.3,7.53,4.38,465.19,11,84.7,7.7,"Montgomery County" +"M24","Cabin John Conifers","Unmanaged",3.56,0.31,83.52,14.97,28.42,28.63,66.14,6,4.8,5.51,184.3,917.74,274.97,148.81,2.7,1.23,115.71,0.6,6.26,3.29,520.97,9.5,77.3,6.5,"Montgomery County" +"S01","Fred Hutch Arnold Yard","Managed",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,"Seattle" +"S02","Fred Hutch Pine Lot","Unmanaged",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,"Seattle" +"C01","CCC SE","Unmanaged",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"C02","Organic Vineyard","Managed",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"C03","Fallow Field","Unmanaged",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"C04","Rural Home Lawn","Managed",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"C05","Vineyard Pesticide Buffer","Managed",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"E01","UTEP Hill","Unmanaged",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"E02","EP Mundy Park","Managed",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"E03","EP Memorial Park Channel","Managed",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"E04","EP Memorial Park Open Area","Managed",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"E05","EP Ascarate Park Picnic Area","Managed",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"P01","Virginia State University - Site 1","Unmanaged",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"P02","Virginia State University - Site 2","Unmanaged",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"P03","Virginia State University - Site 3","Unmanaged",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"P04","Virginia State University - Site 4","Unmanaged",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"P05","Virginia State University - Site 5","Managed",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA