From b2ab793574b00a329a269b3fa06c97083c09e6b1 Mon Sep 17 00:00:00 2001 From: mhpob Date: Fri, 15 Nov 2024 20:05:35 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20mhpob/ot?= =?UTF-8?q?ndo@23c1f2b7a2b6d5d95b6c42ef7f7b885fa4d146c4=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 2 +- LICENSE.html | 2 +- articles/data-push-summaries.html | 2 +- articles/index.html | 2 +- authors.html | 2 +- index.html | 2 +- news/index.html | 2 +- pkgdown.js | 8 ++++++++ pkgdown.yml | 4 ++-- reference/deployment_gantt.html | 4 ++-- reference/index.html | 2 +- reference/make_receiver_push_summary.html | 2 +- reference/make_tag_push_summary.html | 2 +- reference/match_map-1.png | Bin 40924 -> 40821 bytes reference/match_map.html | 2 +- reference/match_table.html | 6 +++--- reference/matched_abacus.html | 4 ++-- reference/otn_query.html | 20 ++++++++++---------- reference/otndo-package.html | 2 +- reference/prep_match_table.html | 2 +- reference/prep_station_spatial.html | 4 ++-- reference/project_contacts.html | 2 +- reference/remaining_transmitters.html | 2 +- reference/station_table.html | 2 +- reference/temporal_distribution.html | 2 +- reference/utilities-make.html | 2 +- search.json | 2 +- 27 files changed, 48 insertions(+), 40 deletions(-) diff --git a/404.html b/404.html index 4e6c51f..5c9afd2 100644 --- a/404.html +++ b/404.html @@ -67,7 +67,7 @@

Page not found (404)

diff --git a/LICENSE.html b/LICENSE.html index 46cef54..f6466bc 100644 --- a/LICENSE.html +++ b/LICENSE.html @@ -176,7 +176,7 @@

NA

diff --git a/articles/data-push-summaries.html b/articles/data-push-summaries.html index 8f6a350..e0b71fe 100644 --- a/articles/data-push-summaries.html +++ b/articles/data-push-summaries.html @@ -248,7 +248,7 @@

References -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/articles/index.html b/articles/index.html index 000dbbc..3582b0c 100644 --- a/articles/index.html +++ b/articles/index.html @@ -50,7 +50,7 @@

Articles

diff --git a/authors.html b/authors.html index 306381b..831f643 100644 --- a/authors.html +++ b/authors.html @@ -72,7 +72,7 @@

Citation

diff --git a/index.html b/index.html index d546ea2..bc4d4cc 100644 --- a/index.html +++ b/index.html @@ -241,7 +241,7 @@

Dev status

diff --git a/news/index.html b/news/index.html index 8095cdd..0561e82 100644 --- a/news/index.html +++ b/news/index.html @@ -98,7 +98,7 @@

otndo 0.0. diff --git a/pkgdown.js b/pkgdown.js index 9757bf9..1a99c65 100644 --- a/pkgdown.js +++ b/pkgdown.js @@ -152,3 +152,11 @@ async function searchFuse(query, callback) { }); }); })(window.jQuery || window.$) + +document.addEventListener('keydown', function(event) { + // Check if the pressed key is '/' + if (event.key === '/') { + event.preventDefault(); // Prevent any default action associated with the '/' key + document.getElementById('search-input').focus(); // Set focus to the search input + } +}); diff --git a/pkgdown.yml b/pkgdown.yml index 1e547ae..841cb2a 100644 --- a/pkgdown.yml +++ b/pkgdown.yml @@ -1,9 +1,9 @@ pandoc: 3.1.11 -pkgdown: 2.1.0 +pkgdown: 2.1.1 pkgdown_sha: ~ articles: data-push-summaries: data-push-summaries.html -last_built: 2024-07-11T17:11Z +last_built: 2024-11-15T20:05Z urls: reference: https://otndo.obrien.page/reference article: https://otndo.obrien.page/articles diff --git a/reference/deployment_gantt.html b/reference/deployment_gantt.html index 3c299ee..a8358eb 100644 --- a/reference/deployment_gantt.html +++ b/reference/deployment_gantt.html @@ -83,7 +83,7 @@

Examples # Make the Gantt chart deployment_gantt( - data.table::fread(deployment_filepath) + data.table::fread(deployment_filepath) ) } # } @@ -98,7 +98,7 @@

Examples -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/reference/index.html b/reference/index.html index 210fd10..1f2db44 100644 --- a/reference/index.html +++ b/reference/index.html @@ -133,7 +133,7 @@

All functions -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/reference/make_receiver_push_summary.html b/reference/make_receiver_push_summary.html index 6cd527e..f03f914 100644 --- a/reference/make_receiver_push_summary.html +++ b/reference/make_receiver_push_summary.html @@ -170,7 +170,7 @@

Examples -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/reference/make_tag_push_summary.html b/reference/make_tag_push_summary.html index 865d077..d31e28c 100644 --- a/reference/make_tag_push_summary.html +++ b/reference/make_tag_push_summary.html @@ -124,7 +124,7 @@

Examples -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/reference/match_map-1.png b/reference/match_map-1.png index 33d9a54da8ae39165a03b0617a65c3df9931e7bf..4a21793bb54cd38ff08ca606f574d5f0f9fd92cd 100644 GIT binary patch literal 40821 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 CdAv*j literal 40924 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 -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/reference/match_table.html b/reference/match_table.html index d6e6022..bd86868 100644 --- a/reference/match_table.html +++ b/reference/match_table.html @@ -78,7 +78,7 @@

Examples exdir = td ) -qualified_dets <- data.table::fread( +qualified_dets <- data.table::fread( file.path(td, "pbsm_qualified_detections_2018.csv") ) @@ -101,7 +101,7 @@

Examples exdir = td ) -matched_dets <- data.table::fread( +matched_dets <- data.table::fread( file.path(td, "pbsm_matched_detections_2018.csv") ) @@ -122,7 +122,7 @@

Examples -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/reference/matched_abacus.html b/reference/matched_abacus.html index 1b53d9e..15f34d4 100644 --- a/reference/matched_abacus.html +++ b/reference/matched_abacus.html @@ -77,7 +77,7 @@

Examples exdir = td ) -matched_dets <- data.table::fread( +matched_dets <- data.table::fread( file.path(td, "pbsm_matched_detections_2018.csv") ) @@ -100,7 +100,7 @@

Examples -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/reference/otn_query.html b/reference/otn_query.html index f43dc2c..2fd4057 100644 --- a/reference/otn_query.html +++ b/reference/otn_query.html @@ -67,9 +67,9 @@

Examples#> $otn_resources_metadata_points #> FID collectioncode #> <char> <char> -#> 1: otn_resources_metadata_points.fid-66c0a928_190a2428266_2a68 EST -#> 2: otn_resources_metadata_points.fid-66c0a928_190a2428266_2c5c SCDNRDFP -#> 3: otn_resources_metadata_points.fid-66c0a928_190a2428266_2d18 MDBSB +#> 1: otn_resources_metadata_points.fid-e602110_193316dcf46_-37c9 EST +#> 2: otn_resources_metadata_points.fid-e602110_193316dcf46_-36c2 SCDNRDFP +#> 3: otn_resources_metadata_points.fid-e602110_193316dcf46_-33eb MDBSB #> report #> <lgcl> #> 1: NA @@ -82,9 +82,9 @@

Examples#> 3: Influence of Turbine Construction Noise on Black Sea Bass Displacement and Physiological Condition in the MD Wind Energy Area #> ocean seriescode status collaborationtype totalrecords id #> <char> <char> <char> <char> <lgcl> <int> -#> 1: NW ATLANTIC OTNGlobal ongoing Data NA 555 -#> 2: NW ATLANTIC FACT ongoing Deployment NA 1099 -#> 3: NW ATLANTIC ACT completed Data NA 1288 +#> 1: NW ATLANTIC OTNGlobal ongoing Data NA 338 +#> 2: NW ATLANTIC FACT ongoing Deployment NA 605 +#> 3: NW ATLANTIC ACT completed Data NA 1369 #> the_geom #> <char> #> 1: POLYGON ((-76.85 23.62, -76.85 24.83, -75.9 24.83, -75.9 23.62, -76.85 23.62)) @@ -94,9 +94,9 @@

Examples#> $project_metadata #> FID collectioncode id #> <char> <char> <int> -#> 1: project_metadata.fid-66c0a928_190a2428266_2d7a TEST 37 -#> 2: project_metadata.fid-66c0a928_190a2428266_2e6b TEST 279 -#> 3: project_metadata.fid-66c0a928_190a2428266_2e95 TEST 322 +#> 1: project_metadata.fid-e602110_193316dcf46_-2e8e TEST 37 +#> 2: project_metadata.fid-e602110_193316dcf46_-2d9d TEST 279 +#> 3: project_metadata.fid-e602110_193316dcf46_-2d73 TEST 322 #> seriescode collaborationtype shortname longname citation abstract #> <char> <lgcl> <char> <char> <lgcl> <lgcl> #> 1: GLOBAL NA TEST Test Series NA NA @@ -135,7 +135,7 @@

Examples -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/reference/otndo-package.html b/reference/otndo-package.html index 1c17f7e..3b4f3f0 100644 --- a/reference/otndo-package.html +++ b/reference/otndo-package.html @@ -63,7 +63,7 @@

Author< diff --git a/reference/prep_match_table.html b/reference/prep_match_table.html index b251f97..05c1ad1 100644 --- a/reference/prep_match_table.html +++ b/reference/prep_match_table.html @@ -69,7 +69,7 @@

Arguments -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/reference/prep_station_spatial.html b/reference/prep_station_spatial.html index a0d2a94..4c464da 100644 --- a/reference/prep_station_spatial.html +++ b/reference/prep_station_spatial.html @@ -76,7 +76,7 @@

Examples exdir = td ) -matched_dets <- data.table::fread( +matched_dets <- data.table::fread( file.path(td, "pbsm_matched_detections_2018.csv") ) @@ -95,7 +95,7 @@

Examples -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/reference/project_contacts.html b/reference/project_contacts.html index b72b912..2d86dbd 100644 --- a/reference/project_contacts.html +++ b/reference/project_contacts.html @@ -109,7 +109,7 @@

Examples -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/reference/remaining_transmitters.html b/reference/remaining_transmitters.html index d0f20dd..aa7bd46 100644 --- a/reference/remaining_transmitters.html +++ b/reference/remaining_transmitters.html @@ -113,7 +113,7 @@

Examples -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/reference/station_table.html b/reference/station_table.html index bca5499..39e720c 100644 --- a/reference/station_table.html +++ b/reference/station_table.html @@ -131,7 +131,7 @@

Examples -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/reference/temporal_distribution.html b/reference/temporal_distribution.html index 7ca3d38..d61e8ee 100644 --- a/reference/temporal_distribution.html +++ b/reference/temporal_distribution.html @@ -97,7 +97,7 @@

Examples -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/reference/utilities-make.html b/reference/utilities-make.html index a021cdf..a391911 100644 --- a/reference/utilities-make.html +++ b/reference/utilities-make.html @@ -92,7 +92,7 @@

Arguments -

Site built with pkgdown 2.1.0.

+

Site built with pkgdown 2.1.1.

diff --git a/search.json b/search.json index e5e8ba4..855ff67 100644 --- a/search.json +++ b/search.json @@ -1 +1 @@ -[{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"getting-your-files","dir":"Articles","previous_headings":"","what":"Getting your files","title":"Data Push Summaries","text":"first thing ’ll want gather OTN matched detections detection extract files.","code":""},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"otn-projects","dir":"Articles","previous_headings":"Getting your files","what":"OTN projects","title":"Data Push Summaries","text":"’ll use data Trudel 2018 (https://members.oceantrack.org/data/repository/pbsm) show might work. First, ’ll download files. Now, just note files saved. make easier pass smmary functions later. can matched detections","code":"# Create a folder in your temporary directory to hold the sample files td <- file.path(tempdir(), \"otndo_test_files\") dir.create(td) # Download deployment metadata download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"data-and-metadata/2018/pbsm-instrument-deployment-short-form-2018.xls\" ), destfile = file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\"), # Note \"mode = 'wb' is needed to download Excel files mode = \"wb\" ) # Download qualified detections download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"detection-extracts/pbsm_qualified_detections_2018.zip\" ), destfile = file.path(td, \"pbsm_qualified_detections_2018.zip\") ) # Download unqualified detections download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"detection-extracts/pbsm_unqualified_detections_2018.zip\" ), destfile = file.path(td, \"pbsm_unqualified_detections_2018.zip\") ) qualified_otn <- file.path(td, \"pbsm_qualified_detections_2018.zip\") unqualified_otn <- file.path(td, \"pbsm_unqualified_detections_2018.zip\") deployment_otn <- file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\") download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"detection-extracts/pbsm_matched_detections_2018.zip\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\") ) matched_otn <- file.path(td, \"pbsm_matched_detections_2018.zip\")"},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"actmatos-projects","dir":"Articles","previous_headings":"Getting your files","what":"ACT/MATOS projects","title":"Data Push Summaries","text":"’re member ACT (project lives MATOS database), can access files via matos package. Two functions matos wrap otndo’s make_*_summary functions automatically download necessary files . See matos::matos_tag_summary matos::matos_receiver_summary details.","code":""},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"fact-projects","dir":"Articles","previous_headings":"Getting your files","what":"FACT projects","title":"Data Push Summaries","text":"time writing, streamlined way get FACT data Research Workspace. moving next steps, make sure necessary files downloaded.","code":""},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"running-the-functions","dir":"Articles","previous_headings":"","what":"Running the functions","title":"Data Push Summaries","text":"summary functions conduct bit data cleaning front end run everything Quarto RMarkdown template report. functions use Quarto default, RMarkdown selected : Quarto installed computer, rmd argument set TRUE. Functionality identical make_tag_push_summary:","code":"# Compiles with Quarto (default) make_receiver_push_summary( qualified = qualified_otn, unqualified = unqualified_otn, deployment = deployment_otn, rmd = F ) # Compiles with RMarkdown make_receiver_push_summary( qualified = qualified_otn, unqualified = unqualified_otn, deployment = deployment_otn, rmd = T ) make_tag_push_summary(matched = matched_otn)"},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"new-matches-since-a-certain-date","dir":"Articles","previous_headings":"","what":"New matches “since” a certain date","title":"Data Push Summaries","text":"Usually want know changed since OTN nodes crossed talked (“data push”). usually get within-node detections, well. nominally scheduled February, July, October. Crossover dates stored within otndo; package updated new dates data push occurs. can also provide date “since” argument see summary data updated since date.","code":"make_tag_push_summary( matched = matched_otn, since = \"2018-05-01\" )"},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"suggestions-to-improve-the-push-summaries","dir":"Articles","previous_headings":"","what":"Suggestions to improve the push summaries","title":"Data Push Summaries","text":"always open suggestions added change make useful . Please open issue GitHub email thoughts.","code":""},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"errors-and-how-to-fix-them","dir":"Articles","previous_headings":"","what":"Errors and how to fix them","title":"Data Push Summaries","text":"error created old version mapview package (pre-June 2021) package’s switch using file geodatabase increase plotting performance. fix , two options: Update mapview (suggested), Run mapviewOptions(fgb = FALSE) attempting run make_receiver_push_summary make_tag_push_summary. Note make report build slowly.","code":"Could not determine mime type for `~\\Matcheddetections_layer.fgb' Error: pandoc document conversion failed with error 63"},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"references","dir":"Articles","previous_headings":"","what":"References","title":"Data Push Summaries","text":"Trudel, Marc. “Pilot Study Investigate Migration Atlantic Salmon Post-Smolts Interactions Aquaculture Passamaquoddy Bay, New Brunswick, Canada.” Ocean Tracking Network, 2018. https://members.oceantrack.org/project?ccode=PBSM.","code":""},{"path":"https://otndo.obrien.page/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Michael O'Brien. Author, maintainer.","code":""},{"path":"https://otndo.obrien.page/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"O'Brien M (2024). otndo: Understand OTN data. R package version 0.2.3, https://otndo.obrien.page/, https://mhpob.github.io/otndo/.","code":"@Manual{, title = {otndo: Understand your OTN data}, author = {Michael O'Brien}, year = {2024}, note = {R package version 0.2.3, https://otndo.obrien.page/}, url = {https://mhpob.github.io/otndo/}, }"},{"path":"https://otndo.obrien.page/index.html","id":"otndo","dir":"","previous_headings":"","what":"Understand your OTN data","title":"Understand your OTN data","text":"entiendo /ˌenˈtjendo/ [ˌẽn̪ˈt̪jẽn̪.̪o]  Spanish, 1st person indicative; “understand” otndo /ˌoʊˈtjendo/ [ˌoʊ̪ˈt̪jẽn̪.d̪o] English, bad pun; “understand (OTN data)” purpose otndo provide high-level summary acoustic telemetry transmitter matches Ocean Tracking Network, putting “network” back “tracking network” noting related projects investigators.","code":""},{"path":"https://otndo.obrien.page/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Understand your OTN data","text":"can install ---date version R-universe GitHub. R-universe: GitHub:","code":"install.packages( \"otndo\", repos = c( \"https://mhpob.r-universe.dev\", \"https://cloud.r-project.org\" ) ) # install.packages(\"remotes\") remotes::install_github(\"mhpob/otndo\")"},{"path":"https://otndo.obrien.page/index.html","id":"tag-push-summary-example","dir":"","previous_headings":"","what":"Tag push summary example","title":"Understand your OTN data","text":"basic example might use otndo summarize transmitter data: get report working directory goodies! summary number matched individuals detections researcher project: overall extent projects tags matched: fish heard project: ever-ubiquitous “abacus plot”, showing tag heard, colored project: interactive map showing detections receiver: general estimate number transmitters active given date:","code":"# Download some example data td <- file.path(tempdir(), \"otndo_test_files\") dir.create(td) download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/detection-extracts/\", \"pbsm_matched_detections_2018.zip/@@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\"), mode = \"wb\" ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) # Make a tag push summary library(otndo) make_tag_push_summary( matched = file.path(td, \"pbsm_matched_detections_2018.csv\") )"},{"path":"https://otndo.obrien.page/index.html","id":"receiver-push-summary-example","dir":"","previous_headings":"","what":"Receiver push summary example","title":"Understand your OTN data","text":"basic example might use otndo summarize receiver data: summary number matched individuals detections researcher project: overall extent projects associated tags receivers heard: receivers heard project’s fish: Gantt chart receivers’ deployments: number detections individuals per receiver: interactive map showing detections receiver: summary unmatched detections, including likely false… …may real! summary unmatched detections occurred, receiver:","code":"# Download some example data ## Deployment metadata download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/data-and-metadata/\", \"archived-records/2018/pbsm-instrument-deployment-short-form-2018.xls/@@download/file\" ), destfile = file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\"), mode = \"wb\" ) ## Qualified detections download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/detection-extracts/\", \"pbsm_qualified_detections_2018.zip/@@download/file\" ), destfile = file.path(td, \"pbsm_qualified_detections_2018.zip\") ) unzip(file.path(td, \"pbsm_qualified_detections_2018.zip\"), exdir = td ) ## Unqualified detections download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/detection-extracts/\", \"pbsm_unqualified_detections_2018.zip/@@download/file\" ), destfile = file.path(td, \"pbsm_unqualified_detections_2018.zip\") ) unzip(file.path(td, \"pbsm_unqualified_detections_2018.zip\"), exdir = td ) # Make a receiver push summary make_receiver_push_summary( qualified = file.path(td, \"pbsm_qualified_detections_2018.csv\"), unqualified = file.path(td, \"pbsm_unqualified_detections_2018.csv\"), deployment = file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\") )"},{"path":"https://otndo.obrien.page/index.html","id":"getting-in-contact","dir":"","previous_headings":"","what":"Getting in contact","title":"Understand your OTN data","text":"something doesn’t work way just need little help, feel free open issue GitHub email (Mike O’Brien: obrien@umces.edu) directly.","code":""},{"path":"https://otndo.obrien.page/reference/deployment_gantt.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a Gantt-like chart of receiver deployments and recoveries — deployment_gantt","title":"Create a Gantt-like chart of receiver deployments and recoveries — deployment_gantt","text":"Create Gantt-like chart receiver deployments recoveries","code":""},{"path":"https://otndo.obrien.page/reference/deployment_gantt.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a Gantt-like chart of receiver deployments and recoveries — deployment_gantt","text":"","code":"deployment_gantt(deployment)"},{"path":"https://otndo.obrien.page/reference/deployment_gantt.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a Gantt-like chart of receiver deployments and recoveries — deployment_gantt","text":"deployment Cleaned deployment metadata sheet(s). Assumes cleaned internal otndo:::clean_otn_deployment function, read , converted data.table.","code":""},{"path":"https://otndo.obrien.page/reference/deployment_gantt.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create a Gantt-like chart of receiver deployments and recoveries — deployment_gantt","text":"","code":"if (FALSE) { # \\dontrun{ # Download a deployment metadata file td <- file.path(tempdir(), \"matos_test_files\") dir.create(td) download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"data-and-metadata/2018/pbsm-instrument-deployment-short-form-2018.xls/\", \"@download/file\" ), destfile = file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\"), mode = \"wb\" ) # Use internal function to clean deployment_filepath <- otndo:::write_to_tempdir( type = \"deployment\", files = file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\"), temp_dir = td ) # Make the Gantt chart deployment_gantt( data.table::fread(deployment_filepath) ) } # }"},{"path":"https://otndo.obrien.page/reference/make_receiver_push_summary.html","id":null,"dir":"Reference","previous_headings":"","what":"Create summary reports of receiver project data from the OTN data push — make_receiver_push_summary","title":"Create summary reports of receiver project data from the OTN data push — make_receiver_push_summary","text":"Create summary reports receiver project data OTN data push","code":""},{"path":"https://otndo.obrien.page/reference/make_receiver_push_summary.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create summary reports of receiver project data from the OTN data push — make_receiver_push_summary","text":"","code":"make_receiver_push_summary( qualified = NULL, unqualified = NULL, update_push_log = FALSE, deployment = NULL, out_dir = getwd(), since = NULL, rmd = FALSE )"},{"path":"https://otndo.obrien.page/reference/make_receiver_push_summary.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create summary reports of receiver project data from the OTN data push — make_receiver_push_summary","text":"qualified, unqualified Default NULL: character vector file paths qualified/unqualified detections. can CSVs zipped folders. update_push_log wish use updated push log? Default FALSE, switch TRUE updated package since push occurred. deployment File path user-supplied master OTN receiver deployment metadata. out_dir Defaults working directory. directory like save report? since Date YYYY-MM-DD format. Summarizes new since provided date. rmd Logical. Compile via RMarkdown rather Quarto?","code":""},{"path":"https://otndo.obrien.page/reference/make_receiver_push_summary.html","id":"push-log","dir":"Reference","previous_headings":"","what":"Push log","title":"Create summary reports of receiver project data from the OTN data push — make_receiver_push_summary","text":"keep track ACT data pushes occur, log kept package's GitHub page. automatically downloaded every time download update package, can avoid re-downloading package changing update_push_log TRUE. can get similar behavior providing date since argument.","code":""},{"path":"https://otndo.obrien.page/reference/make_receiver_push_summary.html","id":"output","dir":"Reference","previous_headings":"","what":"Output","title":"Create summary reports of receiver project data from the OTN data push — make_receiver_push_summary","text":"function creates HTML report can viewed web browser.","code":""},{"path":"https://otndo.obrien.page/reference/make_receiver_push_summary.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create summary reports of receiver project data from the OTN data push — make_receiver_push_summary","text":"","code":"if (FALSE) { # \\dontrun{ td <- file.path(tempdir(), \"matos_test_files\") dir.create(td) download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"data-and-metadata/archived-records/2018/\", \"pbsm-instrument-deployment-short-form-2018.xls/\", \"@download/file\" ), destfile = file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\"), mode = \"wb\" ) download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"detection-extracts/pbsm_qualified_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_qualified_detections_2018.zip\"), mode = \"wb\" ) unzip( file.path(td, \"pbsm_qualified_detections_2018.zip\"), exdir = td ) download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"detection-extracts/pbsm_unqualified_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_unqualified_detections_2018.zip\"), mode = \"wb\" ) unzip( file.path(td, \"pbsm_unqualified_detections_2018.zip\"), exdir = td ) qualified_files <- file.path(td, \"pbsm_qualified_detections_2018.csv\") unqualified_files <- file.path(td, \"pbsm_unqualified_detections_2018.csv\") deployment_files <- file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\") make_receiver_push_summary( qualified = qualified_files, unqualified = unqualified_files, deployment = deployment_files, since = \"2018-11-01\" ) } # }"},{"path":"https://otndo.obrien.page/reference/make_tag_push_summary.html","id":null,"dir":"Reference","previous_headings":"","what":"Create summary reports of receiver project data from the OTN data push — make_tag_push_summary","title":"Create summary reports of receiver project data from the OTN data push — make_tag_push_summary","text":"Create summary reports receiver project data OTN data push","code":""},{"path":"https://otndo.obrien.page/reference/make_tag_push_summary.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create summary reports of receiver project data from the OTN data push — make_tag_push_summary","text":"","code":"make_tag_push_summary( matched = NULL, update_push_log = FALSE, since = NULL, sensor_decoding = NULL, out_dir = getwd(), rmd = FALSE )"},{"path":"https://otndo.obrien.page/reference/make_tag_push_summary.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create summary reports of receiver project data from the OTN data push — make_tag_push_summary","text":"matched argument also accepts character vector file paths matched detections. can CSVs zipped folders. update_push_log wish use updated push log? Default FALSE, switch TRUE updated package since push occurred. since date YYYY-MM-DD format. Provides summary detections matched/edited since date. sensor_decoding yet implemented. place provide information decode summarize sensor data, out_dir Defaults working directory. directory like save report? rmd Logical. Compile via RMarkdown rather Quarto?","code":""},{"path":"https://otndo.obrien.page/reference/make_tag_push_summary.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create summary reports of receiver project data from the OTN data push — make_tag_push_summary","text":"","code":"if (FALSE) { # \\dontrun{ # The code below downloads some matched detections from OTN, then calls the function. td <- file.path(tempdir(), \"matos_test_files\") dir.create(td) download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\"), mode = \"wb\" ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) # Provide the detection file(s) to the \\code{matched} argument, with an # optional date to the \\code{since} argument to summarize what was new since # that date. make_tag_push_summary( matched = file.path( td, \"pbsm_matched_detections_2018.csv\" ), since = \"2018-11-01\" ) } # }"},{"path":"https://otndo.obrien.page/reference/match_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot the geographic extent of OTN projects — match_map","title":"Plot the geographic extent of OTN projects — match_map","text":"Plot geographic extent OTN projects","code":""},{"path":"https://otndo.obrien.page/reference/match_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot the geographic extent of OTN projects — match_map","text":"","code":"match_map(otn_tables)"},{"path":"https://otndo.obrien.page/reference/match_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot the geographic extent of OTN projects — match_map","text":"otn_tables list containing OTN's otn_resources_metadata_points GeoServer layer. Usually created using otn_query.","code":""},{"path":"https://otndo.obrien.page/reference/match_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot the geographic extent of OTN projects — match_map","text":"","code":"match_map( otn_query(\"MDWEA\") )"},{"path":"https://otndo.obrien.page/reference/match_table.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a reactable table of matched detections — match_table","title":"Create a reactable table of matched detections — match_table","text":"Create reactable table matched detections","code":""},{"path":"https://otndo.obrien.page/reference/match_table.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a reactable table of matched detections — match_table","text":"","code":"match_table(extract, type = c(\"tag\", \"receiver\"))"},{"path":"https://otndo.obrien.page/reference/match_table.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a reactable table of matched detections — match_table","text":"extract matched (transmitter) qualified (receiver) OTN detections type Tag receiver data? Takes values \"tag\" \"receiver\"; defaults \"tag\".","code":""},{"path":"https://otndo.obrien.page/reference/match_table.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create a reactable table of matched detections — match_table","text":"","code":"if (FALSE) { # \\dontrun{ # Receiver download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"detection-extracts/pbsm_qualified_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_qualified_detections_2018.zip\"), mode = \"wb\" ) unzip( file.path(td, \"pbsm_qualified_detections_2018.zip\"), exdir = td ) qualified_dets <- data.table::fread( file.path(td, \"pbsm_qualified_detections_2018.csv\") ) match_table( extract = qualified_dets, type = \"receiver\" ) # Transmitters download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\"), mode = \"wb\" ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) matched_dets <- data.table::fread( file.path(td, \"pbsm_matched_detections_2018.csv\") ) match_table( extract = matched_dets, type = \"tag\" ) } # }"},{"path":"https://otndo.obrien.page/reference/matched_abacus.html","id":null,"dir":"Reference","previous_headings":"","what":"Create an abacus plot of matched detections — matched_abacus","title":"Create an abacus plot of matched detections — matched_abacus","text":"Create abacus plot matched detections","code":""},{"path":"https://otndo.obrien.page/reference/matched_abacus.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create an abacus plot of matched detections — matched_abacus","text":"","code":"matched_abacus(temp_dist, release)"},{"path":"https://otndo.obrien.page/reference/matched_abacus.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create an abacus plot of matched detections — matched_abacus","text":"temp_dist Data output temporal_distribution() release Data frame release times/locations; subset matched detections data","code":""},{"path":"https://otndo.obrien.page/reference/matched_abacus.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create an abacus plot of matched detections — matched_abacus","text":"","code":"if (FALSE) { # \\dontrun{ # Get a detection file download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\"), mode = \"wb\" ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) matched_dets <- data.table::fread( file.path(td, \"pbsm_matched_detections_2018.csv\") ) # Run temporal_distribution temporal <- temporal_distribution(matched_dets, \"tag\") # Run matched_abacus matched_abacus(temporal$data, matched_dets[receiver == \"release\"]) } # }"},{"path":"https://otndo.obrien.page/reference/otn_query.html","id":null,"dir":"Reference","previous_headings":"","what":"Query the OTN Geoserver — otn_query","title":"Query the OTN Geoserver — otn_query","text":"Query OTN Geoserver","code":""},{"path":"https://otndo.obrien.page/reference/otn_query.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Query the OTN Geoserver — otn_query","text":"","code":"otn_query(projects)"},{"path":"https://otndo.obrien.page/reference/otn_query.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Query the OTN Geoserver — otn_query","text":"projects Character vector OTN project codes like project metadata. Prepended networks can provided, necessary.","code":""},{"path":"https://otndo.obrien.page/reference/otn_query.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Query the OTN Geoserver — otn_query","text":"list \"otn_resources_metadata_points\" \"project_metadata\" given projects","code":""},{"path":"https://otndo.obrien.page/reference/otn_query.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Query the OTN Geoserver — otn_query","text":"","code":"otn_query(c(\"EST\", \"FACT.SCDNRDFP\", \"ACT.MDBSB\", \"MDBSB\")) #> $otn_resources_metadata_points #> FID collectioncode #> #> 1: otn_resources_metadata_points.fid-66c0a928_190a2428266_2a68 EST #> 2: otn_resources_metadata_points.fid-66c0a928_190a2428266_2c5c SCDNRDFP #> 3: otn_resources_metadata_points.fid-66c0a928_190a2428266_2d18 MDBSB #> report #> #> 1: NA #> 2: NA #> 3: NA #> resource_full_name #> #> 1: Shedd Aquarium Bahamas Sharks and Ray Research Program #> 2: Diadromous Fishes statewide movement in SC #> 3: Influence of Turbine Construction Noise on Black Sea Bass Displacement and Physiological Condition in the MD Wind Energy Area #> ocean seriescode status collaborationtype totalrecords id #> #> 1: NW ATLANTIC OTNGlobal ongoing Data NA 555 #> 2: NW ATLANTIC FACT ongoing Deployment NA 1099 #> 3: NW ATLANTIC ACT completed Data NA 1288 #> the_geom #> #> 1: POLYGON ((-76.85 23.62, -76.85 24.83, -75.9 24.83, -75.9 23.62, -76.85 23.62)) #> 2: POLYGON ((-82.46 25.41, -82.46 35.99, -78 35.99, -78 25.41, -82.46 25.41)) #> 3: POLYGON ((-79.53 33.88, -79.53 42.26, -68.1 42.26, -68.1 33.88, -79.53 33.88)) #> #> $project_metadata #> FID collectioncode id #> #> 1: project_metadata.fid-66c0a928_190a2428266_2d7a TEST 37 #> 2: project_metadata.fid-66c0a928_190a2428266_2e6b TEST 279 #> 3: project_metadata.fid-66c0a928_190a2428266_2e95 TEST 322 #> seriescode collaborationtype shortname longname citation abstract #> #> 1: GLOBAL NA TEST Test Series NA NA #> 2: GLOBAL NA TEST Test Series NA NA #> 3: GLOBAL NA TEST Test Series NA NA #> institutioncode ocean country state local_area locality westbl eastbl #> #> 1: NA GLOBAL NA NA NA NA -180 180 #> 2: NA GLOBAL NA NA NA NA -180 180 #> 3: NA GLOBAL NA NA NA NA -180 180 #> southbl northbl status usage website sdate edate node #> #> 1: -90 90 ongoing NA NA 2000-01-01 ongoing OTN-Global #> 2: -90 90 ongoing NA NA 2000-01-01 ongoing nep #> 3: -90 90 ongoing NA NA OTN-Global #> database db_location datacentre #> #> 1: otn db.oceantrack.org NA #> 2: nepnode db.oceantrack.org NA #> 3: otn db.oceantrack.org NA #> the_geom #> #> 1: POLYGON ((-180 -90, -180 90, 180 90, 180 -90, -180 -90)) #> 2: POLYGON ((-180 -90, -180 90, 180 90, 180 -90, -180 -90)) #> 3: POLYGON ((-180 -90, -180 90, 180 90, 180 -90, -180 -90)) #>"},{"path":"https://otndo.obrien.page/reference/otndo-package.html","id":null,"dir":"Reference","previous_headings":"","what":"otndo: Understand your OTN data — otndo-package","title":"otndo: Understand your OTN data — otndo-package","text":"package provides functions summarize various type OTN-style data.","code":""},{"path":[]},{"path":"https://otndo.obrien.page/reference/otndo-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"otndo: Understand your OTN data — otndo-package","text":"Maintainer: Michael O'Brien mike@obrien.page (ORCID)","code":""},{"path":"https://otndo.obrien.page/reference/prep_match_table.html","id":null,"dir":"Reference","previous_headings":"","what":"Prepare the detection match summary data — prep_match_table","title":"Prepare the detection match summary data — prep_match_table","text":"Prepare detection match summary data","code":""},{"path":"https://otndo.obrien.page/reference/prep_match_table.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Prepare the detection match summary data — prep_match_table","text":"","code":"prep_match_table(extract, type = c(\"tag\", \"receiver\"))"},{"path":"https://otndo.obrien.page/reference/prep_match_table.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Prepare the detection match summary data — prep_match_table","text":"extract matched (transmitter) qualified (receiver) OTN detections type Tag receiver data? Takes values \"tag\" \"receiver\"; defaults \"tag\".","code":""},{"path":"https://otndo.obrien.page/reference/prep_station_spatial.html","id":null,"dir":"Reference","previous_headings":"","what":"Summarize OTN extract data by station and convert to a spatial object — prep_station_spatial","title":"Summarize OTN extract data by station and convert to a spatial object — prep_station_spatial","text":"Summarize OTN extract data station convert spatial object","code":""},{"path":"https://otndo.obrien.page/reference/prep_station_spatial.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Summarize OTN extract data by station and convert to a spatial object — prep_station_spatial","text":"","code":"prep_station_spatial(extract, type = c(\"tag\", \"receiver\"))"},{"path":"https://otndo.obrien.page/reference/prep_station_spatial.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Summarize OTN extract data by station and convert to a spatial object — prep_station_spatial","text":"extract OTN extract data type type extract data: \"tag\" \"receiver\"","code":""},{"path":"https://otndo.obrien.page/reference/prep_station_spatial.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Summarize OTN extract data by station and convert to a spatial object — prep_station_spatial","text":"","code":"if (FALSE) { # \\dontrun{ # Get an extract file download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\"), mode = \"wb\" ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) matched_dets <- data.table::fread( file.path(td, \"pbsm_matched_detections_2018.csv\") ) # Convert to spatial prep_station_spatial(matched_dets, \"tag\") } # }"},{"path":"https://otndo.obrien.page/reference/project_contacts.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract and combine the contacts for matched projects — project_contacts","title":"Extract and combine the contacts for matched projects — project_contacts","text":"Extract combine contacts matched projects","code":""},{"path":"https://otndo.obrien.page/reference/project_contacts.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract and combine the contacts for matched projects — project_contacts","text":"","code":"project_contacts(extract, type = c(\"receiver\", \"tag\"))"},{"path":"https://otndo.obrien.page/reference/project_contacts.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract and combine the contacts for matched projects — project_contacts","text":"extract data.frame transmitter/receiver detections matched OTN: matched detections tags qualified detections receivers type Type extract data: \"tag\" \"receiver\"","code":""},{"path":"https://otndo.obrien.page/reference/project_contacts.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract and combine the contacts for matched projects — project_contacts","text":"data.table containing project names, principal investigators (PI), points contact (POC), respective emails. Multiple emails separated commas.","code":""},{"path":"https://otndo.obrien.page/reference/project_contacts.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract and combine the contacts for matched projects — project_contacts","text":"","code":"if (FALSE) { # \\dontrun{ # Set up example data td <- file.path(tempdir(), \"otndo_example\") dir.create(td) download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\"), mode = \"wb\" ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) matched <- read.csv(file.path( td, \"pbsm_matched_detections_2018.csv\" )) # Actually run the function project_contacts(matched, type = \"tag\") # Clean up unlink(td, recursive = TRUE) } # }"},{"path":"https://otndo.obrien.page/reference/remaining_transmitters.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimate transmitters remaining in the system — remaining_transmitters","title":"Estimate transmitters remaining in the system — remaining_transmitters","text":"function estimates transmitters remaining system finding last date detection transmitter summing available transmitters given day. coarse measure likely inaccurate sparse data short time scales.","code":""},{"path":"https://otndo.obrien.page/reference/remaining_transmitters.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimate transmitters remaining in the system — remaining_transmitters","text":"","code":"remaining_transmitters(matched, push_log, release = NULL)"},{"path":"https://otndo.obrien.page/reference/remaining_transmitters.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimate transmitters remaining in the system — remaining_transmitters","text":"matched matched OTN transmitter detections push_log data.frame containing date -recent data push. requirement likely change future. release Optional. Data frame release times/locations; subset matched detections data","code":""},{"path":"https://otndo.obrien.page/reference/remaining_transmitters.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimate transmitters remaining in the system — remaining_transmitters","text":"","code":"if (FALSE) { # \\dontrun{ #' # Set up example data td <- file.path(tempdir(), \"otndo_example\") dir.create(td) # For tag data download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\") ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) matched <- read.csv(file.path( td, \"pbsm_matched_detections_2018.csv\" )) # Run remaining_transmitters() remaining_transmitters(matched_dets, data.frame(date = as.Date(\"2020-01-01\"))) } # }"},{"path":"https://otndo.obrien.page/reference/station_table.html","id":null,"dir":"Reference","previous_headings":"","what":"Create the station summary table — station_table","title":"Create the station summary table — station_table","text":"Create station summary table","code":""},{"path":"https://otndo.obrien.page/reference/station_table.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create the station summary table — station_table","text":"","code":"station_table(extract, type = c(\"tag\", \"receiver\"))"},{"path":"https://otndo.obrien.page/reference/station_table.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create the station summary table — station_table","text":"extract OTN detections. \"Matched\" detections tag data \"qualified\" detections receiver data type type data summarized.","code":""},{"path":"https://otndo.obrien.page/reference/station_table.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create the station summary table — station_table","text":"tag data, data.table PI, project, station, number detections, number individuals heard. receiver data, data.table station, number detections, number individuals heard (assuming PI POC ).","code":""},{"path":"https://otndo.obrien.page/reference/station_table.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create the station summary table — station_table","text":"","code":"if (FALSE) { # \\dontrun{ # Set up example data td <- file.path(tempdir(), \"otndo_example\") dir.create(td) # For tag data download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\") ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) matched <- read.csv(file.path( td, \"pbsm_matched_detections_2018.csv\" )) # Actually run the function prep_station_table(matched, type = \"tag\") # For receiver data download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"detection-extracts/pbsm_qualified_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_qualified_detections_2018.zip\"), mode = \"wb\" ) unzip( file.path(td, \"pbsm_qualified_detections_2018.zip\"), exdir = td ) qualified <- read.csv(file.path(td, \"pbsm_qualified_detections_2018.csv\")) # Actually run the function station_table(qualified, type = \"receiver\") # Clean up unlink(td, recursive = TRUE) } # }"},{"path":"https://otndo.obrien.page/reference/temporal_distribution.html","id":null,"dir":"Reference","previous_headings":"","what":"Create an abacus plot of detections by project — temporal_distribution","title":"Create an abacus plot of detections by project — temporal_distribution","text":"Create abacus plot detections project","code":""},{"path":"https://otndo.obrien.page/reference/temporal_distribution.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create an abacus plot of detections by project — temporal_distribution","text":"","code":"temporal_distribution(extract, type = c(\"tag\", \"receiver\"))"},{"path":"https://otndo.obrien.page/reference/temporal_distribution.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create an abacus plot of detections by project — temporal_distribution","text":"extract OTN data extract file type Transmitter (tag) receiver detections?","code":""},{"path":"https://otndo.obrien.page/reference/temporal_distribution.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create an abacus plot of detections by project — temporal_distribution","text":"","code":"if (FALSE) { # \\dontrun{ # Set up example data td <- file.path(tempdir(), \"otndo_example\") dir.create(td) # For tag data download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\") ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) matched <- read.csv(file.path( td, \"pbsm_matched_detections_2018.csv\" )) temporal_distribution(matched, \"tag\") } # }"},{"path":"https://otndo.obrien.page/reference/utilities-make.html","id":null,"dir":"Reference","previous_headings":"","what":"Place where functions live for the make_*_summary family of functions — utilities-make","title":"Place where functions live for the make_*_summary family of functions — utilities-make","text":"Place functions live make_*_summary family functions","code":""},{"path":"https://otndo.obrien.page/reference/utilities-make.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Place where functions live for the make_*_summary family of functions — utilities-make","text":"","code":"clean_otn_deployment(deployment) convert_times(date_time) provided_file_unzip(files, temp_dir) write_to_tempdir(type, files, temp_dir) extract_proj_name(detection_file)"},{"path":"https://otndo.obrien.page/reference/utilities-make.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Place where functions live for the make_*_summary family of functions — utilities-make","text":"deployment Character. File path deployment metadata. date_time Character numeric. Date-time convert. files Character. File paths files unzipped written directory temp_dir Character. File path temporary directory type Character. Type data (deployment, qualified, unqualified). detection_file Character. File path detections.","code":""},{"path":[]},{"path":"https://otndo.obrien.page/news/index.html","id":"v-0-2","dir":"Changelog","previous_headings":"","what":"v 0.2.2","title":"otndo 0.2","text":"Fixed behavior clean_otn_deployment return different columns internal transmitter logged. Issue #10; d58e2d4 Add internal function (convert_times) checks Excel-formatted date-times converts accordingly f13f360","code":""},{"path":"https://otndo.obrien.page/news/index.html","id":"v-0-2-1","dir":"Changelog","previous_headings":"","what":"v 0.2.1","title":"otndo 0.2","text":"Fleshes tests get 100% coverage (now!). Note overestimate can’t actually get QMD files test. Fix bug project_contacts merge wasn’t actually joing thought . ea26c56 Fix bug QMD files didn’t reference new data properly, resulting repeated summary tables. e7d1368 Properly handles situation new detections exist. 07d9590 Fixed bug CSV deployment metadata actually checked presence header. dc420e6","code":""},{"path":"https://otndo.obrien.page/news/index.html","id":"v-0-2-2","dir":"Changelog","previous_headings":"","what":"v 0.2.0","title":"otndo 0.2","text":"Breaks functions internal QMD template. allow clearer errors -directed testing. deployment_gantt match_map match_table matched_abacus otn_query prep_station_spatial project_contacts remaining_transmitters station_table temporal_distribution Added initial suite tests functions. Changed license CC-","code":""},{"path":"https://otndo.obrien.page/news/index.html","id":"otndo-01","dir":"Changelog","previous_headings":"","what":"otndo 0.1","title":"otndo 0.1","text":"Fix issue otndo get lost deployment metadata sheet wasn’t labeled Switch semantic versioning Add figure table captions Runiverse! Miscellaneous fixes Combine PIs/POCs projects changing staff","code":""},{"path":"https://otndo.obrien.page/news/index.html","id":"otndo-0009000","dir":"Changelog","previous_headings":"","what":"otndo 0.0.0.9000","title":"otndo 0.0.0.9000","text":"Added NEWS.md file track changes package.","code":""}] +[{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"getting-your-files","dir":"Articles","previous_headings":"","what":"Getting your files","title":"Data Push Summaries","text":"first thing ’ll want gather OTN matched detections detection extract files.","code":""},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"otn-projects","dir":"Articles","previous_headings":"Getting your files","what":"OTN projects","title":"Data Push Summaries","text":"’ll use data Trudel 2018 (https://members.oceantrack.org/data/repository/pbsm) show might work. First, ’ll download files. Now, just note files saved. make easier pass smmary functions later. can matched detections","code":"# Create a folder in your temporary directory to hold the sample files td <- file.path(tempdir(), \"otndo_test_files\") dir.create(td) # Download deployment metadata download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"data-and-metadata/2018/pbsm-instrument-deployment-short-form-2018.xls\" ), destfile = file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\"), # Note \"mode = 'wb' is needed to download Excel files mode = \"wb\" ) # Download qualified detections download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"detection-extracts/pbsm_qualified_detections_2018.zip\" ), destfile = file.path(td, \"pbsm_qualified_detections_2018.zip\") ) # Download unqualified detections download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"detection-extracts/pbsm_unqualified_detections_2018.zip\" ), destfile = file.path(td, \"pbsm_unqualified_detections_2018.zip\") ) qualified_otn <- file.path(td, \"pbsm_qualified_detections_2018.zip\") unqualified_otn <- file.path(td, \"pbsm_unqualified_detections_2018.zip\") deployment_otn <- file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\") download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"detection-extracts/pbsm_matched_detections_2018.zip\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\") ) matched_otn <- file.path(td, \"pbsm_matched_detections_2018.zip\")"},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"actmatos-projects","dir":"Articles","previous_headings":"Getting your files","what":"ACT/MATOS projects","title":"Data Push Summaries","text":"’re member ACT (project lives MATOS database), can access files via matos package. Two functions matos wrap otndo’s make_*_summary functions automatically download necessary files . See matos::matos_tag_summary matos::matos_receiver_summary details.","code":""},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"fact-projects","dir":"Articles","previous_headings":"Getting your files","what":"FACT projects","title":"Data Push Summaries","text":"time writing, streamlined way get FACT data Research Workspace. moving next steps, make sure necessary files downloaded.","code":""},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"running-the-functions","dir":"Articles","previous_headings":"","what":"Running the functions","title":"Data Push Summaries","text":"summary functions conduct bit data cleaning front end run everything Quarto RMarkdown template report. functions use Quarto default, RMarkdown selected : Quarto installed computer, rmd argument set TRUE. Functionality identical make_tag_push_summary:","code":"# Compiles with Quarto (default) make_receiver_push_summary( qualified = qualified_otn, unqualified = unqualified_otn, deployment = deployment_otn, rmd = F ) # Compiles with RMarkdown make_receiver_push_summary( qualified = qualified_otn, unqualified = unqualified_otn, deployment = deployment_otn, rmd = T ) make_tag_push_summary(matched = matched_otn)"},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"new-matches-since-a-certain-date","dir":"Articles","previous_headings":"","what":"New matches “since” a certain date","title":"Data Push Summaries","text":"Usually want know changed since OTN nodes crossed talked (“data push”). usually get within-node detections, well. nominally scheduled February, July, October. Crossover dates stored within otndo; package updated new dates data push occurs. can also provide date “since” argument see summary data updated since date.","code":"make_tag_push_summary( matched = matched_otn, since = \"2018-05-01\" )"},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"suggestions-to-improve-the-push-summaries","dir":"Articles","previous_headings":"","what":"Suggestions to improve the push summaries","title":"Data Push Summaries","text":"always open suggestions added change make useful . Please open issue GitHub email thoughts.","code":""},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"errors-and-how-to-fix-them","dir":"Articles","previous_headings":"","what":"Errors and how to fix them","title":"Data Push Summaries","text":"error created old version mapview package (pre-June 2021) package’s switch using file geodatabase increase plotting performance. fix , two options: Update mapview (suggested), Run mapviewOptions(fgb = FALSE) attempting run make_receiver_push_summary make_tag_push_summary. Note make report build slowly.","code":"Could not determine mime type for `~\\Matcheddetections_layer.fgb' Error: pandoc document conversion failed with error 63"},{"path":"https://otndo.obrien.page/articles/data-push-summaries.html","id":"references","dir":"Articles","previous_headings":"","what":"References","title":"Data Push Summaries","text":"Trudel, Marc. “Pilot Study Investigate Migration Atlantic Salmon Post-Smolts Interactions Aquaculture Passamaquoddy Bay, New Brunswick, Canada.” Ocean Tracking Network, 2018. https://members.oceantrack.org/project?ccode=PBSM.","code":""},{"path":"https://otndo.obrien.page/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Michael O'Brien. Author, maintainer.","code":""},{"path":"https://otndo.obrien.page/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"O'Brien M (2024). otndo: Understand OTN data. R package version 0.2.3, https://otndo.obrien.page/, https://mhpob.github.io/otndo/.","code":"@Manual{, title = {otndo: Understand your OTN data}, author = {Michael O'Brien}, year = {2024}, note = {R package version 0.2.3, https://otndo.obrien.page/}, url = {https://mhpob.github.io/otndo/}, }"},{"path":"https://otndo.obrien.page/index.html","id":"otndo","dir":"","previous_headings":"","what":"Understand your OTN data","title":"Understand your OTN data","text":"entiendo /ˌenˈtjendo/ [ˌẽn̪ˈt̪jẽn̪.̪o]  Spanish, 1st person indicative; “understand” otndo /ˌoʊˈtjendo/ [ˌoʊ̪ˈt̪jẽn̪.d̪o] English, bad pun; “understand (OTN data)” purpose otndo provide high-level summary acoustic telemetry transmitter matches Ocean Tracking Network, putting “network” back “tracking network” noting related projects investigators.","code":""},{"path":"https://otndo.obrien.page/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Understand your OTN data","text":"can install ---date version R-universe GitHub. R-universe: GitHub:","code":"install.packages( \"otndo\", repos = c( \"https://mhpob.r-universe.dev\", \"https://cloud.r-project.org\" ) ) # install.packages(\"remotes\") remotes::install_github(\"mhpob/otndo\")"},{"path":"https://otndo.obrien.page/index.html","id":"tag-push-summary-example","dir":"","previous_headings":"","what":"Tag push summary example","title":"Understand your OTN data","text":"basic example might use otndo summarize transmitter data: get report working directory goodies! summary number matched individuals detections researcher project: overall extent projects tags matched: fish heard project: ever-ubiquitous “abacus plot”, showing tag heard, colored project: interactive map showing detections receiver: general estimate number transmitters active given date:","code":"# Download some example data td <- file.path(tempdir(), \"otndo_test_files\") dir.create(td) download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/detection-extracts/\", \"pbsm_matched_detections_2018.zip/@@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\"), mode = \"wb\" ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) # Make a tag push summary library(otndo) make_tag_push_summary( matched = file.path(td, \"pbsm_matched_detections_2018.csv\") )"},{"path":"https://otndo.obrien.page/index.html","id":"receiver-push-summary-example","dir":"","previous_headings":"","what":"Receiver push summary example","title":"Understand your OTN data","text":"basic example might use otndo summarize receiver data: summary number matched individuals detections researcher project: overall extent projects associated tags receivers heard: receivers heard project’s fish: Gantt chart receivers’ deployments: number detections individuals per receiver: interactive map showing detections receiver: summary unmatched detections, including likely false… …may real! summary unmatched detections occurred, receiver:","code":"# Download some example data ## Deployment metadata download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/data-and-metadata/\", \"archived-records/2018/pbsm-instrument-deployment-short-form-2018.xls/@@download/file\" ), destfile = file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\"), mode = \"wb\" ) ## Qualified detections download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/detection-extracts/\", \"pbsm_qualified_detections_2018.zip/@@download/file\" ), destfile = file.path(td, \"pbsm_qualified_detections_2018.zip\") ) unzip(file.path(td, \"pbsm_qualified_detections_2018.zip\"), exdir = td ) ## Unqualified detections download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/detection-extracts/\", \"pbsm_unqualified_detections_2018.zip/@@download/file\" ), destfile = file.path(td, \"pbsm_unqualified_detections_2018.zip\") ) unzip(file.path(td, \"pbsm_unqualified_detections_2018.zip\"), exdir = td ) # Make a receiver push summary make_receiver_push_summary( qualified = file.path(td, \"pbsm_qualified_detections_2018.csv\"), unqualified = file.path(td, \"pbsm_unqualified_detections_2018.csv\"), deployment = file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\") )"},{"path":"https://otndo.obrien.page/index.html","id":"getting-in-contact","dir":"","previous_headings":"","what":"Getting in contact","title":"Understand your OTN data","text":"something doesn’t work way just need little help, feel free open issue GitHub email (Mike O’Brien: obrien@umces.edu) directly.","code":""},{"path":"https://otndo.obrien.page/reference/deployment_gantt.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a Gantt-like chart of receiver deployments and recoveries — deployment_gantt","title":"Create a Gantt-like chart of receiver deployments and recoveries — deployment_gantt","text":"Create Gantt-like chart receiver deployments recoveries","code":""},{"path":"https://otndo.obrien.page/reference/deployment_gantt.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a Gantt-like chart of receiver deployments and recoveries — deployment_gantt","text":"","code":"deployment_gantt(deployment)"},{"path":"https://otndo.obrien.page/reference/deployment_gantt.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a Gantt-like chart of receiver deployments and recoveries — deployment_gantt","text":"deployment Cleaned deployment metadata sheet(s). Assumes cleaned internal otndo:::clean_otn_deployment function, read , converted data.table.","code":""},{"path":"https://otndo.obrien.page/reference/deployment_gantt.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create a Gantt-like chart of receiver deployments and recoveries — deployment_gantt","text":"","code":"if (FALSE) { # \\dontrun{ # Download a deployment metadata file td <- file.path(tempdir(), \"matos_test_files\") dir.create(td) download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"data-and-metadata/2018/pbsm-instrument-deployment-short-form-2018.xls/\", \"@download/file\" ), destfile = file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\"), mode = \"wb\" ) # Use internal function to clean deployment_filepath <- otndo:::write_to_tempdir( type = \"deployment\", files = file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\"), temp_dir = td ) # Make the Gantt chart deployment_gantt( data.table::fread(deployment_filepath) ) } # }"},{"path":"https://otndo.obrien.page/reference/make_receiver_push_summary.html","id":null,"dir":"Reference","previous_headings":"","what":"Create summary reports of receiver project data from the OTN data push — make_receiver_push_summary","title":"Create summary reports of receiver project data from the OTN data push — make_receiver_push_summary","text":"Create summary reports receiver project data OTN data push","code":""},{"path":"https://otndo.obrien.page/reference/make_receiver_push_summary.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create summary reports of receiver project data from the OTN data push — make_receiver_push_summary","text":"","code":"make_receiver_push_summary( qualified = NULL, unqualified = NULL, update_push_log = FALSE, deployment = NULL, out_dir = getwd(), since = NULL, rmd = FALSE )"},{"path":"https://otndo.obrien.page/reference/make_receiver_push_summary.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create summary reports of receiver project data from the OTN data push — make_receiver_push_summary","text":"qualified, unqualified Default NULL: character vector file paths qualified/unqualified detections. can CSVs zipped folders. update_push_log wish use updated push log? Default FALSE, switch TRUE updated package since push occurred. deployment File path user-supplied master OTN receiver deployment metadata. out_dir Defaults working directory. directory like save report? since Date YYYY-MM-DD format. Summarizes new since provided date. rmd Logical. Compile via RMarkdown rather Quarto?","code":""},{"path":"https://otndo.obrien.page/reference/make_receiver_push_summary.html","id":"push-log","dir":"Reference","previous_headings":"","what":"Push log","title":"Create summary reports of receiver project data from the OTN data push — make_receiver_push_summary","text":"keep track ACT data pushes occur, log kept package's GitHub page. automatically downloaded every time download update package, can avoid re-downloading package changing update_push_log TRUE. can get similar behavior providing date since argument.","code":""},{"path":"https://otndo.obrien.page/reference/make_receiver_push_summary.html","id":"output","dir":"Reference","previous_headings":"","what":"Output","title":"Create summary reports of receiver project data from the OTN data push — make_receiver_push_summary","text":"function creates HTML report can viewed web browser.","code":""},{"path":"https://otndo.obrien.page/reference/make_receiver_push_summary.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create summary reports of receiver project data from the OTN data push — make_receiver_push_summary","text":"","code":"if (FALSE) { # \\dontrun{ td <- file.path(tempdir(), \"matos_test_files\") dir.create(td) download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"data-and-metadata/archived-records/2018/\", \"pbsm-instrument-deployment-short-form-2018.xls/\", \"@download/file\" ), destfile = file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\"), mode = \"wb\" ) download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"detection-extracts/pbsm_qualified_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_qualified_detections_2018.zip\"), mode = \"wb\" ) unzip( file.path(td, \"pbsm_qualified_detections_2018.zip\"), exdir = td ) download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"detection-extracts/pbsm_unqualified_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_unqualified_detections_2018.zip\"), mode = \"wb\" ) unzip( file.path(td, \"pbsm_unqualified_detections_2018.zip\"), exdir = td ) qualified_files <- file.path(td, \"pbsm_qualified_detections_2018.csv\") unqualified_files <- file.path(td, \"pbsm_unqualified_detections_2018.csv\") deployment_files <- file.path(td, \"pbsm-instrument-deployment-short-form-2018.xls\") make_receiver_push_summary( qualified = qualified_files, unqualified = unqualified_files, deployment = deployment_files, since = \"2018-11-01\" ) } # }"},{"path":"https://otndo.obrien.page/reference/make_tag_push_summary.html","id":null,"dir":"Reference","previous_headings":"","what":"Create summary reports of receiver project data from the OTN data push — make_tag_push_summary","title":"Create summary reports of receiver project data from the OTN data push — make_tag_push_summary","text":"Create summary reports receiver project data OTN data push","code":""},{"path":"https://otndo.obrien.page/reference/make_tag_push_summary.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create summary reports of receiver project data from the OTN data push — make_tag_push_summary","text":"","code":"make_tag_push_summary( matched = NULL, update_push_log = FALSE, since = NULL, sensor_decoding = NULL, out_dir = getwd(), rmd = FALSE )"},{"path":"https://otndo.obrien.page/reference/make_tag_push_summary.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create summary reports of receiver project data from the OTN data push — make_tag_push_summary","text":"matched argument also accepts character vector file paths matched detections. can CSVs zipped folders. update_push_log wish use updated push log? Default FALSE, switch TRUE updated package since push occurred. since date YYYY-MM-DD format. Provides summary detections matched/edited since date. sensor_decoding yet implemented. place provide information decode summarize sensor data, out_dir Defaults working directory. directory like save report? rmd Logical. Compile via RMarkdown rather Quarto?","code":""},{"path":"https://otndo.obrien.page/reference/make_tag_push_summary.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create summary reports of receiver project data from the OTN data push — make_tag_push_summary","text":"","code":"if (FALSE) { # \\dontrun{ # The code below downloads some matched detections from OTN, then calls the function. td <- file.path(tempdir(), \"matos_test_files\") dir.create(td) download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\"), mode = \"wb\" ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) # Provide the detection file(s) to the \\code{matched} argument, with an # optional date to the \\code{since} argument to summarize what was new since # that date. make_tag_push_summary( matched = file.path( td, \"pbsm_matched_detections_2018.csv\" ), since = \"2018-11-01\" ) } # }"},{"path":"https://otndo.obrien.page/reference/match_map.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot the geographic extent of OTN projects — match_map","title":"Plot the geographic extent of OTN projects — match_map","text":"Plot geographic extent OTN projects","code":""},{"path":"https://otndo.obrien.page/reference/match_map.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot the geographic extent of OTN projects — match_map","text":"","code":"match_map(otn_tables)"},{"path":"https://otndo.obrien.page/reference/match_map.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot the geographic extent of OTN projects — match_map","text":"otn_tables list containing OTN's otn_resources_metadata_points GeoServer layer. Usually created using otn_query.","code":""},{"path":"https://otndo.obrien.page/reference/match_map.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot the geographic extent of OTN projects — match_map","text":"","code":"match_map( otn_query(\"MDWEA\") )"},{"path":"https://otndo.obrien.page/reference/match_table.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a reactable table of matched detections — match_table","title":"Create a reactable table of matched detections — match_table","text":"Create reactable table matched detections","code":""},{"path":"https://otndo.obrien.page/reference/match_table.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a reactable table of matched detections — match_table","text":"","code":"match_table(extract, type = c(\"tag\", \"receiver\"))"},{"path":"https://otndo.obrien.page/reference/match_table.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a reactable table of matched detections — match_table","text":"extract matched (transmitter) qualified (receiver) OTN detections type Tag receiver data? Takes values \"tag\" \"receiver\"; defaults \"tag\".","code":""},{"path":"https://otndo.obrien.page/reference/match_table.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create a reactable table of matched detections — match_table","text":"","code":"if (FALSE) { # \\dontrun{ # Receiver download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"detection-extracts/pbsm_qualified_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_qualified_detections_2018.zip\"), mode = \"wb\" ) unzip( file.path(td, \"pbsm_qualified_detections_2018.zip\"), exdir = td ) qualified_dets <- data.table::fread( file.path(td, \"pbsm_qualified_detections_2018.csv\") ) match_table( extract = qualified_dets, type = \"receiver\" ) # Transmitters download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\"), mode = \"wb\" ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) matched_dets <- data.table::fread( file.path(td, \"pbsm_matched_detections_2018.csv\") ) match_table( extract = matched_dets, type = \"tag\" ) } # }"},{"path":"https://otndo.obrien.page/reference/matched_abacus.html","id":null,"dir":"Reference","previous_headings":"","what":"Create an abacus plot of matched detections — matched_abacus","title":"Create an abacus plot of matched detections — matched_abacus","text":"Create abacus plot matched detections","code":""},{"path":"https://otndo.obrien.page/reference/matched_abacus.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create an abacus plot of matched detections — matched_abacus","text":"","code":"matched_abacus(temp_dist, release)"},{"path":"https://otndo.obrien.page/reference/matched_abacus.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create an abacus plot of matched detections — matched_abacus","text":"temp_dist Data output temporal_distribution() release Data frame release times/locations; subset matched detections data","code":""},{"path":"https://otndo.obrien.page/reference/matched_abacus.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create an abacus plot of matched detections — matched_abacus","text":"","code":"if (FALSE) { # \\dontrun{ # Get a detection file download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\"), mode = \"wb\" ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) matched_dets <- data.table::fread( file.path(td, \"pbsm_matched_detections_2018.csv\") ) # Run temporal_distribution temporal <- temporal_distribution(matched_dets, \"tag\") # Run matched_abacus matched_abacus(temporal$data, matched_dets[receiver == \"release\"]) } # }"},{"path":"https://otndo.obrien.page/reference/otn_query.html","id":null,"dir":"Reference","previous_headings":"","what":"Query the OTN Geoserver — otn_query","title":"Query the OTN Geoserver — otn_query","text":"Query OTN Geoserver","code":""},{"path":"https://otndo.obrien.page/reference/otn_query.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Query the OTN Geoserver — otn_query","text":"","code":"otn_query(projects)"},{"path":"https://otndo.obrien.page/reference/otn_query.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Query the OTN Geoserver — otn_query","text":"projects Character vector OTN project codes like project metadata. Prepended networks can provided, necessary.","code":""},{"path":"https://otndo.obrien.page/reference/otn_query.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Query the OTN Geoserver — otn_query","text":"list \"otn_resources_metadata_points\" \"project_metadata\" given projects","code":""},{"path":"https://otndo.obrien.page/reference/otn_query.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Query the OTN Geoserver — otn_query","text":"","code":"otn_query(c(\"EST\", \"FACT.SCDNRDFP\", \"ACT.MDBSB\", \"MDBSB\")) #> $otn_resources_metadata_points #> FID collectioncode #> #> 1: otn_resources_metadata_points.fid-e602110_193316dcf46_-37c9 EST #> 2: otn_resources_metadata_points.fid-e602110_193316dcf46_-36c2 SCDNRDFP #> 3: otn_resources_metadata_points.fid-e602110_193316dcf46_-33eb MDBSB #> report #> #> 1: NA #> 2: NA #> 3: NA #> resource_full_name #> #> 1: Shedd Aquarium Bahamas Sharks and Ray Research Program #> 2: Diadromous Fishes statewide movement in SC #> 3: Influence of Turbine Construction Noise on Black Sea Bass Displacement and Physiological Condition in the MD Wind Energy Area #> ocean seriescode status collaborationtype totalrecords id #> #> 1: NW ATLANTIC OTNGlobal ongoing Data NA 338 #> 2: NW ATLANTIC FACT ongoing Deployment NA 605 #> 3: NW ATLANTIC ACT completed Data NA 1369 #> the_geom #> #> 1: POLYGON ((-76.85 23.62, -76.85 24.83, -75.9 24.83, -75.9 23.62, -76.85 23.62)) #> 2: POLYGON ((-82.46 25.41, -82.46 35.99, -78 35.99, -78 25.41, -82.46 25.41)) #> 3: POLYGON ((-79.53 33.88, -79.53 42.26, -68.1 42.26, -68.1 33.88, -79.53 33.88)) #> #> $project_metadata #> FID collectioncode id #> #> 1: project_metadata.fid-e602110_193316dcf46_-2e8e TEST 37 #> 2: project_metadata.fid-e602110_193316dcf46_-2d9d TEST 279 #> 3: project_metadata.fid-e602110_193316dcf46_-2d73 TEST 322 #> seriescode collaborationtype shortname longname citation abstract #> #> 1: GLOBAL NA TEST Test Series NA NA #> 2: GLOBAL NA TEST Test Series NA NA #> 3: GLOBAL NA TEST Test Series NA NA #> institutioncode ocean country state local_area locality westbl eastbl #> #> 1: NA GLOBAL NA NA NA NA -180 180 #> 2: NA GLOBAL NA NA NA NA -180 180 #> 3: NA GLOBAL NA NA NA NA -180 180 #> southbl northbl status usage website sdate edate node #> #> 1: -90 90 ongoing NA NA 2000-01-01 ongoing OTN-Global #> 2: -90 90 ongoing NA NA 2000-01-01 ongoing nep #> 3: -90 90 ongoing NA NA OTN-Global #> database db_location datacentre #> #> 1: otn db.oceantrack.org NA #> 2: nepnode db.oceantrack.org NA #> 3: otn db.oceantrack.org NA #> the_geom #> #> 1: POLYGON ((-180 -90, -180 90, 180 90, 180 -90, -180 -90)) #> 2: POLYGON ((-180 -90, -180 90, 180 90, 180 -90, -180 -90)) #> 3: POLYGON ((-180 -90, -180 90, 180 90, 180 -90, -180 -90)) #>"},{"path":"https://otndo.obrien.page/reference/otndo-package.html","id":null,"dir":"Reference","previous_headings":"","what":"otndo: Understand your OTN data — otndo-package","title":"otndo: Understand your OTN data — otndo-package","text":"package provides functions summarize various type OTN-style data.","code":""},{"path":[]},{"path":"https://otndo.obrien.page/reference/otndo-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"otndo: Understand your OTN data — otndo-package","text":"Maintainer: Michael O'Brien mike@obrien.page (ORCID)","code":""},{"path":"https://otndo.obrien.page/reference/prep_match_table.html","id":null,"dir":"Reference","previous_headings":"","what":"Prepare the detection match summary data — prep_match_table","title":"Prepare the detection match summary data — prep_match_table","text":"Prepare detection match summary data","code":""},{"path":"https://otndo.obrien.page/reference/prep_match_table.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Prepare the detection match summary data — prep_match_table","text":"","code":"prep_match_table(extract, type = c(\"tag\", \"receiver\"))"},{"path":"https://otndo.obrien.page/reference/prep_match_table.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Prepare the detection match summary data — prep_match_table","text":"extract matched (transmitter) qualified (receiver) OTN detections type Tag receiver data? Takes values \"tag\" \"receiver\"; defaults \"tag\".","code":""},{"path":"https://otndo.obrien.page/reference/prep_station_spatial.html","id":null,"dir":"Reference","previous_headings":"","what":"Summarize OTN extract data by station and convert to a spatial object — prep_station_spatial","title":"Summarize OTN extract data by station and convert to a spatial object — prep_station_spatial","text":"Summarize OTN extract data station convert spatial object","code":""},{"path":"https://otndo.obrien.page/reference/prep_station_spatial.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Summarize OTN extract data by station and convert to a spatial object — prep_station_spatial","text":"","code":"prep_station_spatial(extract, type = c(\"tag\", \"receiver\"))"},{"path":"https://otndo.obrien.page/reference/prep_station_spatial.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Summarize OTN extract data by station and convert to a spatial object — prep_station_spatial","text":"extract OTN extract data type type extract data: \"tag\" \"receiver\"","code":""},{"path":"https://otndo.obrien.page/reference/prep_station_spatial.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Summarize OTN extract data by station and convert to a spatial object — prep_station_spatial","text":"","code":"if (FALSE) { # \\dontrun{ # Get an extract file download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\"), mode = \"wb\" ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) matched_dets <- data.table::fread( file.path(td, \"pbsm_matched_detections_2018.csv\") ) # Convert to spatial prep_station_spatial(matched_dets, \"tag\") } # }"},{"path":"https://otndo.obrien.page/reference/project_contacts.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract and combine the contacts for matched projects — project_contacts","title":"Extract and combine the contacts for matched projects — project_contacts","text":"Extract combine contacts matched projects","code":""},{"path":"https://otndo.obrien.page/reference/project_contacts.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract and combine the contacts for matched projects — project_contacts","text":"","code":"project_contacts(extract, type = c(\"receiver\", \"tag\"))"},{"path":"https://otndo.obrien.page/reference/project_contacts.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract and combine the contacts for matched projects — project_contacts","text":"extract data.frame transmitter/receiver detections matched OTN: matched detections tags qualified detections receivers type Type extract data: \"tag\" \"receiver\"","code":""},{"path":"https://otndo.obrien.page/reference/project_contacts.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract and combine the contacts for matched projects — project_contacts","text":"data.table containing project names, principal investigators (PI), points contact (POC), respective emails. Multiple emails separated commas.","code":""},{"path":"https://otndo.obrien.page/reference/project_contacts.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract and combine the contacts for matched projects — project_contacts","text":"","code":"if (FALSE) { # \\dontrun{ # Set up example data td <- file.path(tempdir(), \"otndo_example\") dir.create(td) download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\"), mode = \"wb\" ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) matched <- read.csv(file.path( td, \"pbsm_matched_detections_2018.csv\" )) # Actually run the function project_contacts(matched, type = \"tag\") # Clean up unlink(td, recursive = TRUE) } # }"},{"path":"https://otndo.obrien.page/reference/remaining_transmitters.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimate transmitters remaining in the system — remaining_transmitters","title":"Estimate transmitters remaining in the system — remaining_transmitters","text":"function estimates transmitters remaining system finding last date detection transmitter summing available transmitters given day. coarse measure likely inaccurate sparse data short time scales.","code":""},{"path":"https://otndo.obrien.page/reference/remaining_transmitters.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Estimate transmitters remaining in the system — remaining_transmitters","text":"","code":"remaining_transmitters(matched, push_log, release = NULL)"},{"path":"https://otndo.obrien.page/reference/remaining_transmitters.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Estimate transmitters remaining in the system — remaining_transmitters","text":"matched matched OTN transmitter detections push_log data.frame containing date -recent data push. requirement likely change future. release Optional. Data frame release times/locations; subset matched detections data","code":""},{"path":"https://otndo.obrien.page/reference/remaining_transmitters.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimate transmitters remaining in the system — remaining_transmitters","text":"","code":"if (FALSE) { # \\dontrun{ #' # Set up example data td <- file.path(tempdir(), \"otndo_example\") dir.create(td) # For tag data download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\") ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) matched <- read.csv(file.path( td, \"pbsm_matched_detections_2018.csv\" )) # Run remaining_transmitters() remaining_transmitters(matched_dets, data.frame(date = as.Date(\"2020-01-01\"))) } # }"},{"path":"https://otndo.obrien.page/reference/station_table.html","id":null,"dir":"Reference","previous_headings":"","what":"Create the station summary table — station_table","title":"Create the station summary table — station_table","text":"Create station summary table","code":""},{"path":"https://otndo.obrien.page/reference/station_table.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create the station summary table — station_table","text":"","code":"station_table(extract, type = c(\"tag\", \"receiver\"))"},{"path":"https://otndo.obrien.page/reference/station_table.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create the station summary table — station_table","text":"extract OTN detections. \"Matched\" detections tag data \"qualified\" detections receiver data type type data summarized.","code":""},{"path":"https://otndo.obrien.page/reference/station_table.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create the station summary table — station_table","text":"tag data, data.table PI, project, station, number detections, number individuals heard. receiver data, data.table station, number detections, number individuals heard (assuming PI POC ).","code":""},{"path":"https://otndo.obrien.page/reference/station_table.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create the station summary table — station_table","text":"","code":"if (FALSE) { # \\dontrun{ # Set up example data td <- file.path(tempdir(), \"otndo_example\") dir.create(td) # For tag data download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\") ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) matched <- read.csv(file.path( td, \"pbsm_matched_detections_2018.csv\" )) # Actually run the function prep_station_table(matched, type = \"tag\") # For receiver data download.file( paste0( \"https://members.oceantrack.org/data/repository/pbsm/\", \"detection-extracts/pbsm_qualified_detections_2018.zip/\", \"@download/file\" ), destfile = file.path(td, \"pbsm_qualified_detections_2018.zip\"), mode = \"wb\" ) unzip( file.path(td, \"pbsm_qualified_detections_2018.zip\"), exdir = td ) qualified <- read.csv(file.path(td, \"pbsm_qualified_detections_2018.csv\")) # Actually run the function station_table(qualified, type = \"receiver\") # Clean up unlink(td, recursive = TRUE) } # }"},{"path":"https://otndo.obrien.page/reference/temporal_distribution.html","id":null,"dir":"Reference","previous_headings":"","what":"Create an abacus plot of detections by project — temporal_distribution","title":"Create an abacus plot of detections by project — temporal_distribution","text":"Create abacus plot detections project","code":""},{"path":"https://otndo.obrien.page/reference/temporal_distribution.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create an abacus plot of detections by project — temporal_distribution","text":"","code":"temporal_distribution(extract, type = c(\"tag\", \"receiver\"))"},{"path":"https://otndo.obrien.page/reference/temporal_distribution.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create an abacus plot of detections by project — temporal_distribution","text":"extract OTN data extract file type Transmitter (tag) receiver detections?","code":""},{"path":"https://otndo.obrien.page/reference/temporal_distribution.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create an abacus plot of detections by project — temporal_distribution","text":"","code":"if (FALSE) { # \\dontrun{ # Set up example data td <- file.path(tempdir(), \"otndo_example\") dir.create(td) # For tag data download.file( paste0( \"https://members.oceantrack.org/data/repository/\", \"pbsm/detection-extracts/pbsm_matched_detections_2018.zip/@download/file\" ), destfile = file.path(td, \"pbsm_matched_detections_2018.zip\") ) unzip(file.path(td, \"pbsm_matched_detections_2018.zip\"), exdir = td ) matched <- read.csv(file.path( td, \"pbsm_matched_detections_2018.csv\" )) temporal_distribution(matched, \"tag\") } # }"},{"path":"https://otndo.obrien.page/reference/utilities-make.html","id":null,"dir":"Reference","previous_headings":"","what":"Place where functions live for the make_*_summary family of functions — utilities-make","title":"Place where functions live for the make_*_summary family of functions — utilities-make","text":"Place functions live make_*_summary family functions","code":""},{"path":"https://otndo.obrien.page/reference/utilities-make.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Place where functions live for the make_*_summary family of functions — utilities-make","text":"","code":"clean_otn_deployment(deployment) convert_times(date_time) provided_file_unzip(files, temp_dir) write_to_tempdir(type, files, temp_dir) extract_proj_name(detection_file)"},{"path":"https://otndo.obrien.page/reference/utilities-make.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Place where functions live for the make_*_summary family of functions — utilities-make","text":"deployment Character. File path deployment metadata. date_time Character numeric. Date-time convert. files Character. File paths files unzipped written directory temp_dir Character. File path temporary directory type Character. Type data (deployment, qualified, unqualified). detection_file Character. File path detections.","code":""},{"path":[]},{"path":"https://otndo.obrien.page/news/index.html","id":"v-0-2","dir":"Changelog","previous_headings":"","what":"v 0.2.2","title":"otndo 0.2","text":"Fixed behavior clean_otn_deployment return different columns internal transmitter logged. Issue #10; d58e2d4 Add internal function (convert_times) checks Excel-formatted date-times converts accordingly f13f360","code":""},{"path":"https://otndo.obrien.page/news/index.html","id":"v-0-2-1","dir":"Changelog","previous_headings":"","what":"v 0.2.1","title":"otndo 0.2","text":"Fleshes tests get 100% coverage (now!). Note overestimate can’t actually get QMD files test. Fix bug project_contacts merge wasn’t actually joing thought . ea26c56 Fix bug QMD files didn’t reference new data properly, resulting repeated summary tables. e7d1368 Properly handles situation new detections exist. 07d9590 Fixed bug CSV deployment metadata actually checked presence header. dc420e6","code":""},{"path":"https://otndo.obrien.page/news/index.html","id":"v-0-2-2","dir":"Changelog","previous_headings":"","what":"v 0.2.0","title":"otndo 0.2","text":"Breaks functions internal QMD template. allow clearer errors -directed testing. deployment_gantt match_map match_table matched_abacus otn_query prep_station_spatial project_contacts remaining_transmitters station_table temporal_distribution Added initial suite tests functions. Changed license CC-","code":""},{"path":"https://otndo.obrien.page/news/index.html","id":"otndo-01","dir":"Changelog","previous_headings":"","what":"otndo 0.1","title":"otndo 0.1","text":"Fix issue otndo get lost deployment metadata sheet wasn’t labeled Switch semantic versioning Add figure table captions Runiverse! Miscellaneous fixes Combine PIs/POCs projects changing staff","code":""},{"path":"https://otndo.obrien.page/news/index.html","id":"otndo-0009000","dir":"Changelog","previous_headings":"","what":"otndo 0.0.0.9000","title":"otndo 0.0.0.9000","text":"Added NEWS.md file track changes package.","code":""}]