From 1df00040e213a9f6650e0041222f8e8335298d42 Mon Sep 17 00:00:00 2001 From: Erik Leppo Date: Tue, 27 Feb 2024 14:20:32 -0500 Subject: [PATCH] v2.0.7.9031 - refactor: Update Shiny app text and tables, Issue \#156 - refactor: Update Shiny app exit links, Issue \#159 --- DESCRIPTION | 2 +- NEWS | 9 +- NEWS.md | 9 +- NEWS.rmd | 6 + .../ContDataQC/external/tab_1_About.R | 4 +- .../ContDataQC/external/tab_1c_FAQ.R | 2 +- .../ContDataQC/external/tab_2_DataPrep.R | 4 +- inst/shiny-examples/ContDataQC/global.R | 2 +- .../ContDataQC/rmd/App_1a_Overview.rmd | 27 +- .../ContDataQC/rmd/App_1b_TestData.rmd | 16 +- .../ContDataQC/rmd/App_1c_FAQ.rmd | 24 +- .../ContDataQC/rmd/App_1d_Tips.rmd | 84 ++--- .../ContDataQC/rmd/App_1e_Advanced.rmd | 6 +- .../ContDataQC/rmd/App_1f_RelatedApps.rmd | 88 ++++- .../ContDataQC/rmd/App_2a1_HOBO.rmd | 8 +- .../ContDataQC/rmd/App_2a2_miniDOT1.Rmd | 24 +- .../ContDataQC/rmd/App_2a3_miniDOT2.Rmd | 20 +- .../ContDataQC/rmd/App_2b_OrganizingFiles.rmd | 2 +- .../ContDataQC/rmd/App_2c_NamingFiles.rmd | 89 +---- .../ContDataQC/rmd/App_2cz_DiscreteData.rmd | 12 +- .../ContDataQC/rmd/App_3a1_About.rmd | 11 +- .../ContDataQC/rmd/App_3a2_QCReports.rmd | 41 +-- .../ContDataQC/rmd/App_3a3_Aggregate.rmd | 5 +- .../ContDataQC/rmd/App_3a4_SummaryStats.rmd | 14 +- .../rmd/App_3c1_QCThresh_Defaults.rmd | 12 +- .../rmd/App_3c2_QCThresh_Upload.rmd | 10 +- .../ContDataQC/rmd/App_3c3_QCThresh_Eval.rmd | 21 +- .../ContDataQC/rmd/App_3c4_QCThresh_Edit.rmd | 49 +-- .../ContDataQC/rmd/App_4_USGSgage.rmd | 6 +- .../ContDataQC/rmd/App_9_Status.rmd | 35 +- .../tables/HOBOreformat_AFTER_20240131.xlsx | Bin 9755 -> 0 bytes .../tables/HOBOreformat_AFTER_20240226.xlsx | Bin 0 -> 9446 bytes ...xlsx => HOBOreformat_BEFORE_20240226.xlsx} | Bin 9533 -> 9409 bytes .../miniDOT_After_Concatenate_20240131.xlsx | Bin 9899 -> 0 bytes .../miniDOT_After_Concatenate_20240226.xlsx | Bin 0 -> 9745 bytes .../miniDOTreformat_ AFTER_20240131.xlsx | Bin 9786 -> 0 bytes .../miniDOTreformat_ AFTER_20240226.xlsx | Bin 0 -> 9616 bytes .../miniDOTreformat_ BEFORE_20240131.xlsx | Bin 9899 -> 0 bytes .../miniDOTreformat_ BEFORE_20240226.xlsx | Bin 0 -> 9750 bytes .../www/RMD_HTML/App_1a_Overview.html | 41 +-- .../www/RMD_HTML/App_1b_TestData.html | 38 ++- .../ContDataQC/www/RMD_HTML/App_1c_FAQ.html | 41 +-- .../ContDataQC/www/RMD_HTML/App_1d_Tips.html | 115 +++---- .../www/RMD_HTML/App_1e_Advanced.html | 21 +- .../www/RMD_HTML/App_1f_RelatedApps.html | 131 +++---- .../ContDataQC/www/RMD_HTML/App_2a1_HOBO.html | 320 +----------------- .../www/RMD_HTML/App_2a2_miniDOT.html | 10 - .../www/RMD_HTML/App_2a2_miniDOT1.html | 139 +------- .../www/RMD_HTML/App_2a3_miniDOT2.html | 219 +----------- .../www/RMD_HTML/App_2b_OrganizingFiles.html | 10 +- .../www/RMD_HTML/App_2c_NamingFiles.html | 125 ++----- .../www/RMD_HTML/App_2cz_DiscreteData.html | 24 +- .../www/RMD_HTML/App_3a1_About.html | 23 +- .../www/RMD_HTML/App_3a2_QCReports.html | 22 +- .../www/RMD_HTML/App_3a3_Aggregate.html | 10 +- .../www/RMD_HTML/App_3a4_SummaryStats.html | 7 +- .../RMD_HTML/App_3c1_QCThresh_Defaults.html | 17 +- .../www/RMD_HTML/App_3c2_QCThresh_Upload.html | 8 +- .../www/RMD_HTML/App_3c3_QCThresh_Eval.html | 29 +- .../www/RMD_HTML/App_3c4_QCThresh_Edit.html | 59 ++-- .../www/RMD_HTML/App_4_USGSgage.html | 12 +- .../ContDataQC/www/RMD_HTML/App_9_Status.html | 77 ++--- 62 files changed, 660 insertions(+), 1480 deletions(-) delete mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/HOBOreformat_AFTER_20240131.xlsx create mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/HOBOreformat_AFTER_20240226.xlsx rename inst/shiny-examples/ContDataQC/rmd/tables/{HOBOreformat_BEFORE_20240131.xlsx => HOBOreformat_BEFORE_20240226.xlsx} (51%) delete mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/miniDOT_After_Concatenate_20240131.xlsx create mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/miniDOT_After_Concatenate_20240226.xlsx delete mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/miniDOTreformat_ AFTER_20240131.xlsx create mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/miniDOTreformat_ AFTER_20240226.xlsx delete mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/miniDOTreformat_ BEFORE_20240131.xlsx create mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/miniDOTreformat_ BEFORE_20240226.xlsx delete mode 100644 inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a2_miniDOT.html diff --git a/DESCRIPTION b/DESCRIPTION index 6c18f37..a0e8314 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: ContDataQC Title: Quality Control (QC) of Continous Monitoring Data -Version: 2.0.7.9029 +Version: 2.0.7.9031 Authors@R: c( person("Erik W", "Leppo", email="Erik.Leppo@tetratech.com",role=c("aut","cre")), person("Ann","Roseberry Lincoln", role="ctb"), diff --git a/NEWS b/NEWS index 9b8395b..fd55834 100644 --- a/NEWS +++ b/NEWS @@ -3,10 +3,17 @@ NEWS-ContDataQC - #> Last Update: 2024-02-20 16:10:16.725919 + #> Last Update: 2024-02-27 14:17:40.109261 # Version History +## v2.0.7.9031 + +2024-02-27 + +- refactor: Update Shiny app text and tables, Issue \#156 +- refactor: Update Shiny app exit links, Issue \#159 + ## v2.0.7.9030 2024-02-20 diff --git a/NEWS.md b/NEWS.md index 9b8395b..fd55834 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,10 +3,17 @@ NEWS-ContDataQC - #> Last Update: 2024-02-20 16:10:16.725919 + #> Last Update: 2024-02-27 14:17:40.109261 # Version History +## v2.0.7.9031 + +2024-02-27 + +- refactor: Update Shiny app text and tables, Issue \#156 +- refactor: Update Shiny app exit links, Issue \#159 + ## v2.0.7.9030 2024-02-20 diff --git a/NEWS.rmd b/NEWS.rmd index 2f84448..85c985c 100644 --- a/NEWS.rmd +++ b/NEWS.rmd @@ -21,6 +21,12 @@ cat(paste0("Last Update: ",Sys.time())) # Version History +## v2.0.7.9031 +2024-02-27 + +* refactor: Update Shiny app text and tables, Issue #156 +* refactor: Update Shiny app exit links, Issue #159 + ## v2.0.7.9030 2024-02-20 diff --git a/inst/shiny-examples/ContDataQC/external/tab_1_About.R b/inst/shiny-examples/ContDataQC/external/tab_1_About.R index 318eca9..5bf06d5 100644 --- a/inst/shiny-examples/ContDataQC/external/tab_1_About.R +++ b/inst/shiny-examples/ContDataQC/external/tab_1_About.R @@ -15,11 +15,11 @@ function() { , includeHTML("www/RMD_HTML/App_1b_TestData.html") )## tabPanel ~ END - , tabPanel("FAQ" + , tabPanel("Basic Information" , includeHTML("www/RMD_HTML/App_1c_FAQ.html") )## tabPanel~ END - , tabPanel("QC Tips" + , tabPanel("Tips" ,includeHTML("www/RMD_HTML/App_1d_Tips.html") )# tabPanel ~ QC Tips ~ END diff --git a/inst/shiny-examples/ContDataQC/external/tab_1c_FAQ.R b/inst/shiny-examples/ContDataQC/external/tab_1c_FAQ.R index 969b276..9912e50 100644 --- a/inst/shiny-examples/ContDataQC/external/tab_1c_FAQ.R +++ b/inst/shiny-examples/ContDataQC/external/tab_1c_FAQ.R @@ -2,7 +2,7 @@ function() { - tabPanel("FAQs" + tabPanel("Basis Info" , mainPanel( includeHTML("www/RMD_HTML/App_2FAQ.html") diff --git a/inst/shiny-examples/ContDataQC/external/tab_2_DataPrep.R b/inst/shiny-examples/ContDataQC/external/tab_2_DataPrep.R index 8efb7c5..dc6bdd1 100644 --- a/inst/shiny-examples/ContDataQC/external/tab_2_DataPrep.R +++ b/inst/shiny-examples/ContDataQC/external/tab_2_DataPrep.R @@ -45,8 +45,8 @@ function() { )# sidebarPanel~ END , mainPanel( includeHTML("www/RMD_HTML/App_2a1_HOBO.html") - , img(src = "Fig_HOBOreformat_v1_20210617.png" - , height = 600, width = 1000) + # , img(src = "Fig_HOBOreformat_v1_20210617.png" + # , height = 600, width = 1000) ) ## mainPanel ~ END )# sidebarLayout~ END )## tabPanel ~ HOBO ~ END diff --git a/inst/shiny-examples/ContDataQC/global.R b/inst/shiny-examples/ContDataQC/global.R index 5392d20..3e80838 100644 --- a/inst/shiny-examples/ContDataQC/global.R +++ b/inst/shiny-examples/ContDataQC/global.R @@ -22,7 +22,7 @@ library(shinyjs) # Sys.setenv(PATH = paste(Sys.getenv("PATH"), "C:\\Rtools\\bin", sep = ";")) # Version Number -version <- "2.0.7.9030" +version <- "2.0.7.9031" #Maximum individual file size that can be uploaded is 70 MB options(shiny.maxRequestSize = 70 * 1024^2) diff --git a/inst/shiny-examples/ContDataQC/rmd/App_1a_Overview.rmd b/inst/shiny-examples/ContDataQC/rmd/App_1a_Overview.rmd index da05c55..108ae46 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_1a_Overview.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_1a_Overview.rmd @@ -19,15 +19,14 @@ if(boo_DEBUG==TRUE){ # About ContDataQC -The ContDataQC Shiny app is a free R-based tool that was developed to help water -quality monitoring programs QC, merge and summarize continuous sensor data files -in a standardized, more efficient way. It also has a function that allows users -to download U.S. Geological Survey gage data at sites and over periods of their -choosing. This Shiny app is linked to the ContDataQC R package, which was -developed by Erik W. Leppo from Tetra Tech and is -available on GitHub == $0 Exit EPA's website. +The ContDataQC Shiny app is a free R-based tool that was developed to help water quality monitoring programs QC, merge and summarize continuous sensor data files in a standardized, more efficient way. It also has a function that allows users to download U.S. Geological Survey gage data at sites and over periods of their choosing. This Shiny app is linked to the ContDataQC R package, which was developed by Tetra Tech in support of the EPA and is +available on Github + + Exit EPA Website + + . -The ContDataQC R package and Shiny app were developed with the following objectives in mind: ensure that a certain (minimum) level of QC is being performed on continuous data files; standardize and speed up data QC and reduce missed errors; and standardize data for further analysis and sharing. ContDataQC is configured for temperature, water level, discharge, conductivity, pH, turbidity, chlorophyll-a and salinity data. Users with advanced R skills can add any other parameters that they desire by making edits to the configuration file, which can be viewed in R or in Notepad. +The ContDataQC R package and Shiny app were developed with the following objectives in mind: ensure that a certain (minimum) level of Quality Control (QC) is being performed on continuous data files; standardize and speed up data QC and reduce missed errors; and standardize data for further analysis and sharing. ContDataQC is configured for temperature, water level, discharge, conductivity, dissolved oxygen (DO), pH, turbidity, chlorophyll-a and salinity data. Users with advanced R skills can add any other parameters that they desire by making edits to the configuration file, which can be viewed in R or in Notepad. # ContDataQC Shiny App Workflow @@ -56,10 +55,10 @@ table %>% # Funding Development of the ContDataQC R tools has been funded by the United States -Environmental Protection Agency (EPA) Office of Research and Development (ORD) -as part of a larger project to establish Regional Monitoring Networks (RMNs) for -freshwater streams and inland lakes. The -RMNs are a volunteer, collaborative effort in which entities collect long-term -continuous temperature and hydrologic data at targeted sites to detect changes +Environmental Protection Agency (EPA) Office of Research and Development (ORD) as part of a larger project to establish Regional Monitoring Networks (RMNs) for freshwater streams and inland lakes. The RMNs are a volunteer, collaborative effort in which entities collect long-term continuous temperature and hydrologic data at targeted sites to detect changes over time. For more information on the RMNs, please refer to the -stream Regional Monitoring Networks report == $0 Exit EPA's website. \ No newline at end of file +stream Regional Monitoring Networks report + + Exit EPA Website + + . diff --git a/inst/shiny-examples/ContDataQC/rmd/App_1b_TestData.rmd b/inst/shiny-examples/ContDataQC/rmd/App_1b_TestData.rmd index f9ecb87..c3805ee 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_1b_TestData.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_1b_TestData.rmd @@ -20,11 +20,14 @@ if(boo_DEBUG==TRUE){ }## IF ~ boo_DEBUG ~ END ``` -There are two sets of test files, one from Onset HOBO U20 water level loggers (non-vented pressure transducers) and one from a miniDOT DO sensor. Please contact us if you have example files from other sensors that you would like us to add to this website. +Below are test files that you can download and run through the Shiny app. They are from Onset HOBO U20 water level loggers (non-vented pressure transducers) and miniDOT DO sensors. Please contact us if you have example files from other sensors that you would like us to add to this website. -# Onset HOBO -The Onset HOBO U20 files can be downloaded [here](TestData_HOBOU20_20220822.zip) [ZIP]. -The test data consist of two comma-separated values (CSV) files. The files are from the same site but cover two different time periods. You'll see two folders: +# Test files +* [Onset HOBO U20](TestData_HOBOU20_20220822.zip) [ZIP] +* [miniDOT DO](TestData_miniDOT.zip) [ZIP] + +## Onset HOBO +The Onset HOBO U20 test data consist of two comma-separated values (CSV) files. The files are from the same site but cover two different time periods. You'll see two folders: * **Test** @@ -34,10 +37,9 @@ The test data consist of two comma-separated values (CSV) files. The files are f + This folder has the complete set of outputs for both files so that you can see examples of the QC reports and other outputs without having to run the test data through the functions yourself. -# miniDOT DO Sensors +## miniDOT DO Sensors -The miniDOT DO test files can be downloaded [here](TestData_miniDOT.zip) [ZIP]. -They are from one site and one deployment period. +The miniDOT DO test files are from one site and one deployment period. You’ll see two sets of folders. Within each folder are example input and output files. * **miniDOT_concatenate** - When data are initially downloaded from miniDOT sensors, there are separate .txt files for each day (in this example, 325 individual files). Go to the **Automated Reformat – miniDOT** tab and run the **Concatenate** function to combine them all into one file. diff --git a/inst/shiny-examples/ContDataQC/rmd/App_1c_FAQ.rmd b/inst/shiny-examples/ContDataQC/rmd/App_1c_FAQ.rmd index 511a103..c5757e1 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_1c_FAQ.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_1c_FAQ.rmd @@ -23,7 +23,11 @@ if(boo_DEBUG==TRUE){ **Failure to run:** When the Shiny app fails to run, the screen will gray out and the message 'disconnected from the server' will appear. The problem typically stems from a formatting issue with the input file, in particular the Date/Time field. Check your input file, refresh the app and try again. If you still have problems, click the 'contact us' link at the bottom of this page and request assistance. Be prepared to share a copy of your input file(s) and the error message. -**Speed:** If you have a slow internet connection, you can run ContDataQC as a Shiny app on your local computer and it will likely be faster. Running it locally requires that you have R software and the ContDataQC R package installed on your computer, which can be downloaded from GitHub GitHub == $0 Exit EPA's website. +**Speed:** If you have a slow internet connection, you can run ContDataQC as a Shiny app on your local computer and it will likely be faster. Running it locally requires that you have R software and the ContDataQC R package installed on your computer, which can be downloaded from GitHub GitHub + + Exit EPA Website + + . **Internet browsers:** This Shiny app has been tested and run successfully with Google Chrome, Firefox and Microsoft Edge. It may be compatible with other browsers but they have not been tested. Google Chrome is most frequently used. Some browsers (like Chrome and Firefox) allow users to specify what folder to download files to, which can be a time saver. @@ -38,10 +42,18 @@ if(boo_DEBUG==TRUE){ **Usability on phones:** Mobile use of this app is possible although the screen size of a phone may make it impractical. **Data summary and visualization:** The ContDataSumViz app has more summary and visualization options. -Shiny app (beta version): https://contdataqcsumviz_containerized_stg.app.cloud.gov/ == $0 Exit EPA's website - -R code: https://github.com/USEPA/dmap-ContDataQCSumViz == $0 Exit EPA's website - +Shiny app (beta version): https://contdataqcsumviz_containerized_stg.app.cloud.gov/ + + Exit EPA Website + + + +R code: https://github.com/USEPA/dmap-ContDataQCSumViz + + Exit EPA Website + + + **Downloading USGS gage data:**You can simultaneously download data from different USGS gages but only for the same time period. -**Aggregating files with overlapping dates:** If you run the aggregate function on input files with overlapping date ranges, all records (even duplicates) are included in the output. It is up to the user to identify when these situations are occurring and remove the duplicate rows before running the files through the various functions. \ No newline at end of file +**Aggregating files with overlapping dates:** If you run the aggregate function on input files with overlapping date ranges, all records (even duplicates) are included in the output. It is up to the user to identify when these situations are occurring and remove the duplicate rows before running the files through the various functions. diff --git a/inst/shiny-examples/ContDataQC/rmd/App_1d_Tips.rmd b/inst/shiny-examples/ContDataQC/rmd/App_1d_Tips.rmd index ba22905..dba23b7 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_1d_Tips.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_1d_Tips.rmd @@ -17,77 +17,59 @@ if(boo_DEBUG==TRUE){ }## IF ~ boo_DEBUG ~ END ``` -# QC Tips +# Tips -Below are instructional materials and links to resources we have compiled as we -continue to gain experience QCing continuous data for the Regional Monitoring Network project. To date, we have worked primarily with thermal and hydrologic data, and more recently, dissolved oxygen -data from lakes. The data are typically downloaded 2-4 times a year. We have not -worked with ‘real-time’ data. +Below are tips and links to resources from the Regional Monitoring Network (RMN) project. To date, RMN partners have worked primarily with thermal and hydrologic data, and more recently, with dissolved oxygen data from lakes. The data are typically downloaded 2-4 times a year (not ‘real-time’ data). -## Data edits +## Site visits -When reviewing the QC reports, it is important to be consistent in how you handle flagged data. As an example, some users do the following - +It helps speed up the Quality Control (QC) process if you follow a checklist during site visits and document anything that might affect the quality of the data (e.g., sensor out of water or buried in sediment, beaver activity, low battery). +* **Resource:** [Site visit checklist](SiteVisitChecklist.zip) [ZIP] -* If you are certain a data point is erroneous, delete the measurement and flag -as ‘F’. If you are not sure, flag the data as ‘S’ and do not delete. Let the -people using the data decide whether to remove questionable measurements from -their analysis. +## Sensor configuration -* Document that you checked each point flagged as ‘F’ and ‘S’ by adding a data -qualifier to the Comment column. Click [here](DataQualifiers_20220210.xlsx) [XLSX] to -download a list of example data qualifiers. +Some people have had problems with air and water sensors being out of sync ( +e.g., one records at 11:00 and the other records at 11:07). If you are deploying air and water sensors at a site, make sure you configure them so that they are recording at the same time. This will make data processing faster and easier. +* **Resource:** [Onset HOBO configuration tips](HOBO_ConfigLaunch_20170803.pdf) [PDF] -* Leave missing data cells blank. +Another issue that sometimes occurs is data overlap (where more than one file has measurements covering part of the same time periods). Make sure you clear the sensor's memory when you download data and relaunch sensors to avoid overlapping data. +* **Resource:** [Onset HOBO download and relaunch tips](HOBO_DataDownload_20170823.pdf) [PDF] -## Workflow +## QC workflow -Click [here](Workflow_QC_report_20220824.pdf) [PDF] for a description of a common workflow -for reviewing the QC reports. +There are generally two scenarios: 1) users QC their data after each download and work with one file per site at a time; or 2) users have a backlog of data that cover multiple deployment periods that they aggregate into one file before performing QC. +* **Resources:** Suggested workflows for each scenario: + + [Single file](Workflow_QC_report_20220824.pdf) [PDF] + + [Multiple files](Workflow_DataPileup_20220824.pdf) [PDF] -If you have a backlog of data files from multiple deployments and are wondering -how to most efficiently QC the files, click [here](Workflow_DataPileup_20220824.pdf) [PDF] -for a description of a workflow that has worked well. +## Data edits -Click [here](SiteVisitChecklist.zip) [ZIP] for a site visit checklist to help ensure -that you do not forget to document information that is important for the data QC -process. +When reviewing the QC reports, it is important to be consistent in how you handle flagged data. Here is an example of an approach - -## Sensor configuration +* If you are certain a data point is erroneous, delete the measurement and flag as ‘F’. If you are not sure, flag the data as ‘S’ and do not delete. Let the people using the data decide whether to remove questionable measurements from their analysis. -Some people have had problems with air and water sensors being out of sync ( -e.g., one records at 11:00 and the other records at 11:07). If you are deploying -air and water sensors at a site, make sure they are recording at the same time. -This will make data processing faster and easier. If you are using Onset HOBO -sensors, click [here](HOBO_ConfigLaunch_20170803.pdf) [PDF] for tips on configuring -them in a way that ensures they will record at the same time. +* Document that you checked each point flagged as ‘F’ and ‘S’ by adding a note or data qualifier to the Comment column. +* **Resource:** [List of example data qualifiers](DataQualifiers_20220210.xlsx) [XLSX] + +* Leave missing data cells as is (vs. deleting) -Another issue that sometimes occurs is data overlap (where more than one file -has measurements covering part of the same time periods). If you are using Onset -HOBO sensors, click [here](HOBO_DataDownload_20170823.pdf) [PDF] for procedures to -follow during data download to clear sensor memory and avoid overlapping data. ## Accuracy checks -Accuracy checks are comparisons of discrete or in situ measurements taken in the -lab and/or in the field with sensor measurements from the closest date/time. The -sensor measurement should be within the accuracy quoted by the manufacturer ( -e.g., ±0.2°C if you are using the Onset HOBO proV2 sensor). Accuracy checks are -used to validate your data, and in some cases, correct for sensor drift. Click -[here](EXAMPLE_AccuracyCheckWkst.xlsx) [XLSX] to download an example of an accuracy -check worksheet. +Accuracy checks are comparisons of discrete or in situ measurements taken in the lab and/or in the field with sensor measurements from the closest date/time. The difference between the sensor and discrete measurements should be within the accuracy quoted by the manufacturer (e.g., ±0.2°C if you are using the Onset HOBO proV2 sensor). +* **Resource:** [Example accuracy check worksheet](EXAMPLE_AccuracyCheckWkst.xlsx) [XLSX] ## Visual checks of time series plots -Visual checks of time series plots are an important part of the QC process. -Click [here](PlotQC_WatchList_20220824.pdf) [PDF] to see a compilation of patterns to -watch for when interpreting the plots. They include ice cover, beaver activity, -leaf packs, dewatering, and dead batteries. +Visual checks of time series plots are an important part of the QC process. Some issues, such as dewatering, sediment burial, ice cover and beaver activity, show fairly common patterns, and we've been compiling examples of these patterns to help people recognize potential QC issues with their data. +* **Resource:** [Visual checks](PlotQC_WatchList_20220824.pdf) [PDF] ## Checking sensor data against other data sources -Some partners have been downloading data from nearby weather stations and USGS gages, as well as modeled -air temperature and precipitation data from Daymet ( -https://daymet.ornl.gov/getdata == $0 Exit EPA's website -), and comparing those data to sensor measurements as part of their QC process. -Click [here](Daymet_Wx_Gage.zip) [ZIP] for instructional materials. +Some partners have been downloading data from nearby weather stations and USGS gages, as well as modeled air temperature and precipitation data from sources such as Daymet (https://daymet.ornl.gov/getdata + + Exit EPA Website + + ), and comparing those data to sensor measurements as part of their QC process. +* **Resource:** [Daymet or USGS gage check](Daymet_Wx_Gage.zip) [ZIP] diff --git a/inst/shiny-examples/ContDataQC/rmd/App_1e_Advanced.rmd b/inst/shiny-examples/ContDataQC/rmd/App_1e_Advanced.rmd index b43a515..b3d5218 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_1e_Advanced.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_1e_Advanced.rmd @@ -21,4 +21,8 @@ if(boo_DEBUG==TRUE){ Users with intermediate to advanced-level computer skills can customize the settings (e.g., add new parameters, change units, change file naming and formatting requirements, change the format of one of the QC reports from Word to html or PDF) by editing a plain text [configuration file](Config_default.zip) [ZIP]. You can do this in R or Notepad. Some users may prefer to use the ContDataQC -R code == $0 Exit EPA's website instead of the Shiny app. While using the R code allows for some additional layers of customization beyond this, when it comes to file naming schemes and setting directories, users have more flexibility using the Shiny app because they can browse to the desired input file(s). \ No newline at end of file +R code + + Exit EPA Website + + instead of the Shiny app. While using the R code allows for some additional layers of customization beyond this, when it comes to file naming schemes and setting directories, users have more flexibility using the Shiny app because they can browse to the desired input file(s). diff --git a/inst/shiny-examples/ContDataQC/rmd/App_1f_RelatedApps.rmd b/inst/shiny-examples/ContDataQC/rmd/App_1f_RelatedApps.rmd index b3fdef1..bca931c 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_1f_RelatedApps.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_1f_RelatedApps.rmd @@ -19,29 +19,57 @@ if (boo_DEBUG == TRUE) { # Related Apps -Below are links to some additional Shiny apps and/or R code that may also be useful for working with continuous sensor data. Some are stored on the NALMS Shiny server == $0 Exit EPA's website. +Below are links to some additional Shiny apps and/or R code that may also be useful for working with continuous sensor data. Some are stored on the NALMS Shiny server + + Exit EPA Website + + . ### ContDataSumViz, for summarizing and visualizing QC’d continuous sensor data -Shiny app (beta version): https://contdataqcsumviz_containerized_stg.app.cloud.gov/ == $0 Exit EPA's website +Shiny app (beta version): https://contdataqcsumviz_containerized_stg.app.cloud.gov/ + + Exit EPA Website + + -R code: https://github.com/USEPA/dmap-ContDataQCSumViz == $0 Exit EPA's website +R code: https://github.com/USEPA/dmap-ContDataQCSumViz + + Exit EPA Website + + ### Logger Processing App, for processing, organizing, and vetting continuous environmental logger data It has the same QC flag tests as ContDataQC plus more, including an interactive plot that allows you to flag or unflag data points. -Shiny app: https://nalms.shinyapps.io/logger_processing/ == $0 Exit EPA's website +Shiny app: https://nalms.shinyapps.io/logger_processing/ + + Exit EPA Website + + -GitHub: https://github.com/mnsentinellakes/logger_processing == $0 Exit EPA's website +GitHub: https://github.com/mnsentinellakes/logger_processing + + Exit EPA Website + + ### LakeMonitoR, for summarizing and visualizing QC’d continuous vertical profile data for lakes Several of its outputs are based on the rLakeAnalyzer R package (see below). -Shiny app: https://nalms.shinyapps.io/LakeMonitoR/ == $0 Exit EPA's website +Shiny app: https://nalms.shinyapps.io/LakeMonitoR/ + + Exit EPA Website + + -GitHub: https://github.com/leppott/LakeMonitoR/ == $0 Exit EPA's website +GitHub: https://github.com/leppott/LakeMonitoR/ + + Exit EPA Website + + ### rLakeAnalyzer, an R package for summarizing and visualizing continuous vertical profile data for lakes @@ -49,27 +77,55 @@ Read, J.S., Hamilton, D.P., Jones, I.D., Muraoka, K., Winslow, L.A., Kroiss, R., Winslow, L, J. Read, R. Woolway, J. Brentrup, T. Leach, J. Zwart, S. Albers, and D. Collinge. 2019. rLakeAnalyzer: Lake Physics Tools. R Package version 1.11.4.1. -Available online: https://CRAN.R-project.org/package=rLakeAnalyzer == $0 Exit EPA's website - +Available online: https://CRAN.R-project.org/package=rLakeAnalyzer + + Exit EPA Website + + + ### Regional Monitoring Network (RMN) protocol documents for deploying continuous temperature, water level or DO sensors and time lapse cameras in streams or lakes -Shiny app: https://nalms.shinyapps.io/RMN_Documents/ == $0 Exit EPA's website +Shiny app: https://nalms.shinyapps.io/RMN_Documents/ + + Exit EPA Website + + ### Water Resources for Shiny, a resource for both those who are interested in learning how to create Shiny apps and those who are already experienced with making apps but want to see what other people are doing and what tools and packages are available for the community to use -https://nalms.shinyapps.io/Shiny_for_Water_Resources/ +https://nalms.shinyapps.io/Shiny_for_Water_Resources/ + + Exit EPA Website + + ### driftR, an R package that corrects drift in water quality data It implements either one- or two-point variable data corrections based on the number of standards used to calibrate the sensor of interest, then linearly interpolates the correction over the period of interest. -https://shaughnessyar.github.io/driftR/ == $0 Exit EPA's website +https://shaughnessyar.github.io/driftR/ + + Exit EPA Website + + Shaughnessy, A.R., Prener, C.G. and E.A. Hasenmueller. 2019. An R package for correcting continuous water quality monitoring data for drift. Environmental Monitoring and Assessment 191, 445. -https://doi.org/10.1007/s10661-019-7586-x == $0 Exit EPA's website +https://doi.org/10.1007/s10661-019-7586-x + + Exit EPA Website + + ### R package for detecting outliers -https://cran.r-project.org/web/packages/outliers/outliers.pdf == $0 Exit EPA's website [PDF] - -Campulova, M., Campula, R. and J. Holesovsky. 2022. An R package for identification of outliers in environmental time series data. Environmental Modelling & Software, Volume 155. https://www.sciencedirect.com/science/article/abs/pii/S1364815222001414 == $0 Exit EPA's website \ No newline at end of file +https://cran.r-project.org/web/packages/outliers/outliers.pdf + + Exit EPA Website + + [PDF] + +Campulova, M., Campula, R. and J. Holesovsky. 2022. An R package for identification of outliers in environmental time series data. Environmental Modelling & Software, Volume 155. https://www.sciencedirect.com/science/article/abs/pii/S1364815222001414 + + Exit EPA Website + + diff --git a/inst/shiny-examples/ContDataQC/rmd/App_2a1_HOBO.rmd b/inst/shiny-examples/ContDataQC/rmd/App_2a1_HOBO.rmd index 916fb4e..d8141df 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_2a1_HOBO.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_2a1_HOBO.rmd @@ -47,7 +47,9 @@ HOBO sensor files must first be opened with HOBOware software, then processed an * Unzip/extract the file(s) or else the files won’t be seen as an option to upload to the QC report function (Main Functions - QC raw data). After file is unzipped, a new folder called ‘HOBO’ will appear. The original zipped file can be deleted if desired. -Time-saver tip: some internet browsers, like Google Chrome and Mozilla Firefox, allow users to change settings so that users can select which folder to download files to (versus files going to the default Download folder). Click [here](GoogleChrome_TimesaverTips.pdf) [PDF] for instructions on how to set this up in Chrome. With Mozilla Firefox, go to Settings > General > Files and Applications > Check box for “always ask where to save files.” +Time-saver tip: some internet browsers, like Google Chrome and Mozilla Firefox, allow users to change settings so that users can select which folder to download files to (versus files going to the default Download folder). +* Mozilla Firefox: go to Settings > General > Files and Applications > Check box for “always ask where to save files.” +* [Google Chrome file saving tip](GoogleChrome_TimesaverTips.pdf) [PDF] Your files are now ready to be run through the QC function! Below are examples of what HOBO U20 CSV files look like before and after they are run through the reformat function. The reformat function does the following - @@ -89,7 +91,7 @@ library(knitr) library(kableExtra) # state directories table.dir <- "tables" -table.file <- "HOBOreformat_BEFORE_20240131.xlsx" +table.file <- "HOBOreformat_BEFORE_20240226.xlsx" table.sheet <- "Sheet1" table <- read_excel(file.path(table.dir, table.file), sheet = table.sheet @@ -116,7 +118,7 @@ library(knitr) library(kableExtra) # state directories table.dir <- "tables" -table.file <- "HOBOreformat_AFTER_20240131.xlsx" +table.file <- "HOBOreformat_AFTER_20240226.xlsx" table.sheet <- "Sheet1" table <- read_excel(file.path(table.dir, table.file), sheet = table.sheet diff --git a/inst/shiny-examples/ContDataQC/rmd/App_2a2_miniDOT1.Rmd b/inst/shiny-examples/ContDataQC/rmd/App_2a2_miniDOT1.Rmd index bb7db90..603acc4 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_2a2_miniDOT1.Rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_2a2_miniDOT1.Rmd @@ -13,9 +13,7 @@ knitr::opts_chunk$set(echo = FALSE) # miniDOT DO Concatenate When data are initially downloaded from miniDOT sensors, there are separate -.txt files for each day (in this example, 325 individual files). Users have two -options for combining them into one CSV file: 1) the **ContDataQC Concatenate** -function; or 2) the **PME java app** that comes with the logger. +.txt files for each day (in this example, 325 individual files). Users have two options for combining them into one CSV file: 1) the **ContDataQC Concatenate** function; or 2) the **PME java app** that comes with the logger. ## Concatenate Instructions @@ -29,19 +27,11 @@ function; or 2) the **PME java app** that comes with the logger. * Unzip/extract the file(s) or else the files won’t be seen as an option to upload to the Reformat function. After file is unzipped, a new folder called ‘miniDOT_cat’ will appear. The original zipped file can be deleted if desired. -## Additional Notes - -* Want to try it yourself? Click [here](TestData_miniDOT.zip) [ZIP] to -download miniDOT DO test files. - -* Why are the DO saturation values all NA? This occurs when no inputs are -provided to calculate DO percent saturation. For more information, please see -miniDOT manual or contact the miniDOT support team. - -## Example +## Test files -Example table after performing the **Concatenate** function. +[miniDOT test data](TestData_miniDOT.zip) [ZIP] +Below is an example of what the output file looks like after running the **Concatenate** function. ```{r} library(readxl) @@ -49,7 +39,7 @@ library(knitr) library(kableExtra) # state directories table.dir <- "tables" -table.file <- "miniDOT_After_Concatenate_20240131.xlsx" +table.file <- "miniDOT_After_Concatenate_20240226.xlsx" table.sheet <- "Sheet1" table <- read_excel(file.path(table.dir, table.file), sheet = table.sheet @@ -62,3 +52,7 @@ table %>% kbl() %>% kable_styling(full_width = F, position = "left") ``` + +## Additional Notes + +If you're wondering why your DO saturation values are all NA, this occurs when no inputs are provided to calculate DO percent saturation. For more information, please see the miniDOT manual or contact the miniDOT support team. diff --git a/inst/shiny-examples/ContDataQC/rmd/App_2a3_miniDOT2.Rmd b/inst/shiny-examples/ContDataQC/rmd/App_2a3_miniDOT2.Rmd index 727e155..2076142 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_2a3_miniDOT2.Rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_2a3_miniDOT2.Rmd @@ -44,18 +44,11 @@ ready to run through the QC report function. - See below for examples of files before and after reformatting. -## Additional Notes - -- Want to try it yourself? Click [here](TestData_miniDOT.zip) [ZIP] to - download miniDOT DO test files. - -* Why are the DO saturation values all NA? This occurs when no inputs are -provided to calculate DO percent saturation. For more information, please see -miniDOT manual or contact the miniDOT support team. +## Test files -## Example +[miniDOT test data](TestData_miniDOT.zip) [ZIP] -Example table before after performing the **Reformat** function. +Below is an example of what files look like before and after running the **Reformat** function. **Before** @@ -65,7 +58,7 @@ library(knitr) library(kableExtra) # state directories table.dir <- "tables" -table.file <- "miniDOTreformat_ BEFORE_20240131.xlsx" +table.file <- "miniDOTreformat_ BEFORE_20240226.xlsx" table.sheet <- "Sheet1" table <- read_excel(file.path(table.dir, table.file), sheet = table.sheet @@ -89,7 +82,7 @@ library(knitr) library(kableExtra) # state directories table.dir <- "tables" -table.file <- "miniDOTreformat_ AFTER_20240131.xlsx" +table.file <- "miniDOTreformat_ AFTER_20240226.xlsx" table.sheet <- "Sheet1" table <- read_excel(file.path(table.dir, table.file), sheet = table.sheet @@ -103,3 +96,6 @@ table %>% kable_styling(full_width = F, position = "left") ``` +## Additional Notes + +If you're wondering why your DO saturation values are all NA, this occurs when no inputs are provided to calculate DO percent saturation. For more information, please see the miniDOT manual or contact the miniDOT support team. diff --git a/inst/shiny-examples/ContDataQC/rmd/App_2b_OrganizingFiles.rmd b/inst/shiny-examples/ContDataQC/rmd/App_2b_OrganizingFiles.rmd index 6c335d2..9d0b3ea 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_2b_OrganizingFiles.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_2b_OrganizingFiles.rmd @@ -19,7 +19,7 @@ if (boo_DEBUG == TRUE) { # Organizing Files -If you do not already have a good system for organizing continuous data files, we recommend that you set up a folder for each site, and within each site folder, set up subfolders as shown in the table below. You can download a ready-made set of (empty) folders by clicking [here](SiteX_20230828.zip) [ZIP]. Put the file in the desired location, unzip it and then replace ‘SiteX’ with the appropriate site name. +If you do not already have a good system for organizing continuous data files, consider setting up a folder for each site, and within each site folder, set up subfolders as shown in the table below. A quick way to get started is to download this [ready-made set of (empty) folders](SiteX_20230828.zip) [ZIP]. Put this file in the desired directory, unzip it and then replace ‘SiteX’ with the appropriate site name. You have more flexibility with file organization when using the Shiny app vs R package. With the Shiny app, it is not necessary to name the folders exactly as shown below because you can browse to the desired input files and browse to save the output files to the desired location. However, if you decide to use the R package at some point, keeping the four ‘Data’ folders (Data0_Original, Data1_RAW, Data2_QC, Data3_Aggregated and Data4_Stats) will be important since the R code searches in specific folders for input files and outputs files to specific directories. Advanced users can modify the default directories by editing the configuration file. diff --git a/inst/shiny-examples/ContDataQC/rmd/App_2c_NamingFiles.rmd b/inst/shiny-examples/ContDataQC/rmd/App_2c_NamingFiles.rmd index 3f13d9c..9c923e4 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_2c_NamingFiles.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_2c_NamingFiles.rmd @@ -21,100 +21,31 @@ if(boo_DEBUG==TRUE){ You have more flexibility with naming files when using the Shiny app vs R package because you can browse to the desired input file(s), whereas the R -package searches through files in a specified directory and selects data files -based on the file name. Even if you are using the Shiny app, consider using the -file naming scheme below since you may decide to use the R package at some point -in the future. Another reason to use the recommended file naming scheme is -because it keeps files well organized and easy to sort. For example, if using -HOBO U20 water level loggers, it makes matching air and water sensor files -easier during the processing step and helps you identify gaps in the data. -The recommended file naming scheme is: +package searches through files in a specified directory and selects data files based on the file name. Even if you are using the Shiny app, consider using the file naming scheme below since you may decide to use the R package at some point in the future. Another reason to use the recommended file naming scheme is because it keeps files well organized and sorts them in chronological order. This is particularly helpful if you are using HOBO U20 water level loggers, as it makes matching air and water sensor files easier during the processing step and helps you identify gaps in the data. -The recommended file naming scheme is: +If you are using the R package, there are four components to the file name for single sensor deployments, which are separated by underscores (“_”). **SiteID_DataType_StartDate_EndDate** -The four components are separated by underscores (“_”). - Example: Hunting_Water_20130426_20130725 * Site ID (no spaces or underscores) = Hunting -* DataType: Air, Water, AW (air and water sensor data are combined into the same -file), Gage, DO +* Data Type options: Air, Water, AW (air and water sensor data are combined into the same file), Gage, DO * Date, Start (YYYYMMDD) = 20130426 * Date, End (YYYYMMDD) = 20130725 -For multi-depth deployments (e.g., temperature sensors deployed at multiple -depths at a lake), depth and units are added to the SiteID, separated by -double-dashes as shown below: +For multi-sensor deployments (e.g., temperature sensors deployed at multiple depths at a lake), add depth and units or some other differentiating characteristic, such as sensor type, to the SiteID, separated by +double-dashes as shown below: -Example: RussWood--01M_TEMP_20130426_20130725 +Example: RussWood--02M_Water_20130426_20130725 Depth can include decimals (for example, 0.1M is ok) and does not need to -include leading zeros (either 01M or 1M are acceptable). Units can be upper or -lower case (M or m), and abbreviated (M) or spelled out (meters). You can change -the double-dash separator if desired by customizing the -[configuration file](Config_default.zip) [ZIP] (for example, you could change it to a -tilde ~). - -If you are using the Shiny app and have more than one type of sensor deployed at -the same depth (for example, both a DO and temperature sensor at 2M), you can -put the sensor type in the second part of the file name (for example, DataType = -TEMP, as shown in the example above, or DataType = DO). - -Below are examples of files that follow the recommended naming scheme. - -Example files from a RMN stream sties, where one temperature sensor was deployed -on land and the other in the water. In the AW files, air and water sensore data -were combined into the same file. - -```{r} -library(readxl) -library(knitr) -library(kableExtra) -# state directories -table.dir <- "tables" -table.file <- "FileNaming_Streams_20240131.xlsx" -table.sheet <- "Sheet1" - -table <- read_excel(file.path(table.dir, table.file), sheet = table.sheet - , na = c("NA", ""), trim_ws = TRUE, skip = 0 - , col_names = TRUE) - -options(knitr.kable.NA = '') -# kable(table1) -table %>% - kbl() %>% - kable_styling(full_width = F, position = "left") -``` - -Example file for a lake RMN site where temperature sensors were deployed at -multiple depths and DO sensors were also deployed. The two types of sensors -overlapped at the 2M depth and the second part of the file name (DataType) was -used to distinguish between the two (TEMP vs. DO). - -```{r} -library(readxl) -library(knitr) -library(kableExtra) -# state directories -table.dir <- "tables" -table.file <- "FileNaming_Lakes_20240131.xlsx" -table.sheet <- "Sheet1" - -table <- read_excel(file.path(table.dir, table.file), sheet = table.sheet - , na = c("NA", ""), trim_ws = TRUE, skip = 0 - , col_names = TRUE) - -options(knitr.kable.NA = '') -# kable(table1) -table %>% - kbl() %>% - kable_styling(full_width = F, position = "left") -``` - +include leading zeros (either 01M or 1M are acceptable). Units can be upper or lower case (M or m), and abbreviated (M) or spelled out (meters). +You can change the double-dash separator if desired by customizing the +[configuration file](Config_default.zip) [ZIP] (for example, you could change it to a tilde ~). +If you are using the Shiny app instead of R package, you are not restricted to using the Data Types shown above (Air, Water, AW, etc.). If you have more than one type of sensor deployed at the same depth (e.g., both a DO and temperature sensor at 2M), consider using sensor type in the second part of the file name (for example, RussWood--02M_TEMP_20130426_20130725 or RussWood--02M_DO_20130426_20130725). \ No newline at end of file diff --git a/inst/shiny-examples/ContDataQC/rmd/App_2cz_DiscreteData.rmd b/inst/shiny-examples/ContDataQC/rmd/App_2cz_DiscreteData.rmd index 0b9d971..87a1935 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_2cz_DiscreteData.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_2cz_DiscreteData.rmd @@ -21,12 +21,14 @@ if(boo_DEBUG==TRUE){ # Discrete Data -Discrete measurements are important for validating your data, and in some cases, can be used to correct for sensor drift. Accuracy checks are comparisons of discrete or in situ measurements taken in the lab and/or in the field with sensor measurements from the closest date/time. The sensor measurement should be within the accuracy quoted by the manufacturer (e.g., ±0.2°C if you are using the Onset HOBO proV2 sensor). Click [here](EXAMPLE_AccuracyCheckWkst.xlsx) [XLSX] to download an example of an accuracy check worksheet. +Discrete measurements are important for validating your data, and in some cases, can be used to correct for sensor drift. Accuracy checks are comparisons of discrete or in situ measurements taken in the lab and/or in the field with sensor measurements from the closest date/time. The difference between the sensor and discrete measurements should be within the accuracy quoted by the manufacturer (e.g., ±0.2°C if you are using the Onset HOBO proV2 sensor). +* **Resource:** [Example accuracy check worksheet](EXAMPLE_AccuracyCheckWkst.xlsx) [XLSX] -Discrete (in situ) measurements will be included in the time series plots in the QC reports (see example below) if the user manually enters them into the input file. This should be done after the file has been formatted (for example, after a HOBO file has been run through the Reformat function), via the following steps: +Discrete (in situ) measurements will be included in the time series plots in the QC reports (see example below) if the user manually enters them into the input file. This should be done after the file has been formatted (for example, after a HOBO file has been run through the Reformat function). +To enter the discrete data - * add a new column to the CSV -* follow this naming scheme for the column heading: parameter name and units, with ‘Discrete’ at the beginning (for example, ‘Discrete Air Temp C’) -* enter the data into the row that most closely matches the date/time of the sensor measurements +* name the column "Discrete" followed by the parameter name and units (for example, ‘Discrete Air Temp C’) +* enter the data into the row that most closely matches the date/time of the sensor measurement -![Example QC plot with discrete data](RMD_Images/2.3_Discrete_Fig1_20230828.jpg) +![Example QC plot with discrete data](RMD_Images/2.3_Discrete_Fig1_20230828.jpg){fig-alt="Example QC plot with discrete data. Scatterplot of Water Temperature (y-axis) against Date (x-axis). Some values are 'discrete' measurements."} diff --git a/inst/shiny-examples/ContDataQC/rmd/App_3a1_About.rmd b/inst/shiny-examples/ContDataQC/rmd/App_3a1_About.rmd index c878ac1..c8442e5 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_3a1_About.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_3a1_About.rmd @@ -29,10 +29,13 @@ if(boo_DEBUG==TRUE){ 5. **After the data file(s) are QC’d, users can run them through the Aggregate function** to merge them with other files. The input files need to be from the same site and share common parameters. -6. **The user can run the aggregated file through the Summary Statistics function** to generate CSV files with an assortment of summary statistics (e.g., min, median, max, quartiles) and a PDF with time series plots for each parameter. +6. **The user can run the aggregated file through the Summary Statistics function** to generate CSV files with an assortment of summary statistics (e.g., min, median, max, quartiles) and a PDF with time series plots for each parameter. + After running each function, users must unzip/extract the files or else the files won’t be seen as an option to upload for the next step. After files are unzipped, new folders will automatically appear and the original zipped files can be deleted if desired. -Time-saver tip: some internet browsers, like Google Chrome and Mozilla Firefox, allow users to change settings so that users can select which folder to download files to (versus files going to the default Download folder). Click [here](GoogleChrome_TimesaverTips.pdf) [PDF] for instructions on how to set this up in Chrome. With Mozilla Firefox, go to Settings > General > Files and Applications > Check box for “always ask where to save files.” -Some users may prefer to use the R code instead of the Shiny app. -For more information, see the ‘About - Advanced’ tab +Time-saver tip: some internet browsers, like Google Chrome and Mozilla Firefox, allow users to change settings so that users can select which folder to download files to (versus files going to the default Download folder). +* Mozilla Firefox: go to Settings > General > Files and Applications > Check box for “always ask where to save files.” +* [Google Chrome file saving tip](GoogleChrome_TimesaverTips.pdf) [PDF] +Some users may prefer to use the R code instead of the Shiny app. +For more information, see the ‘About - Advanced’ tab \ No newline at end of file diff --git a/inst/shiny-examples/ContDataQC/rmd/App_3a2_QCReports.rmd b/inst/shiny-examples/ContDataQC/rmd/App_3a2_QCReports.rmd index 05154aa..82c28a5 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_3a2_QCReports.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_3a2_QCReports.rmd @@ -19,6 +19,8 @@ if(boo_DEBUG==TRUE){ ### QC reports +**Example** [QC reports](Example_QCreports.zip) [ZIP] + Shiny app instructions 1. Click the ‘Browse’ button and select the input file(s) from the Data1_RAW @@ -30,47 +32,30 @@ the upload is complete. 3. A ‘Run operation’ button will appear. Click this button. A status bar will appear in the lower right corner. -4. After the function is done running, a ‘Download’ button will appear. Click -this button. +4. After the function is done running, a ‘Download’ button will appear. Click this button. 5. You will be prompted to save a zipped file named ‘QCRaw.date_time.’ Save it in the Data2_QC folder. 6. Unzip/extract the file(s). After file is unzipped, a new folder called ‘data’ will appear, which contains QC reports that have ‘QC_’ as the prefix in the file name. The original zipped file can be deleted if desired. -7. Open the QC reports. There are two types of outputs: a Word document Data Quality Control Report and a comma-delimited (.csv) spreadsheet. The reports include results from the ‘flag’ tests (gross, spike, rate of change and flat line), missing data checks and time series plots. Click [here](Example_QCreports.zip) [ZIP] to download an example of a QC output. If users prefer a Hypertext Markup Language (HTML) report instead of Word, they can change the format in the configuration file (this requires some familiarity with R code). +7. Open the QC reports. There are two types of outputs: a Word document Data Quality Control Report and a comma-delimited (.csv) spreadsheet. If users prefer a Hypertext Markup Language (HTML) report instead of Word, they can change the format in the configuration file (this requires some familiarity with R code). The reports include results from the ‘flag’ tests (gross, spike, rate of change and flat line), missing data checks and time series plots. -8. Review each set of files, check flagged data points, do visual checks on the -time series plots, and decide if and how to make corrections. For tips on the QC -process, see the ‘About - QC tips’ subtab. +8. Review each set of files, check flagged data points, do visual checks on the time series plots, and decide if and how to make corrections. For tips on the QC process, see the ‘About - QC tips’ subtab. -The Data Quality Control Report is organized into four main sections, starting -with an overall summary followed by summaries for each parameter: +The Data Quality Control Report is organized into four main sections, starting with an overall summary followed by summaries for each parameter: -1. Data file information (siteID, date range, parameters, recording interval, -QC test thresholds reference table) +1. Data file information (siteID, date range, parameters, recording interval, QC test thresholds reference table). 2. ‘Count’ tables (# measurements/day) so that you can find inconsistencies -(too few measurements (=missing data) or too many measurements) +(too few measurements (=missing data) or too many measurements). -3. Results from the four ‘flag’ tests (gross, spike, rate of change and flat -line) - # of entries marked as pass (P), suspect (S), fail (F), missing data (X) -or not available (NA) +3. Results from the four ‘flag’ tests (gross, spike, rate of change and flat line) - # of entries marked as pass (P), suspect (S), fail (F), missing data (X) or not available (NA). 4. Time series plots for each individual parameter and two sets of combined -parameters (water and air temperature; water temperature and water level). If -the input file includes discrete/in situ values , which are taken during site -visits for accuracy checks, the discrete values are plotted with the sensor -data. - -The CSV file contains the time series data from the sensor plus additional data -columns with flags for each test and parameter (e.g., Flag.Spike.Water.Temp.C, Flag.Flat.Water.Temp.C), comment fields for each parameter (e.g., -Comment.MOD.Water.Temp.C) so that the user can document rationale for any -changes and a duplicate set of the original ‘raw’ data values (e.g., -RAW.Water.Temp.C). The ‘raw’ values are included so that the user can maintain -documentation of changes that are made and go back at a later time if desired to -change how they handled a correction. +parameters (water and air temperature; water temperature and water level). If the input file includes discrete/in situ values , which are taken during site visits for accuracy checks, the discrete values are plotted with the sensor data. + +The CSV file contains the time series data from the sensor plus additional data columns with flags for each test and parameter (e.g., Flag.Spike.Water.Temp.C, Flag.Flat.Water.Temp.C), comment fields for each parameter (e.g., Comment.MOD.Water.Temp.C) so that the user can document rationale for any changes and a duplicate set of the original ‘raw’ data values (e.g., RAW.Water.Temp.C). The ‘raw’ values are included so that the user can maintain documentation of changes that are made and go back at a later time if desired to change how they handled a correction. Currently there are no automated corrections programmed into the QC function. The user must make the changes manually. For tips on the QC process, see the -‘About - QC tips’ subtab. - +‘About - Tips’ subtab. \ No newline at end of file diff --git a/inst/shiny-examples/ContDataQC/rmd/App_3a3_Aggregate.rmd b/inst/shiny-examples/ContDataQC/rmd/App_3a3_Aggregate.rmd index df97e91..005854c 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_3a3_Aggregate.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_3a3_Aggregate.rmd @@ -19,15 +19,18 @@ if(boo_DEBUG==TRUE){ ### Aggregate +**Example** [Aggregate output](Example_Aggregate.zip) [ZIP] + Shiny app instructions 1. Click the ‘Browse’ button and select the QC’d input files that you’d like to combine. The input files need to be from the same site and share common parameters. The status bar will tell you when the upload is complete. 2. Select ‘Aggregate QC’d data’ from the ‘Choose Operation to perform’ drop-down menu. + 3. A ‘Run operation’ button will appear. Click this button. A status bar will appear in the lower right corner. 4. After the function is done running, a ‘Download’ button will appear. Click this button. You will be prompted to save a zipped file named ‘Aggregate.date_time.’ Save it in the Data3_Aggregated folder. 5. Unzip/extract the file(s). After file is unzipped, a new folder called ‘data’ will appear. If a ‘data’ folder already exists, outputs will go into that folder. The aggregate reports have ‘DATA_’ as the prefix in the file name. The original zipped file can be deleted if desired. -6. Open and review the aggregated reports. As with the QC output, there are two types of outputs: a Word document Data Quality Control Report and a comma-delimited (.csv) spreadsheet. Click [here](Example_Aggregate.zip) [ZIP] to download an example of an Aggregate output. If users prefer a Hypertext Markup Language (HTML) report instead of Word, they can change the format in the configuration file (this requires some familiarity with R code). +6. Open and review the aggregated reports. As with the QC output, there are two types of outputs: a Word document Data Quality Control Report and a comma-delimited (.csv) spreadsheet. If users prefer a Hypertext Markup Language (HTML) report instead of Word, they can change the format in the configuration file (this requires some familiarity with R code). diff --git a/inst/shiny-examples/ContDataQC/rmd/App_3a4_SummaryStats.rmd b/inst/shiny-examples/ContDataQC/rmd/App_3a4_SummaryStats.rmd index ee667d7..4732cf1 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_3a4_SummaryStats.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_3a4_SummaryStats.rmd @@ -19,24 +19,20 @@ if(boo_DEBUG==TRUE){ ### Summary Statistics +**Example** [Summary Stats output](Example_SumStats.zip) [ZIP] + Shiny app instructions 1. Click the 'Browse' button and select the desired input file from the Data3_Aggregated folder. The status bar will tell you when the upload is complete. -2. Select 'Summary statistics' from the 'Choose Operation to perform' drop-down -menu. +2. Select 'Summary statistics' from the 'Choose Operation to perform' drop-down menu. -3. A 'Run operation' button will appear. Click this button. A status bar will -appear in the lower right corner. +3. A 'Run operation' button will appear. Click this button. A status bar will appear in the lower right corner. 4. After the function is done running, a ‘Download’ button will appear. Click this button. You will be prompted to save a zipped file named ‘SummaryStats.date_time.’ Save it in the Data4_Stats folder. 5. Unzip/extract the file(s). After file is unzipped, a new folder called ‘data’ will appear. If a ‘data’ folder already exists, outputs will go into that folder. The summary stats reports have ‘STATS_’ as the prefix in the file name. The original zipped file can be deleted if desired. -6. Open and review the summary statistics reports. There should be two sets of -CSV files and a PDF with time series plots for each parameter. One of the CSVs -has daily means and the other has a wider range of summary statistics (e.g., -min, median, max, quartiles). Click [here](Example_SumStats.zip) [ZIP] to download an -example of a Summary Stats output. +6. Open and review the summary statistics reports. There should be two sets of CSV files and a PDF with time series plots for each parameter. One of the CSVs has daily means and the other has a wider range of summary statistics (e.g., min, median, max, quartiles). \ No newline at end of file diff --git a/inst/shiny-examples/ContDataQC/rmd/App_3c1_QCThresh_Defaults.rmd b/inst/shiny-examples/ContDataQC/rmd/App_3c1_QCThresh_Defaults.rmd index 57a0192..300efc1 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_3c1_QCThresh_Defaults.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_3c1_QCThresh_Defaults.rmd @@ -48,10 +48,18 @@ table3a1 %>% The 'flag' tests were selected based on the following references: - U.S. Integrated Ocean Observing System, 2017. Manual for the Use of Real-Time Oceanographic Data Quality Control Flags, Version 1.1. 43 pp. -https://cdn.ioos.noaa.gov/media/2017/12/QARTOD-Data-Flags-Manual_Final_version1.1.pdf == $0 Exit EPA's website [PDF] +https://cdn.ioos.noaa.gov/media/2017/12/QARTOD-Data-Flags-Manual_Final_version1.1.pdf + + Exit EPA Website + + [PDF] - Wagner, R.J., Boulger, R.W., Oblinger, C.J., Smith, B.A., 2006. Guidelines and Standard Procedures for Continuous Water-quality Monitors: Station Operation, Record Computation, and Data Reporting. U.S. Geological Survey Techniques and Methods 1-D3, 51 pp. þ 8 attachments. -http://pubs.water.usgs.gov/tm1d3 == $0 Exit EPA's website. +http://pubs.water.usgs.gov/tm1d3 + + Exit EPA Website + + . R assigns the following flags to each data point: diff --git a/inst/shiny-examples/ContDataQC/rmd/App_3c2_QCThresh_Upload.rmd b/inst/shiny-examples/ContDataQC/rmd/App_3c2_QCThresh_Upload.rmd index c441632..e8d51f4 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_3c2_QCThresh_Upload.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_3c2_QCThresh_Upload.rmd @@ -21,14 +21,12 @@ if(boo_DEBUG==TRUE){ Click the 'Browse' button (to the left) and select the desired customized configuration file. The status bar will tell you when the file has been -uploaded. A new button will appear that gives you the option of returning to the -default configuration file. Do not click this unless you change your mind and no longer want to use the customized file. +uploaded. A new button will appear that gives you the option of returning to the default configuration file. Do not click this unless you change your mind and no longer want to use the customized file. Go to the ‘Run Functions’ tab; verify that the correct configuration file has been uploaded (by checking the file name); select the desired input file(s); run them through the QC function. Save the output to the desired location. Open the Word QC report and scroll to the ‘Thresholds, Quick Reference’ table (in the middle section of the report). Verify that the correct thresholds were used. Be aware that each time you close and reopen the Shiny app, it will -automatically revert back to the default configuration file. Also – remember the -sequencing! If you forget to upload the customized configuration file prior to -running the QC function, it will use the default thresholds. +automatically revert back to the default configuration file. Also – remember the sequencing! If you forget to upload the customized configuration file prior to running the QC function, it will use the default thresholds. -Click [here](Custom_QC_Config_ECO66G20_test1.R) [R] to download an example of a modified configuration file that you can try uploading to the Shiny app. +## Test file +[Example customized configuration file](Custom_QC_Config_ECO66G20_test1.R) [R] diff --git a/inst/shiny-examples/ContDataQC/rmd/App_3c3_QCThresh_Eval.rmd b/inst/shiny-examples/ContDataQC/rmd/App_3c3_QCThresh_Eval.rmd index 5ae5fa5..eefc12c 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_3c3_QCThresh_Eval.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_3c3_QCThresh_Eval.rmd @@ -19,20 +19,9 @@ if(boo_DEBUG==TRUE){ ## Evaluate Thresholds -If you have one or more years of continuous data for a site, we strongly -encourage you to evaluate the performance of the QC test thresholds for each -parameter at that site and customize the configuration file if needed. +If you have one or more years of continuous data for a site, we encourage you to evaluate the performance of the QC test thresholds for each parameter at that site and customize the configuration file if needed. Make sure you consider what units you are using, since units have a large effect on thresholds. -Click [here](EvaluateThresholds.zip) [ZIP] for instructions on how to generate pivot -tables and plots to evaluate thresholds for the Unrealistic values ('Gross -range') and Spike tests. - -Another option is to use R code written by Tim Martin (Minnesota DNR) to -generate statistical outputs that can help inform thresholds for all four QC -tests. Click [here](TimMartin_R_ThresholdEval.zip) [ZIP] to download the R scripts and -instructions. - -To aid with documentation of the threshold evaluation process, click [here](ThresholdsCheckWorksheet_20220826.xlsx) [XLSX] to download an Excel worksheet -that lists the default thresholds for each parameter and has a column where you -can enter the customized values for a given site as well as rationale for making -the changes. When doing this, make sure you consider what units you are using, since units have a large effect on thresholds. +**Resources for evaluating thresholds:** +* [Pivot tables and charts](EvaluateThresholds.zip) [ZIP] for evaluating the Unrealistic values ('Gross range') and Spike tests in Excel. +* [R code statistics](TimMartin_R_ThresholdEval.zip) [ZIP] that can help inform thresholds for all four QC tests. +* [Threshold evaluation worksheet](ThresholdsCheckWorksheet_20220826.xlsx) [XLSX] that lists the default thresholds for each parameter and has columns where you enter customized thresholds for one or multiple sites. \ No newline at end of file diff --git a/inst/shiny-examples/ContDataQC/rmd/App_3c4_QCThresh_Edit.rmd b/inst/shiny-examples/ContDataQC/rmd/App_3c4_QCThresh_Edit.rmd index 3ce785c..52021bf 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_3c4_QCThresh_Edit.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_3c4_QCThresh_Edit.rmd @@ -19,18 +19,15 @@ if(boo_DEBUG==TRUE){ ## Edit Thresholds -Click [here](EditingQCtestThresholds_20220117.pdf) [PDF] for instructions on how to -edit thresholds and create customized configuration files. There are two options -(see below). For either option, save the customized configuration file in a -folder that is easy to find so that you can reuse the file each time you QC data -for that site. It is helpful to include the StationID and other relevant -information in the file name (for example, if thresholds are customized for a -particular season). - -After you save the file, go to the 'upload custom thresholds' tab, browse to the -custom thresholds file, upload the file and then, under 'Run functions', -generate the QC reports. If you forget the upload step, the default QC -thresholds will be used. +[Instructions for editing thresholds](EditingQCtestThresholds_20220117.pdf) [PDF] + +There are two options for editing thresholds: +* download the default configuration file, open it in R or Notepad++, make edits and save. +* use the interactive functions at the bottom of this page. + +For either option, include the StationID and other relevant information in the file name (e.g., perhaps it's customized for a particular season) and save it in a folder that is easy to find since you'll want to reuse the file each time you QC data for that site in the future. + +After you save the file, go to the 'upload custom thresholds' tab, browse to the custom thresholds file, upload the file and then, under 'Run functions', generate the QC reports. If you forget the upload step, the default QC thresholds will be used. ### Option 1, download the default configuration file, open the file in R or Notepad++, make edits and save. @@ -42,15 +39,22 @@ Configuration files can be downloaded here - Navigate to the ‘QC tests and calculations’ section of the configuration file, which is about halfway through the file. Edit thresholds as desired. Save the file. -When you download the configuration file(s), you will see two types of files: an -R file (.R) and a text (.txt) file for users who do not have R installed on -their computer. You can download R from this website: -https://cran.r-project.org == $0 Exit EPA's website. -You may also want to download -RStudio == $0 Exit EPA's website, -which is a separate program but is a useful code editor and interface (IDE) for -R. If you cannot install R on your computer, we recommend use Notepad or -Notepad++ == $0 Exit EPA's website +When you download the configuration file(s), you will see two types of files: an R file (.R) and a text (.txt) file for users who do not have R installed on their computer. You can download R from this website: +https://cran.r-project.org + + Exit EPA Website + + . +You may also want to download RStudio + + Exit EPA Website + + , which is a separate program but is a useful code editor and interface (IDE) for R. If you cannot install R on your computer, we recommend use Notepad or +Notepad++ + + Exit EPA Website + + (some people prefer Notepad++ because it has color-coding). @@ -93,6 +97,3 @@ knitr::kable(df_param_units, caption = cap_param_units) ``` If you do not want to use the default units, you will need to use Option 1. - -Acknowledgment: Tim Martin (MN DNR) wrote the R code that we used for the -interactive functions below. diff --git a/inst/shiny-examples/ContDataQC/rmd/App_4_USGSgage.rmd b/inst/shiny-examples/ContDataQC/rmd/App_4_USGSgage.rmd index feffd0b..b7601d4 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_4_USGSgage.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_4_USGSgage.rmd @@ -20,7 +20,11 @@ if(boo_DEBUG==TRUE){ # Instructions You can find USGS gage locations and IDs using the -NWIS Mapper == $0 Exit EPA's website. +NWIS Mapper + + Exit EPA Website + + . To download data: diff --git a/inst/shiny-examples/ContDataQC/rmd/App_9_Status.rmd b/inst/shiny-examples/ContDataQC/rmd/App_9_Status.rmd index ddd1d69..b80e5ca 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_9_Status.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_9_Status.rmd @@ -20,7 +20,11 @@ if(boo_DEBUG==TRUE){ # Status ### Who to contact if you have problems or comments -This is an open-source, collaborative effort and we welcome your feedback. If you encounter problems with the Shiny app and/or have suggestions on ways to further improve it, please contact Erik W. Leppo from Tetra Tech via email (Erik.Leppo@tetratech.com) or via a post on the ContDataQC GitHub page (https://github.com/leppott/ContDataQC/discussions == $0 Exit EPA's website). +This is an open-source, collaborative effort and we welcome your feedback. If you encounter problems with the Shiny app and/or have suggestions on ways to further improve it, please contact Erik W. Leppo from Tetra Tech via email (Erik.Leppo@tetratech.com) or via a post on the ContDataQC GitHub page (https://github.com/leppott/ContDataQC/discussions + + Exit EPA Website + + ). ### Experience to date We have been working on and off on the ContDataQC R package and Shiny app since 2017. Development of the ContDataQC R tools has been funded primarily by the United States Environmental Protection Agency (EPA) Office of Research and Development (ORD) as part of a larger project to establish Regional Monitoring Networks (RMNs) for freshwater streams and inland lakes. The lead EPA scientist on the RMN work is Britta Bierwagen (bierwagen.britta@epa.gov). Shane Bowe from the Red Lake Band of Chippewa Indians has also funded parts of its development. @@ -71,16 +75,37 @@ We aren’t planning to make any major changes to the main functions in ContData **Other R packages and Shiny apps that may be of interest** Tim Martin from Minnesota DNR (tim.martin@state.mn.us) has been a great collaborator and has developed a QC app that includes the ContData QC flag tests as well as some other features (including an interactive plot in which data points are color-coded based on flags and the user can add or remove flags). The app is currently being hosted on the Tetra Tech Shiny server - -https://tetratech-wtr-wne.shinyapps.io/logger_processing/ == $0 Exit EPA's website +https://tetratech-wtr-wne.shinyapps.io/logger_processing/ + + Exit EPA Website + + If you use the app, Tim welcomes your feedback! For summary and visualization of continuous lake data, we’re actively working on LakeMonitoR - -R package - https://leppott.github.io/LakeMonitoR/ == $0 Exit EPA's website -Shiny app - https://tetratech-wtr-wne.shinyapps.io/LakeMonitoR/ == $0 Exit EPA's website +R package - https://leppott.github.io/LakeMonitoR/ + + Exit EPA Website + + +Shiny app - https://nalms.shinyapps.io/LakeMonitoR/ + + Exit EPA Website + + + This work is being funded by Shane Bowe from the Red Lake Band of Chippewa Indians (via a BIA grant) and EPA ORD. Over the coming year, we’ll also be working on new tools for summarizing and visualizing the stream RMN data (thermal, hydrologic and biological data). -There are other existing software programs for working with continuous data. One example is the open source Python-based tool by Horsburgh et al. (2015), which provides a data quality control work flow, allows for flagging of data based on visual inspection, can apply drift corrections and interpolate missing values (if desired) and saves both original and edited data for documentation. Other existing software options include a sensorQC R package by USGS (https://github.com/USGS-R/sensorQC == $0 Exit EPA's website) and rLakeAnalyzer (Read et al. 2011, Winslow et al. 2018) (https://CRAN.R-project.org/package=rLakeAnalyzer == $0 Exit EPA's website), which have statistical outlier detection tools. +There are other existing software programs for working with continuous data. One example is the open source Python-based tool by Horsburgh et al. (2015), which provides a data quality control work flow, allows for flagging of data based on visual inspection, can apply drift corrections and interpolate missing values (if desired) and saves both original and edited data for documentation. Other existing software options include a sensorQC R package by USGS (https://github.com/USGS-R/sensorQC + + Exit EPA Website + + ) and rLakeAnalyzer (Read et al. 2011, Winslow et al. 2018) (https://CRAN.R-project.org/package=rLakeAnalyzer + + Exit EPA Website + + ), which have statistical outlier detection tools. diff --git a/inst/shiny-examples/ContDataQC/rmd/tables/HOBOreformat_AFTER_20240131.xlsx b/inst/shiny-examples/ContDataQC/rmd/tables/HOBOreformat_AFTER_20240131.xlsx deleted file mode 100644 index 7ffe36cc6e004ab89b287f6265570aecbb56ecfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9755 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 F{{!6^E~o$i diff --git a/inst/shiny-examples/ContDataQC/rmd/tables/HOBOreformat_AFTER_20240226.xlsx b/inst/shiny-examples/ContDataQC/rmd/tables/HOBOreformat_AFTER_20240226.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f2f922ba6ec14db7005fb2a8c15880b58a53ad41 GIT binary patch literal 9446 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 Vhy+_*0015Kc?%P7Al+}@{vUNZdu#vz literal 0 HcmV?d00001 diff --git a/inst/shiny-examples/ContDataQC/rmd/tables/HOBOreformat_BEFORE_20240131.xlsx b/inst/shiny-examples/ContDataQC/rmd/tables/HOBOreformat_BEFORE_20240226.xlsx similarity index 51% rename from inst/shiny-examples/ContDataQC/rmd/tables/HOBOreformat_BEFORE_20240131.xlsx rename to inst/shiny-examples/ContDataQC/rmd/tables/HOBOreformat_BEFORE_20240226.xlsx index 5aa3e6f29f90e0a34da3592ea56b983580c3ca8b..32954e439e52fc4af2f0715f55d0d78ce12a623d 100644 GIT binary patch delta 3220 zcmZ9PWmwY>_r^zufFJ{j{bZz+FuFt}Wpt__f)Yw@#1N49!e|7E0g{r^9nzhnq)T9= zAks*wY=58UdGWih|9O4RoBLe%=RT)Rs|#K=L=NEhqhp&%Kp=i95a=cd1oCzk^+LKk zStF57BHk{}Wu`BYd9w7^0h8AhyNH6{2ir^R3DoxU~xL>SS{4Hl{Nj6CY9X9-LmSHoOFkd#IOu)v8Hhx z5G8|hZZ~iUXuiB|IDIYhI5wk_24ufEFP!A4`Zd`H?!@)QTbuoNoe;l( zExfoy=&Q25{alFDH)c+7;ftd_^p@n>RdYeiBAU{if$XOp)_fsv=1Ra-ilNlgX{!}M zv>tD&(}v0}Fx+0-s#!zdf4q85?%S^cbb3)LMQ6MH!o2vtQv%*2k3DPHhiN^ajgq$^Ho%8Su@x!>t=SBXUT*m#}jxqCZR?Wp$j=ToN|=0xe* zo<)mC+G7$TMqQ6RDC9)kAxLRJ0A8D)y6V}VTm{#=GPxa+(PpS5CsI$y1`>W`FVfGH zZ+|5yX|NDOyDc|lv{;S^;!WuLxcIw+^7f_kDeJ-(kJ(?ogvN2;4Y%737tbwpoS zCMs@AfyHcr$K8O9)FG}B*U2hITHK9u1eB)TU@m(2qdun}eG}$-J=s zqV$kkQzQM~oM6=JwyU#vUBSNENixKtjIqh2ENCRW#6Q)+51{4D$6?##g z)DM>sqo|}olD+ea#X6G2w(oenzLkgFn>$0tNK_$i=0Nm;_r#U?n}+mTpGx)S02w;Z z^!-;Cn0NcVBKn7pqOH29C9f9Xl{dx8lb>oEdw8`T?DmiEXOW+ud`IEqG94k$2jHk? zf0Qr#wW4mv`J;IPn?Z|qBSIl{u}w#$odgq40DpID`)AxNRJsO={HNAGnJ+x?Vpmyi)#NUM$x@Nm-6{ zb8-2=VEuHISE_y2`-V``WP-W(48U$JKkD#3!&WsHnnDj(e@CHGfP7h0aw}R%@H3{h zo-`DQi?JXsNG{^@&jP;2Z<6;^r2My|#U z!~Rh#0eDxPcuCEJI4u3C=PwCy?!@Psb62->$-ozSTNfiq#ewG6n*zMWM9EAVzfe0^ZZ%TY z&VVs}OJ`q1yKa7)VKHmQkFk#lQ^e5cwJXkPx%`g#0%HPAG}0=@iwm9mVbl2r^ci=K zl=Mi#pbtf;D+lrxhopW!0b;Z)C!X7M6!+W~k*+6O=+)<(Xg97o`8h}%%uME>q~|MQ zO#5&(GJmH-%3ka(1kLoR+ygQSvsSQ4`lF~5^17jmNN^p}c_-{l_GcbeIHrdZHMcaM zwA15_A^zkFuHxnmP~w#{?))e)vHV+rzWyEA9?S54wfVW%cNg$%)Qa|l|^z3pl&hwFwQrCE`Z~p zF<;Tp(GBhRfzc#jemUZDcRsHtCr|B>lv{86kZ-XgyqM_QCoO(YJ^H)n9x86#qg11j z?s_bGCLUZ(jAcMuJ^_T}p0P?WoUF+C%~|nVmNnj%FZ6&_nTxy8i9%p7i+EH*Mbn_t zdaZu^Z7XQD(QMK?&};*5(KH*p)<}1x7HWcRS(Alb#zTR)7)mu!R%pJ4^3$a#of2p3 z*g`HdF1I<1{JnMbe|O@5fuq0A{Rg?9rK zvi#8oXx10?5L@Wvmy0UfDjY(#%=(zn8#$oAE()sUXV|3xnp&$OE{H)OFeL~?`@cl? zK>0Y^dHg4jM@(_ZbQpa=Rvn@1L_x}6FoCittw1xW+0jVBp^`48w*-K0pz^2i7nwmk zsLan5Gx=?S{tp2B!NIAVoYSX=H%BBbO2HI&A86<>HE%j*u7B}rlIbg|Hc2wE?=xz( zp#>fcuXJd$wJ`3z=}A!s<)nd;W#!u;l6_(D#f+Uafv3fF@zdSYWpHD5jp2Tm1awHd z5@&*YsBcJ$J0>`9T zRwlR4OH`haFL9&V6DHAlkLJIYt&`;<0#1I!p;Io`F!Rq&wella&O4u9xh9*KFOW06 zEfoecMl^#*4wLXD?hTvKZBLRVV|Rk6t4LF9;W?qwgDT&l9+~Qf*tfAa1TTkNw;vl~ z`zmC@$Hq;4k1!DT!|2{)mH=Akbrs0d(Dxvg8q%THsfKboU;7*rDTv zVZJv;W+jAut87Q5nUj?pBmIW~P(iT?zR2ui3f8dp5vysW{JL8R?LOkg%BfA9HZBY? zN%+j^%DWIG-Vj)u^fZhYSvO_9J(6& zIjr#V>(+XYvrlUH%CwbE+fHKNim;_{n{4w_;SX0MH?Q9v<}u^L$XD8Avj?GRGQ^9m ztmuCRad%tw4Be(BW2Lz^Xc<{8<5JYJPYFYN40gXO}U+eQ+$q z-lmVv2E-v(-iRh!bg4hM{G5sHS&k;`T9@9|ipt$@td;}x-z*b>s1T7!Wxt)$to8hd zj|ec-?ty_rabyHlY^}>AVvJ#t&g2|Q7h(#=skk>VrAzWmAP6gU%Z>wnM`9NlesbFh zsOk@*o7CYY+OR+pb z)82=h4S9yW8FPrL-cpDg(OAi8Z7hzl1;#i=nVtHT7MNXC25GcibzlRoH)zftsy)hI zB{2e0OGqf+=MYm3nL!?j;m_n@lX#yTV+}pC=HT?H#@Y_Ax zvB$r6eU?pWwPy~ZNQR8N1Y|lbTu$n3jBup-*+%!-8idMHJcT;;b*a|zuHRZsR1|AV z$AgtgAAt9TG7=lGJvP;9J}L@^&NHX#5##!MOEAYQnM zP`gib0=Dvt{zLI!S$8=ekx>8p24EDpb&2vYk=*y#|GgVPAeO%*`nP5=6Wr>=czR3@ z0~6*R4?X1nL+jsGe-?}xj~sCpJ0_8b?|jwFkoJ8av`q&4E!G> COA%H8 delta 3364 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 diff --git a/inst/shiny-examples/ContDataQC/rmd/tables/miniDOT_After_Concatenate_20240131.xlsx b/inst/shiny-examples/ContDataQC/rmd/tables/miniDOT_After_Concatenate_20240131.xlsx deleted file mode 100644 index 5968c2b082f0a891f442a7ab9225679e1c076f20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9899 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 diff --git a/inst/shiny-examples/ContDataQC/rmd/tables/miniDOT_After_Concatenate_20240226.xlsx b/inst/shiny-examples/ContDataQC/rmd/tables/miniDOT_After_Concatenate_20240226.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..14e047ba720eb6c8ae89f4d4421c3c2c744a5061 GIT binary patch literal 9745 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 M^`PHAG(Z3SKiXdUNB{r; literal 0 HcmV?d00001 diff --git a/inst/shiny-examples/ContDataQC/rmd/tables/miniDOTreformat_ AFTER_20240131.xlsx b/inst/shiny-examples/ContDataQC/rmd/tables/miniDOTreformat_ AFTER_20240131.xlsx deleted file mode 100644 index 68d12fc7131c7d7d7666286bee6e85dcbfbb8f32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9786 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 diff --git a/inst/shiny-examples/ContDataQC/rmd/tables/miniDOTreformat_ AFTER_20240226.xlsx b/inst/shiny-examples/ContDataQC/rmd/tables/miniDOTreformat_ AFTER_20240226.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2c40ca6c7fdb96de146584a85ae25a5307b6b13b GIT binary patch literal 9616 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 diff --git a/inst/shiny-examples/ContDataQC/rmd/tables/miniDOTreformat_ BEFORE_20240226.xlsx b/inst/shiny-examples/ContDataQC/rmd/tables/miniDOTreformat_ BEFORE_20240226.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..eeeea39969d33b496db24d03949fbc5dc03e45ae GIT binary patch literal 9750 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 P$mcyozu!~*_U-=xq4fY& literal 0 HcmV?d00001 diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1a_Overview.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1a_Overview.html index 3938ba4..4fffec6 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1a_Overview.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1a_Overview.html @@ -3,28 +3,25 @@

About ContDataQC

-The ContDataQC Shiny app is a free R-based tool that was developed to +

The ContDataQC Shiny app is a free R-based tool that was developed to help water quality monitoring programs QC, merge and summarize continuous sensor data files in a standardized, more efficient way. It also has a function that allows users to download U.S. Geological Survey gage data at sites and over periods of their choosing. This Shiny app is -linked to the ContDataQC R package, which was developed by Erik W. Leppo -from Tetra Tech and is available on -GitHub -== $0 - -Exit EPA’s website - -

.

+linked to the ContDataQC R package, which was developed by Tetra Tech in +support of the EPA and is available on +Github Exit EPA +Website .

The ContDataQC R package and Shiny app were developed with the following objectives in mind: ensure that a certain (minimum) level of -QC is being performed on continuous data files; standardize and speed up -data QC and reduce missed errors; and standardize data for further -analysis and sharing. ContDataQC is configured for temperature, water -level, discharge, conductivity, pH, turbidity, chlorophyll-a and -salinity data. Users with advanced R skills can add any other parameters -that they desire by making edits to the configuration file, which can be -viewed in R or in Notepad.

+Quality Control (QC) is being performed on continuous data files; +standardize and speed up data QC and reduce missed errors; and +standardize data for further analysis and sharing. ContDataQC is +configured for temperature, water level, discharge, conductivity, +dissolved oxygen (DO), pH, turbidity, chlorophyll-a and salinity data. +Users with advanced R skills can add any other parameters that they +desire by making edits to the configuration file, which can be viewed in +R or in Notepad.

ContDataQC Shiny App Workflow

@@ -151,7 +148,7 @@

ContDataQC Shiny App Workflow

Funding

-Development of the ContDataQC R tools has been funded by the United +

Development of the ContDataQC R tools has been funded by the United States Environmental Protection Agency (EPA) Office of Research and Development (ORD) as part of a larger project to establish Regional Monitoring Networks (RMNs) for freshwater streams and inland lakes. The @@ -159,11 +156,7 @@

Funding

long-term continuous temperature and hydrologic data at targeted sites to detect changes over time. For more information on the RMNs, please refer to the -stream -Regional Monitoring Networks -report == $0 - -Exit EPA’s website - -

.

+stream +Regional Monitoring Networks report Exit EPA +Website .

diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1b_TestData.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1b_TestData.html index fb9f4a1..f725ece 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1b_TestData.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1b_TestData.html @@ -1,16 +1,23 @@ -

There are two sets of test files, one from Onset HOBO U20 water level -loggers (non-vented pressure transducers) and one from a miniDOT DO -sensor. Please contact us if you have example files from other sensors -that you would like us to add to this website.

-
-

Onset HOBO

-

The Onset HOBO U20 files can be downloaded here [ZIP]. The test data -consist of two comma-separated values (CSV) files. The files are from -the same site but cover two different time periods. You’ll see two -folders:

+

Below are test files that you can download and run through the Shiny +app. They are from Onset HOBO U20 water level loggers (non-vented +pressure transducers) and miniDOT DO sensors. Please contact us if you +have example files from other sensors that you would like us to add to +this website.

+
+

Test files

+ +
+

Onset HOBO

+

The Onset HOBO U20 test data consist of two comma-separated values +(CSV) files. The files are from the same site but cover two different +time periods. You’ll see two folders:

  • Test

      @@ -34,11 +41,11 @@

      Onset HOBO

-
-

miniDOT DO Sensors

-

The miniDOT DO test files can be downloaded here [ZIP]. They are from one site and -one deployment period. You’ll see two sets of folders. Within each -folder are example input and output files.

+
+

miniDOT DO Sensors

+

The miniDOT DO test files are from one site and one deployment +period. You’ll see two sets of folders. Within each folder are example +input and output files.

  • miniDOT_concatenate - When data are initially downloaded from miniDOT sensors, there are separate .txt files for each @@ -53,3 +60,4 @@

    miniDOT DO Sensors

    data (edit if needed).

+
diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1c_FAQ.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1c_FAQ.html index 7eeb289..502119e 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1c_FAQ.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1c_FAQ.html @@ -14,17 +14,13 @@

Basic Information

‘contact us’ link at the bottom of this page and request assistance. Be prepared to share a copy of your input file(s) and the error message.

-Speed: If you have a slow internet connection, you can -run ContDataQC as a Shiny app on your local computer and it will likely -be faster. Running it locally requires that you have R software and the -ContDataQC R package installed on your computer, which can be downloaded -from GitHub -GitHub -== $0 - -Exit EPA’s website - -

.

+

Speed: If you have a slow internet connection, you +can run ContDataQC as a Shiny app on your local computer and it will +likely be faster. Running it locally requires that you have R software +and the ContDataQC R package installed on your computer, which can be +downloaded from GitHub +GitHub Exit EPA +Website .

Internet browsers: This Shiny app has been tested and run successfully with Google Chrome, Firefox and Microsoft Edge. It may be compatible with other browsers but they have not been tested. @@ -50,21 +46,14 @@

Basic Information

Usability on phones: Mobile use of this app is possible although the screen size of a phone may make it impractical.

-Data summary and visualization: The ContDataSumViz app -has more summary and visualization options. Shiny app (beta version): -https://contdataqcsumviz_containerized_stg.app.cloud.gov/ -== $0 - -Exit EPA’s website - -

-R code: -https://github.com/USEPA/dmap-ContDataQCSumViz -== $0 - -Exit EPA’s website - -

+

Data summary and visualization: The ContDataSumViz +app has more summary and visualization options. Shiny app (beta +version): +https://contdataqcsumviz_containerized_stg.app.cloud.gov/ Exit EPA +Website

+

R code: +https://github.com/USEPA/dmap-ContDataQCSumViz Exit EPA +Website

Downloading USGS gage data:You can simultaneously download data from different USGS gages but only for the same time period.

diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1d_Tips.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1d_Tips.html index 49534b4..0cdf8cb 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1d_Tips.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1d_Tips.html @@ -1,87 +1,84 @@ -
-

QC Tips

-

Below are instructional materials and links to resources we have -compiled as we continue to gain experience QCing continuous data for the -Regional Monitoring Network project. To date, we have worked primarily -with thermal and hydrologic data, and more recently, dissolved oxygen -data from lakes. The data are typically downloaded 2-4 times a year. We -have not worked with ‘real-time’ data.

+
+

Tips

+

Below are tips and links to resources from the Regional Monitoring +Network (RMN) project. To date, RMN partners have worked primarily with +thermal and hydrologic data, and more recently, with dissolved oxygen +data from lakes. The data are typically downloaded 2-4 times a year (not +‘real-time’ data).

+
+

Site visits

+

It helps speed up the Quality Control (QC) process if you follow a +checklist during site visits and document anything that might affect the +quality of the data (e.g., sensor out of water or buried in sediment, +beaver activity, low battery). * Resource: Site visit checklist [ZIP]

+
+
+

Sensor configuration

+

Some people have had problems with air and water sensors being out of +sync ( e.g., one records at 11:00 and the other records at 11:07). If +you are deploying air and water sensors at a site, make sure you +configure them so that they are recording at the same time. This will +make data processing faster and easier. * Resource: Onset HOBO configuration tips +[PDF]

+

Another issue that sometimes occurs is data overlap (where more than +one file has measurements covering part of the same time periods). Make +sure you clear the sensor’s memory when you download data and relaunch +sensors to avoid overlapping data. * Resource: Onset HOBO download and relaunch +tips [PDF]

+
+
+

QC workflow

+

There are generally two scenarios: 1) users QC their data after each +download and work with one file per site at a time; or 2) users have a +backlog of data that cover multiple deployment periods that they +aggregate into one file before performing QC. * +Resources: Suggested workflows for each scenario: + Single file [PDF] + Multiple files [PDF]

+

Data edits

When reviewing the QC reports, it is important to be consistent in -how you handle flagged data. As an example, some users do the following --

+how you handle flagged data. Here is an example of an approach -

  • If you are certain a data point is erroneous, delete the measurement and flag as ‘F’. If you are not sure, flag the data as ‘S’ and do not delete. Let the people using the data decide whether to remove questionable measurements from their analysis.

  • Document that you checked each point flagged as ‘F’ and ‘S’ by -adding a data qualifier to the Comment column. Click here [XLSX] to download a list -of example data qualifiers.

  • -
  • Leave missing data cells blank.

  • +adding a note or data qualifier to the Comment column.

    +
  • Resource: List of example data qualifiers +[XLSX]

  • +
  • Leave missing data cells as is (vs. deleting)

-
-

Workflow

-

Click here [PDF] for a -description of a common workflow for reviewing the QC reports.

-

If you have a backlog of data files from multiple deployments and are -wondering how to most efficiently QC the files, click here [PDF] for a description -of a workflow that has worked well.

-

Click here [ZIP] for a site -visit checklist to help ensure that you do not forget to document -information that is important for the data QC process.

-
-
-

Sensor configuration

-

Some people have had problems with air and water sensors being out of -sync ( e.g., one records at 11:00 and the other records at 11:07). If -you are deploying air and water sensors at a site, make sure they are -recording at the same time. This will make data processing faster and -easier. If you are using Onset HOBO sensors, click here [PDF] for tips on -configuring them in a way that ensures they will record at the same -time.

-

Another issue that sometimes occurs is data overlap (where more than -one file has measurements covering part of the same time periods). If -you are using Onset HOBO sensors, click here [PDF] for procedures to -follow during data download to clear sensor memory and avoid overlapping -data.

-

Accuracy checks

Accuracy checks are comparisons of discrete or in situ measurements taken in the lab and/or in the field with sensor measurements from the -closest date/time. The sensor measurement should be within the accuracy -quoted by the manufacturer ( e.g., ±0.2°C if you are using the Onset -HOBO proV2 sensor). Accuracy checks are used to validate your data, and -in some cases, correct for sensor drift. Click here [XLSX] to download an -example of an accuracy check worksheet.

+closest date/time. The difference between the sensor and discrete +measurements should be within the accuracy quoted by the manufacturer +(e.g., ±0.2°C if you are using the Onset HOBO proV2 sensor). * +Resource: Example accuracy check +worksheet [XLSX]

Visual checks of time series plots

Visual checks of time series plots are an important part of the QC -process. Click here [PDF] to -see a compilation of patterns to watch for when interpreting the plots. -They include ice cover, beaver activity, leaf packs, dewatering, and -dead batteries.

+process. Some issues, such as dewatering, sediment burial, ice cover and +beaver activity, show fairly common patterns, and we’ve been compiling +examples of these patterns to help people recognize potential QC issues +with their data. * Resource: Visual checks [PDF]

Checking sensor data against other data sources

-Some partners have been downloading data from nearby weather stations +

Some partners have been downloading data from nearby weather stations and USGS gages, as well as modeled air temperature and precipitation -data from Daymet ( -https://daymet.ornl.gov/getdata -== $0 - -Exit EPA’s website - -

-), and comparing those data to sensor measurements as part of their QC -process. Click here [ZIP] for -instructional materials.

+data from sources such as Daymet +(https://daymet.ornl.gov/getdata Exit EPA +Website ), and comparing those data to sensor +measurements as part of their QC process. * Resource: +Daymet or USGS gage check [ZIP]

diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1e_Advanced.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1e_Advanced.html index 1cddcaa..94e46a3 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1e_Advanced.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1e_Advanced.html @@ -8,16 +8,13 @@

Advanced

file naming and formatting requirements, change the format of one of the QC reports from Word to html or PDF) by editing a plain text configuration file [ZIP]. You can do this in R or Notepad.

-Some users may prefer to use the ContDataQC -R -code == $0 - -Exit EPA’s website - -

-instead of the Shiny app. While using the R code allows for some -additional layers of customization beyond this, when it comes to file -naming schemes and setting directories, users have more flexibility -using the Shiny app because they can browse to the desired input -file(s).

+

Some users may prefer to use the ContDataQC +R +code + +Exit EPA Website instead of the Shiny app. While +using the R code allows for some additional layers of customization +beyond this, when it comes to file naming schemes and setting +directories, users have more flexibility using the Shiny app because +they can browse to the desired input file(s).

diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1f_RelatedApps.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1f_RelatedApps.html index 89de135..14a23bf 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1f_RelatedApps.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_1f_RelatedApps.html @@ -3,73 +3,44 @@ diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a1_HOBO.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a1_HOBO.html index 5e5b85c..8720f0c 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a1_HOBO.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a1_HOBO.html @@ -47,10 +47,10 @@

Instructions

Time-saver tip: some internet browsers, like Google Chrome and Mozilla Firefox, allow users to change settings so that users can select which folder to download files to (versus files going to the default -Download folder). Click here [PDF] for instructions on -how to set this up in Chrome. With Mozilla Firefox, go to Settings > -General > Files and Applications > Check box for “always ask where -to save files.”

+Download folder). * Mozilla Firefox: go to Settings > General > +Files and Applications > Check box for “always ask where to save +files.” * Google Chrome file +saving tip [PDF]

Your files are now ready to be run through the QC function! Below are examples of what HOBO U20 CSV files look like before and after they are run through the reformat function. The reformat function does the @@ -230,86 +230,6 @@

Example

16.902999999999999 - - -42068.104166666664 - - -14.5908 - - -12.11 - - -14.1035 - - -1.05 - - -16.902999999999999 - - - - -42068.125 - - -14.585599999999999 - - -12.013 - - -14.098699999999999 - - -1.0489999999999999 - - -16.902999999999999 - - - - -42068.145833333336 - - -14.5808 - - -12.013 - - -14.0909 - - -1.056 - - -16.713000000000001 - - - - -42068.166666666664 - - -14.5808 - - -12.013 - - -14.0884 - - -1.0620000000000001 - - -16.713000000000001 - -

After

@@ -491,238 +411,6 @@

Example

1.028 - - -B0997 - - -2015-03-05 02:30:00 - - -16.903 - - -10246124 - - -6 - - -12.110 - - -10246120 - - -6 - - -1.050 - - - - -B0997 - - -2015-03-05 03:00:00 - - -16.903 - - -10246124 - - -7 - - -12.013 - - -10246120 - - -7 - - -1.049 - - - - -B0997 - - -2015-03-05 03:30:00 - - -16.713 - - -10246124 - - -8 - - -12.013 - - -10246120 - - -8 - - -1.056 - - - - -B0997 - - -2015-03-05 04:00:00 - - -16.713 - - -10246124 - - -9 - - -12.013 - - -10246120 - - -9 - - -1.062 - - - - -B0997 - - -2015-03-05 04:30:00 - - -16.808 - - -10246124 - - -10 - - -12.110 - - -10246120 - - -10 - - -1.046 - - - - -B0997 - - -2015-03-05 05:00:00 - - -16.903 - - -10246124 - - -11 - - -12.110 - - -10246120 - - -11 - - -1.061 - - - - -B0997 - - -2015-03-05 05:30:00 - - -16.903 - - -10246124 - - -12 - - -12.013 - - -10246120 - - -12 - - -1.055 - - - - -B0997 - - -2015-03-05 06:00:00 - - -16.903 - - -10246124 - - -13 - - -12.110 - - -10246120 - - -13 - - -1.061 - -
diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a2_miniDOT.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a2_miniDOT.html deleted file mode 100644 index d1ad198..0000000 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a2_miniDOT.html +++ /dev/null @@ -1,10 +0,0 @@ - - - -
-

miniDOT Concatenate

-

This function merges daily Dissolved Oxygen data files downloaded -from PME miniDot DO loggers into a single multi-column CSV file. Use if -the data were not compiled using the PME java app on the logger. The -output should be downloaded into the Data0_Original folder.

-
diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a2_miniDOT1.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a2_miniDOT1.html index 9bffe37..849f1fe 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a2_miniDOT1.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a2_miniDOT1.html @@ -29,21 +29,11 @@

Concatenate Instructions

deleted if desired.

-
-

Additional Notes

-
    -
  • Want to try it yourself? Click here [ZIP] to download miniDOT DO test -files.

  • -
  • Why are the DO saturation values all NA? This occurs when no -inputs are provided to calculate DO percent saturation. For more -information, please see miniDOT manual or contact the miniDOT support -team.

  • -
-
-
-

Example

-

Example table after performing the Concatenate -function.

+
+

Test files

+

miniDOT test data [ZIP]

+

Below is an example of what the output file looks like after running +the Concatenate function.

@@ -246,119 +236,14 @@

Example

7392-354869 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-1575505440 - -43804.01666666667 - -43804.01666666667 - -3.45 - -18.853999999999999 - -8.5389999999999997 - - -1.0069999999999999 - -7392-354869 -
-1575507240 - -43804.037499999999 - -43804.037499999999 - -3.45 - -19.047000000000001 - -8.5150000000000006 - - -1.006 - -7392-354869 -
-1575509040 - -43804.058333333334 - -43804.058333333334 - -3.45 - -19.222999999999999 - -8.468 - - -1.006 - -7392-354869 -
-1575510840 - -43804.07916666667 - -43804.07916666667 - -3.45 - -19.390999999999998 - -8.4420000000000002 - - -1.0049999999999999 - -7392-354869 -
+
+

Additional Notes

+

If you’re wondering why your DO saturation values are all NA, this +occurs when no inputs are provided to calculate DO percent saturation. +For more information, please see the miniDOT manual or contact the +miniDOT support team.

+
diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a3_miniDOT2.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a3_miniDOT2.html index ccc83c3..7eb7874 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a3_miniDOT2.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a3_miniDOT2.html @@ -28,21 +28,11 @@

Instructions

reformatting.

-
-

Additional Notes

-
    -
  • Want to try it yourself? Click here [ZIP] to download miniDOT DO test -files.

  • -
  • Why are the DO saturation values all NA? This occurs when no -inputs are provided to calculate DO percent saturation. For more -information, please see miniDOT manual or contact the miniDOT support -team.

  • -
-
-
-

Example

-

Example table before after performing the Reformat -function.

+
+

Test files

+

miniDOT test data [ZIP]

+

Below is an example of what files look like before and after running +the Reformat function.

Before

@@ -246,118 +236,6 @@

Example

7392-354869 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-1575505440 - -43804.01666666667 - -43804.01666666667 - -3.45 - -18.853999999999999 - -8.5389999999999997 - - -1.0069999999999999 - -7392-354869 -
-1575507240 - -43804.037499999999 - -43804.037499999999 - -3.45 - -19.047000000000001 - -8.5150000000000006 - - -1.006 - -7392-354869 -
-1575509040 - -43804.058333333334 - -43804.058333333334 - -3.45 - -19.222999999999999 - -8.468 - - -1.006 - -7392-354869 -
-1575510840 - -43804.07916666667 - -43804.07916666667 - -3.45 - -19.390999999999998 - -8.4420000000000002 - - -1.0049999999999999 - -7392-354869 -

After

@@ -485,87 +363,14 @@

Example

7392-354869 - - -2019-12-05 00:24:00 - - -3.45 - - -18.854 - - -8.539 - - -1.007 - - -7392-354869 - - - - -2019-12-05 00:54:00 - - -3.45 - - -19.047 - - -8.515 - - -1.006 - - -7392-354869 - - - - -2019-12-05 01:24:00 - - -3.45 - - -19.223 - - -8.468 - - -1.006 - - -7392-354869 - - - - -2019-12-05 01:54:00 - - -3.45 - - -19.391 - - -8.442 - - -1.005 - - -7392-354869 - -
+
+

Additional Notes

+

If you’re wondering why your DO saturation values are all NA, this +occurs when no inputs are provided to calculate DO percent saturation. +For more information, please see the miniDOT manual or contact the +miniDOT support team.

+
diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2b_OrganizingFiles.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2b_OrganizingFiles.html index e81e949..013c438 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2b_OrganizingFiles.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2b_OrganizingFiles.html @@ -4,11 +4,11 @@

Organizing Files

If you do not already have a good system for organizing continuous -data files, we recommend that you set up a folder for each site, and -within each site folder, set up subfolders as shown in the table below. -You can download a ready-made set of (empty) folders by clicking here [ZIP]. Put the file in the desired -location, unzip it and then replace ‘SiteX’ with the appropriate site -name.

+data files, consider setting up a folder for each site, and within each +site folder, set up subfolders as shown in the table below. A quick way +to get started is to download this ready-made set of (empty) folders [ZIP]. +Put this file in the desired directory, unzip it and then replace +‘SiteX’ with the appropriate site name.

You have more flexibility with file organization when using the Shiny app vs R package. With the Shiny app, it is not necessary to name the folders exactly as shown below because you can browse to the desired diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2c_NamingFiles.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2c_NamingFiles.html index 64f0aa4..13b0529 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2c_NamingFiles.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2c_NamingFiles.html @@ -10,116 +10,39 @@

Naming Files

Shiny app, consider using the file naming scheme below since you may decide to use the R package at some point in the future. Another reason to use the recommended file naming scheme is because it keeps files well -organized and easy to sort. For example, if using HOBO U20 water level -loggers, it makes matching air and water sensor files easier during the -processing step and helps you identify gaps in the data. The recommended -file naming scheme is:

-

The recommended file naming scheme is:

+organized and sorts them in chronological order. This is particularly +helpful if you are using HOBO U20 water level loggers, as it makes +matching air and water sensor files easier during the processing step +and helps you identify gaps in the data.

+

If you are using the R package, there are four components to the file +name for single sensor deployments, which are separated by underscores +(“_”).

SiteID_DataType_StartDate_EndDate

-

The four components are separated by underscores (“_”).

Example: Hunting_Water_20130426_20130725

  • Site ID (no spaces or underscores) = Hunting

  • -
  • DataType: Air, Water, AW (air and water sensor data are combined -into the same file), Gage, DO

  • +
  • Data Type options: Air, Water, AW (air and water sensor data are +combined into the same file), Gage, DO

  • Date, Start (YYYYMMDD) = 20130426

  • Date, End (YYYYMMDD) = 20130725

-

For multi-depth deployments (e.g., temperature sensors deployed at -multiple depths at a lake), depth and units are added to the SiteID, +

For multi-sensor deployments (e.g., temperature sensors deployed at +multiple depths at a lake), add depth and units or some other +differentiating characteristic, such as sensor type, to the SiteID, separated by double-dashes as shown below:

-

Example: RussWood–01M_TEMP_20130426_20130725

+

Example: RussWood–02M_Water_20130426_20130725

Depth can include decimals (for example, 0.1M is ok) and does not need to include leading zeros (either 01M or 1M are acceptable). Units can be upper or lower case (M or m), and abbreviated (M) or spelled out -(meters). You can change the double-dash separator if desired by -customizing the configuration file -[ZIP] (for example, you could change it to a tilde ~).

-

If you are using the Shiny app and have more than one type of sensor -deployed at the same depth (for example, both a DO and temperature -sensor at 2M), you can put the sensor type in the second part of the -file name (for example, DataType = TEMP, as shown in the example above, -or DataType = DO).

-

Below are examples of files that follow the recommended naming -scheme.

-

Example files from a RMN stream sties, where one temperature sensor -was deployed on land and the other in the water. In the AW files, air -and water sensore data were combined into the same file.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
-File naming scheme -
-Hunting_Air_20140422_20160415 -
-Hunting_Air_20160415_20160826 -
-Hunting_Water_20140422_20160415 -
-Hunting_Water_20160415_20160826 -
-Hunting_AirWater_20140422_20160415 -
-Hunting_AirWater_20160415_20160826 -
-

Example file for a lake RMN site where temperature sensors were -deployed at multiple depths and DO sensors were also deployed. The two -types of sensors overlapped at the 2M depth and the second part of the -file name (DataType) was used to distinguish between the two (TEMP -vs. DO).

- - - - - - - - - - - - - - - - - - - - -
-File naming scheme -
-Russwood–01M_TEMP_20180918_20190610 -
-Russwood–01M_TEMP_20190610_20190926 -
-Russwood–02M_DO_20180918_20190610 -
-Russwood–02M_DO_20190610_20190926 -
+(meters).

+

You can change the double-dash separator if desired by customizing +the configuration file [ZIP] (for +example, you could change it to a tilde ~).

+

If you are using the Shiny app instead of R package, you are not +restricted to using the Data Types shown above (Air, Water, AW, etc.). +If you have more than one type of sensor deployed at the same depth +(e.g., both a DO and temperature sensor at 2M), consider using sensor +type in the second part of the file name (for example, +RussWood–02M_TEMP_20130426_20130725 or +RussWood–02M_DO_20130426_20130725).

diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2cz_DiscreteData.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2cz_DiscreteData.html index 1e76425..a983af0 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2cz_DiscreteData.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2cz_DiscreteData.html @@ -7,25 +7,21 @@

Discrete Data

some cases, can be used to correct for sensor drift. Accuracy checks are comparisons of discrete or in situ measurements taken in the lab and/or in the field with sensor measurements from the closest date/time. The -sensor measurement should be within the accuracy quoted by the -manufacturer (e.g., ±0.2°C if you are using the Onset HOBO proV2 -sensor). Click here [XLSX] -to download an example of an accuracy check worksheet.

+difference between the sensor and discrete measurements should be within +the accuracy quoted by the manufacturer (e.g., ±0.2°C if you are using +the Onset HOBO proV2 sensor). * Resource: Example accuracy check +worksheet [XLSX]

Discrete (in situ) measurements will be included in the time series plots in the QC reports (see example below) if the user manually enters them into the input file. This should be done after the file has been formatted (for example, after a HOBO file has been run through the -Reformat function), via the following steps:

-
    -
  • add a new column to the CSV
  • -
  • follow this naming scheme for the column heading: parameter name and -units, with ‘Discrete’ at the beginning (for example, ‘Discrete Air Temp -C’)
  • -
  • enter the data into the row that most closely matches the date/time -of the sensor measurements
  • -
+Reformat function).

+

To enter the discrete data - * add a new column to the CSV * name the +column “Discrete” followed by the parameter name and units (for example, +‘Discrete Air Temp C’) * enter the data into the row that most closely +matches the date/time of the sensor measurement

-Example QC plot with discrete data +Example QC plot with discrete data
Example QC plot with discrete data
diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a1_About.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a1_About.html index b21bd45..605f6ed 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a1_About.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a1_About.html @@ -26,18 +26,19 @@

Workflow

  • The user can run the aggregated file through the Summary Statistics function to generate CSV files with an assortment of summary statistics (e.g., min, median, max, quartiles) and a PDF with -time series plots for each parameter. After running each function, users -must unzip/extract the files or else the files won’t be seen as an -option to upload for the next step. After files are unzipped, new -folders will automatically appear and the original zipped files can be -deleted if desired. Time-saver tip: some internet browsers, like Google -Chrome and Mozilla Firefox, allow users to change settings so that users -can select which folder to download files to (versus files going to the -default Download folder). Click here [PDF] for instructions on -how to set this up in Chrome. With Mozilla Firefox, go to Settings > -General > Files and Applications > Check box for “always ask where -to save files.”

  • +time series plots for each parameter.

    +

    After running each function, users must unzip/extract the files or +else the files won’t be seen as an option to upload for the next step. +After files are unzipped, new folders will automatically appear and the +original zipped files can be deleted if desired.

    +

    Time-saver tip: some internet browsers, like Google Chrome and +Mozilla Firefox, allow users to change settings so that users can select +which folder to download files to (versus files going to the default +Download folder). * Mozilla Firefox: go to Settings > General > +Files and Applications > Check box for “always ask where to save +files.” * Google Chrome file +saving tip [PDF]

    Some users may prefer to use the R code instead of the Shiny app. For more information, see the ‘About - Advanced’ tab

    diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a2_QCReports.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a2_QCReports.html index 7e526ea..df9cfd0 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a2_QCReports.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a2_QCReports.html @@ -3,6 +3,8 @@

    QC reports

    +

    Example QC +reports [ZIP]

    Shiny app instructions

    1. Click the ‘Browse’ button and select the input file(s) from the @@ -22,13 +24,11 @@

      QC reports

      desired.

    2. Open the QC reports. There are two types of outputs: a Word document Data Quality Control Report and a comma-delimited (.csv) -spreadsheet. The reports include results from the ‘flag’ tests (gross, -spike, rate of change and flat line), missing data checks and time -series plots. Click here [ZIP] to -download an example of a QC output. If users prefer a Hypertext Markup -Language (HTML) report instead of Word, they can change the format in -the configuration file (this requires some familiarity with R -code).

    3. +spreadsheet. If users prefer a Hypertext Markup Language (HTML) report +instead of Word, they can change the format in the configuration file +(this requires some familiarity with R code). The reports include +results from the ‘flag’ tests (gross, spike, rate of change and flat +line), missing data checks and time series plots.

    4. Review each set of files, check flagged data points, do visual checks on the time series plots, and decide if and how to make corrections. For tips on the QC process, see the ‘About - QC tips’ @@ -39,13 +39,13 @@

      QC reports

      parameter:

      1. Data file information (siteID, date range, parameters, recording -interval, QC test thresholds reference table)

      2. +interval, QC test thresholds reference table).

      3. ‘Count’ tables (# measurements/day) so that you can find inconsistencies (too few measurements (=missing data) or too many -measurements)

      4. +measurements).

      5. Results from the four ‘flag’ tests (gross, spike, rate of change and flat line) - # of entries marked as pass (P), suspect (S), fail (F), -missing data (X) or not available (NA)

      6. +missing data (X) or not available (NA).

      7. Time series plots for each individual parameter and two sets of combined parameters (water and air temperature; water temperature and water level). If the input file includes discrete/in situ values , which @@ -63,5 +63,5 @@

        QC reports

        correction.

        Currently there are no automated corrections programmed into the QC function. The user must make the changes manually. For tips on the QC -process, see the ‘About - QC tips’ subtab.

        +process, see the ‘About - Tips’ subtab.

    diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a3_Aggregate.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a3_Aggregate.html index 2db29ab..1e13100 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a3_Aggregate.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a3_Aggregate.html @@ -3,6 +3,8 @@

    Aggregate

    +

    Example Aggregate +output [ZIP]

    Shiny app instructions

    1. Click the ‘Browse’ button and select the QC’d input files that @@ -24,9 +26,9 @@

      Aggregate

      desired.

    2. Open and review the aggregated reports. As with the QC output, there are two types of outputs: a Word document Data Quality Control -Report and a comma-delimited (.csv) spreadsheet. Click here [ZIP] to download an example of an -Aggregate output. If users prefer a Hypertext Markup Language (HTML) -report instead of Word, they can change the format in the configuration -file (this requires some familiarity with R code).

    3. +Report and a comma-delimited (.csv) spreadsheet. If users prefer a +Hypertext Markup Language (HTML) report instead of Word, they can change +the format in the configuration file (this requires some familiarity +with R code).

    diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a4_SummaryStats.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a4_SummaryStats.html index ccd41e8..83bf18e 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a4_SummaryStats.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3a4_SummaryStats.html @@ -3,6 +3,8 @@

    Summary Statistics

    +

    Example Summary Stats +output [ZIP]

    Shiny app instructions

    1. Click the ‘Browse’ button and select the desired input file from @@ -24,8 +26,7 @@

      Summary Statistics

    2. Open and review the summary statistics reports. There should be two sets of CSV files and a PDF with time series plots for each parameter. One of the CSVs has daily means and the other has a wider -range of summary statistics (e.g., min, median, max, quartiles). Click -here [ZIP] to download an example of -a Summary Stats output.

    3. +range of summary statistics (e.g., min, median, max, +quartiles).

    diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c1_QCThresh_Defaults.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c1_QCThresh_Defaults.html index 4795f96..89ab554 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c1_QCThresh_Defaults.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c1_QCThresh_Defaults.html @@ -64,24 +64,15 @@

    Flag test descriptions

  • U.S. Integrated Ocean Observing System, 2017. Manual for the Use of Real-Time Oceanographic Data Quality Control Flags, Version 1.1. 43 pp. -https://cdn.ioos.noaa.gov/media/2017/12/QARTOD-Data-Flags-Manual_Final_version1.1.pdf -== $0

    - -<p>Exit EPA’s website</p> - -

    -[PDF]

  • +https://cdn.ioos.noaa.gov/media/2017/12/QARTOD-Data-Flags-Manual_Final_version1.1.pdf Exit EPA +Website [PDF]

  • Wagner, R.J., Boulger, R.W., Oblinger, C.J., Smith, B.A., 2006. Guidelines and Standard Procedures for Continuous Water-quality Monitors: Station Operation, Record Computation, and Data Reporting. U.S. Geological Survey Techniques and Methods 1-D3, 51 pp. þ 8 attachments. -http://pubs.water.usgs.gov/tm1d3 -== $0

    - -<p>Exit EPA’s website</p> - -

    .

  • +http://pubs.water.usgs.gov/tm1d3 Exit EPA +Website .

    R assigns the following flags to each data point:

      diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c2_QCThresh_Upload.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c2_QCThresh_Upload.html index 6339c2e..0728f92 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c2_QCThresh_Upload.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c2_QCThresh_Upload.html @@ -20,7 +20,9 @@

      Upload Custom Thresholds

      remember the sequencing! If you forget to upload the customized configuration file prior to running the QC function, it will use the default thresholds.

      -

      Click here [R] to -download an example of a modified configuration file that you can try -uploading to the Shiny app.

      + + diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c3_QCThresh_Eval.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c3_QCThresh_Eval.html index a706757..9e0eaa9 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c3_QCThresh_Eval.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c3_QCThresh_Eval.html @@ -4,22 +4,15 @@

      Evaluate Thresholds

      If you have one or more years of continuous data for a site, we -strongly encourage you to evaluate the performance of the QC test -thresholds for each parameter at that site and customize the -configuration file if needed.

      -

      Click here [ZIP] for -instructions on how to generate pivot tables and plots to evaluate -thresholds for the Unrealistic values (‘Gross range’) and Spike -tests.

      -

      Another option is to use R code written by Tim Martin (Minnesota DNR) -to generate statistical outputs that can help inform thresholds for all -four QC tests. Click here -[ZIP] to download the R scripts and instructions.

      -

      To aid with documentation of the threshold evaluation process, click -here [XLSX] to -download an Excel worksheet that lists the default thresholds for each -parameter and has a column where you can enter the customized values for -a given site as well as rationale for making the changes. When doing -this, make sure you consider what units you are using, since units have -a large effect on thresholds.

      +encourage you to evaluate the performance of the QC test thresholds for +each parameter at that site and customize the configuration file if +needed. Make sure you consider what units you are using, since units +have a large effect on thresholds.

      +

      Resources for evaluating thresholds: * Pivot tables and charts [ZIP] for +evaluating the Unrealistic values (‘Gross range’) and Spike tests in +Excel. * R code statistics +[ZIP] that can help inform thresholds for all four QC tests. * Threshold evaluation +worksheet [XLSX] that lists the default thresholds for each +parameter and has columns where you enter customized thresholds for one +or multiple sites.

      diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c4_QCThresh_Edit.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c4_QCThresh_Edit.html index 711d5fa..b1d0520 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c4_QCThresh_Edit.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_3c4_QCThresh_Edit.html @@ -3,14 +3,16 @@

      Edit Thresholds

      -

      Click here [PDF] -for instructions on how to edit thresholds and create customized -configuration files. There are two options (see below). For either -option, save the customized configuration file in a folder that is easy -to find so that you can reuse the file each time you QC data for that -site. It is helpful to include the StationID and other relevant -information in the file name (for example, if thresholds are customized -for a particular season).

      +

      Instructions for +editing thresholds [PDF]

      +

      There are two options for editing thresholds: * download the default +configuration file, open it in R or Notepad++, make edits and save. * +use the interactive functions at the bottom of this page.

      +

      For either option, include the StationID and other relevant +information in the file name (e.g., perhaps it’s customized for a +particular season) and save it in a folder that is easy to find since +you’ll want to reuse the file each time you QC data for that site in the +future.

      After you save the file, go to the ‘upload custom thresholds’ tab, browse to the custom thresholds file, upload the file and then, under ‘Run functions’, generate the QC reports. If you forget the upload step, @@ -28,32 +30,19 @@

      Option 1, download the default configuration file, open the file in

      Navigate to the ‘QC tests and calculations’ section of the configuration file, which is about halfway through the file. Edit thresholds as desired. Save the file.

      -When you download the configuration file(s), you will see two types of -files: an R file (.R) and a text (.txt) file for users who do not have R -installed on their computer. You can download R from this website: -https://cran.r-project.org -== $0 - -Exit EPA’s website - -. -You may also want to download -RStudio -== $0 - -Exit EPA’s website - -, -which is a separate program but is a useful code editor and interface -(IDE) for R. If you cannot install R on your computer, we recommend use -Notepad or -Notepad++ -== $0 - -Exit EPA’s website - -

      -(some people prefer Notepad++ because it has color-coding).

      +

      When you download the configuration file(s), you will see two types +of files: an R file (.R) and a text (.txt) file for users who do not +have R installed on their computer. You can download R from this +website: +https://cran.r-project.org Exit EPA +Website . You may also want to download +RStudio Exit EPA +Website , which is a separate program but is a useful +code editor and interface (IDE) for R. If you cannot install R on your +computer, we recommend use Notepad or +Notepad++ Exit EPA +Website (some people prefer Notepad++ because it has +color-coding).

      Option 2, use the interactive functions.

      @@ -124,7 +113,5 @@

      Option 2, use the interactive functions.

      If you do not want to use the default units, you will need to use Option 1.

      -

      Acknowledgment: Tim Martin (MN DNR) wrote the R code that we used for -the interactive functions below.

      diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_4_USGSgage.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_4_USGSgage.html index 0afef7f..c57d2cd 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_4_USGSgage.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_4_USGSgage.html @@ -3,13 +3,11 @@

      Instructions

      -You can find USGS gage locations and IDs using the -NWIS -Mapper == $0 - -Exit EPA’s website - -

      .

      +

      You can find USGS gage locations and IDs using the +NWIS +Mapper + +Exit EPA Website .

      To download data:

      1. Enter as many USGS station IDs as desired, separated by commas diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_9_Status.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_9_Status.html index bc66a69..5b13e6a 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_9_Status.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_9_Status.html @@ -5,17 +5,13 @@

        Status

        Who to contact if you have problems or comments

        -This is an open-source, collaborative effort and we welcome your +

        This is an open-source, collaborative effort and we welcome your feedback. If you encounter problems with the Shiny app and/or have suggestions on ways to further improve it, please contact Erik W. Leppo from Tetra Tech via email () or via a post on the ContDataQC GitHub page -(https://github.com/leppott/ContDataQC/discussions -== $0 - -Exit EPA’s website - -

        ).

        +(https://github.com/leppott/ContDataQC/discussions Exit EPA +Website ).

        Experience to date

        @@ -116,59 +112,38 @@

        Plans for 2021-2022

    Other R packages and Shiny apps that may be of interest

    -Tim Martin from Minnesota DNR () has been a great collaborator +

    Tim Martin from Minnesota DNR () has been a great collaborator and has developed a QC app that includes the ContData QC flag tests as well as some other features (including an interactive plot in which data points are color-coded based on flags and the user can add or remove flags). The app is currently being hosted on the Tetra Tech Shiny server - -https://tetratech-wtr-wne.shinyapps.io/logger_processing/ -== $0 - -Exit EPA’s website - -

    -If you use the app, Tim welcomes your feedback!

    -For summary and visualization of continuous lake data, we’re actively +https://tetratech-wtr-wne.shinyapps.io/logger_processing/ Exit EPA +Website If you use the app, Tim welcomes your +feedback!

    +

    For summary and visualization of continuous lake data, we’re actively working on LakeMonitoR - R package - -https://leppott.github.io/LakeMonitoR/ -== $0 - -Exit EPA’s website - - -Shiny app - -https://tetratech-wtr-wne.shinyapps.io/LakeMonitoR/ -== $0 - -Exit EPA’s website - -

    -This work is being funded by Shane Bowe from the Red Lake Band of +https://leppott.github.io/LakeMonitoR/ Exit EPA +Website Shiny app - +https://nalms.shinyapps.io/LakeMonitoR/ Exit EPA +Website

    +

    This work is being funded by Shane Bowe from the Red Lake Band of Chippewa Indians (via a BIA grant) and EPA ORD.

    Over the coming year, we’ll also be working on new tools for summarizing and visualizing the stream RMN data (thermal, hydrologic and biological data).

    -There are other existing software programs for working with continuous -data. One example is the open source Python-based tool by Horsburgh et -al. (2015), which provides a data quality control work flow, allows for -flagging of data based on visual inspection, can apply drift corrections -and interpolate missing values (if desired) and saves both original and -edited data for documentation. Other existing software options include a -sensorQC R package by USGS -(https://github.com/USGS-R/sensorQC -== $0 - -Exit EPA’s website - -) -and rLakeAnalyzer (Read et al. 2011, Winslow et al. 2018) -(https://CRAN.R-project.org/package=rLakeAnalyzer -== $0 - -Exit EPA’s website - -

    ), -which have statistical outlier detection tools.

    +

    There are other existing software programs for working with +continuous data. One example is the open source Python-based tool by +Horsburgh et al. (2015), which provides a data quality control work +flow, allows for flagging of data based on visual inspection, can apply +drift corrections and interpolate missing values (if desired) and saves +both original and edited data for documentation. Other existing software +options include a sensorQC R package by USGS +(https://github.com/USGS-R/sensorQC Exit EPA +Website ) and rLakeAnalyzer (Read et al. 2011, +Winslow et al. 2018) +(https://CRAN.R-project.org/package=rLakeAnalyzer Exit EPA +Website ), which have statistical outlier detection +tools.