From 0b63a352cfed8e81758562f64cebfbe6e77e3daf Mon Sep 17 00:00:00 2001 From: Erik Leppo Date: Tue, 20 Feb 2024 16:14:18 -0500 Subject: [PATCH] v2.0.7.9030 - refactor: Text updates on most tabs of Shiny app - refactor: Remove Troubleshooting info in Shiny app, except for Console - refactor: Figures of tables to tables in Shiny app, Issue \#157 --- NEWS | 10 +- NEWS.md | 10 +- NEWS.rmd | 7 + .../external/tab_5_Troubleshooting.R | 18 +- inst/shiny-examples/ContDataQC/global.R | 2 +- .../ContDataQC/rmd/App_1a_Overview.html | 168 ----- .../ContDataQC/rmd/App_1a_Overview.rmd | 12 +- .../ContDataQC/rmd/App_1b_TestData.rmd | 8 +- .../ContDataQC/rmd/App_1c_FAQ.rmd | 73 +- .../ContDataQC/rmd/App_1d_Tips.rmd | 33 +- .../ContDataQC/rmd/App_1e_Advanced.rmd | 19 +- .../ContDataQC/rmd/App_1f_RelatedApps.rmd | 35 +- .../ContDataQC/rmd/App_2a1_HOBO.rmd | 51 ++ .../ContDataQC/rmd/App_2a2_miniDOT1.Rmd | 25 +- .../ContDataQC/rmd/App_2a3_miniDOT2.Rmd | 50 +- .../ContDataQC/rmd/App_2a_FormattingFiles.rmd | 2 +- .../ContDataQC/rmd/App_2b_OrganizingFiles.rmd | 26 +- .../ContDataQC/rmd/App_2c_NamingFiles.rmd | 52 +- .../ContDataQC/rmd/App_2cz_DiscreteData.rmd | 8 +- .../ContDataQC/rmd/App_3a4_SummaryStats.rmd | 4 +- .../rmd/App_3c2_QCThresh_Upload.rmd | 8 +- .../ContDataQC/rmd/App_3c3_QCThresh_Eval.rmd | 4 +- .../ContDataQC/rmd/App_3c4_QCThresh_Edit.rmd | 15 +- .../ContDataQC/rmd/App_4_USGSgage.rmd | 10 +- .../ContDataQC/rmd/App_5a_Troubleshooting.Rmd | 24 - .../ContDataQC/rmd/App_5b_Console.rmd | 4 +- .../ContDataQC/rmd/App_5c_Contact.rmd | 24 - .../rmd/tables/FileNaming_Lakes_20240131.xlsx | Bin 0 -> 8906 bytes .../tables/FileNaming_Streams_20240131.xlsx | Bin 0 -> 8925 bytes .../tables/HOBOreformat_AFTER_20240131.xlsx | Bin 0 -> 9755 bytes .../tables/HOBOreformat_BEFORE_20240131.xlsx | Bin 0 -> 9533 bytes .../miniDOT_After_Concatenate_20240131.xlsx | Bin 0 -> 9899 bytes .../miniDOTreformat_ AFTER_20240131.xlsx | Bin 0 -> 9786 bytes .../miniDOTreformat_ BEFORE_20240131.xlsx | Bin 0 -> 9899 bytes .../www/RMD_HTML/App_1a_Overview.html | 19 +- .../www/RMD_HTML/App_1b_TestData.html | 10 +- .../ContDataQC/www/RMD_HTML/App_1c_FAQ.html | 153 ++--- .../ContDataQC/www/RMD_HTML/App_1d_Tips.html | 51 +- .../www/RMD_HTML/App_1e_Advanced.html | 27 +- .../www/RMD_HTML/App_1f_RelatedApps.html | 55 +- .../ContDataQC/www/RMD_HTML/App_2a1_HOBO.html | 640 ++++++++++++++++++ .../www/RMD_HTML/App_2a2_miniDOT1.html | 326 ++++++++- .../www/RMD_HTML/App_2a3_miniDOT2.html | 538 ++++++++++++++- .../www/RMD_HTML/App_2a_FormattingFiles.html | 2 +- .../www/RMD_HTML/App_2b_OrganizingFiles.html | 20 +- .../www/RMD_HTML/App_2c_NamingFiles.html | 85 ++- .../www/RMD_HTML/App_2cz_DiscreteData.html | 25 +- .../www/RMD_HTML/App_3a4_SummaryStats.html | 4 +- .../www/RMD_HTML/App_3c2_QCThresh_Upload.html | 15 +- .../www/RMD_HTML/App_3c3_QCThresh_Eval.html | 4 +- .../www/RMD_HTML/App_3c4_QCThresh_Edit.html | 18 +- .../www/RMD_HTML/App_4_USGSgage.html | 11 +- .../www/RMD_HTML/App_5b_Console.html | 4 +- 53 files changed, 2036 insertions(+), 673 deletions(-) delete mode 100644 inst/shiny-examples/ContDataQC/rmd/App_1a_Overview.html delete mode 100644 inst/shiny-examples/ContDataQC/rmd/App_5a_Troubleshooting.Rmd delete mode 100644 inst/shiny-examples/ContDataQC/rmd/App_5c_Contact.rmd create mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/FileNaming_Lakes_20240131.xlsx create mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/FileNaming_Streams_20240131.xlsx create mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/HOBOreformat_AFTER_20240131.xlsx create mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/HOBOreformat_BEFORE_20240131.xlsx create mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/miniDOT_After_Concatenate_20240131.xlsx create mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/miniDOTreformat_ AFTER_20240131.xlsx create mode 100644 inst/shiny-examples/ContDataQC/rmd/tables/miniDOTreformat_ BEFORE_20240131.xlsx diff --git a/NEWS b/NEWS index c8b4ee8..9b8395b 100644 --- a/NEWS +++ b/NEWS @@ -3,10 +3,18 @@ NEWS-ContDataQC - #> Last Update: 2024-01-31 18:26:09.974138 + #> Last Update: 2024-02-20 16:10:16.725919 # Version History +## v2.0.7.9030 + +2024-02-20 + +- refactor: Text updates on most tabs of Shiny app +- refactor: Remove Troubleshooting info in Shiny app, except for Console +- refactor: Figures of tables to tables in Shiny app, Issue \#157 + ## v2.0.7.9029 2024-01-31 diff --git a/NEWS.md b/NEWS.md index c8b4ee8..9b8395b 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,10 +3,18 @@ NEWS-ContDataQC - #> Last Update: 2024-01-31 18:26:09.974138 + #> Last Update: 2024-02-20 16:10:16.725919 # Version History +## v2.0.7.9030 + +2024-02-20 + +- refactor: Text updates on most tabs of Shiny app +- refactor: Remove Troubleshooting info in Shiny app, except for Console +- refactor: Figures of tables to tables in Shiny app, Issue \#157 + ## v2.0.7.9029 2024-01-31 diff --git a/NEWS.rmd b/NEWS.rmd index ee7f17e..2f84448 100644 --- a/NEWS.rmd +++ b/NEWS.rmd @@ -21,6 +21,13 @@ cat(paste0("Last Update: ",Sys.time())) # Version History +## v2.0.7.9030 +2024-02-20 + +* refactor: Text updates on most tabs of Shiny app +* refactor: Remove Troubleshooting info in Shiny app, except for Console +* refactor: Figures of tables to tables in Shiny app, Issue #157 + ## v2.0.7.9029 2024-01-31 diff --git a/inst/shiny-examples/ContDataQC/external/tab_5_Troubleshooting.R b/inst/shiny-examples/ContDataQC/external/tab_5_Troubleshooting.R index 2680d46..94626b6 100644 --- a/inst/shiny-examples/ContDataQC/external/tab_5_Troubleshooting.R +++ b/inst/shiny-examples/ContDataQC/external/tab_5_Troubleshooting.R @@ -4,12 +4,12 @@ function() { tabPanel("Troubleshooting" , mainPanel( tabsetPanel(type = "tabs" - , tabPanel("Troubleshooting" - ,includeHTML("www/RMD_HTML/App_5a_Troubleshooting.html") - # ,tableOutput("logText") - # ,tableOutput("logTextUSGS") - # ,tags$b(textOutput("logTextMessage") - ) + # , tabPanel("Troubleshooting" + # ,includeHTML("www/RMD_HTML/App_5a_Troubleshooting.html") + # # ,tableOutput("logText") + # # ,tableOutput("logTextUSGS") + # # ,tags$b(textOutput("logTextMessage") + # ) , tabPanel("Console" ,includeHTML("www/RMD_HTML/App_5b_Console.html") @@ -17,9 +17,9 @@ function() { ,tableOutput("logTextUSGS") ,tags$b(textOutput("logTextMessage")) )##tabPanel - , tabPanel("Contact Info" - ,includeHTML("www/RMD_HTML/App_5c_Contact.html") - )##tabPanel + # , tabPanel("Contact Info" + # ,includeHTML("www/RMD_HTML/App_5c_Contact.html") + # )##tabPanel )##tabsetPanel )##mainPanel )##tabPanel diff --git a/inst/shiny-examples/ContDataQC/global.R b/inst/shiny-examples/ContDataQC/global.R index 7a7b313..5392d20 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.9029" +version <- "2.0.7.9030" #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.html b/inst/shiny-examples/ContDataQC/rmd/App_1a_Overview.html deleted file mode 100644 index d9c870b..0000000 --- a/inst/shiny-examples/ContDataQC/rmd/App_1a_Overview.html +++ /dev/null @@ -1,168 +0,0 @@ - - - -
-

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.

-

GitHub

-GitHub - -Exit EPA’s 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.

-
-
-

ContDataQC Shiny App Workflow

-

The figure below lays out the general workflow for using the -ContDataQC R tools. Items in bold blue text show functions that can be -performed with ContDataQC.

-

Want to try it yourself? Click here [R] to download test -files.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Action - -Main Tab - -Subtab(s) -
-Organize sensor files - -Data Preparation - -Organizing Files -
-Name sensor files - -Data Preparation - -Naming Files -
-Format sensor files - -Data Preparation - -Formatting Files, Automated Reformatting -
-Evaluate QC test thresholds - -Main Functions - -QC Thresholds - Evaluate Thresholds -
-Customize thresholds if necessary - -Main Functions - -QC Thresholds - Edit Thresholds -
-Save and upload customized configuration file (if needed) - -Main Functions - -QC Thresholds - Upload Custom Thresholds -
-Generate QC reports; review results; remove or correct data points as -needed - -Main Functions - -Run Functions - QC Raw Data -
-Combine QC’d data files from the same site/different time periods into a -single file - -Main Functions - -Run Functions - Aggregate QC’d data -
-Generate summary and visualization outputs - -Main Functions - -Run Functions - Summary Statistics -
-
-
-

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 (lead -EPA scientist: Britta Bierwagen). 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.

-
diff --git a/inst/shiny-examples/ContDataQC/rmd/App_1a_Overview.rmd b/inst/shiny-examples/ContDataQC/rmd/App_1a_Overview.rmd index 47bff44..da05c55 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_1a_Overview.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_1a_Overview.rmd @@ -24,17 +24,14 @@ 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 (Erik.Leppo@tetratech.com) and is +developed by Erik W. Leppo from Tetra Tech and is available on GitHub == $0 Exit EPA's 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. # ContDataQC Shiny App Workflow -The figure below lays out the general workflow for using the ContDataQC R tools. Items in bold blue text show functions that can be performed with ContDataQC. - -Want to try it yourself? Click [here](Custom_QC_Config_ECO66G20_test1.R) [R] to -download test files. +The table below lays out the general workflow for using ContDataQC. ```{r} library(readxl) @@ -61,9 +58,8 @@ table %>% 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 (lead EPA scientist: Britta Bierwagen). The +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. - +stream Regional Monitoring Networks report == $0 Exit EPA's website. \ No newline at end of file diff --git a/inst/shiny-examples/ContDataQC/rmd/App_1b_TestData.rmd b/inst/shiny-examples/ContDataQC/rmd/App_1b_TestData.rmd index cf9f7ca..f9ecb87 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_1b_TestData.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_1b_TestData.rmd @@ -20,11 +20,11 @@ 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. We are happy to add more test data to this website. If you have example files that you would like to contribute, please send them to Jen Stamp ([Jen.Stamp\@tetratech.com](mailto:Jen.Stamp@tetratech.com){.email}). +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](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. +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** @@ -32,7 +32,7 @@ The test data consist of two comma-separated values (CSV) files. The files are f * **Completed** - + 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 R tool yourself. + + 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 @@ -42,4 +42,4 @@ You’ll see two sets of folders. Within each folder are example input and outpu * **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. -* **miniDOT_reformat** – run the combined file through the Reformat function. The function reformats the file so that it is ready to run through the QC report function. Next, go to the Main **Functions-Import Files**s tab, import the reformatted file, run it through the ‘QC raw data’ function, and check the flagged data (edit if needed). +* **miniDOT_reformat** – run the combined file through the Reformat function. The function reformats the file so that it is ready to run through the QC report function. Next, go to the Main **Functions-Import Files**s tab, import the reformatted file, run it through the ‘QC raw data’ function, and check the flagged data (edit if needed). \ No newline at end of file diff --git a/inst/shiny-examples/ContDataQC/rmd/App_1c_FAQ.rmd b/inst/shiny-examples/ContDataQC/rmd/App_1c_FAQ.rmd index f2a371f..511a103 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_1c_FAQ.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_1c_FAQ.rmd @@ -1,5 +1,5 @@ --- -title: "FAQ" +title: "Basic Information" date: "`r format(Sys.time(), '%Y-%m-%d %H:%M:%S')`" always_allow_html: true output: @@ -17,72 +17,31 @@ if(boo_DEBUG==TRUE){ }## IF ~ boo_DEBUG ~ END ``` -# Frequently asked questions +# Basic Information -**Q: Do I need R software installed on my computer to run the online version of the Shiny app?** +**Requirements:** You do not need R software installed on your computer to run this Shiny app. You only need an internet connection. -A: No, only internet access is required. +**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. -**Q: I have slow internet speed. Is there a way to run the Shiny app off my local computer to speed things up?** +**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. -A: Yes, if you have R software installed on your computer, you can run ContDataQC as a Shiny app on your local computer and it will likely be faster. +**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. -The Shiny app is available as part of the ContDataQC R package. The GitHub == $0 Exit EPA's website includes -install directions for R. +**Limits on input file(s):** The input file size limit is currently set to 70 MB. This can be increased upon request. There is no limit on the number of files you can upload but the more files you run at once, the longer the processing time. It's often faster and easier to run smaller batches (for example, 4 smaller batches of 1 to 5 files versus 20 files all at once). -**Q: What internet browsers is this website compatible with?** +**Security:** Other people cannot see or download your files from the website. Each time the application is run it is independent from all other versions. That is, each user has their own copy of the app. Once the browser is closed, that version is removed from the server along with all of the uploaded data. -A: It 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. +**Simultaneous use:** Because this Shiny app is on a Shiny server, multiple people can use it at the same time. -**Q: Why isn't my spreadsheet processing? The screen grays out and says 'disconnected from the server'.** +**Customizing QC test thresholds:** Instructions on how to evaluate and customize thresholds can be found on the Main Functions-QC Thresholds page. -A: Your input file may not be formatted correctly. Start by checking that. If you don't find anything, send your input file(s) and a copy of your error message to Erik Leppo ([Erik.Leppo\@tetratech.com](mailto:Erik.Leppo@tetratech.com){.email}) and he'll do his best to help you troubleshoot. It could also be the Shiny app. Sometimes after we fix or update one thing, something else stops working, or R software makes an update which throws something in our code off. +**Usability on phones:** Mobile use of this app is possible although the screen size of a phone may make it impractical. -**Q: Is there a size limit on how big a file (or files) I can upload?** +**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 -A: The limit is currently set to 70 MB but we can increase that if needed (email Erik Leppo ([Erik.Leppo\@tetratech.com](mailto:Erik.Leppo@tetratech.com){.email}) with your request). +R code: https://github.com/USEPA/dmap-ContDataQCSumViz == $0 Exit EPA's website -**Q: What's the limit on the number of spreadsheets I can upload?** +**Downloading USGS gage data:**You can simultaneously download data from different USGS gages but only for the same time period. -A: There is no limit but the more files you run at once, the longer the processing time. We find it's often faster and easier to run smaller batches (for example, 4 smaller batches of 1 to 5 files versus 20 files all at once) but it's up to the user. - -**Q: Can other people download my files from the website?** - -A: No, each time the application is run it is independent from all other versions. That is, each user has their own copy of the app. Once the browser is closed that version is removed from the server along with all of the uploaded data. - -**Q: Can multiple people use this website simultaneously?** - -A: Yes, because it is on a Shiny server, multiple people can use it at the same time. - -**Q: Can I use this website on my phone?** - -A: Mobile use of this app is possible. A tablet should be fine but the screen size of a phone may make it impractical. - -**Q: What if I run the aggregate function on input files with overlapping date ranges? Are all records (even duplicates) included in the output?** - -A: Yes, the Shiny app will include all records, even the duplicates. 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. - -**Q: What if there are discrepancies between the SiteID and date ranges in the file name versus what's in the actual file?** - -A: The tool will still work. The output file names will use the site IDs and date ranges in the input file names. The output spreadsheets themselves will use the site IDs and date ranges inside the files (i.e. the dates of the first and last rows of each input file). Nevertheless, it is good practice to have both things match. - -**Q: What will happen if I accidentally run the wrong process on my input files (e.g., you run the QC operation but had intended to run the Aggregate function)?** - -A: Either the tool won't run at all or it will produce output files with weird names (e.g., if you run the QC operation on files you've already run through the QC operation, you'll get output files that start with the name 'QC_QC\_'). - -**Q: Can I change the QC test thresholds that the QC process uses?** - -A: Yes, visit the 'Customize QC Thresholds' tab. - -**Q: Can I simultaneously download data from different USGS gages for different time periods?** - -A: Not at this time. Currently, all USGS gages you enter will have data downloaded over the same time period. - -**Q: Are you working on a Shiny app that offers more options for data summary and visualization?** - -A: Yes, a beta version of the ContDataSumViz app is currently available (for more -information contact Tom Faber (EPA Region 1): [Faber.Tom\@epa.gov](mailto:Faber.Tom@epa.gov){.email} ). In addition, for lakes, the beta version of the LakeMonitoR -R package == $0 Exit EPA's website -and -Shiny app == $0 Exit EPA's website -are available. +**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 diff --git a/inst/shiny-examples/ContDataQC/rmd/App_1d_Tips.rmd b/inst/shiny-examples/ContDataQC/rmd/App_1d_Tips.rmd index a956d8f..ba22905 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_1d_Tips.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_1d_Tips.rmd @@ -20,19 +20,13 @@ if(boo_DEBUG==TRUE){ # QC Tips Below are instructional materials and links to resources we have compiled as we -continue to gain experience QCing continuous data. To date, we have worked -primarily with thermal and hydrologic data, and more recently, dissolved oxygen +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. -If you have any questions, feedback on ways to improve this process or -suggestions on additional materials that you feel would be helpful to share, -please contact Jen Stamp (Jen.Stamp@tetratech.com). +## Data edits -## Data corrections - -If you are processing data for the RMNs, we are currently recommending the -following approach +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 - * 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 @@ -41,18 +35,18 @@ their analysis. * 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 the list of data qualifiers currently being used by RMN partners. +download a list of example data qualifiers. * Leave missing data cells blank. ## Workflow -Click [here](Workflow_QC_report_20220824.pdf) [PDF] for recommendations on a workflow +Click [here](Workflow_QC_report_20220824.pdf) [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, [here](Workflow_DataPileup_20220824.pdf) [PDF] -is a recommended workflow. +how to most efficiently QC the files, click [here](Workflow_DataPileup_20220824.pdf) [PDF] +for a description of a workflow that has worked well. 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 @@ -80,21 +74,20 @@ 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 being kept by an RMN partner. +check worksheet. ## 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. We will continue to add slides to -this as we receive materials. +leaf packs, dewatering, and dead batteries. ## Checking sensor data against other data sources -This is optional but encouraged if time permits. Click [here](Daymet_Wx_Gage.zip) [ZIP] for instructional -materials from David Smith (Kentucky Division of Water) on how he has been -downloading data from nearby weather stations and USGS gages, as well as modeled +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 his QC process. +), and comparing those data to sensor measurements as part of their QC process. +Click [here](Daymet_Wx_Gage.zip) [ZIP] for instructional materials. + diff --git a/inst/shiny-examples/ContDataQC/rmd/App_1e_Advanced.rmd b/inst/shiny-examples/ContDataQC/rmd/App_1e_Advanced.rmd index dfc8777..b43a515 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_1e_Advanced.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_1e_Advanced.rmd @@ -18,20 +18,7 @@ if(boo_DEBUG==TRUE){ ``` # Advanced -Some users may prefer to use the -R code == $0 Exit EPA's website -instead of the Shiny app. The example code in Figure 1 shows how to run the main -functions when using the default settings in the R package. After the user -directs R to the correct directories and selects the operation (QCRaw, Aggregate -or SummaryStats), there are several places in the code where the user needs to -make entries (e.g., SiteID, sensor type, and start/end date). R will read -through the file names in the directory, select files that match the criteria -and generate outputs for each input file that matches the criteria. +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. -Users with intermediate to advanced-level R 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]. Users -have more flexibility using the Shiny app versus R package when it comes to -setting directories and file naming schemes because they can browse to the -desired input file(s). +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 diff --git a/inst/shiny-examples/ContDataQC/rmd/App_1f_RelatedApps.rmd b/inst/shiny-examples/ContDataQC/rmd/App_1f_RelatedApps.rmd index 078015f..b3fdef1 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_1f_RelatedApps.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_1f_RelatedApps.rmd @@ -27,9 +27,7 @@ Shiny app (beta version): https://github.com/USEPA/dmap-ContDataQCSumViz == $0 Exit EPA's website -Primary contact: [Faber.Tom\@epa.gov](mailto:Faber.Tom@epa.gov){.email} - -### Logger Processing App, for processing, organizing, and vetting continuous environmental logger data. +### 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. @@ -37,28 +35,14 @@ Shiny app: https://github.com/mnsentinellakes/logger_processing == $0 Exit EPA's website -Primary contact: [tim.martin\@state.mn.us](mailto:tim.martin@state.mn.us){.email} - -### LakeMonitoR, for summarizing and visualizing QC’d continuous vertical profile data for lakes. +### LakeMonitoR, for summarizing and visualizing QC’d continuous vertical profile data for lakes -Several of its outputs are based on the rLakeAnalyzer R package. +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 GitHub: https://github.com/leppott/LakeMonitoR/ == $0 Exit EPA's website -Primary point of contact: [Erik.Leppo\@tetratech.com](mailto:Erik.Leppo@tetratech.com){.email} - -### 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 - -Primary contact: [Jen.Stamp\@tetratech.com](mailto:Jen.Stamp@tetratech.com){.email} - -### 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/ - ### rLakeAnalyzer, an R package for summarizing and visualizing continuous vertical profile data for lakes Read, J.S., Hamilton, D.P., Jones, I.D., Muraoka, K., Winslow, L.A., Kroiss, R., Wu, C.H., Gaiser, E., 2011. Derivation of lake mixing and stratification indices from high-resolution lake buoy data. Environmental Modelling & Software 26: 1325e1336. @@ -67,6 +51,14 @@ Winslow, L, J. Read, R. Woolway, J. Brentrup, T. Leach, J. Zwart, S. Albers, an Available online: https://CRAN.R-project.org/package=rLakeAnalyzer == $0 Exit EPA's 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 + +### 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/ + ### 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. @@ -80,7 +72,4 @@ Shaughnessy, A.R., Prener, C.G. and E.A. Hasenmueller. 2019. An R package for co 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 - - - +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 diff --git a/inst/shiny-examples/ContDataQC/rmd/App_2a1_HOBO.rmd b/inst/shiny-examples/ContDataQC/rmd/App_2a1_HOBO.rmd index e330c26..916fb4e 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_2a1_HOBO.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_2a1_HOBO.rmd @@ -78,3 +78,54 @@ message). * Two serial numbers in the column heading (you should only have one S/N; make sure under Preferences-Export settings, you only have the ‘include logger serial number’ box checked, NOT the ‘include sensor serial number or label if available’ box) +## Example +Running the HOBOware reformat function on a HOBO U20 water level logger file. + +**Before** + +```{r} +library(readxl) +library(knitr) +library(kableExtra) +# state directories +table.dir <- "tables" +table.file <- "HOBOreformat_BEFORE_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) +# Munge +## remove extra colnames +colnames(table)[2:6] <- "" + +options(knitr.kable.NA = '') +# kable(table1) +table %>% + kbl() %>% + kable_styling(full_width = F, position = "left") + +cat("\n\n") +``` + +**After** + +```{r} +library(readxl) +library(knitr) +library(kableExtra) +# state directories +table.dir <- "tables" +table.file <- "HOBOreformat_AFTER_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") +``` diff --git a/inst/shiny-examples/ContDataQC/rmd/App_2a2_miniDOT1.Rmd b/inst/shiny-examples/ContDataQC/rmd/App_2a2_miniDOT1.Rmd index f53727a..bb7db90 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_2a2_miniDOT1.Rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_2a2_miniDOT1.Rmd @@ -38,8 +38,27 @@ download miniDOT DO test files. provided to calculate DO percent saturation. For more information, please see miniDOT manual or contact the miniDOT support team. -## Examples +## Example -Example image after performing the **Concatenate** function. +Example table after performing the **Concatenate** function. -![Concatenated miniDOT file](RMD_Images/miniDOT_2cat.png) + +```{r} +library(readxl) +library(knitr) +library(kableExtra) +# state directories +table.dir <- "tables" +table.file <- "miniDOT_After_Concatenate_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") +``` diff --git a/inst/shiny-examples/ContDataQC/rmd/App_2a3_miniDOT2.Rmd b/inst/shiny-examples/ContDataQC/rmd/App_2a3_miniDOT2.Rmd index 70bf691..727e155 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_2a3_miniDOT2.Rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_2a3_miniDOT2.Rmd @@ -53,11 +53,53 @@ ready to run through the QC report function. provided to calculate DO percent saturation. For more information, please see miniDOT manual or contact the miniDOT support team. -## Examples +## Example -Example image before after performing the **Reformat** function. +Example table before after performing the **Reformat** function. -![Concatenated miniDOT file](RMD_Images/miniDOT_2cat.png) +**Before** +```{r} +library(readxl) +library(knitr) +library(kableExtra) +# state directories +table.dir <- "tables" +table.file <- "miniDOTreformat_ BEFORE_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") + +cat("\n\n") +``` + +**After** + +```{r} +library(readxl) +library(knitr) +library(kableExtra) +# state directories +table.dir <- "tables" +table.file <- "miniDOTreformat_ AFTER_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") +``` -![Reformated miniDOT file](RMD_Images/miniDOT_3reformat.png) diff --git a/inst/shiny-examples/ContDataQC/rmd/App_2a_FormattingFiles.rmd b/inst/shiny-examples/ContDataQC/rmd/App_2a_FormattingFiles.rmd index 9887d71..ea32b56 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_2a_FormattingFiles.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_2a_FormattingFiles.rmd @@ -35,7 +35,7 @@ Input files need to be formatted a specific way in order for the Shiny app and R * For units, slashes, spaces or periods (e.g., DO mg/L, DO.mg.L or DO mg L) are acceptable. Do NOT use parentheses. -* Advanced R users can add new parameters (beyond the ones show in the table below) to the configuration file. +* Advanced users can add new parameters (beyond the ones show in the table below) to the configuration file. * Optional fields include rowID, logger ID (serial number) and discrete measurements. Discrete (in situ) measurements can be entered for any parameter (just add ‘Discrete’ to the beginning of the column heading; for example, ‘Discrete Air Temp C’). The discrete data point will be included in the time series plots that are generated when the user runs the QC function. If using Onset HOBO sensors, you can save time by using the automated reformat function ('Data Preparation - Automated Formatting - HOBOware reformat' tab). diff --git a/inst/shiny-examples/ContDataQC/rmd/App_2b_OrganizingFiles.rmd b/inst/shiny-examples/ContDataQC/rmd/App_2b_OrganizingFiles.rmd index 6019715..6c335d2 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_2b_OrganizingFiles.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_2b_OrganizingFiles.rmd @@ -19,28 +19,10 @@ if (boo_DEBUG == TRUE) { # Organizing Files -If you do not already have a good system for organizing continuous data files, -we recommend setting up folders as shown below as a starting point. Folders and -files can be customized as you gain more experience. The files should be backed -up regularly and accessible to other members of your data management team. +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. -Click [here](SiteX_20230828.zip) [ZIP] to download a zipped file with a -ready-made set of (empty) folders. Put the file in the desired location, 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. -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 R users can modify the default directories by -editing the configuration file. - -```{r, echo=FALSE, out.width="60%"} -knitr::include_graphics("RMD_Images/Fig_Organizing_v1_20210616.png") -``` ### Folder descriptions ```{r table_1} @@ -61,6 +43,4 @@ options(knitr.kable.NA = '') table2a %>% kbl() %>% kable_styling(full_width = F, position = "left") -``` - -Click [here](EXAMPLE_AccuracyCheckWkst.xlsx) [XLSX] to download example Accuracy Check worksheet. +``` \ No newline at end of file diff --git a/inst/shiny-examples/ContDataQC/rmd/App_2c_NamingFiles.rmd b/inst/shiny-examples/ContDataQC/rmd/App_2c_NamingFiles.rmd index 8303c89..3f13d9c 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_2c_NamingFiles.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_2c_NamingFiles.rmd @@ -67,4 +67,54 @@ TEMP, as shown in the example above, or DataType = DO). Below are examples of files that follow the recommended naming scheme. -![Example files following recommended naming scheme](RMD_Images/Fig_NamingFiles_v1_20210617.png) +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") +``` + + + diff --git a/inst/shiny-examples/ContDataQC/rmd/App_2cz_DiscreteData.rmd b/inst/shiny-examples/ContDataQC/rmd/App_2cz_DiscreteData.rmd index 3da06f8..0b9d971 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_2cz_DiscreteData.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_2cz_DiscreteData.rmd @@ -21,8 +21,12 @@ if(boo_DEBUG==TRUE){ # Discrete Data -Discrete (in situ) measurements can be entered for any parameter. This needs to be done manually after the input file has been formatted (for example, after a HOBO file has been run through the Reformat function). Just add a new column into the input file and use the following naming scheme for the column heading: parameter name and units, with ‘Discrete’ at the beginning (for example, ‘Discrete Air Temp C’). The discrete data point(s) will be included in the time series plots in the Word or html QC reports that are generated when the user runs the QC function (below is an example). +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 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 being kept by an RMN partner. +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 ![Example QC plot with discrete data](RMD_Images/2.3_Discrete_Fig1_20230828.jpg) diff --git a/inst/shiny-examples/ContDataQC/rmd/App_3a4_SummaryStats.rmd b/inst/shiny-examples/ContDataQC/rmd/App_3a4_SummaryStats.rmd index 17f43ad..ee667d7 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_3a4_SummaryStats.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_3a4_SummaryStats.rmd @@ -26,12 +26,12 @@ 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 +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 ‘SummaryStats.date_time.’ Save it in the Data4_Stats folder +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. 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 596edce..c441632 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_3c2_QCThresh_Upload.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_3c2_QCThresh_Upload.rmd @@ -22,15 +22,13 @@ 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 n -o longer want to use the customized file. +default configuration file. Do not click this unless you change your mind and no longer want to use the customized file. -Go to the ‘Main 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 or html QC report and scroll to the ‘Thresholds, Quick Reference’ table (in the middle section of the report). Verify that the correct thresholds were used. +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. -Want to try this yourself? Click [here](Custom_QC_Config_ECO66G20_test1.R) [R] to -download a test file. +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. 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 7b5f0f9..5ae5fa5 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_3c3_QCThresh_Eval.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_3c3_QCThresh_Eval.rmd @@ -35,6 +35,4 @@ 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 -(as well as what the defaults are), since units have a large effect on -thresholds. +the changes. When doing this, make sure you consider what units you are using, since units have a large effect on thresholds. 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 b8cfdef..3ce785c 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_3c4_QCThresh_Edit.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_3c4_QCThresh_Edit.rmd @@ -28,7 +28,7 @@ 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 'Main functions', +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. @@ -36,10 +36,11 @@ thresholds will be used. Configuration files can be downloaded here - -* [Default](Config_default.zip) [ZIP], with hydrologic parameters in feet +* [Default](Config_default.zip) [ZIP], with hydrologic parameters in feet. -* [Hydrologic parameters in meters](Config_Lakes_meters.zip) [ZIP] -Navigate to the ‘QC tests and calculations’ section. Edit thresholds as desired. Save the file. +* [Hydrologic parameters in meters](Config_Lakes_meters.zip) [ZIP]. + +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 @@ -59,11 +60,7 @@ R. If you cannot install R on your computer, we recommend use Notepad or * Edit thresholds using the boxes below -* After you make changes for each parameter, click ‘save changes’ as you go -(otherwise when you switch to a different parameter, it won’t save the changes -you made to the previous parameter) - -* Save changes (for each parameter) +* After you make changes for each parameter, click ‘save changes’ as you go (upper left box). Otherwise when you switch to a different parameter, it won’t save the changes you made to the previous parameter. * Download custom thresholds file diff --git a/inst/shiny-examples/ContDataQC/rmd/App_4_USGSgage.rmd b/inst/shiny-examples/ContDataQC/rmd/App_4_USGSgage.rmd index 05b8c27..feffd0b 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_4_USGSgage.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_4_USGSgage.rmd @@ -19,14 +19,14 @@ if(boo_DEBUG==TRUE){ # Instructions -You can download data from USGS gages on this tab. - -You can find gage locations and IDs using the +You can find USGS gage locations and IDs using the NWIS Mapper == $0 Exit EPA's website. -1. Enter as many USGS station IDs as you like separated by commas and spaces (e.g., 01187300, 01493000, 01639500). +To download data: + +1. Enter as many USGS station IDs as desired, separated by commas and spaces (e.g., 01187300, 01493000, 01639500). -2. Enter a starting and ending date for which data will be retrieved for each station; the same date range will be used for every station. +2. Enter a starting and ending date for which data will be retrieved; the same date range will be used for every station. 3. Click the 'Retrieve USGS data' button. A progress bar will appear in the bottom-right of the tab. It will advance as each file is completed. Thus, if you select three stations, it will wait at 0%, jump to 33%, jump to 66%, and then jump to 100%. diff --git a/inst/shiny-examples/ContDataQC/rmd/App_5a_Troubleshooting.Rmd b/inst/shiny-examples/ContDataQC/rmd/App_5a_Troubleshooting.Rmd deleted file mode 100644 index 7a721d6..0000000 --- a/inst/shiny-examples/ContDataQC/rmd/App_5a_Troubleshooting.Rmd +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Troubleshooting" -date: "`r format(Sys.time(), '%Y-%m-%d %H:%M:%S')`" -always_allow_html: true -output: - html_fragment: - toc: yes ---- - -```{r setup, include=FALSE} -knitr::opts_chunk$set(results = 'asis', echo = FALSE, warning = FALSE, message = FALSE, fig.align = "center") -# needed for trouble shooting -boo_DEBUG <- FALSE -if (boo_DEBUG == TRUE) { - # myConfig <- file.path(system.file(package="ContDataQC"), "extdata", "config.ORIG.R") - # source(myConfig) -}## IF ~ boo_DEBUG ~ END -``` - -# Troubleshooting - -If there are any issues with the Shiny app please log an issue on -xxxxxx == $0 Exit EPA's website -or contact the developers (Erik.Leppo@tetratech.com and Jen.Stamp@tetratech.com). diff --git a/inst/shiny-examples/ContDataQC/rmd/App_5b_Console.rmd b/inst/shiny-examples/ContDataQC/rmd/App_5b_Console.rmd index 965edee..2419fed 100644 --- a/inst/shiny-examples/ContDataQC/rmd/App_5b_Console.rmd +++ b/inst/shiny-examples/ContDataQC/rmd/App_5b_Console.rmd @@ -20,6 +20,4 @@ if(boo_DEBUG==TRUE){ # R console output This panel shows messages output by the QC, aggregating, summarizing, and USGS -data retrieval processes. If there are any errors when the tool runs, please -copy the messages and send them and your input files to Erik Leppo -(Erik.Leppo@tetratech.com). +data retrieval processes. diff --git a/inst/shiny-examples/ContDataQC/rmd/App_5c_Contact.rmd b/inst/shiny-examples/ContDataQC/rmd/App_5c_Contact.rmd deleted file mode 100644 index 6422c32..0000000 --- a/inst/shiny-examples/ContDataQC/rmd/App_5c_Contact.rmd +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Contact" -date: "`r format(Sys.time(), '%Y-%m-%d %H:%M:%S')`" -always_allow_html: true -output: - html_fragment: - toc: yes ---- - -```{r setup, include=FALSE} -knitr::opts_chunk$set(results='asis', echo=FALSE, warning=FALSE, message = FALSE, fig.align="center") -# needed for trouble shooting -boo_DEBUG <- FALSE -if(boo_DEBUG==TRUE){ - # myConfig <- file.path(system.file(package="ContDataQC"), "extdata", "config.ORIG.R") - # source(myConfig) -}## IF ~ boo_DEBUG ~ END -``` - -# Contact Information - -This is an open-source, collaborative effort. 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 Discussions page == $0 Exit EPA's website. - - diff --git a/inst/shiny-examples/ContDataQC/rmd/tables/FileNaming_Lakes_20240131.xlsx b/inst/shiny-examples/ContDataQC/rmd/tables/FileNaming_Lakes_20240131.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fe1bd2a03cd744e04edce42435a5cf0ddb96c893 GIT binary patch literal 8906 zcmeHtgM(?@b zbB^c!{(^h=JkNfg{mlNX=Y8M(S?ja*T3b~C1(g_p4!{He0CWJ8y-Z63Bmf`|6#yUt zU?S^EI@r5_>|G3BdOCu@`j0&9Y-!)3BD3ZIkP-L)@Axm?ff87sayt-T`uxSUym=1?EGzBpYJ(y=Kda+H z0=ru@4JZY;zjW;|HItGjIO}Nd=MYmq;~_URgqo)VQk?4A)%m5CpUam}Sdu&t4_L{Z z>3T)5*a^oi(kT?`o^4%Hezia#*!y7&e`SPd+}euG+u(SGOAZx6?>+ax&EUN%ot6fh zi8|c*Dp{ck%=(FM!pIbP0T>q7cyE4i5&d(Mz(XZ|ipmdBCq+7)aW)*yK6*Z0&8#ty z6V7t)j?p)K zcd2_*#CvCWO*eS&@Xe+_?=3n2aCe6SQ2m=*)@TA5P7qvEM0gzz!YvJ*LAGG-M?cU1 zbI1Q;AN75+<# zU=&&ZM!)Oc*?CduRyW<*H~ta`A+ZQUt$S%$@|BY-20OF!8yTmP4xe7gt3^HSfQWf|^k6u$?5xu7hdmxq?sMD#WyE4iK8<|4?+ZFTzY`S684}=B;UMI&^T6nrhL1S)i|P6&r%noAx1QkW-&QX%Ks6 zPUV!lxc|Ua>BSuJClkEXEfuMaZ1d(jwXXT+gm+dA;>%rBQi!V#~>1VcPc$ ztlD@BfZd*4GlWK)S;9fR+&epXERHHMQMSn1!|Y4r{mP>ltpyyiN%0+z;4`Z555TIoX2LJ8K9nuuO&z0v6^{_qfEn;W^!@J=qR>V1dn=Z6%MC6bS<4B~aa09y&~NIoVr z*=4oWHfFBG5RH}?vXM1AB;Vy2XB2m&#HEV;xH*p14x;q{Zk)(F<7IItC=^Z*K9yK| zM)M`Nf;)%*b{9-2oyd9;7dRIQ608+_a?R-mt)R{wmtZ9i{VEU<E%hz#<2xX3tpmHd>%P85B?))Enu49XWO|TYL4BZY#P`iz z=UGYzOF9Mog%0NyQ1dxP?l}`srtIUB+^57qPs%qG{TtoF*$R#k%s|!oG z8gsfwfzDzb7z|(=mW&~ZDUCGM+U$NzDP9Usyg z<208Y#61))&F`MH5?(15e&3x8q^N4&a{^Z_3XX3ojiEuLG`}C54N)cI`${Xj43??5 zL_ZyReN5!bJvOncY0j7>OjxpS<*yfb)j7|zh|uT(fqst0XU9C*%LwU2Pke>!iV zI4t=X@lQQM;V1x@NC@Zsm&pCqh5s#hNQnFs5d!|Zj}mnyg$^KoBhGC&&^_Iagkai* zn|?=g`#xq*HQOvR9iQLHA|-phzSdU-ZWMRpkSKpmOc!UMI$2I+1f7N#krRTCW4D6baQ4A3x2;~Wg-uMmrpNs0v`?Iw;lw# z@>+w3se2Itzpr{V;3`C8r!=U#u8ua1&3x?+E;)OKo*m>#GjdFhB`1pK2^iTJr{lP2 zl|I8fYPdF6@*K2jeRqYsMpdlvu;{UvPnZjBc(*K#KU)HL?QQC3&HZH;i66ae&9g_G zeJA_ot36#4i-;%vPs#*~hD;YD=+c4)0FWW>_#@tfEkPg`F!!&4=V##0NK}YT2NH*# zCtcBS?nefOVCBTA&0xB^X=dAW=>?HcYRr0m*z(_htj5a#B7&lBn56G#Kw?RUSW3H* zN)q!wTJlD+1sbHtoXtkvUaQFpF%2F!E%%7u!WmrKc=2nX5c?GnV1}@@XaY9#E^5Hw1p{g^oWchaQ18NAo@fw?-akB1> zG;gmimGN^uY_+m?|3OD6b3bD01=EdZi27UU%gSBo8fB<&b^=)mT!s}s|aXa=-1Bm z<-heGvrQZNZbb;%7LGOF_9R%7zGX`zEoL-STA^22@ppk+GVVEUL}^)a)XVp3%1k@+ zd|yuvdFQP`G$gS2Jn$fZ0*i?*i_+B1cp2y3mlrN8LC;p(`cQn(-?QtmYz*FzOG`ir zck&Nwo3}j*GvZ6JLB%g>TCllDfQR#dwg9oNSXO%4^O!9NGv>1`X)j&H8_ zRqpP-|4Pq)O{9|Tg`&!-5~uu7KgX+XIVFw?P2OR?*XpdjibDYv3P(6CZ}a7`YOOPFi``7sww|BG$Ad~{c&7@aPal!7_k5^)u7M6x=6XzMtGGSCTwL5CB_;?c< zD2b4ngih62^WG;*IEcYUpP}G2p2T7?R&UabunbHwl&&$R+sf;>;X!0?8w(1~v;4e{ zT@FVZQ@mtTaM}{y7&fUMiDg7jr7(`Y@wX9V<@Zr}0gEO8VcB2ea9%6SX8So4*!5s` zO`%*$+2+2XkrSF_fA9q}EdEoAxnSTTb9C2>Hiqm6T~yS;3n>pc-m90AF(h0V1evIM z`|{E;?BFHI`+I+AP+8`Qm%xi=U3^_s!IWFE(q1VM5xSwiM@=_#WSqq#^6;DY=s7DP zp`Ya?)6F_*9ruHgSIkmt=-QI@Id{BpMI#@r5%AGwtMw=?X0VR;dqb2$y{^;k8=dCb z(E=n({-C7%+9~1fB>OmHJk_g-+|RG~HTxbc3>)fK!KsU4Lnm`y`j>~%;MOlm<9vM1 zCa%{Wo@riSu|1hXY^d8lsjzFHT6bcjDkbOqDeO^bjkP;`hQzFGBZg=JH~4vD0^5*U z9A5E`x`v__y}+7I^d7G`AOKmNQSMvM7hIKL%*sy?R-vViS*9^eLWeLyW}{Cp+3@5w zFFuL~-sUqz)dG3*lJt!twJ6okJWM)z6lO^Z0ZMK=Nr#XZ(#-x6fsX&`Ejdmk*7hWn#>pM7b%u<|BJcdVpjvS7+*?S~k z0ytmi%X$4xeHvO0`i>Vx7@05FI;zoJAsJ0w{8=($ZBmT)n__w7$sYd4;D|9MNoOM_ z^+(l`CJ}vYAli_bqk#pxkL`sv6JkDQ4919g0R199tabKTK2qCJ7n0(6Ox*-ATjh23 zZ(<7SldiefvyGUW_W_%0lNO7XlI8+Ya2kB9mlPZAWIH%8$QGQM~*w<)NqD0oIO zp}WJ6`5v8gynC=5sZZ>*h?JNlm1-r=TpdC$v@TG#E?76=;yUq9Ho9k%rVI zs2l>C5v`r78HnT)5kCHqH1nBE!zH?t%)3q;tTk-R*S8KIc};JWM7<+l!qGjbd75E_ z1WG8f`O4;;jL88yKZMzpTR1occ|2f^Bv{P5q>!4I*B4yNcp!_T3r%gAs+Y_|!O+{c=n_N?w~0AI}}NYpqC6C0Ow zJ}83ZR!=IkSjTn`mOhpKYxmxV?nq#Cv{>E4A28u`R?xas zU=`Lm4X2HlW!7AaV?qh|tEVQ|VB+HLN0IrMf%r$zpiSzrPUq>_>2vGU2A{xQ=KZ6M zER}|eH9k7nULV?*&l2vws0}007{J0=wR#q~HPRscMcU&O&N&zZ*NPMKQx@Kt*kN29 zNzi;tMwH^|OAkKg9MimTR}PZw;nE+<#~!iJF=Y#QNqyP}9JGW>4>mohWU_qzhK|_& zLh1On-^NRK?PPS;=`k{6MRQ6uS28ujdlJM379j@Hsahj0S|h4k$+& z+8#%i^^d4<(2%K2r?uv8KN3wTLOE+xnHQj$=mn!&eYeQ}!oD@`lDHWzvWi!HBspHm z{@(sZnajD%<`MiJ;e@Ar!}7Q<1f>od-6`OJ%}-noVea}4)DQ7=b-!2#>3KX zRv)`2AMLHIaSenLKp={S{iHR^SKpfSrhT0D31~Ba)b!?P+qqeXn%9W2qBbhO8{YXU z9BNRiyN~BJUp_)5deF##cW-9GUUgdlyT-Xr7t@*v8qY5cp?OnWt%IGYiDO6`%6QzuN0{ zTj9j2?He6e-RR7r-YGWei!3yVX0#aWy#1l1!ClJRJ6MHMTBHH(w9;xcR(78MRhfjovdn|ck-rwCk>?q0!aO z@yhKc*{1|?*E~rOo=U^3fErg<-o_C#-fL%zhjEC~a++N}rAw*qTISj!`V9% zdmvM(H|GF*;=&bRO{!!WS#N1=GM;Lhu<(OEcJ=+ptI0iV$H+1pgUV!=bu(p4PZ{LZ zNjhmPtQE+N$gzAL7LRRLqmQ79O=*Vod;265p1?wf)^FOI`$Y%Y4d94gjUOnxg#eWh zxvV!jmcdjnFfzBrqU4`Q&8fFehW#i{lYev;EOHiOuq&CdI_$mAnAK%m;TVDAWJ2PN zywt4`H^lP}dnzaRrrLqFF-VTm=<1WdlmqU(tP`*Bv#Su#`mgyxJ>usp8@(E>))-QF zi?%mgE-1}5yHthQ1tbNOrG*FYacNmldf8I(WBsn0CrGFCp)WabHus8g+r^HQ1k+Tz zTd5Ahpj|ZY@TMHXr1gCx??*7qkmjju#!rg0XWzJz0EI9xtL@>AdN+YUqgV5AwA|M% zm&KC;>o7E7wTiUbHnB``^9x&l6A}lIPt;YL`^+gmx%ljTgAbNl;POE+Ei!H`H5-pG z{{^n6{jc4nsruX2I8*eh7*kmKG~*QQlZ!QZ?ynr2O>Q80w4d%T7K?^LYRZuxVu4xD zRKKlECohkf=PVAf4nG8Eca0sG5{5o^qLyhjlecKK^~yw*Cj3&oY37+s+!Nt_)N4V{ zsKzfUnB`OHsK?tnp;r7(!jwA#b+(!Kd5nDAarX0D%Kwy2o}bTDE+c3hgCINcA9S`f zb_SVgxHwzcTl``*EN;LWQPU6E4{Zn@o{u++sDR{A&3rf4k@tGiw$OoWv*xvS+u)lC zs}+!R5ZUqR2YTHRpr4@=T}Ffzm#*TLLo>UombtqmUpdS47_Wy#7+tX7FU}4?ndNPb z<8k*jC>%m_YQvW-DP>#Mz)>2GR`Fxn!-9d^g%~f4@!_yg%s~bVy9^%krWIS6JK^^E z*xIy)i5~GGseK+dZD!4RDw?eV=Hwz+5<9mn6An|&i&qecKNPOhoXXDqDy6}GkLE7v zNTI}n>KcHnuT=}0tXTROs&!Uvh*2Y+ZDMzCt^YEOa03PO_)Q?y6!F(+-3EGd@NebCf%sXB|oU{RGQ8e}@_S z8dC$0)bk8cp>?K9AMULs%IH!Urz+tWRzMH&$JN?rAGf6iB?DbwI_q#?p$P{_A0J(@ zTciO&OJ7*=IyH?@R1)3*^>Z@8X-2lw_fTu%-CuCq!wAMN-%Xn+O|#4+E3aHUz;T3W z$U5QRo<5V3Wwbz1_fM@yaSY2vM;g`6kixn>6$ZB5dgf}#D67GP&oX12x@-r%oE-P< z9+Rc#N2ZlPmXBF3d@mceio%j?-M;{mge*eHbCgq^*9wOPT8X-;Vmo)SZLH@<9lSM= znxAF}acd6ku%8$$1>Tpw!e&|H^7hcHXc}B%> zoh~TXePS;qiquPG=o5W}c!T>V^%7%tWRnooqeT>~@&8IaV@JpTF%LnxKaPxqk)Jx- zxrlK?6S6=lWXHzP&CX=EX=EDsX}*d%+f+@Pu)bLCY*M9GZp+qtW_I3}CfiR~ZedrX z%j<<@F!!ainj`u`$jp^~k6}?k-%tjfm7xu(DC`>0y+8hi1ujP?L66hz9MY9gC*{P1 zn)W~#3gP@w!cXU#=A73S?{E8EbbGj7H)QIvbUGfU2373j0$(KV14ayOWpc)9=ywn}4) zn6){PkGoKvm@vHz%J2XzMx6DCBqofD#_0{IJ6eOmNZGJR_qOSKK4Yoiro-OLyr-3u zxsVx}muN8l;+E>W!I|%YtPTDWsvLss#IbcL*1MIYfd5|b0I|JKYumw???CV@jrY+psMh9 z1Ap&t{u}snOh)*}U%H*Y1Ap)N{0VJ9%=Nbp(C^^C*PQ=^0sx-azrg>W3iR)GelJA+ zX{iMF|0eN|vgGepey{fYX$6YtW+9gHd+q0U1Hb31e;U9g{bk_K?Dco(@43OB&{^_- zL4VH_ez)*x|)@|I~0|W>X+zIY3fyNTNaR^T19;|T*?h;7w1P>4#g1ZEF2=4A*XWqOw zGnx5*!F$zf)m^o!_UT)<_L17BfQoSN_y9xzG5`Re0vI1;S{lFr0I~1@03HAtR#(#A z&e_b)8KmLiVCJOH>TYX8`5qpYJ_i5`z5ajOfAI>GCiE+JuwzSK%H2t>vnb40iXrpt z2Xx~ys*1FB#&;E)=w`in^OzNOi!G5$V8vU3J3Q~jc|2%YX=hs-5Zd)s4L!oYr&ZH{ zl$Y&W_a1Ev5lI|aNBb}bpHz&41O$pQPY0wpe(6x-mRb>4D1Bl{Kq&HdEpxW}70yyu zJ$kWDA%D+Y+p_YjMI64qqH*lCQM?JOHw<0|r)wcKb3 zip@^+bzGB%Ca{a_kk}^7g`p+Hug$zqUvfXGEDAp>*6E71W@_=)^Y(0^kB&G4-ZZ=* zumrK_W{LSz1&mDtfYuS!gk_v|!#_l`Zf99 z_025^MeX!ZU957KM&RNLQrEhbL6UDAU62^*z)3QWr7N8{u9N4J7pbxe9`vqFF^na3 zg}I8oOVl#s$5Iv8!>q5Lpx}KVgAfX*`s;MP)Lt~c`UEp6p}t=RDgVNovlBm@?l+b6 zaT`N4lwWCYER~?g$=G7%lXs5|)%o=kO?6BDH|54zV1Z{IAXA&xQ>pY8ynAmJ<%}M+ zXWY0~oWru+v^nQ~I@R3A{h1z}yeJ(dJx9F(5fp`s&h6P<2 zcN;c0d$6^!y}k9%yj7}cYro2e{op%xA40!0-sur2g;CO&yIWN1*;?y`iwnjZ*BYFg zQO+&CXgTD=o@Ff{m=cD6aiR27lH5v<#6CQuj2A9B@6jYRkFNE$(`!ECLW}_5sTfO;rH}rmwm9PeTUyeD;S6_aJ8aUP z_$CWA-zEapdq$UWcD<(d>Q|S@B7#VHGd7koadf+kY7xT7)U{?KGo1H9%%6_B!wI*B7239nRPGkwqud7r*z003h)=dC$V;~!XW~b z9m;2S#-Nkux-m>={#X{G(Y06)>wEH4o8vODbe=lt78Mc+l98k=Ghh;-ISjNMdY4|L z%*tC$^TlhMvCdX>P2p9sMk21$yB`{{LO|Jao7(jS#NFA#JX)>6cSfGYBK&>V5C;C4 z!xLry}Vh0CdYLMbP z7^kf)7>YxdM(+~4A{?(Q!4F2nHcO_hCpTX|nD&D5(0nzlwM{K5|s9;(LtI5ZeaFIo8 zJ!Ni474D_cCT_HgZhvU?^b@s3v2Kd=7PotQAb#yr1$C}epeK`X2WEK6Vv!33?{)GJ z#Ve+Whv08f%^}M|EUXbHB&)i!ilS`McHllJWU8j+zoXuz2H`(EI_h8SFJswL_Exqk zF_R2EU1{QZo{sE|mZ*xU8K%nPfFsOk^19OI_I_&g@#YNJ z_2Z#SgWl51VHZpbRotvYilNPwrT(*BhoFbgD3iAV{T0bYB0Z)j2>EZ0l~l00L6=Igg?pzic#BPHHo}DEO__ZnuNBkn3@ICNN+({|(xc z5FFYORP|n0-4T#zzoAUnX=7O(Cky@=db9|Oh+i5-)IvRCD;`btr<|xu{h<^*49f$F zaq$SQnu;_p?;7170%(m-UcC7xqsncR)}Lg6T<;TPw4;NnMOra6a)Z_xu=@1YEoyH* z@#8mYzQKLFC4}}ZOdQgpd{Hc*LUj+QwyeTCZ{(6exsLLA#1!)3v8Fk3i~5+F)|%43 zBu$m#@Z|+p5(leYzSkp`(Q1%3U(W+z378jCgI~b=eGB8o1Emc(@I1T!hnF_N8HhjY zL)B&}`uBM4Cp4h%X651E-;^sAsFEa(Yi7_sZW|lO3#}{?Q~-&bNjCc#%p$I1vzKtA z5AgyyX z+M}jPt#C(I9^*3@A2yEqvEm(%Oq4$o{3O6{EJzp=N9~}*4qhpN#{%Y!;s@ZM)`x24 zmQ{u$f;&i6JV>}F-? zA9hjxd_Dh-@6MKHwq|U56Ket!Ud_7N{kH?x)JY`eR+T)Ty&A=1kjL7K}n(-t*Yd(5zZxy+ONE|a1yK6M&JH@$d zUoehsFLL)Z+_jWVZW4t&{~ROXH)P1Wx>j>O|0TM}Zn<{qY{G6b^1#IuLZ%ODWyI8R zR|WybKrbIoD(XFqL1W=I0T=r zdW~Ju1N5iiiLV@0} zERFVAoIymdBP7$jz+!hQ2Op%{F{QX~0Q_=h4V01x*Fji=YpmSrX9-N(x1#YD(F4Vs z;uwZiV=+qh)YO%_R80N%o?(a5j%enVFoL9VQepyyxioTD8_#DO(8qy-{ceZui z0jjL8VN|q3qE%Nvn2Z5E-ro}~f?6Jqc8+C`}$Gkm;5zXvmm*|WW!`X5zJm~L%HPEHp zX?H2#Z=WO6>OyD~YO$Vapg69liBA12Q-LsV66s3pCa_$b)_-*5kfpQ`e_9{*HEiUa z^#Q9wDd2LGE9dp9+Dufr*$<3x+^~;)ZDZ;!6_SzUC0`{&H>QL+SCz`c&JM6Y2ZoN* zN`eh()mW<~jYIp}%_xIrPX-rlKX(*bPYQdRQX4_%!R{Mcw9(aX$*Q`i#xKReL*5)= zy3PsqYm=q>#6~0K8P0HeW5OJy_(LG%{E2uAD*77c?Nj~E7jcTuG3LK zA*WfTxSmd5I!r3*cW#05MBXtof>OegWWY*}`7bE7?f2%->JZkg(h{DB-k1%MS2RYZ zHc=2c2b4#c%?i~{*9?Yn2@0GRCC+{&R(Fo~UXP2@xSi_xLtJ zAf4W9Q_8;z<&uKg+S4*?zSSYF)akp2rjxHN2fm0 zDQI_HV}<;Mk(%538gGlZW6B+|o_a!;=)HQKD~WuT-IbeB5(!adh*W}rUc7Q2BFDQF zuY^t(5Q|?T2KOl0dt0X0Z?Q#m*3!h7DAFCVodtW`Ioqh;Ko*Eqvy>_PSJXc_JQROh zA}^(xA!~1B@~6WHX%$=A|iV?v4!dm9l5-WlZZPcJ8Uw{h*ZYS?Ev)fhg;pAbzg z5CL?3pJJNT&J*@&U{r;Pf>>oHtu1$#RVbwx?xIO$ftO;k&k6C(4~viA7?Bqu5vKiJ(Xvw%NYv({tcPI@Rbu1xquz_qcnWDjt@)NWMn2(PMAovY?zMn+ee zcyVRxBEu(q{OP%9Pv(G*ix~5+Lgv*?-+bewIg*>dkf(zmUxC^dP{KZ$n*L^tv?t+( zVZ?mAb`d(mV_rpE!Y}?YPmSICBd%5uln!H^>$nsv6c<(6A_^V8X&4!xmj)2oAGu$#G%Z*t?A3rwso}%Hm?z; zhi_8O8`=9V5NuGUdx+t=P(Df~bkszRfjK*A2i)aFtpR`0MYf_f^Uc#PL`qZ;Ec`-x zpL0*iWMa6%;A7ehxU~9O`}mIvgGcULn|x@wsRk`KG5(c)ot!;v%$$DKnE9Hv)^qIG z4nNQ($T8#?uFVR7L|xS9Jfb93)fi(=Uv+C`n&0M%RI ziw@n*Gz6;Jc~1HLM7xv#wwf1l0@G<26;Vdjl@GD_G?*O>?-H1VD49*KMJeObHfvE7 zSV(uS($Eergb8IT_2%spUO2P7wIX_H8P;HFWjv8;61RB!EN1<~=&Pv%REMxn)&`Zy z&YPynmL4*&>r+(HC@5my!=G+Et7 z6%L_jj>ZIDu**H_vBMmBsM9%t_to~4O#$+xhBtM7QugQzvW}brVmCn^4c|Wo^om@r zZS|?QSs_VbEZN-eIK#DA?~@f~7Z4PXmK7d-K&N~T*T;~G9pih`GD$S8AEm*BwtY~7 z-XVPQk}nO|(?)g#iRz}v!*NbCEAVTDr966LFGznc>5$i8_|$Ekcs zSc{lVOV!#P;X7iYDcGzh{m4_N?C$X+6Wm~NM{=1qQw57Q8_!I5Y20rm+om4L z_`RWCCw&&rXjHj{__Dk!9rQTcCRI!FBuv;s;pbZL#iJEsPqW1zNdKvt+>pIuU4zp2 zr<{iWJDn|!z-FfE&fqt87QeAN;oUG)Y~3 zN_`c-Z7v?;coPu1aMvq3mu=hRiIV5u)hQC^ZQ$GRI(?hcL2vy*ha}@UwtfZ! zX&nqlykDB*X>OUhy-TedEvRwtyU4zkCQotEuE|L8$A<5mx-2ovF-Kt@A;~Vcq<34K zS);djkD$xd+X0v*riZMGb81v@?!0V9bPPza?}Xy^AEoxTExLS3=z^F*{Tv6XLYUf{ z0KxVSPHZOjV6)%*U;h&yplpeZQ&sGMzEdwDJWBRf*^aq}2i3wQ3WvhAg{|t!9n>1e zLuh9Am(pu>_fxP$eq_b7ZR)8FxD`h?w+YN_;eJ37$FW>QF5;#2)Mr`M#pfTcHgw6$ zmGW}1G|)G|p9d~#xz|R)?9$fJ$5!XfCs^(_>4v~*Lv)?gIgCd$-G#o;<@@`~U3~POY$B9-lu!*D`_IfXa&Y(`@t{lg z`<4+m`ZLjXEg{`g1TB*C+cHr1Fw)v?8=CmnEmYBEo2Y8zHk8O;OsUk$@7Q?F&Mo** zWcv!pFYXI=d&*e`vR#8!9S|3TW^eR+LB$3A!x>a>K-NS;33q^=!-;Rt>*c8=o}u-C zgSz9sNIBBNrx6N7MKIr%a#Ojafzw@|aYykSVGnpAWp!$*&ZAD_T|L?9cSl`UUo9?p z#3&0SxjL#5=tM7F_lX>O^71-qC!L4E&@xo`0E3U=$NK?iUG~G?F>wO50o{6@*){>B z5*a~w1`)&)lC$#as9Kc7y*HDAxv|8vAP?Ku8TS*&aLT=2nWYyA6^L^aku?!=^7qKw z7`gxnhDxI+(HrxEpZBA5q9J-2q#Dz8VCv8C9Tza5xi&&(E)c>_oU68j6#+HYp%l~;JF=m7vI?N3l+HQ z45IXT>`J?uC2^m#I~H`m6_=YME03@ApCaxCs#5VOK)Uz;38FBtEYK|S&mR)}`_cV- z{D;p9fQo-L@Yj~-zkxr;WT=1qsR8;c@YgobAJ9hVTz_c_{R;l82K@&V0Psfr4gCKo z(!bjIRhaz4(r5JlOyX}c<*!zLm3#iMk_~NeL2u<(@#j|qzZR^27t4esvlkl+y9wS&96yF-u!3+@ep5NOZmKh!Q%rE0muLVfEr+SoNr?c0{|q!0|0mcWLN_! zXD6Vg6VOE4+r`q|=%tsV162t;EJG0h7CQca*MG4Gs?$bPKeJ=Y+{oWcZL=z_G>9Yf z9EA+xGHHl@>Q5c0G&d-)wS6jx{)sJFOkl@Xk2|sA%Xv0t)8ORT5)w7gsfivN4F05J zOvcCdW$=)$hlnJ_O<(V%2%k)xgT%xn-YOT6<=XmLlUw?mgkm+R4FREO&{qD^;47T< zfp+vt{r3Xk<=zd|S8F)@!yjg_x2EuB?Q9u+jW4!X72so^`>qgr7?-J2>uNEYX|}sT zGL^dB8QQq!OwD1}*dvlan5*OKh@IVh&s4Zc8$QHbR_YHV*)#X}8T$G3FeJoYszW+> z32aPQ4GP4AsY9k00P6O!O@uX^P80t9Vg&D$M^5{wR)5lc!z1rsC$s1%NKCR&C4TP6 zvQaizAgw0A#}pD!0Um1O|D<+gPVVPaK83UmFLV2Ze~q)(aq&qKd*~B2t$*av26#`% z_i%E@AoTbwV=s{N5fK1*dV&L}|Am&#I_xx;(6y!vWgQxnmL_hN4(@C(f4l#Wj{n6R z{L^2rPEk?&%#I#$B7YwVzL{H1!j@F>l#uVF)(!|#Six$Je@9EU+Vg@OTbnc#PA(7> za6i1fDjdHLroP_fu8zgU7outLtcl2kxV}YVqIb)Xb*=u^kK-|SHFupYr|8Y#0ZL@5 zYI|R-G_+15J98#ok3I47H7N>S8F>VuNOrLPfQsIl*=;S%oTS!KO+;NQU(tT*L~h`G zM)@9wSd@VB;dC|u*xk%}vDOdlKz(&bs-tBiU|VNa;3oLo+r+}*(}i?y58i_xt7;xt z^Eo%}E$4*XAYIW_pneng*+{;3KOf5HD)8x0NG#?1HK;=Uog_~YVj2l>0Kg7Z%CMlG z@p54Ebat~hb9T1>O}DCb9G&0sV?PE=KOpscqSAN4&sreB07ZDJj8hzMO6AkhRO?Z* z8dXv&m!7)Kai=|e^>;dm=y`RCAByxX7KU$`f zm>c2Y@*&jfO3_2`a3B?XCq4PjB!O+_hZ1l>vdWj5!@S%o$(f}Cn{myhFe4FXq)NKy zzFJLr8_N`IBUUt3pIh7(rzjndRTBFdJ$>ZwfJx4DZ z6WQ}TqZyIjRYCPQad#n2F?Tzc*TG1vZo83yM$Qpm7^$yp@2HbreN4wrxsl+$0grvH z_(7(hd;kLSth5xm)-dVp>4%3aqcJIPO!@0JuzEN4cJdzEAiP>`Jrw7wkP|R*t)U`Y z(Q!kNe6~@{CCpZ5w1d(Y#iZaBN|#+P8-j`D`cV1Z=TL7*{M%B<{fvfcQN6ecHgg<5 z)>(dAU&E}RvC5@h+v9Vp`>VoI0Ru(D)`Mb>e!aqj8Fc$|&aJ%NuLO4#sNNcqMJwY?WIZYa(An{w~Tci-`IUn8Vh z`Tacf4Zs$1b&#%2C01oGAkojgl*{>{qa`><;x~e(Njy zomue#18o+fXAh~>tu!F&)v2{gH}d*kEEsBn|Ni6JseVEgd55?P$UF#>Rnp^J6TBxd zN+phZnPe{0O~4DzD;>T-La!J;&}6SH*> z^H@h{foBe*xP$~RY?2zk>go_5RFYae>Y@&?jT0GkNp;wUFl3iGT}!?S@44Gx<>CF= zijpyDEy?5DgE^N);gOh|`!GYVe^khYRDvNiB~Ti7nMTZy}ef63P2g&&XD)D5T6 z>Y7D`pq#t<>E7d%8O{Spu?JHw>nTUQk*$r?H#;X(xqST}sT(YsmU#iCYzI`|NCC(& zQ0o3m;{HtF|HvH-H2Z{F`R~4}HC2@Q*|9-rkCE)2xgG>Ki$J#LhdKvX$U{wx%k``|g82q8F+U5vpYn;q3W3z0*> z!#&(Ts5(N!%yGwS7fk`P6yWoJzh$5!iF{Z7T>7$oI)dA7oc%4Qo%DL%b=cE=W)mgfYAUQ@gX&%(uNV*U0Bx_f{(2`tANZ$QbP!;C%4=PVEr}A^zQUSA**3=1ztU8`?9_AknRcEQuKTtVLvZK|D5ZKNM%j-nmDFvxCY;v zyZVP&6{BINY4ayF4q70OSj>08N!n9)iafCKUWl*@FV@5lKPnP)^uFzREHTgzk2zt6et3 zsrw>^YlIr5_kH$6yk@7>H&W5_Anv1(h|yC+5 zJ8MXltN`0?al`uT9v9K_wB#nTprfp1iV5KgdzOa$(XGZiP8}GSkMc3!2NAhsC+5v$ zoJPjD*^fI&c_uMM{Z|wuYZip zB=!s*9J%>F`59OCRcHQO{nEHje)tG_b=|T(k0io2w(4)GEmG^*!x!mf zxIXw+D~)bX47NyF$6o5#7(o4zy*##t-u4A`;WgO)`Ffvj@jwlX;0Sp>X2SlZM9~cE zhn$AaT@xXo%Sp@2mSKk%M2==bmJ?cG1;K>nN(JG5*LmPpc96QIG%%fJsaIo4G)nq) z$1&SdP$cFvX=mVvfmlB7PYt__l4Yggd*$jmL8(a-C3ts);*X6IfFIYeoif$SB?HG2TkssH zWsv2Bs)9AF5M@0P?S(dDlpWW#$16}kL4I`@I@$P2YG@+{I$8vd#TPnS%^>Tg7vbij z`}4KFOUZaol6{%fcZ;qNINCwR!a!FEkZK8@^gK_4~EEh)qKzibTAW*T~de^ zw1~F|;Y^582=Oy5BPAc&Q3yE!Pe)s+J~do1N)8S{9r88YucZL$kX6V1vuxNY{hh39 zp!StWjG@>#+1s(JcNNydvidC;==qxl=t+J`N_D5RxP)-1I=Mq6it#6imxc34s$>#Q z+Q4}-6~S~#J~Gj$%h?T(MiW<}ytJVhgnd2PZhF=%M7^$z4tD+n9SeP1CGPUNo_~=l zPe?$L-Oxfi{Ewu90=>TE1pYzQq-AH~^t_2(yfgDj*MZIV%NusGbn|-o?<%$s=npC4 zT_0RL5fJFByt@LGpLi5oi@&_2AUUSA)!wx)m$gyp!}9~vqB%`)P75Lt z03QM?1+wU{J;9qu^qTz1CzHR-Oo|S2{=gR8p>ps&Gd~ch}BtENf?`XonMJU0s@#QD_3YwY$8y zoB4ytlE}KWJY(TEVgGxu?~3OZ^_~fi{+omTbS@e~jikpG}p9|pGG$_kQE(@(MCBvj!{ahq3ZXt_y zCL_?EpMl#?O+GCS#}dWq4vpnrX}K`K4aac^d2j*lPTHY3gHl0YnThZVazt|5CoBHo zb^5qL`97LL!a;J1(6uZ=<}%G1Vw#j&;}A1-Uw=+&nnR3q#X#Q=U25Mrk|ij_%2kA~pZ!pv$bH$yn zPjp5I*CtJj8rvx<6T|0=v;*rRDA7AMWY9iJFp3&}j?A~Jus)bC!Z$JaJg;l)^Znk%UoosHvr_`T6cO#iSPiKNxb(<>$Y~B9n=X;6|i)DkI{mdPoyPN}2oPiw!KpU}s? z3C8?+1|yc=&o0@YB961`@&0%O3~Ovawcq!)?x=5>Tz3GWOSs2=v4irgoi-u+qij9G zig}y|v8UihWzNXysY`+KYU)LMbZ0a)bvS;hSPi)O!BzBnQ*$xC&hk4(3~qEefA6$b zPrXzeMOCL%)XuyJ=caO9^yM-3$Iz%5Iw?0(I?b0&Qf5&jeU?;VOXp*2jvqh2x1SU7 zv!Hncod8$Zh^gW^tEiX(mpYa7Z7unFs1K;kyoS= zJ*engm_MHx_4B4Ex$RE3#}acTi+C)=s|&j?DW`z@1L!fSWs*HZ6^Q&27lounq{!79 zI96IwTKXQWp0^=v+vTLah=N#-Q`C3GWrHY*fFX6UmP^7d3(aHETtb2uAJUgPiM4=n z1H`_qqVBqrZ@5N&v`@W$ZkkSUs94Pm9@n|bGlj8CskHyf=$47hY>A=l z$PkUQUV29=y{c%$zmuo!lb?X8vcUtpL%AJ0!#Izy%bwENqi_(9tY@9+LwM|GAir~>uI=@Qa;W#aKA(s~m4qx^a z2rqRz{>wyk!;5>*;b)#O?uZD924_Fh1alcIe@F*6qTEoj*!$QNtbB4wsdoSBt>bPy zcl-3S(rU(7^rPjtefEX^z}5AYgk5%*U+^&f$@y-9T37uJ7j@e42*Q_6Nl$#g9WUDLV8)-{=I~^(tfbMfZn@Hnz2IC*oJ7}`vRwU?7o&Wo?Zri3WL_HimYJY% zvgW7ig;!$yjH-2ebw|zzG=!8pFGj<7sZ7Q4U44<0wVK(3fL(1*y-Y-g#Tnu^%2s3= zZ;3TbFeUMgt;38LvvsF{x>M@=nZ^3Dt~;pgjsyf=JJ%aBpq)sGC5Z?t^0Xi31Qku$ zU2(OjP~ddy`6h#es3B51P0%n^br_K&Im;`E?MssQy-tI5TCg zD>hIF?8VtjV;iwbtWls!8T?JF*5$GC%Q{6h?IL*}h%!DA1Sj}|52sXDmyH=IAv!2F z)NOx^BRIE?AbID`bJKL#X1*(CS|BZfMle?0qa@3sppPfIc63UOnUYv-F{iiq;H7X@ zCEPVgZIzF5ZrB~s_PcfY7pDDLVCr6^&^AWZxzua}Q<>9)Dyv(q{mXVt+&OQ>u5Yvc zv2eZYtc9bTDtcY2pJN&uHI|#WSdh`xW_fQN-^%ifoYlS%1Lu$GzZGXWP|UxD46k&} zSs{4_3;VbP@>gi?s!KX&(l9`#$-rs6rm-ujdhy8XT>>vyp8^;ikX98JSkp+~^k8d; zY8KkjmGuyp@zgH@`t?hM^v1r#A{`eCXb zaReg5Re!E~s=}5YG`+nHU-)t1xxVTtx;Y|?+GJk-U7wD>?UcieX&&MA0eqnUXcwbw zb6I7PBy+}wNY$Aoz%+={TSAG(_^Xa<9UN_)@|aE0z6W zcKzAo6nxst2bAPA<`wEu%SS?Ng|V5Ib2nCIySo@PryEv6SPL2vfp#`&9GGBZLiHqYPo|k9*_bxXJr4c<>Ku1e~+aMD2Xvl}kA|90v3K z_~Vso9OB(TI)wf3CAIJuFUoqVMkxf$f20pwaV=@UWB^jR$D1b+^^!1|=JoN@t1sHh zLq4K=I?<&Y9tyedqSq{e3b)mLt!WeFo<4lTCE5ft0pUL-4Nw(Y%39V*JV0DcB)kyv zzxFl-Je?Yobzt?`xCA%B%y^Zlz~uW^4)&%EgrpNjk#?`OeVik>uWf2B3LquQt8Fgn zE1M1`CrVNs5A$+aeX8*bUQLsCw4^_BOg8nBt3{5aqn&0G>T=pTjkKY-26(`KfduN# zrpeuVuE;i3_CG3~Hm6kEzvqs4wcBFz4kIuE-w12RWn6GC_ndF|&25Gzxqzp}Nvqoz z<*(xjEvXaVrwNG_1t*Wf?FJz<^QS1?o*W3m`P~sV%{zT=S4dv~jW((x8=ZtrPS;JV zu5qw6>UAkj;r_zU=x>`IM^U@e)yvin(AI62C24P)y4`C?l?~CqE_9Nv5&2DhJ%xX2 z)AP$=b#9o`$nAU&U|=a@a;%^OCGs19HZ6v7q+tSah{TH`sg<5p-9D&?0w4 zAAsfDN9gbjDVhWsxSK-c>mHPFw~OEf9>~gj{xKuv_>hUc1O4SalrZ@Jri9HKH%kjG zpqs6e_3zB^OX`Jo$bKuycS&svDa^yMr&*BZCM9`;Ph#>RZqq!l=+1^0se6?Tc$ah^Ti~*iCB}dtFOh1WTb5TngKA(`Om=0ow**i% zWH5F;$0h3AY*sbLkv&smo|cZ~h5A)=1obl&UtqG4ox$jj4)X&#|ANpP+X=dFqc0h) zA&J09q{E#8wG%&M(<+U|4d9GKom$ z)8-M4m1}z2a2+-jhBa&5o7`2k;#k*%EqKo{cfP1N(z-v|wCHj@4z&cO@^^p1CC3}( zSb>!i!JP`i_mkdd(|QZ&<*5QtTfKK(c!oP0fjme1)rJWbJb!rht| z*_@FC*V4L&unOb4?QjwIWVol2+#GthY)%M=B_r zk1m_SuSFWGCPO9QMe&cA$Z&>Li=R=R>v^>ng?$I#rR7zB%EACag|#E0 zK_7XWP_{ca4Hv|N4!wCwKgj&o-k@cNp4S@ z1^dyfxBcVBNmcGL_H%g{O>Lq?jxqQdzn6>x4cJeHrX>h8M-AF}mU;z|s$_-W8ATD# zNiOS};#*MC4{hf{i<5|#OuQXm=RM3K!>JDW=2u^*)gvy?#x=*vD?A|YVHf};85`b^ zChV*TeLRZSPlzzgBZ~||p+)--y8D-~;) zFOFTJ)J90-uKLt;7|Vyom=JPr_dwR&&m?RUvgI)m>9)KN|280L=2{KzE{`a81-rqi zd0oQ)@}3nv@Y`F+shxKxLv8H+Xk#`$rHR4A|8@IeU|FF$^3TU`{`2bo^ZbWHIqFJ( zHSpI11OEa3_RNIx<4?y2eg*#8MEwKW1)b|JE!AJae{JLZ0R;d&QGW;jf0{bK+WED% z|A(bY^#7a0-zxpTTKTnT^oNy9+Qg1@Hbuk75>+7_-A+r)t})14vy+d2++3+0H8uYK~U)qr}^#M F{{!6^E~o$i 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_20240131.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..5aa3e6f29f90e0a34da3592ea56b983580c3ca8b GIT binary patch literal 9533 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 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 new file mode 100644 index 0000000000000000000000000000000000000000..68d12fc7131c7d7d7666286bee6e85dcbfbb8f32 GIT binary patch literal 9786 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 literal 0 HcmV?d00001 diff --git a/inst/shiny-examples/ContDataQC/rmd/tables/miniDOTreformat_ BEFORE_20240131.xlsx b/inst/shiny-examples/ContDataQC/rmd/tables/miniDOTreformat_ BEFORE_20240131.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..5968c2b082f0a891f442a7ab9225679e1c076f20 GIT binary patch literal 9899 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 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 be83c41..3938ba4 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 @@ -9,7 +9,7 @@

About ContDataQC

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 +from Tetra Tech and is available on GitHub == $0 @@ -28,11 +28,8 @@

About ContDataQC

ContDataQC Shiny App Workflow

-

The figure below lays out the general workflow for using the -ContDataQC R tools. Items in bold blue text show functions that can be -performed with ContDataQC.

-

Want to try it yourself? Click here [R] to download test -files.

+

The table below lays out the general workflow for using +ContDataQC.

@@ -157,11 +154,11 @@

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 (lead -EPA scientist: Britta Bierwagen). 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 +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 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 4aae6cc..fb9f4a1 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 @@ -3,14 +3,14 @@

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. We are happy to add more test data to this website. If you have -example files that you would like to contribute, please send them to Jen -Stamp ().

+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.

+the same site but cover two different time periods. You’ll see two +folders:

  • Test

      @@ -30,7 +30,7 @@

      Onset HOBO

      • 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 R tool yourself.
      • +to run the test data through the functions yourself.
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 7f0bbf6..7eeb289 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 @@ -1,108 +1,77 @@ -
-

Frequently asked questions

-

Q: Do I need R software installed on my computer to run the -online version of the Shiny app?

-

A: No, only internet access is required.

-

Q: I have slow internet speed. Is there a way to run the -Shiny app off my local computer to speed things up?

-

A: Yes, if you have R software installed on your computer, you can +

+

Basic Information

+

Requirements: You do not need R software installed +on your computer to run this Shiny app. You only need an internet +connection.

+

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.

-The Shiny app is available as part of the ContDataQC R package. The +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 -

-includes install directions for R.

-

Q: What internet browsers is this website compatible -with?

-

A: It 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.

-

Q: Why isn’t my spreadsheet processing? The screen grays out -and says ‘disconnected from the server’.

-

A: Your input file may not be formatted correctly. Start by checking -that. If you don’t find anything, send your input file(s) and a copy of -your error message to Erik Leppo () and he’ll do his best to -help you troubleshoot. It could also be the Shiny app. Sometimes after -we fix or update one thing, something else stops working, or R software -makes an update which throws something in our code off.

-

Q: Is there a size limit on how big a file (or files) I can -upload?

-

A: The limit is currently set to 70 MB but we can increase that if -needed (email Erik Leppo () with your request).

-

Q: What’s the limit on the number of spreadsheets I can -upload?

-

A: There is no limit but the more files you run at once, the longer -the processing time. We find it’s often faster and easier to run smaller -batches (for example, 4 smaller batches of 1 to 5 files versus 20 files -all at once) but it’s up to the user.

-

Q: Can other people download my files from the -website?

-

A: No, each time the application is run it is independent from all -other versions. That is, each user has their own copy of the app. Once -the browser is closed that version is removed from the server along with -all of the uploaded data.

-

Q: Can multiple people use this website -simultaneously?

-

A: Yes, because it is on a Shiny server, multiple people can use it -at the same time.

-

Q: Can I use this website on my phone?

-

A: Mobile use of this app is possible. A tablet should be fine but -the screen size of a phone may make it impractical.

-

Q: What if I run the aggregate function on input files with -overlapping date ranges? Are all records (even duplicates) included in -the output?

-

A: Yes, the Shiny app will include all records, even the duplicates. -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.

-

Q: What if there are discrepancies between the SiteID and -date ranges in the file name versus what’s in the actual -file?

-

A: The tool will still work. The output file names will use the site -IDs and date ranges in the input file names. The output spreadsheets -themselves will use the site IDs and date ranges inside the files -(i.e. the dates of the first and last rows of each input file). -Nevertheless, it is good practice to have both things match.

-

Q: What will happen if I accidentally run the wrong process -on my input files (e.g., you run the QC operation but had intended to -run the Aggregate function)?

-

A: Either the tool won’t run at all or it will produce output files -with weird names (e.g., if you run the QC operation on files you’ve -already run through the QC operation, you’ll get output files that start -with the name ‘QC_QC_’).

-

Q: Can I change the QC test thresholds that the QC process -uses?

-

A: Yes, visit the ‘Customize QC Thresholds’ tab.

-

Q: Can I simultaneously download data from different USGS -gages for different time periods?

-

A: Not at this time. Currently, all USGS gages you enter will have -data downloaded over the same time period.

-

Q: Are you working on a Shiny app that offers more options -for data summary and visualization?

-A: Yes, a beta version of the ContDataSumViz app is currently available -(for more information contact Tom Faber (EPA Region 1): ). -In addition, for lakes, the beta version of the LakeMonitoR -R -package == $0 +

.

+

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.

+

Limits on input file(s): The input file size limit +is currently set to 70 MB. This can be increased upon request. There is +no limit on the number of files you can upload but the more files you +run at once, the longer the processing time. It’s often faster and +easier to run smaller batches (for example, 4 smaller batches of 1 to 5 +files versus 20 files all at once).

+

Security: Other people cannot see or download your +files from the website. Each time the application is run it is +independent from all other versions. That is, each user has their own +copy of the app. Once the browser is closed, that version is removed +from the server along with all of the uploaded data.

+

Simultaneous use: Because this Shiny app is on a +Shiny server, multiple people can use it at the same time.

+

Customizing QC test thresholds: Instructions on how +to evaluate and customize thresholds can be found on the Main +Functions-QC Thresholds page.

+

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 - -and -Shiny -app == $0 +

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

-are available.

+

+

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.

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 54c1a7b..49534b4 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 @@ -4,36 +4,34 @@

QC Tips

Below are instructional materials and links to resources we have -compiled as we continue to gain experience QCing continuous data. 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.

-

If you have any questions, feedback on ways to improve this process -or suggestions on additional materials that you feel would be helpful to -share, please contact Jen Stamp ().

-
-

Data corrections

-

If you are processing data for the RMNs, we are currently -recommending the following approach

+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.

+
+

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 +-

  • 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 the list -of data qualifiers currently being used by RMN partners.

  • +adding a data qualifier to the Comment column. Click here [XLSX] to download a list +of example data qualifiers.

  • Leave missing data cells blank.

Workflow

-

Click here [PDF] for -recommendations on a workflow for reviewing the QC reports.

+

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, here [PDF] is a recommended -workflow.

+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.

@@ -61,7 +59,7 @@

Accuracy checks

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 being kept by an RMN partner.

+example of an accuracy check worksheet.

Visual checks of time series plots

@@ -69,22 +67,21 @@

Visual checks of time series plots

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. We will continue to add slides to this as we receive -materials.

+dead batteries.

Checking sensor data against other data sources

-This is optional but encouraged if time permits. Click here [ZIP] for instructional materials -from David Smith (Kentucky Division of Water) on how he has been -downloading data from nearby weather stations and USGS gages, as well as -modeled air temperature and precipitation data from Daymet ( +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 his QC -process.

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

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 d0c88c8..1cddcaa 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 @@ -3,26 +3,21 @@

Advanced

-Some users may prefer to use the +

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 [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. The example code in Figure 1 shows how to run -the main functions when using the default settings in the R package. -After the user directs R to the correct directories and selects the -operation (QCRaw, Aggregate or SummaryStats), there are several places -in the code where the user needs to make entries (e.g., SiteID, sensor -type, and start/end date). R will read through the file names in the -directory, select files that match the criteria and generate outputs for -each input file that matches the criteria.

-

Users with intermediate to advanced-level R 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 [ZIP]. Users have more -flexibility using the Shiny app versus R package when it comes to -setting directories and file naming schemes because they can browse to -the desired input file(s).

+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 d4ab3bb..89de135 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 @@ -30,11 +30,10 @@

ContDataSumViz, for summarizing and visualizing QC’d continuous Exit EPA’s website

-

Primary contact:

-
+

Logger Processing App, for processing, organizing, and vetting -continuous environmental logger data.

+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: @@ -51,12 +50,12 @@

Logger Processing App, for processing, organizing, and vetting Exit EPA’s website

-

Primary contact:

-
+

LakeMonitoR, for summarizing and visualizing QC’d continuous -vertical profile data for lakes.

-

Several of its outputs are based on the rLakeAnalyzer R package.

+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 @@ -71,28 +70,6 @@

LakeMonitoR, for summarizing and visualizing QC’d continuous Exit EPA’s website

-

Primary point of contact:

-

-
-

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 - -

-

Primary contact:

-
-
-

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/

rLakeAnalyzer, an R package for summarizing and visualizing @@ -112,6 +89,26 @@

rLakeAnalyzer, an R package for summarizing and visualizing

+
+

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 + +

+
+
+

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/

+

driftR, an R package that corrects drift in water quality data

It implements either one- or two-point variable data corrections 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 ffdc2b4..5e5b85c 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 @@ -86,4 +86,644 @@

Common errors

serial number or label if available’ box)

+
+

Example

+

Running the HOBOware reformat function on a HOBO U20 water level +logger file.

+

Before

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Plot Title: B-009-7 Vaughn Crk + + + + + +
+Date Time, GMT-05:00 + +Water BP, psi (LGR S/N: 10246120) + +Water Temp, °C (LGR S/N: 10246120) + +Air BP, psi (LGR S/N: 10246124) + +Water Level, feet (LGR S/N: 10246120) + +AirTemp, °C (LGR S/N: 10246124) +
+42068 + +14.5947 + +11.916 + +14.1206 + +1.02 + +18.331 +
+42068.020833333336 + +14.597200000000001 + +11.916 + +14.118 + +1.032 + +16.902999999999999 +
+42068.041666666664 + +14.5928 + +12.013 + +14.112500000000001 + +1.034 + +16.713000000000001 +
+42068.0625 + +14.5928 + +12.013 + +14.1083 + +1.044 + +16.902999999999999 +
+42068.083333333336 + +14.5908 + +12.11 + +14.113200000000001 + +1.028 + +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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+SiteID + +Date.Time + +Air.Temp.C + +Air.LoggerID + +Air.RowID + +Water.Temp.C + +Water.LoggerID + +Water.RowID + +Water.Level.ft +
+B0997 + +2015-03-05 00:00:00 + +18.331 + +10246124 + +1 + +11.916 + +10246120 + +1 + +1.020 +
+B0997 + +2015-03-05 00:30:00 + +16.903 + +10246124 + +2 + +11.916 + +10246120 + +2 + +1.032 +
+B0997 + +2015-03-05 01:00:00 + +16.713 + +10246124 + +3 + +12.013 + +10246120 + +3 + +1.034 +
+B0997 + +2015-03-05 01:30:00 + +16.903 + +10246124 + +4 + +12.013 + +10246120 + +4 + +1.044 +
+B0997 + +2015-03-05 02:00:00 + +16.903 + +10246124 + +5 + +12.110 + +10246120 + +5 + +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_miniDOT1.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a2_miniDOT1.html index 94aa5c8..9bffe37 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 @@ -40,13 +40,325 @@

Additional Notes

team.

-
-

Examples

-

Example image after performing the Concatenate +

+

Example

+

Example table after performing the Concatenate function.

-
-Concatenated miniDOT file -
Concatenated miniDOT file
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Unix.Timestamp + +UTC_Date_._Time + +Local.Time + +Battery + +Temperature + +Dissolved.Oxygen + +Dissolved.Oxygen.Saturation + +Q + +serialnum +
+(Second) + +(none) + +(none) + +(Volt) + +(deg C) + +(mg/l) + +(%) + +(none) + +(none) +
+1575496440 + +43803.912499999999 + +43803.912499999999 + +3.44 + +17.667000000000002 + +8.7409999999999997 + + +1.0049999999999999 + +7392-354869 +
+1575498240 + +43803.933333333334 + +43803.933333333334 + +3.44 + +17.878 + +8.7059999999999995 + + +1.006 + +7392-354869 +
+1575500040 + +43803.95416666667 + +43803.95416666667 + +3.44 + +18.155999999999999 + +8.6170000000000009 + + +1.0049999999999999 + +7392-354869 +
+1575501840 + +43803.974999999999 + +43803.974999999999 + +3.44 + +18.442 + +8.5749999999999993 + + +1.006 + +7392-354869 +
+1575503640 + +43803.995833333334 + +43803.995833333334 + +3.45 + +18.643999999999998 + +8.5559999999999992 + + +1.006 + +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 +
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 6c2067a..ccc83c3 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 @@ -39,17 +39,533 @@

Additional Notes

team.

-
-

Examples

-

Example image before after performing the Reformat +

+

Example

+

Example table before after performing the Reformat function.

-
-Concatenated miniDOT file -
Concatenated miniDOT file
-
-
-Reformated miniDOT file -
Reformated miniDOT file
-
+

Before

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Unix.Timestamp + +UTC_Date_._Time + +Local.Time + +Battery + +Temperature + +Dissolved.Oxygen + +Dissolved.Oxygen.Saturation + +Q + +serialnum +
+(Second) + +(none) + +(none) + +(Volt) + +(deg C) + +(mg/l) + +(%) + +(none) + +(none) +
+1575496440 + +43803.912499999999 + +43803.912499999999 + +3.44 + +17.667000000000002 + +8.7409999999999997 + + +1.0049999999999999 + +7392-354869 +
+1575498240 + +43803.933333333334 + +43803.933333333334 + +3.44 + +17.878 + +8.7059999999999995 + + +1.006 + +7392-354869 +
+1575500040 + +43803.95416666667 + +43803.95416666667 + +3.44 + +18.155999999999999 + +8.6170000000000009 + + +1.0049999999999999 + +7392-354869 +
+1575501840 + +43803.974999999999 + +43803.974999999999 + +3.44 + +18.442 + +8.5749999999999993 + + +1.006 + +7392-354869 +
+1575503640 + +43803.995833333334 + +43803.995833333334 + +3.45 + +18.643999999999998 + +8.5559999999999992 + + +1.006 + +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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Date.Time + +Battery + +Water.Temp.C + +DO.mg.L + +Q + +SiteID +
+2019-12-04 21:54:00 + +3.44 + +17.667 + +8.741 + +1.005 + +7392-354869 +
+2019-12-04 22:24:00 + +3.44 + +17.878 + +8.706 + +1.006 + +7392-354869 +
+2019-12-04 22:54:00 + +3.44 + +18.156 + +8.617 + +1.005 + +7392-354869 +
+2019-12-04 23:24:00 + +3.44 + +18.442 + +8.575 + +1.006 + +7392-354869 +
+2019-12-04 23:54:00 + +3.45 + +18.644 + +8.556 + +1.006 + +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 +
diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a_FormattingFiles.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a_FormattingFiles.html index e89b245..787e62c 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a_FormattingFiles.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_2a_FormattingFiles.html @@ -20,7 +20,7 @@

Formatting Files

C’ but it can also be entered as ‘Air.Temp.C’.

  • For units, slashes, spaces or periods (e.g., DO mg/L, DO.mg.L or DO mg L) are acceptable. Do NOT use parentheses.

  • -
  • Advanced R users can add new parameters (beyond the ones show in +

  • Advanced users can add new parameters (beyond the ones show in the table below) to the configuration file.

  • Optional fields include rowID, logger ID (serial number) and discrete measurements. Discrete (in situ) measurements can be entered 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 9672085..e81e949 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,14 +4,11 @@

    Organizing Files

    If you do not already have a good system for organizing continuous -data files, we recommend setting up folders as shown below as a starting -point. Folders and files can be customized as you gain more experience. -The files should be backed up regularly and accessible to other members -of your data management team.

    -

    Click here [ZIP] to download a -zipped file with a ready-made set of (empty) folders. Put the file in -the desired location, unzip it and then replace ‘SiteX’ with the -appropriate site name.

    +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.

    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 @@ -20,9 +17,8 @@

    Organizing Files

    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 R users can modify the default -directories by editing the configuration file.

    -

    +specific directories. Advanced users can modify the default directories +by editing the configuration file.

    Folder descriptions

    @@ -174,7 +170,5 @@

    Folder descriptions

    -

    Click here [XLSX] to -download example Accuracy Check worksheet.

    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 229b977..64f0aa4 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 @@ -42,9 +42,84 @@

    Naming Files

    or DataType = DO).

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

    -
    -Example files following recommended naming scheme -
    Example files following 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 +
    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 f9e02a0..1e76425 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 @@ -3,15 +3,6 @@

    Discrete Data

    -

    Discrete (in situ) measurements can be entered for any parameter. -This needs to be done manually after the input file has been formatted -(for example, after a HOBO file has been run through the Reformat -function). Just add a new column into the input file and use the -following naming scheme for the column heading: parameter name and -units, with ‘Discrete’ at the beginning (for example, ‘Discrete Air Temp -C’). The discrete data point(s) will be included in the time series -plots in the Word or html QC reports that are generated when the user -runs the QC function (below is an example).

    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 @@ -19,8 +10,20 @@

    Discrete Data

    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 being kept by an -RMN partner.

    +to download an example of an accuracy check worksheet.

    +

    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
    • +
    Example QC plot with discrete data
    Example QC plot with discrete data
    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 6f39df0..ccd41e8 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 @@ -9,13 +9,13 @@

    Summary Statistics

    the Data3_Aggregated folder. The status bar will tell you when the upload is complete.

  • Select ‘Summary statistics’ from the ‘Choose Operation to -perform’ drop-down menu

  • +perform’ drop-down menu.

  • A ‘Run operation’ button will appear. Click this button. A status bar will appear in the lower right corner.

  • 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

  • +folder.

  • 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 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 bd67a84..6339c2e 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 @@ -7,19 +7,20 @@

    Upload Custom Thresholds

    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 n o longer want to use the customized +unless you change your mind and no longer want to use the customized file.

    -

    Go to the ‘Main Functions’ tab; verify that the correct configuration +

    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 or html QC report and scroll to the -‘Thresholds, Quick Reference’ table (in the middle section of the -report). Verify that the correct thresholds were used.

    +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.

    -

    Want to try this yourself? Click here [R] to download a test -file.

    +

    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 4b21554..a706757 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 @@ -20,6 +20,6 @@

    Evaluate Thresholds

    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 (as well as what -the defaults are), since units have a large effect on thresholds.

    +this, make sure you consider what units you are using, since units have +a large effect on thresholds.

    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 f1018e7..711d5fa 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 @@ -13,19 +13,21 @@

    Edit Thresholds

    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 -‘Main functions’, generate the QC reports. If you forget the upload -step, the default QC thresholds will be used.

    +‘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.

    Configuration files can be downloaded here -

    • Default [ZIP], with hydrologic -parameters in feet

    • +parameters in feet.

    • Hydrologic parameters in -meters [ZIP] Navigate to the ‘QC tests and calculations’ section. -Edit thresholds as desired. Save the file.

    • +meters [ZIP].

    +

    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: @@ -60,9 +62,9 @@

    Option 2, use the interactive functions.

    box)

  • Edit thresholds using the boxes below

  • After you make changes for each parameter, click ‘save changes’ -as you go (otherwise when you switch to a different parameter, it won’t -save the changes you made to the previous parameter)

  • -
  • Save changes (for each parameter)

  • +as you go (upper left box). Otherwise when you switch to a different +parameter, it won’t save the changes you made to the previous +parameter.

  • Download custom thresholds file

  • 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 3ae4f4d..0afef7f 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,20 +3,19 @@

    Instructions

    -

    You can download data from USGS gages on this tab.

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

    .

    +

    To download data:

      -
    1. Enter as many USGS station IDs as you like separated by commas +

    2. Enter as many USGS station IDs as desired, separated by commas and spaces (e.g., 01187300, 01493000, 01639500).

    3. -
    4. Enter a starting and ending date for which data will be retrieved -for each station; the same date range will be used for every -station.

    5. +
    6. Enter a starting and ending date for which data will be +retrieved; the same date range will be used for every station.

    7. Click the ‘Retrieve USGS data’ button. A progress bar will appear in the bottom-right of the tab. It will advance as each file is completed. Thus, if you select three stations, it will wait at 0%, jump diff --git a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_5b_Console.html b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_5b_Console.html index 4530ac6..c7be95f 100644 --- a/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_5b_Console.html +++ b/inst/shiny-examples/ContDataQC/www/RMD_HTML/App_5b_Console.html @@ -4,7 +4,5 @@

      R console output

      This panel shows messages output by the QC, aggregating, summarizing, -and USGS data retrieval processes. If there are any errors when the tool -runs, please copy the messages and send them and your input files to -Erik Leppo ().

      +and USGS data retrieval processes.