diff --git a/tests/testthat/test-search_all.R b/tests/testthat/test-search_all.R index 55bc0d2f..71a917c8 100644 --- a/tests/testthat/test-search_all.R +++ b/tests/testthat/test-search_all.R @@ -3,12 +3,12 @@ # (these are probably not built for many fast queries if output is large) test_that("search_all checks inputs, returns helpful error", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() expect_error(search_all(attributes, ""), "Unrecognised metadata requested") }) test_that("search_all returns correct output for type", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() fields <- search_all(fields, "year") reasons <- search_all(reasons, "genus") profiles <- search_all(profiles, "ala") @@ -28,13 +28,13 @@ test_that("search_all returns correct output for type", { }) test_that("search_all returns error when missing query", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() expect_error(search_all(profiles), "We didn't detect a search query") expect_error(search_all(fields, blah)) }) test_that("search_assertions returns a filtered result", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() all <- show_all_assertions() search <- search_assertions("INVALID") search2 <- search_all(assertions, "INVALID") @@ -50,7 +50,7 @@ test_that("search_assertions returns a filtered result", { }) test_that("search_apis returns a filtered result", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() all <- show_all_apis() search <- search_apis("image") search2 <- search_all(apis, "image") @@ -65,7 +65,7 @@ test_that("search_apis returns a filtered result", { }) test_that("search_atlases returns a filtered result", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() all <- show_all_atlases() search <- search_atlases("guat") search2 <- search_all(atlases, "guat") @@ -80,7 +80,7 @@ test_that("search_atlases returns a filtered result", { }) test_that("search_collections returns a filtered result", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() all <- show_all_collections() search <- search_collections("dna") search2 <- search_all(collections, "dna") @@ -95,7 +95,7 @@ test_that("search_collections returns a filtered result", { }) test_that("search_datasets returns a filtered result", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() all <- show_all_datasets() search <- search_datasets("endangered") search2 <- search_all(datasets, "endangered") @@ -110,7 +110,7 @@ test_that("search_datasets returns a filtered result", { }) test_that("search_fields returns a filtered result", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() all <- show_all_fields() search <- search_fields("precipitation") search2 <- search_all(fields, "precipitation") @@ -125,12 +125,12 @@ test_that("search_fields returns a filtered result", { }) test_that("search_fields helpful warning with blank argument", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() expect_error(search_fields(), "We didn't detect a search query.") }) test_that("search_licenses returns a filtered result", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() all <- show_all_licences() search <- search_licences("3.0") search2 <- search_all(licences, "3.0") @@ -145,7 +145,7 @@ test_that("search_licenses returns a filtered result", { }) test_that("search_lists returns a filtered result", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() all <- show_all_lists() search <- search_lists("threatened") search2 <- search_all(lists, "threatened") @@ -160,7 +160,7 @@ test_that("search_lists returns a filtered result", { }) test_that("search_reasons returns a filtered result", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() all <- show_all_reasons() search <- search_reasons("sci") search2 <- search_all(reasons, "sci") @@ -175,7 +175,7 @@ test_that("search_reasons returns a filtered result", { }) test_that("search_ranks returns a filtered result", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() all <- show_all_ranks() search <- search_ranks("kingdom") search2 <- search_all(ranks, "kingdom") @@ -190,7 +190,7 @@ test_that("search_ranks returns a filtered result", { }) test_that("search_profiles returns a filtered result", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_on_cran(); skip_if_offline(); skip_on_ci() all <- show_all_profiles() search <- search_profiles("base") search2 <- search_all(profiles, "base") @@ -205,7 +205,7 @@ test_that("search_profiles returns a filtered result", { }) test_that("search_providers returns a filtered result", { - skip_if_offline(); skip_on_ci() + skip_on_cran(); skip_if_offline(); skip_on_ci() all <- show_all_providers() search <- search_providers("inaturalist") search2 <- search_all(providers, "inaturalist") diff --git a/vignettes/choosing_an_atlas.Rmd b/vignettes/choosing_an_atlas.Rmd index 13219064..2c9f1bf1 100644 --- a/vignettes/choosing_an_atlas.Rmd +++ b/vignettes/choosing_an_atlas.Rmd @@ -1,7 +1,7 @@ --- title: "Choosing an atlas" author: "Martin Westgate, Dax Kellie" -date: '2023-11-07' +date: '2023-12-14' output: rmarkdown::html_vignette vignette: > @@ -21,7 +21,10 @@ own APIs, often built from the 'living atlas' codebase developed by the ALA. At present, `galah` supports the following functions and atlases: +
plot of chunk atlas-support +

plot of chunk atlas-support

+
## Set Organisation @@ -51,8 +54,7 @@ galah_config(atlas = "Guatemala") ``` ``` -## Atlas selected: Sistema Nacional de Información sobre Diversidad Biológica de Guatemala -## (SNIBgt) [Guatemala] +## Atlas selected: Sistema Nacional de Información sobre Diversidad Biológica de Guatemala (SNIBgt) [Guatemala] ``` ```r @@ -61,18 +63,18 @@ show_all(datasets) ``` ## # A tibble: 1,283 × 3 -## id name uri -## -## 1 dr1440 A catalogue of the Heteroptera (Hemiptera) or true bugs of Argentina http… -## 2 dr1436 A cybercatalogue of American sand fly types (Diptera, Psychodidae, Phleboto… http… -## 3 dr1226 A distinctive new species of biting midge in the subgenus Euprojoannisia Br… http… -## 4 dr321 A Distribution and Taxonomic Reference Dataset of Geranium (Geraniaceae) in… http… -## 5 dr1285 A geographic distribution database of the cassava whitefly complex (Hemipte… http… -## 6 dr12 A global database for the distributions of crop wild relatives http… -## 7 dr467 A matrix-based revision of the genus Hypogena Dejean, 1834 (Coleoptera Tene… http… -## 8 dr1061 A Monographic Revision of the Genus Hoplopyga Thomson, 1880 (Coleoptera: Sc… http… -## 9 dr1570 A new Anomiopus Westwood (Coleoptera: Scarabaeidae: Scarabaeinae) from the … http… -## 10 dr1177 A new Central American genus of pleasing fungus beetles (Coleoptera: Erotyl… http… +## id name uri +## +## 1 dr1440 A catalogue of the Heteroptera (Hemiptera) or true bugs of Argentina http… +## 2 dr1436 A cybercatalogue of American sand fly types (Diptera, Psychodidae, Phlebotominae) deposited at the Natural History Muse… http… +## 3 dr1226 A distinctive new species of biting midge in the subgenus Euprojoannisia Brèthes from Mexico with new records of Neotro… http… +## 4 dr321 A Distribution and Taxonomic Reference Dataset of Geranium (Geraniaceae) in the New World http… +## 5 dr1285 A geographic distribution database of the cassava whitefly complex (Hemiptera, Aleyrodidae) and their associated parasi… http… +## 6 dr12 A global database for the distributions of crop wild relatives http… +## 7 dr467 A matrix-based revision of the genus Hypogena Dejean, 1834 (Coleoptera Tenebrionidae) http… +## 8 dr1061 A Monographic Revision of the Genus Hoplopyga Thomson, 1880 (Coleoptera: Scarabaeidae: Cetoniinae: Gymnetini) http… +## 9 dr1570 A new Anomiopus Westwood (Coleoptera: Scarabaeidae: Scarabaeinae) from the Mayan Biosphere Reserve, Petén, Guatemala http… +## 10 dr1177 A new Central American genus of pleasing fungus beetles (Coleoptera: Erotylidae) from the Ischyrus-Megischyrus complex http… ## # ℹ 1,273 more rows ``` @@ -81,7 +83,7 @@ show_all(fields) ``` ``` -## # A tibble: 128 × 3 +## # A tibble: 127 × 3 ## id description type ## ## 1 all_image_url fields @@ -94,7 +96,7 @@ show_all(fields) ## 8 catalogue_number Catalogue Number fields ## 9 cl10011 fields ## 10 class Class fields -## # ℹ 118 more rows +## # ℹ 117 more rows ``` ```r @@ -149,11 +151,9 @@ search_taxa("vulpes") # Returns data ``` ## # A tibble: 1 × 12 -## search_term scientific_name scientific_name_author…¹ taxon_concept_id rank kingdom phylum -## -## 1 vulpes Vulpes Frisch, 1775 NBNSYS0000138878 genus Animal… Chord… -## # ℹ abbreviated name: ¹​scientific_name_authorship -## # ℹ 5 more variables: class , order , family , genus , superclass +## search_term scientific_name scientific_name_authorship taxon_concept_id rank kingdom phylum class order family genus superclass +## +## 1 vulpes Vulpes Frisch, 1775 NBNSYS0000138878 genus Animalia Chordata Mammalia Carn… Canid… Vulp… Tetrapoda ``` ```r @@ -167,7 +167,7 @@ galah_call() |> ## # A tibble: 1 × 1 ## count ## -## 1 123736 +## 1 124167 ``` Download species occurrence records from other atlases with @@ -179,8 +179,7 @@ galah_config(atlas = "Guatemala") ``` ``` -## Atlas selected: Sistema Nacional de Información sobre Diversidad Biológica de Guatemala -## (SNIBgt) [Guatemala] +## Atlas selected: Sistema Nacional de Información sobre Diversidad Biológica de Guatemala (SNIBgt) [Guatemala] ``` ```r @@ -193,12 +192,12 @@ galah_call() |> ``` ## # A tibble: 4 × 2 -## scientificName year +## taxon_name year ## ## 1 Erinnyis ello subsp. ello 1973 -## 2 Aellopos titan Burmeister, 1856 1971 +## 2 Manduca rustica Fabricius, 1775 1930 ## 3 Manduca rustica Fabricius, 1775 1930 -## 4 Manduca rustica Fabricius, 1775 1930 +## 4 Aellopos titan Burmeister, 1856 1971 ``` @@ -232,14 +231,26 @@ atlases |> fmt_number(column = count) ``` -
- - - - - +
+ + + @@ -655,25 +683,25 @@ atlases |> - + - + - + - + - + @@ -682,7 +710,7 @@ atlases |> - + diff --git a/vignettes/download_data.Rmd b/vignettes/download_data.Rmd index cff4ff11..f173f2d1 100644 --- a/vignettes/download_data.Rmd +++ b/vignettes/download_data.Rmd @@ -1,7 +1,7 @@ --- title: "Download data" author: "Martin Westgate & Dax Kellie" -date: '2023-11-07' +date: '2023-12-14' output: rmarkdown::html_vignette vignette: > @@ -39,7 +39,7 @@ atlas_counts() ## # A tibble: 1 × 1 ## count ## -## 1 131963195 +## 1 132342396 ``` In addition to the filter arguments, it has an optional `group_by` argument, @@ -56,16 +56,16 @@ galah_call() |> ## # A tibble: 11 × 2 ## kingdom count ## -## 1 Animalia 101176164 -## 2 Plantae 26026027 -## 3 Fungi 2285235 -## 4 Chromista 1020325 -## 5 Protista 352282 -## 6 Bacteria 113165 -## 7 Eukaryota 8821 -## 8 Protozoa 4716 -## 9 Archaea 4120 -## 10 Virus 2306 +## 1 Animalia 101442503 +## 2 Plantae 26136825 +## 3 Fungi 2293753 +## 4 Chromista 1021828 +## 5 Protista 352983 +## 6 Bacteria 113118 +## 7 Eukaryota 8826 +## 8 Protozoa 4765 +## 9 Archaea 4119 +## 10 Virus 2307 ## 11 Viroid 103 ``` @@ -89,14 +89,14 @@ species |> head() ``` ## # A tibble: 6 × 10 -## kingdom phylum class order family genus species author species_guid vernacular_name -## -## 1 Animalia Chordata Mammalia Roden… Murid… Pseu… Pseudo… (Goul… https://bio… Delicate Mouse -## 2 Animalia Chordata Mammalia Roden… Murid… Mese… Mesemb… (J.E.… https://bio… Black-footed T… -## 3 Animalia Chordata Mammalia Roden… Murid… Zyzo… Zyzomy… (Thom… https://bio… Common Rock-rat -## 4 Animalia Chordata Mammalia Roden… Murid… Pseu… Pseudo… (Wait… https://bio… Sandy Inland M… -## 5 Animalia Chordata Mammalia Roden… Murid… Melo… Melomy… (Rams… https://bio… Grassland Melo… -## 6 Animalia Chordata Mammalia Roden… Murid… Noto… Notomy… Thoma… https://bio… Spinifex Hoppi… +## kingdom phylum class order family genus species author species_guid vernacular_name +## +## 1 Animalia Chordata Mammalia Rodentia Muridae Pseudomys Pseudomys delicatulus (Gould, 1842) https://biodiv… Delicate Mouse +## 2 Animalia Chordata Mammalia Rodentia Muridae Mesembriomys Mesembriomys gouldii (J.E. Gray, 1843) https://biodiv… Black-footed T… +## 3 Animalia Chordata Mammalia Rodentia Muridae Zyzomys Zyzomys argurus (Thomas, 1889) https://biodiv… Common Rock-rat +## 4 Animalia Chordata Mammalia Rodentia Muridae Pseudomys Pseudomys hermannsburgensis (Waite, 1896) https://biodiv… Sandy Inland M… +## 5 Animalia Chordata Mammalia Rodentia Muridae Melomys Melomys burtoni (Ramsay, 1887) https://biodiv… Grassland Melo… +## 6 Animalia Chordata Mammalia Rodentia Muridae Notomys Notomys alexis Thomas, 1922 https://biodiv… Spinifex Hoppi… ``` @@ -129,6 +129,7 @@ occ <- galah_call() |> ## Retrying in 1 seconds. ## Retrying in 2 seconds. ## Retrying in 4 seconds. +## Retrying in 8 seconds. ``` ```r @@ -137,16 +138,15 @@ occ |> head() ``` ## # A tibble: 6 × 9 -## recordID scientificName taxonConceptID decimalLatitude decimalLongitude -## -## 1 0000a928-d756-42eb-8058-6f… Eolophus rose… https://biodi… -35.6 149. -## 2 0001bc78-d2e9-48aa-8b9d-d6… Eolophus rose… https://biodi… -35.2 149. -## 3 0002064f-08ea-425b-97c5-26… Eolophus rose… https://biodi… -35.3 149. -## 4 00022dd2-9f85-4802-b837-7f… Eolophus rose… https://biodi… -35.3 149. -## 5 0002cc35-8d5a-4d20-8012-12… Eolophus rose… https://biodi… -35.3 149. -## 6 00030a8c-082f-44f0-898a-ad… Eolophus rose… https://biodi… -35.3 149. -## # ℹ 4 more variables: eventDate , occurrenceStatus , dataResourceName , -## # institutionID +## recordID scientificName taxonConceptID decimalLatitude decimalLongitude eventDate occurrenceStatus dataResourceName +## +## 1 0000a928-d756-42… Eolophus rose… https://biodi… -35.6 149. 2017-04-19 09:11:00 PRESENT eBird Australia +## 2 0001bc78-d2e9-48… Eolophus rose… https://biodi… -35.2 149. 2019-08-13 15:13:00 PRESENT eBird Australia +## 3 0002064f-08ea-42… Eolophus rose… https://biodi… -35.3 149. 2014-03-16 06:48:00 PRESENT eBird Australia +## 4 00022dd2-9f85-48… Eolophus rose… https://biodi… -35.3 149. 2022-05-08 08:20:00 PRESENT eBird Australia +## 5 0002cc35-8d5a-4d… Eolophus rose… https://biodi… -35.3 149. 2015-11-01 08:00:00 PRESENT eBird Australia +## 6 00030a8c-082f-44… Eolophus rose… https://biodi… -35.3 149. 2022-01-06 11:47:00 PRESENT eBird Australia +## # ℹ 1 more variable: institutionID ``` @@ -168,6 +168,8 @@ media_data <- galah_call() |> ``` ## Retrying in 1 seconds. +## Retrying in 2 seconds. +## Retrying in 4 seconds. ``` ```r @@ -176,17 +178,16 @@ media_data |> head() ``` ## # A tibble: 6 × 19 -## media_id recordID scientificName taxonConceptID decimalLatitude decimalLongitude -## -## 1 ff8322d0-f44c-47a… 003a192… Eolophus rose… https://biodi… -35.3 149. -## 2 c66fc819-7022-44f… 015ee7c… Eolophus rose… https://biodi… -35.4 149. -## 3 fe6d7b94-9e61-4ac… 05e86b7… Eolophus rose… https://biodi… -35.4 149. -## 4 2f4d32c0-a084-4bb… 063bb0f… Eolophus rose… https://biodi… -35.6 149. -## 5 73407414-0707-429… 063bb0f… Eolophus rose… https://biodi… -35.6 149. -## 6 89171c49-5a64-423… 063bb0f… Eolophus rose… https://biodi… -35.6 149. -## # ℹ 13 more variables: eventDate , occurrenceStatus , dataResourceName , -## # multimedia , images , videos , sounds , creator , -## # license , mimetype , width , height , image_url +## media_id recordID scientificName taxonConceptID decimalLatitude decimalLongitude eventDate occurrenceStatus dataResourceName +## +## 1 ff8322d… 003a192… Eolophus rose… https://biodi… -35.3 149. 2020-09-12 06:11:00 PRESENT iNaturalist Aus… +## 2 c66fc81… 015ee7c… Eolophus rose… https://biodi… -35.4 149. 2020-08-09 05:11:00 PRESENT iNaturalist Aus… +## 3 fe6d7b9… 05e86b7… Eolophus rose… https://biodi… -35.4 149. 2020-11-13 22:29:00 PRESENT NatureMapr +## 4 2f4d32c… 063bb0f… Eolophus rose… https://biodi… -35.6 149. 2020-08-04 01:50:00 PRESENT iNaturalist Aus… +## 5 7340741… 063bb0f… Eolophus rose… https://biodi… -35.6 149. 2020-08-04 01:50:00 PRESENT iNaturalist Aus… +## 6 89171c4… 063bb0f… Eolophus rose… https://biodi… -35.6 149. 2020-08-04 01:50:00 PRESENT iNaturalist Aus… +## # ℹ 10 more variables: multimedia , images , videos , sounds , creator , license , mimetype , +## # width , height , image_url ``` To actually download the media files to your computer, use [collect_media()]. @@ -207,27 +208,27 @@ galah_call() |> ``` ## # A tibble: 19 × 4 -## name rank parent_taxon_concept_id taxon_concept_id -## -## 1 Chordata phylum https://biodive… -## 2 Cephalochordata subphylum https://biodiversity.org.au/afd/taxa/065f1da4… https://biodive… -## 3 Tunicata subphylum https://biodiversity.org.au/afd/taxa/065f1da4… https://biodive… -## 4 Appendicularia class https://biodiversity.org.au/afd/taxa/1c20ed62… https://biodive… -## 5 Ascidiacea class https://biodiversity.org.au/afd/taxa/1c20ed62… https://biodive… -## 6 Thaliacea class https://biodiversity.org.au/afd/taxa/1c20ed62… https://biodive… -## 7 Vertebrata subphylum https://biodiversity.org.au/afd/taxa/065f1da4… https://biodive… -## 8 Agnatha informal https://biodiversity.org.au/afd/taxa/5d6076b1… https://biodive… -## 9 Myxini informal https://biodiversity.org.au/afd/taxa/66db22c8… https://biodive… -## 10 Petromyzontida informal https://biodiversity.org.au/afd/taxa/66db22c8… https://biodive… -## 11 Gnathostomata informal https://biodiversity.org.au/afd/taxa/5d6076b1… https://biodive… -## 12 Amphibia class https://biodiversity.org.au/afd/taxa/ef5515fd… https://biodive… -## 13 Aves class https://biodiversity.org.au/afd/taxa/ef5515fd… https://biodive… -## 14 Mammalia class https://biodiversity.org.au/afd/taxa/ef5515fd… https://biodive… -## 15 Pisces informal https://biodiversity.org.au/afd/taxa/ef5515fd… https://biodive… -## 16 Actinopterygii class https://biodiversity.org.au/afd/taxa/e22efeb4… https://biodive… -## 17 Chondrichthyes class https://biodiversity.org.au/afd/taxa/e22efeb4… https://biodive… -## 18 Sarcopterygii class https://biodiversity.org.au/afd/taxa/e22efeb4… https://biodive… -## 19 Reptilia class https://biodiversity.org.au/afd/taxa/ef5515fd… https://biodive… +## name rank parent_taxon_concept_id taxon_concept_id +## +## 1 Chordata phylum https://biodiversity.org.au/afd/… +## 2 Cephalochordata subphylum https://biodiversity.org.au/afd/taxa/065f1da4-53cd-40b8-a396-80fa5c74dedd https://biodiversity.org.au/afd/… +## 3 Tunicata subphylum https://biodiversity.org.au/afd/taxa/065f1da4-53cd-40b8-a396-80fa5c74dedd https://biodiversity.org.au/afd/… +## 4 Appendicularia class https://biodiversity.org.au/afd/taxa/1c20ed62-d918-4e42-b625-8b86d533cc51 https://biodiversity.org.au/afd/… +## 5 Ascidiacea class https://biodiversity.org.au/afd/taxa/1c20ed62-d918-4e42-b625-8b86d533cc51 https://biodiversity.org.au/afd/… +## 6 Thaliacea class https://biodiversity.org.au/afd/taxa/1c20ed62-d918-4e42-b625-8b86d533cc51 https://biodiversity.org.au/afd/… +## 7 Vertebrata subphylum https://biodiversity.org.au/afd/taxa/065f1da4-53cd-40b8-a396-80fa5c74dedd https://biodiversity.org.au/afd/… +## 8 Agnatha informal https://biodiversity.org.au/afd/taxa/5d6076b1-b7c7-487f-9d61-0fea0111cc7e https://biodiversity.org.au/afd/… +## 9 Myxini informal https://biodiversity.org.au/afd/taxa/66db22c8-891d-4b16-a1a2-b66feaeaa3e0 https://biodiversity.org.au/afd/… +## 10 Petromyzontida informal https://biodiversity.org.au/afd/taxa/66db22c8-891d-4b16-a1a2-b66feaeaa3e0 https://biodiversity.org.au/afd/… +## 11 Gnathostomata informal https://biodiversity.org.au/afd/taxa/5d6076b1-b7c7-487f-9d61-0fea0111cc7e https://biodiversity.org.au/afd/… +## 12 Amphibia class https://biodiversity.org.au/afd/taxa/ef5515fd-a0a2-4e16-b61a-0f19f8900f76 https://biodiversity.org.au/afd/… +## 13 Aves class https://biodiversity.org.au/afd/taxa/ef5515fd-a0a2-4e16-b61a-0f19f8900f76 https://biodiversity.org.au/afd/… +## 14 Mammalia class https://biodiversity.org.au/afd/taxa/ef5515fd-a0a2-4e16-b61a-0f19f8900f76 https://biodiversity.org.au/afd/… +## 15 Pisces informal https://biodiversity.org.au/afd/taxa/ef5515fd-a0a2-4e16-b61a-0f19f8900f76 https://biodiversity.org.au/afd/… +## 16 Actinopterygii class https://biodiversity.org.au/afd/taxa/e22efeb4-2cb5-4250-8d71-61c48bdaa051 https://biodiversity.org.au/afd/… +## 17 Chondrichthyes class https://biodiversity.org.au/afd/taxa/e22efeb4-2cb5-4250-8d71-61c48bdaa051 https://biodiversity.org.au/afd/… +## 18 Sarcopterygii class https://biodiversity.org.au/afd/taxa/e22efeb4-2cb5-4250-8d71-61c48bdaa051 https://biodiversity.org.au/afd/… +## 19 Reptilia class https://biodiversity.org.au/afd/taxa/ef5515fd-a0a2-4e16-b61a-0f19f8900f76 https://biodiversity.org.au/afd/… ``` # Configuring `galah` diff --git a/vignettes/look_up_information.Rmd b/vignettes/look_up_information.Rmd index 176abbea..81750798 100644 --- a/vignettes/look_up_information.Rmd +++ b/vignettes/look_up_information.Rmd @@ -1,7 +1,7 @@ --- title: "Look up information" author: "Martin Westgate & Dax Kellie" -date: '2023-11-07' +date: '2023-12-14' output: rmarkdown::html_vignette vignette: > @@ -28,19 +28,19 @@ show_all(atlases) ``` ## # A tibble: 11 × 4 -## region institution acronym url -## -## 1 Australia Atlas of Living Australia ALA http… -## 2 Austria Biodiversitäts-Atlas Österreich BAO http… -## 3 Brazil Sistemas de Informações sobre a Biodiversidade Brasileira SiBBr http… -## 4 Estonia eElurikkus http… -## 5 France Portail français d'accès aux données d'observation sur les … OpenObs http… -## 6 Global Global Biodiversity Information Facility GBIF http… -## 7 Guatemala Sistema Nacional de Información sobre Diversidad Biológica … SNIBgt http… -## 8 Portugal GBIF Portugal GBIF.pt http… -## 9 Spain GBIF Spain GBIF.es http… -## 10 Sweden Swedish Biodiversity Data Infrastructure SBDI http… -## 11 United Kingdom National Biodiversity Network NBN http… +## region institution acronym url +## +## 1 Australia Atlas of Living Australia ALA https://www.ala.org.au +## 2 Austria Biodiversitäts-Atlas Österreich BAO https://biodiversityatlas.at +## 3 Brazil Sistemas de Informações sobre a Biodiversidade Brasileira SiBBr https://sibbr.gov.br +## 4 Estonia eElurikkus https://elurikkus.ee +## 5 France Portail français d'accès aux données d'observation sur les espèces OpenObs https://openobs.mnhn.fr +## 6 Global Global Biodiversity Information Facility GBIF https://gbif.org +## 7 Guatemala Sistema Nacional de Información sobre Diversidad Biológica de Guatemala SNIBgt https://snib.conap.gob.gt +## 8 Portugal GBIF Portugal GBIF.pt https://www.gbif.pt +## 9 Spain GBIF Spain GBIF.es https://www.gbif.es +## 10 Sweden Swedish Biodiversity Data Infrastructure SBDI https://biodiversitydata.se +## 11 United Kingdom National Biodiversity Network NBN https://nbn.org.uk ``` To search for a specific available Living Atlas: @@ -205,19 +205,19 @@ show_all_atlases() ``` ## # A tibble: 11 × 4 -## region institution acronym url -## -## 1 Australia Atlas of Living Australia ALA http… -## 2 Austria Biodiversitäts-Atlas Österreich BAO http… -## 3 Brazil Sistemas de Informações sobre a Biodiversidade Brasileira SiBBr http… -## 4 Estonia eElurikkus http… -## 5 France Portail français d'accès aux données d'observation sur les … OpenObs http… -## 6 Global Global Biodiversity Information Facility GBIF http… -## 7 Guatemala Sistema Nacional de Información sobre Diversidad Biológica … SNIBgt http… -## 8 Portugal GBIF Portugal GBIF.pt http… -## 9 Spain GBIF Spain GBIF.es http… -## 10 Sweden Swedish Biodiversity Data Infrastructure SBDI http… -## 11 United Kingdom National Biodiversity Network NBN http… +## region institution acronym url +## +## 1 Australia Atlas of Living Australia ALA https://www.ala.org.au +## 2 Austria Biodiversitäts-Atlas Österreich BAO https://biodiversityatlas.at +## 3 Brazil Sistemas de Informações sobre a Biodiversidade Brasileira SiBBr https://sibbr.gov.br +## 4 Estonia eElurikkus https://elurikkus.ee +## 5 France Portail français d'accès aux données d'observation sur les espèces OpenObs https://openobs.mnhn.fr +## 6 Global Global Biodiversity Information Facility GBIF https://gbif.org +## 7 Guatemala Sistema Nacional de Información sobre Diversidad Biológica de Guatemala SNIBgt https://snib.conap.gob.gt +## 8 Portugal GBIF Portugal GBIF.pt https://www.gbif.pt +## 9 Spain GBIF Spain GBIF.es https://www.gbif.es +## 10 Sweden Swedish Biodiversity Data Infrastructure SBDI https://biodiversitydata.se +## 11 United Kingdom National Biodiversity Network NBN https://nbn.org.uk ``` ```r @@ -262,9 +262,9 @@ search_taxa("reptilia") ``` ## # A tibble: 1 × 9 -## search_term scientific_name taxon_concept_id rank match_type kingdom phylum class issues -## -## 1 reptilia REPTILIA https://biodiver… class exactMatch Animal… Chord… Rept… noIss… +## search_term scientific_name taxon_concept_id rank match_type kingdom phylum class issues +## +## 1 reptilia REPTILIA https://biodiversity.org.au/afd/taxa/682e1228-5b3c-45ff-833b… class exactMatch Animal… Chord… Rept… noIss… ``` ```r @@ -273,9 +273,9 @@ search_taxa("reptilia", "aves", "mammalia", "pisces") ``` ## # A tibble: 1 × 9 -## search_term scientific_name taxon_concept_id rank match_type kingdom phylum class issues -## -## 1 reptilia REPTILIA https://biodiver… class exactMatch Animal… Chord… Rept… noIss… +## search_term scientific_name taxon_concept_id rank match_type kingdom phylum class issues +## +## 1 reptilia REPTILIA https://biodiversity.org.au/afd/taxa/682e1228-5b3c-45ff-833b… class exactMatch Animal… Chord… Rept… noIss… ``` Alternatively, `search_identifiers` is the partner function to `search_taxa`. @@ -289,11 +289,10 @@ search_identifiers("urn:lsid:biodiversity.org.au:afd.taxon:682e1228-5b3c-45ff-83 ``` ## # A tibble: 1 × 15 -## search_term success scientific_name taxon_concept_id rank rank_id lft rgt match_type -## -## 1 urn:lsid:bi… TRUE REPTILIA https://biodive… class 3000 46718 49924 taxonIdMa… -## # ℹ 6 more variables: kingdom , kingdom_id , phylum , phylum_id , -## # class , class_id +## search_term success scientific_name taxon_concept_id rank rank_id lft rgt match_type kingdom kingdom_id phylum phylum_id class +## +## 1 urn:lsid:biod… TRUE REPTILIA https://biodive… class 3000 46718 49924 taxonIdMa… Animal… https://b… Chord… https://… Rept… +## # ℹ 1 more variable: class_id ``` Sifting through the output of `show_all_fields` to find a specific field can be @@ -379,12 +378,12 @@ search_all(profiles, "ALA") |> ``` ## # A tibble: 6 × 5 -## id enabled description filter displayOrder -## -## 1 94 TRUE "Exclude all records where spatial validity is \"false\… "-spa… 1 -## 2 96 TRUE "Exclude all records with an assertion that the scienti… "-ass… 1 -## 3 97 TRUE "Exclude all records with an assertion that the scienti… "-ass… 2 -## 4 98 TRUE "Exclude all records with an assertion that the name an… "-ass… 3 -## 5 99 TRUE "Exclude all records with an assertion that kingdom pro… "-ass… 4 -## 6 100 TRUE "Exclude all records with an assertion that the scienti… "-ass… 5 +## id enabled description filter displayOrder +## +## 1 94 TRUE "Exclude all records where spatial validity is \"false\"" "-spa… 1 +## 2 96 TRUE "Exclude all records with an assertion that the scientific name provided does not match any of the … "-ass… 1 +## 3 97 TRUE "Exclude all records with an assertion that the scientific name provided is not structured as a val… "-ass… 2 +## 4 98 TRUE "Exclude all records with an assertion that the name and classification supplied can't be used to c… "-ass… 3 +## 5 99 TRUE "Exclude all records with an assertion that kingdom provided doesn't match a known kingdom e.g. Ani… "-ass… 4 +## 6 100 TRUE "Exclude all records with an assertion that the scientific name provided in the record does not mat… "-ass… 5 ``` diff --git a/vignettes/narrow_your_results.Rmd b/vignettes/narrow_your_results.Rmd index cc35505d..7eec788a 100644 --- a/vignettes/narrow_your_results.Rmd +++ b/vignettes/narrow_your_results.Rmd @@ -1,7 +1,7 @@ --- title: "Narrow your results" author: "Martin Westgate & Dax Kellie" -date: '2023-11-07' +date: '2023-12-14' output: html_document editor_options: chunk_output_type: inline @@ -54,9 +54,9 @@ search_taxa("Reptilia") ``` ## # A tibble: 1 × 9 -## search_term scientific_name taxon_concept_id rank match_type kingdom phylum class issues -## -## 1 Reptilia REPTILIA https://biodiver… class exactMatch Animal… Chord… Rept… noIss… +## search_term scientific_name taxon_concept_id rank match_type kingdom phylum class issues +## +## 1 Reptilia REPTILIA https://biodiversity.org.au/afd/taxa/682e1228-5b3c-45ff-833b… class exactMatch Animal… Chord… Rept… noIss… ``` If we want to be more specific by providing additional taxonomic information @@ -69,11 +69,10 @@ search_taxa(tibble(genus = "Eolophus", kingdom = "Aves")) ``` ## # A tibble: 1 × 13 -## search_term scientific_name scientific_name_authorship taxon_concept_id rank match_type -## -## 1 Eolophus_Aves Eolophus Bonaparte, 1854 https://biodive… genus exactMatch -## # ℹ 7 more variables: kingdom , phylum , class , order , family , -## # genus , issues +## search_term scientific_name scientific_name_autho…¹ taxon_concept_id rank match_type kingdom phylum class order family genus issues +## +## 1 Eolophus_Aves Eolophus Bonaparte, 1854 https://biodive… genus exactMatch Animal… Chord… Aves Psit… Cacat… Eolo… noIss… +## # ℹ abbreviated name: ¹​scientific_name_authorship ``` Once we know that our search matches the correct taxon or taxa, we @@ -89,7 +88,7 @@ galah_call() |> ## # A tibble: 1 × 1 ## count ## -## 1 1673906 +## 1 1682010 ``` @@ -105,7 +104,7 @@ galah_call() |> ## # A tibble: 1 × 1 ## count ## -## 1 1092638 +## 1 1093469 ``` If you're using an international atlas, `search_taxa` will automatically @@ -162,8 +161,8 @@ galah_call() |> ## # A tibble: 3 × 2 ## species count ## -## 1 Bufo bufo 94054 -## 2 Bufo spinosus 87 +## 1 Bufo bufo 94517 +## 2 Bufo spinosus 88 ## 3 Bufo marinus 1 ``` @@ -191,7 +190,7 @@ galah_call() |> ## # A tibble: 1 × 1 ## count ## -## 1 90503179 +## 1 90875204 ``` ```r @@ -207,7 +206,7 @@ galah_call() |> ## # A tibble: 1 × 1 ## count ## -## 1 5600557 +## 1 5850806 ``` To find available fields and corresponding valid values, use the field lookup @@ -233,16 +232,16 @@ galah_call() |> ## # A tibble: 30 × 2 ## class count ## -## 1 Insecta 5806340 -## 2 Gastropoda 957271 -## 3 Maxillopoda 793194 -## 4 Arachnida 689708 -## 5 Malacostraca 651658 -## 6 Polychaeta 276272 -## 7 Bivalvia 234110 -## 8 Anthozoa 216343 -## 9 Cephalopoda 145929 -## 10 Demospongiae 118375 +## 1 Insecta 5887288 +## 2 Gastropoda 940371 +## 3 Maxillopoda 793499 +## 4 Arachnida 701320 +## 5 Malacostraca 657455 +## 6 Polychaeta 276460 +## 7 Bivalvia 225965 +## 8 Anthozoa 218244 +## 9 Cephalopoda 145902 +## 10 Demospongiae 118515 ## # ℹ 20 more rows ``` @@ -262,7 +261,7 @@ galah_call() |> ## # A tibble: 1 × 1 ## count ## -## 1 81471797 +## 1 80883916 ``` To see a full list of data quality profiles, use `show_all(profiles)`. @@ -283,16 +282,16 @@ galah_call() |> ## # A tibble: 36 × 3 ## year basisOfRecord count ## -## 1 2020 Human observation 6551035 +## 1 2020 Human observation 6553463 ## 2 2020 Occurrence 419842 -## 3 2020 Preserved specimen 84136 -## 4 2020 Machine observation 38906 +## 3 2020 Preserved specimen 84298 +## 4 2020 Machine observation 39643 ## 5 2020 Observation 24887 ## 6 2020 Material Sample 1677 ## 7 2020 Living specimen 62 -## 8 2019 Human observation 5730445 +## 8 2019 Human observation 5735637 ## 9 2019 Occurrence 290610 -## 10 2019 Preserved specimen 165391 +## 10 2019 Preserved specimen 165505 ## # ℹ 26 more rows ``` @@ -309,26 +308,20 @@ occurrences <- galah_call() |> galah_filter(year == 1930) |> galah_select(kingdom, species, eventDate) |> atlas_occurrences() -``` -``` -## Retrying in 1 seconds. -``` - -```r occurrences |> head() ``` ``` ## # A tibble: 6 × 3 -## kingdom species eventDate -## -## 1 Animalia Drysdalia coronoides 1930-06-16 00:00:00 -## 2 Animalia Intellagama lesueurii 1930-01-01 00:00:00 -## 3 Animalia 1930-04-23 00:00:00 -## 4 Animalia 1930-01-01 00:00:00 -## 5 Animalia Oxyuranus scutellatus 1930-01-01 00:00:00 -## 6 Animalia Tympanocryptis centralis 1930-11-30 00:00:00 +## kingdom species eventDate +## +## 1 Animalia Gehyra variegata 1930-11-30 00:00:00 +## 2 Animalia Intellagama lesueurii 1930-01-01 00:00:00 +## 3 Animalia Lampropholis guichenoti 1930-10-02 00:00:00 +## 4 Animalia Acanthophis antarcticus 1930-01-01 00:00:00 +## 5 Animalia 1930-04-23 00:00:00 +## 6 Animalia Pseudechis porphyriacus 1930-01-01 00:00:00 ``` You can also use other `dplyr` functions that work with `dplyr::select()` with @@ -341,28 +334,21 @@ occurrences <- galah_call() |> galah_filter(year == 1930) |> galah_select(starts_with("accepted") | ends_with("record")) |> atlas_occurrences() -``` -``` -## Retrying in 1 seconds. -``` - -```r occurrences |> head() ``` ``` ## # A tibble: 6 × 6 -## acceptedNameUsage acceptedNameUsageID basisOfRecord raw_basisOfRecord -## -## 1 NA PRESERVED_SPECIMEN Museum specimen -## 2 NA HUMAN_OBSERVATION HumanObservation -## 3 NA PRESERVED_SPECIMEN PreservedSpecimen -## 4 NA HUMAN_OBSERVATION HumanObservation -## 5 NA PRESERVED_SPECIMEN PreservedSpecimen -## 6 NA HUMAN_OBSERVATION HumanObservation -## # ℹ 2 more variables: OCCURRENCE_STATUS_INFERRED_FROM_BASIS_OF_RECORD , -## # userDuplicateRecord +## acceptedNameUsage acceptedNameUsageID basisOfRecord raw_basisOfRecord OCCURRENCE_STATUS_INFERRED_FROM_BASIS…¹ userDuplicateRecord +## +## 1 NA HUMAN_OBSERVATION HumanObservation FALSE FALSE +## 2 NA HUMAN_OBSERVATION HumanObservation FALSE FALSE +## 3 NA PRESERVED_SPECIMEN Museum specimen FALSE FALSE +## 4 NA HUMAN_OBSERVATION HumanObservation FALSE FALSE +## 5 NA PRESERVED_SPECIMEN PreservedSpecimen FALSE FALSE +## 6 NA HUMAN_OBSERVATION HumanObservation FALSE FALSE +## # ℹ abbreviated name: ¹​OCCURRENCE_STATUS_INFERRED_FROM_BASIS_OF_RECORD ``` # galah_geolocate @@ -382,7 +368,7 @@ galah_call() |> ``` ## # A tibble: 1 × 10 -## kingdom phylum class order family genus species author species_guid vernacular_name -## -## 1 Animalia Chordata Mammalia Peram… Peram… Pera… Perame… Spenc… https://bio… Desert Bandico… +## kingdom phylum class order family genus species author species_guid vernacular_name +## +## 1 Animalia Chordata Mammalia Peramelemorphia Peramelidae Perameles Perameles eremiana Spencer, 1897 https://biodiversit… Desert Bandico… ``` diff --git a/vignettes/object_oriented_programming.Rmd b/vignettes/object_oriented_programming.Rmd index 855ad378..2dc36472 100644 --- a/vignettes/object_oriented_programming.Rmd +++ b/vignettes/object_oriented_programming.Rmd @@ -1,7 +1,7 @@ --- title: "Object-Oriented Programming in galah" author: "Martin Westgate, Dax Kellie" -date: '2023-10-26' +date: '2023-12-14' output: rmarkdown::html_vignette vignette: > @@ -59,7 +59,7 @@ galah_call() |> ## # A tibble: 16 × 2 ## species count ## -## 1 Crinia signifera 57878 +## 1 Crinia signifera 58204 ## 2 Crinia parinsignifera 12478 ## 3 Crinia glauerti 3090 ## 4 Crinia georgiana 1490 @@ -68,7 +68,7 @@ galah_call() |> ## 7 Crinia insignifera 536 ## 8 Crinia tinnula 417 ## 9 Crinia deserticola 278 -## 10 Crinia pseudinsignifera 235 +## 10 Crinia pseudinsignifera 236 ## 11 Crinia tasmaniensis 189 ## 12 Crinia bilingua 75 ## 13 Crinia subinsignifera 45 @@ -220,7 +220,7 @@ request_data() |> ``` ## • metadata/fields data: galah:::check_internal_cache()$fields ## • metadata/assertions data: galah:::check_internal_cache()$assertions -## • metadata/reasons url: https://api.ala.org.au/logger/service/logger/reasons +## • metadata/reasons data: galah:::check_internal_cache()$reasons ## • metadata/taxa-single url: https://api.ala.org.au/namematching/api/search?q=pe... ## • data/occurrences url: https://biocache-ws.ala.org.au/ws/occurrences/offline/d... ``` diff --git a/vignettes/piping.Rmd b/vignettes/piping.Rmd index 0b4f4b38..3486cd7e 100644 --- a/vignettes/piping.Rmd +++ b/vignettes/piping.Rmd @@ -1,7 +1,7 @@ --- title: "Piping in galah" author: "Martin Westgate & Dax Kellie" -date: '2023-10-13' +date: '2023-12-14' output: rmarkdown::html_vignette vignette: > @@ -43,7 +43,7 @@ galah_call() |> ## # A tibble: 1 × 1 ## count ## -## 1 8204330 +## 1 8254306 ``` As another example, notice how `galah_group_by()` + `atlas_counts()` works very @@ -75,8 +75,8 @@ galah_call() |> ## # A tibble: 2 × 2 ## biome count ## -## 1 TERRESTRIAL 120083089 -## 2 MARINE 5189286 +## 1 TERRESTRIAL 120889729 +## 2 MARINE 6043879 ``` We made this move towards tidy evaluation to make it possible to use @@ -108,20 +108,20 @@ galah_call() |> ## # A tibble: 15 × 3 ## species year count ## -## 1 Perameles nasuta 2021 3337 -## 2 Perameles nasuta 2020 1573 -## 3 Perameles nasuta 2022 1515 -## 4 Perameles nasuta 2023 625 -## 5 Perameles gunnii 2023 95 -## 6 Perameles gunnii 2021 72 +## 1 Perameles nasuta 2021 3475 +## 2 Perameles nasuta 2022 1701 +## 3 Perameles nasuta 2020 1576 +## 4 Perameles nasuta 2023 714 +## 5 Perameles gunnii 2023 122 +## 6 Perameles gunnii 2021 71 ## 7 Perameles gunnii 2022 64 ## 8 Perameles gunnii 2020 49 ## 9 Perameles bougainville 2021 84 ## 10 Perameles bougainville 2022 72 ## 11 Perameles bougainville 2020 1 ## 12 Perameles pallescens 2022 30 -## 13 Perameles pallescens 2021 25 -## 14 Perameles pallescens 2023 20 +## 13 Perameles pallescens 2023 26 +## 14 Perameles pallescens 2021 25 ## 15 Perameles pallescens 2020 11 ``` @@ -143,15 +143,16 @@ galah_call() |> ``` ``` -## # A tibble: 6 × 8 -## recordID decimalLatitude decimalLongitude eventDate scientificName taxonConceptID dataResourceName occurrenceStatus -## -## 1 00108221-afc6-4246-a… -28.8 153. 2021-09-29 00:00:00 Perameles nas… https://biodi… NSW BioNet Atlas PRESENT -## 2 001e914d-0281-41cb-b… -33.8 151. 2021-04-19 00:00:00 Perameles nas… https://biodi… NSW BioNet Atlas PRESENT -## 3 00233c1e-66df-4d9c-8… -33.8 151. 2021-02-27 00:00:00 Perameles nas… https://biodi… NSW BioNet Atlas PRESENT -## 4 003064b3-490a-49b5-a… -27.5 152. 2021-11-05 12:06:00 Perameles nas… https://biodi… iNaturalist Aus… PRESENT -## 5 004fd28b-a899-4a97-8… -33.8 151. 2021-07-24 00:00:00 Perameles nas… https://biodi… NSW BioNet Atlas PRESENT -## 6 0068547b-b091-4a86-8… -33.8 151. 2021-01-28 00:00:00 Perameles nas… https://biodi… NSW BioNet Atlas PRESENT +## # A tibble: 6 × 9 +## recordID scientificName taxonConceptID decimalLatitude decimalLongitude eventDate occurrenceStatus dataResourceName +## +## 1 00108221-afc6-42… Perameles nas… https://biodi… -28.8 153. 2021-09-29 00:00:00 PRESENT NSW BioNet Atlas +## 2 001e914d-0281-41… Perameles nas… https://biodi… -33.8 151. 2021-04-19 00:00:00 PRESENT NSW BioNet Atlas +## 3 00233c1e-66df-4d… Perameles nas… https://biodi… -33.8 151. 2021-02-27 00:00:00 PRESENT NSW BioNet Atlas +## 4 003064b3-490a-49… Perameles nas… https://biodi… -27.5 152. 2021-11-05 12:06:00 PRESENT iNaturalist Aus… +## 5 004fd28b-a899-4a… Perameles nas… https://biodi… -33.8 151. 2021-07-24 00:00:00 PRESENT NSW BioNet Atlas +## 6 0068547b-b091-4a… Perameles nas… https://biodi… -33.8 151. 2021-01-28 00:00:00 PRESENT NSW BioNet Atlas +## # ℹ 1 more variable: ZERO_COORDINATE ``` Note that the order in which `galah_` functions are added doesn't matter, as long @@ -174,10 +175,10 @@ galah_call() |> ## # A tibble: 4 × 2 ## year count ## -## 1 2022 8353115 -## 2 2021 8204330 -## 3 2020 7116059 -## 4 2023 2997676 +## 1 2022 8409790 +## 2 2021 8254306 +## 3 2020 7124140 +## 4 2023 3446001 ``` ```r diff --git a/vignettes/quick_start_guide.Rmd b/vignettes/quick_start_guide.Rmd index 7e1dd044..4d853bd6 100644 --- a/vignettes/quick_start_guide.Rmd +++ b/vignettes/quick_start_guide.Rmd @@ -1,7 +1,7 @@ --- title: "Quick start guide" author: "Martin Westgate & Dax Kellie" -date: '2023-10-13' +date: '2023-12-14' output: rmarkdown::html_vignette vignette: > @@ -25,6 +25,7 @@ a `tibble` as their standard format. # Installation + To install from CRAN: ```r @@ -62,7 +63,7 @@ show_all(atlases) ## 2 Austria Biodiversitäts-Atlas Österreich BAO https://biodiversityatlas.at ## 3 Brazil Sistemas de Informações sobre a Biodiversidade Brasileira SiBBr https://sibbr.gov.br ## 4 Estonia eElurikkus https://elurikkus.ee -## 5 France Portail français d'accès aux données d'observation sur les espèces OpenObs https://openobs.mnhn.fr/ +## 5 France Portail français d'accès aux données d'observation sur les espèces OpenObs https://openobs.mnhn.fr ## 6 Global Global Biodiversity Information Facility GBIF https://gbif.org ## 7 Guatemala Sistema Nacional de Información sobre Diversidad Biológica de Guatemala SNIBgt https://snib.conap.gob.gt ## 8 Portugal GBIF Portugal GBIF.pt https://www.gbif.pt @@ -93,7 +94,7 @@ atlas_counts() ## # A tibble: 1 × 1 ## count ## -## 1 130679056 +## 1 132342396 ``` To pass more complex queries, start with the `galah_call()` function and pipe @@ -111,7 +112,7 @@ galah_call() |> ## # A tibble: 1 × 1 ## count ## -## 1 26671180 +## 1 27234237 ``` Alternatively, you can use a subset of `dplyr` verbs to pipe your queries, @@ -130,10 +131,10 @@ galah_call() |> ## # A tibble: 4 × 2 ## year count ## -## 1 2022 8353115 -## 2 2021 8204330 -## 3 2020 7116059 -## 4 2023 2997676 +## 1 2022 8409790 +## 2 2021 8254306 +## 3 2020 7124140 +## 4 2023 3446001 ``` To narrow the search to a particular taxonomic group, use `galah_identify()` or @@ -148,9 +149,9 @@ search_taxa("reptilia") # Check whether taxonomic info is correct ``` ## # A tibble: 1 × 9 -## search_term scientific_name taxon_concept_id rank match_type kingdom phylum class issues -## -## 1 reptilia REPTILIA https://biodiversity.org.au/afd/taxa/682e1228-5b3c-45ff-833b-550… class exactMatch Animal… Chord… Rept… noIss… +## search_term scientific_name taxon_concept_id rank match_type kingdom phylum class issues +## +## 1 reptilia REPTILIA https://biodiversity.org.au/afd/taxa/682e1228-5b3c-45ff-833b… class exactMatch Animal… Chord… Rept… noIss… ``` ```r @@ -164,10 +165,11 @@ galah_call() |> ## # A tibble: 1 × 1 ## count ## -## 1 214842 +## 1 226794 ``` # Downloading records + The most common use case for `galah` is to download 'occurrence' records; observations of plants or animals made by contributors to the atlas. To download, first register with the relevant atlas, then provide your registration email. @@ -180,7 +182,24 @@ galah_config(email = "email@email.com") ``` -Then you can customise records you require and query the atlas in question: + +Search for fields and field IDs to filter your query. + + +```r +search_all(fields, "australian states") +``` + +``` +## # A tibble: 2 × 3 +## id description type +## +## 1 cl2013 ASGS Australian States and Territories fields +## 2 cl22 Australian States and Territories fields +``` + +Then you can customise records you require and query the atlas in question. + ```r result <- galah_call() |> @@ -188,20 +207,28 @@ result <- galah_call() |> galah_filter(year >= 2020, cl22 == "Tasmania") |> galah_select(basisOfRecord, group = "basic") |> atlas_occurrences() +``` +``` +## Retrying in 1 seconds. +## Retrying in 2 seconds. +## Retrying in 4 seconds. +``` + +```r result |> head() ``` ``` ## # A tibble: 6 × 9 -## recordID decimalLatitude decimalLongitude eventDate scientificName taxonConceptID dataResourceName occurrenceStatus -## -## 1 00250163-ec50-4eda-a… -41.2 147. 2023-08-23 01:49:28 Litoria https://biodi… iNaturalist Aus… PRESENT -## 2 003e0f63-9f95-4af9-b… -42.9 148. 2022-12-23 19:27:00 Litoria ewing… https://biodi… iNaturalist Aus… PRESENT -## 3 00410554-5289-416f-9… -41.7 147. 2021-05-06 00:00:00 Litoria ewing… https://biodi… FrogID PRESENT -## 4 0081e7ef-459b-42a9-8… -43.2 147. 2020-08-02 00:00:00 Litoria ewing… https://biodi… FrogID PRESENT -## 5 0086def1-8415-4bb3-8… -41.2 147. 2020-12-31 00:00:00 Litoria ewing… https://biodi… FrogID PRESENT -## 6 00b40ee7-074b-4dae-9… -41.5 147. 2020-11-01 00:00:00 Litoria ewing… https://biodi… FrogID PRESENT +## recordID scientificName taxonConceptID decimalLatitude decimalLongitude eventDate occurrenceStatus dataResourceName +## +## 1 00250163-ec50-4e… Litoria https://biodi… -41.2 147. 2023-08-23 01:49:28 PRESENT iNaturalist Aus… +## 2 003e0f63-9f95-4a… Litoria ewing… https://biodi… -42.9 148. 2022-12-23 19:27:00 PRESENT iNaturalist Aus… +## 3 00410554-5289-41… Litoria ewing… https://biodi… -41.7 147. 2021-05-06 00:00:00 PRESENT FrogID +## 4 0081e7ef-459b-42… Litoria ewing… https://biodi… -43.2 147. 2020-08-02 00:00:00 PRESENT FrogID +## 5 0086def1-8415-4b… Litoria ewing… https://biodi… -41.2 147. 2020-12-31 00:00:00 PRESENT FrogID +## 6 00b40ee7-074b-4d… Litoria ewing… https://biodi… -41.5 147. 2020-11-01 00:00:00 PRESENT FrogID ## # ℹ 1 more variable: basisOfRecord ``` diff --git a/vignettes/quick_start_guide.Rmd.orig b/vignettes/quick_start_guide.Rmd.orig index 240e2a5b..77dc38ea 100644 --- a/vignettes/quick_start_guide.Rmd.orig +++ b/vignettes/quick_start_guide.Rmd.orig @@ -25,6 +25,7 @@ a `tibble` as their standard format. # Installation + To install from CRAN: ```{r eval=FALSE} install.packages("galah") @@ -102,6 +103,7 @@ galah_call() |> ``` # Downloading records + The most common use case for `galah` is to download 'occurrence' records; observations of plants or animals made by contributors to the atlas. To download, first register with the relevant atlas, then provide your registration email. @@ -115,7 +117,15 @@ galah_config(email = "email@email.com") ```{r, echo=FALSE} galah_config(verbose = FALSE) ``` -Then you can customise records you require and query the atlas in question: + +Search for fields and field IDs to filter your query. + +```{r} +search_all(fields, "australian states") +``` + +Then you can customise records you require and query the atlas in question. + ```{r} result <- galah_call() |> galah_identify("Litoria") |> diff --git a/vignettes/spatial_filtering.Rmd b/vignettes/spatial_filtering.Rmd index 6c172d06..c93892c4 100644 --- a/vignettes/spatial_filtering.Rmd +++ b/vignettes/spatial_filtering.Rmd @@ -81,18 +81,28 @@ galah_call() |> ``` ## Retrying in 1 seconds. -## Retrying in 2 seconds. -## Retrying in 4 seconds. ``` -
- -
region institution count
Global Global Biodiversity Information Facility2,083,165,001.00
2,090,811,458.00
United Kingdom National Biodiversity Network254,155,214.00
254,150,224.00
France Portail français d'accès aux données d'observation sur les espèces 143,668,494.00
Australia Atlas of Living Australia131,963,195.00
132,342,396.00
Sweden Swedish Biodiversity Data Infrastructure 124,556,849.00
Spain GBIF Spain57,696,934.00
58,531,561.00
Brazil Sistemas de Informações sobre a Biodiversidade Brasileira24,369,137.00
28,391,979.00
Portugal GBIF Portugal 16,043,865.00
8,976,175.00
Estonia eElurikkus7,475,447.00
7,438,474.00
Guatemala Sistema Nacional de Información sobre Diversidad Biológica de Guatemala 3,617,694.00
- - - +
+ + + @@ -516,7 +543,7 @@ galah_call() |> - + @@ -524,7 +551,7 @@ galah_call() |> - + @@ -532,7 +559,7 @@ galah_call() |> - + @@ -583,14 +610,26 @@ galah_call() |> gt::gt() ``` -
- -
recordID scientificName taxonConceptIDhttps://biodiversity.org.au/afd/taxa/c69e7308-527a-429d-a80d-143bd20b5100 -35.59293 139.02182008-11-18 00:00:002008-11-18 PRESENT SA Fauna
00705077-abc2-4f28-aedd-11a479ec2d82https://biodiversity.org.au/afd/taxa/c69e7308-527a-429d-a80d-143bd20b5100 -35.52833 138.80892016-03-06 00:00:002016-03-06 PRESENT BirdLife Australia, Birdata
0071444e-ddf2-45dc-9a10-c6399686e306https://biodiversity.org.au/afd/taxa/c69e7308-527a-429d-a80d-143bd20b5100 -35.57719 138.99232008-01-01 00:00:002008-01-01 PRESENT SA Fauna
008a2e6c-26b4-4f4e-a428-b0330db53466
- - - +
+ + + @@ -1006,6 +1062,16 @@ galah_call() |> + + + + + + + + + + @@ -1043,17 +1109,28 @@ galah_call() |> ``` ## Data returned for bounding box: ## xmin = 153.0236 xmax = 153.0248 ymin = -27.46896 ymax = -27.46789 -## Retrying in 1 seconds. ``` -
- -
decimalLatitude decimalLongitude eventDate
-27.46862153.02432006-03-29 23:32:00Threskiornis moluccusBlack-necked Ibis
-27.46861153.02442023-12-01 23:12:02CosmophasisNA
-27.46851 153.0238 2023-04-08 07:49:00
- - - +
+ + + @@ -1479,6 +1573,16 @@ galah_call() |> + + + + + + + + + + @@ -1538,7 +1642,6 @@ lorikeet_brisbane <- galah_call() |> ``` ## Data returned for bounding box: ## xmin = 152.96331 xmax = 152.99668 ymin = -27.57737 ymax = -27.51606 -## Retrying in 1 seconds. ``` diff --git a/vignettes/taxonomic_filtering.Rmd b/vignettes/taxonomic_filtering.Rmd index f5678ec8..d9b429fa 100644 --- a/vignettes/taxonomic_filtering.Rmd +++ b/vignettes/taxonomic_filtering.Rmd @@ -1,6 +1,6 @@ --- title: "Taxonomic filtering" -author: "Callum Waite, Shandiya Balasubramanium" +author: "Callum Waite, Shandiya Balasubramaniam" date: '2023-10-13' output: rmarkdown::html_vignette @@ -34,23 +34,23 @@ galah_config(email = "your_email_here", verbose = FALSE) search_taxa("Petroica boodang") |> gt::gt() ``` -
- @@ -524,23 +524,23 @@ search_taxa("Petroica boodang") |> gt::gt() search_taxa("Muscicapa chrysoptera", "Guniibuu") |> gt::gt() ``` -
- @@ -1000,21 +1000,6 @@ search_taxa("Muscicapa chrysoptera", "Guniibuu") |> gt::gt()
- - - - - - - - - - - - - - - @@ -1036,23 +1021,23 @@ search_taxa("Morganella") |> gt::gt() ## ✖ Homonym issue with "Morganella". ``` -
- @@ -1498,23 +1483,23 @@ search_taxa("Morganella") |> gt::gt() search_taxa(tibble(kingdom = "Fungi", genus = "Morganella")) |> gt::gt() ``` -
- @@ -1993,7 +1978,7 @@ galah_call() |> ## # A tibble: 1 × 1 ## count ## -## 1 118909 +## 1 118998 ``` @@ -2004,23 +1989,23 @@ galah_call() |> gt::gt() ``` -
- @@ -2496,23 +2481,23 @@ galah_call() |> gt::gt() ``` -
- @@ -2941,64 +2926,64 @@ galah_call() |>
+ + - - - + + + - - - - + + + + + + + - - - + + + - - - - - - - + + + + - - - - + + + + - - - - + + @@ -3018,10 +3003,10 @@ galah_call() |> ``` ``` -## # A tibble: 1 × 1 -## count -## -## 1 191277 +## Error: +## ! The `search` argument of `galah_identify()` was deprecated in galah 2.0.0 and is now defunct. +## ℹ `galah_identify()` now always does a search to verify search terms. To pass identifiers, please use `filter(lsid == +## 'identifier_here') instead. ```
@@ -3040,7 +3025,7 @@ galah_call() |> ## # A tibble: 1 × 1 ## count ## -## 1 118909 +## 1 118998 ``` @@ -3056,23 +3041,23 @@ galah_call() |> gt::gt() ``` -
- @@ -3508,22 +3493,22 @@ galah_call() |>
- + - + - + - + - + - + @@ -3542,23 +3527,23 @@ galah_call() |> gt::gt() ``` -
- @@ -3992,17 +3977,17 @@ galah_call() |>
- + - + - + - + - + - + @@ -4025,23 +4010,23 @@ galah_call() |> gt::gt() ``` -
- @@ -4477,7 +4462,7 @@ galah_call() |>
- + @@ -4486,16 +4471,16 @@ galah_call() |> - + - - - - + + + + @@ -4530,23 +4515,23 @@ tas_endemic <- c("Sarcophilus", # Tasmanian Devil search_taxa(tas_endemic) |> gt::gt() ``` -
- @@ -5097,23 +5082,23 @@ galah_call() |> gt::gt() ``` -
- @@ -5547,21 +5532,21 @@ galah_call() |>
- + - + - + - + - + @@ -5569,7 +5554,7 @@ galah_call() |> - + diff --git a/vignettes/taxonomic_filtering.Rmd.orig b/vignettes/taxonomic_filtering.Rmd.orig index a4748625..d379577d 100644 --- a/vignettes/taxonomic_filtering.Rmd.orig +++ b/vignettes/taxonomic_filtering.Rmd.orig @@ -1,6 +1,6 @@ --- title: "Taxonomic filtering" -author: "Callum Waite, Shandiya Balasubramanium" +author: "Callum Waite, Shandiya Balasubramaniam" date: '2023-10-13' output: rmarkdown::html_vignette diff --git a/vignettes/temporal_filtering.Rmd b/vignettes/temporal_filtering.Rmd index a83dda6b..852f7c61 100644 --- a/vignettes/temporal_filtering.Rmd +++ b/vignettes/temporal_filtering.Rmd @@ -20,13 +20,13 @@ The ALA database possesses numerous date and time fields that relate to each obs - filter within a bespoke date and/or time range -All temporal filtering is conducted using `galah_filter()`. All temporal fields described below can be queried for exact matches (`==`), greater/less than (`>`, `<`) or greater/less than or equal to (`<=`, `>=`). Queries for multiple fields or multiple queries of the same field can be combined in the one `galah_filter()` call in order to obtain filters on time windows. +All temporal filtering is conducted using `galah_filter()`. All temporal fields described below can be queried for exact matches (`==`), greater/less than (`>`, `<`) or greater/less than or equal to (`<=`, `>=`). Queries for multiple fields or multiple queries of the same field can be combined in a single `galah_filter()` call to filter a time window. ### Year, Month and Day -The ALA contains in-built `year`, `month` and `day` fields for every record. These are queried as numeric fields (i.e. July = `7`) and can be used for quick data exploration and filtering. When the date limits of a desired query can be easily defined by year, month and/or day deliminations, these fields are most useful. +The ALA contains in-built `year`, `month`, and `day` fields for every record. These are queried as numeric fields (i.e. July = `7`) and can be used for quick data exploration and filtering. These fields are most useful when the date limits of a query can be easily defined by year, month and/or day. -We can, for instance, use the `year` and `month` fields to group the 2022 amphibian records in the ALA by month (noting that months are labelled by a number). +For instance, we can get monthly counts of amphibians from 2021 using the `year` and `month` fields. @@ -52,23 +52,23 @@ galah_call() |> ## # A tibble: 12 × 2 ## month count ## -## 1 October 52075 -## 2 September 41920 -## 3 January 32805 -## 4 August 26175 -## 5 March 25396 -## 6 February 23456 -## 7 November 22758 -## 8 July 12302 -## 9 April 9841 +## 1 October 52816 +## 2 September 42206 +## 3 January 32825 +## 4 August 26252 +## 5 March 25423 +## 6 February 23473 +## 7 November 23389 +## 8 July 12301 +## 9 April 10005 ## 10 June 9217 -## 11 May 8081 -## 12 December 3813 +## 11 May 8083 +## 12 December 3998 ``` It is also important to observe that the outputted `month` column is of type `character` even though the values are numeric. This is the case for each of the `year`, `month` and `day` fields. However, they can be queried as either numeric or character values within `galah_filter()`. -The other important fact about these fields when queried in `galah_filter()` is their independence; they cannot be used to query complex windows between two dates because the day and month filters are applied universally. +One limitation of using these fields for queries with `galah_filter()` is their independence; they cannot be used to query within windows bounded by two dates because the day and month filters are applied universally. For instance, consider the native perennial Australian wildflower [*Chamaescilla corymbosa*](https://bie.ala.org.au/species/https://id.biodiversity.org.au/node/apni/2920316), whose known growth and flowering times are from August–October. We might be interested in the number of records for this species in the first week of spring (i.e. September) in each of the last 10 years. The following query does not provide all results between 1/9/2013 and 7/9/2023. Rather, it will only return results that fall within all 3 windows at once. @@ -83,19 +83,20 @@ galah_call() |> ``` ``` -## # A tibble: 10 × 2 +## # A tibble: 11 × 2 ## year count ## ## 1 2013 8 ## 2 2014 13 ## 3 2015 8 ## 4 2016 7 -## 5 2018 9 -## 6 2019 5 -## 7 2020 20 -## 8 2021 36 -## 9 2022 25 -## 10 2023 48 +## 5 2017 1 +## 6 2018 9 +## 7 2019 5 +## 8 2020 20 +## 9 2021 36 +## 10 2022 25 +## 11 2023 52 ``` ### Occurrence dates @@ -120,7 +121,7 @@ galah_call() |> ## # A tibble: 1 × 1 ## count ## -## 1 515 +## 1 542 ``` It can be unintuitive to provide dates in this format. Luckily, it is very simple to convert standard R dates or {lubridate} dates into this format because they are already in the required "YYYY-MM-DD" form. If we took the above date (26/02/2022), it could be converted to this form using base R or lubridate as follows: diff --git a/vignettes/temporal_filtering.Rmd.orig b/vignettes/temporal_filtering.Rmd.orig index 24d7948e..9cf97c6a 100644 --- a/vignettes/temporal_filtering.Rmd.orig +++ b/vignettes/temporal_filtering.Rmd.orig @@ -23,13 +23,13 @@ The ALA database possesses numerous date and time fields that relate to each obs - filter within a bespoke date and/or time range -All temporal filtering is conducted using `galah_filter()`. All temporal fields described below can be queried for exact matches (`==`), greater/less than (`>`, `<`) or greater/less than or equal to (`<=`, `>=`). Queries for multiple fields or multiple queries of the same field can be combined in the one `galah_filter()` call in order to obtain filters on time windows. +All temporal filtering is conducted using `galah_filter()`. All temporal fields described below can be queried for exact matches (`==`), greater/less than (`>`, `<`) or greater/less than or equal to (`<=`, `>=`). Queries for multiple fields or multiple queries of the same field can be combined in a single `galah_filter()` call to filter a time window. ### Year, Month and Day -The ALA contains in-built `year`, `month` and `day` fields for every record. These are queried as numeric fields (i.e. July = `7`) and can be used for quick data exploration and filtering. When the date limits of a desired query can be easily defined by year, month and/or day deliminations, these fields are most useful. +The ALA contains in-built `year`, `month`, and `day` fields for every record. These are queried as numeric fields (i.e. July = `7`) and can be used for quick data exploration and filtering. These fields are most useful when the date limits of a query can be easily defined by year, month and/or day. -We can, for instance, use the `year` and `month` fields to group the 2022 amphibian records in the ALA by month (noting that months are labelled by a number). +For instance, we can get monthly counts of amphibians from 2021 using the `year` and `month` fields. ```{r, output = FALSE, message = FALSE, warning = FALSE} @@ -50,7 +50,7 @@ galah_call() |> It is also important to observe that the outputted `month` column is of type `character` even though the values are numeric. This is the case for each of the `year`, `month` and `day` fields. However, they can be queried as either numeric or character values within `galah_filter()`. -The other important fact about these fields when queried in `galah_filter()` is their independence; they cannot be used to query complex windows between two dates because the day and month filters are applied universally. +One limitation of using these fields for queries with `galah_filter()` is their independence; they cannot be used to query within windows bounded by two dates because the day and month filters are applied universally. For instance, consider the native perennial Australian wildflower [*Chamaescilla corymbosa*](https://bie.ala.org.au/species/https://id.biodiversity.org.au/node/apni/2920316), whose known growth and flowering times are from August–October. We might be interested in the number of records for this species in the first week of spring (i.e. September) in each of the last 10 years. The following query does not provide all results between 1/9/2013 and 7/9/2023. Rather, it will only return results that fall within all 3 windows at once.
decimalLatitude decimalLongitude eventDate2005-08-28 12:18:00 Threskiornis moluccus Black-necked Ibis
-27.46862153.02432006-03-29 23:32:00Threskiornis moluccusBlack-necked Ibis
-27.46861153.02442023-12-01 23:12:02CosmophasisNA
-27.46851 153.0238 2023-04-08 07:49:00Petroica Petroica phoenicea Flame RobinnoIssue
GuniibuuPetroica (Petroica) goodenovii(Vigors & Horsfield, 1827)https://biodiversity.org.au/afd/taxa/10dbd908-00f3-4ec2-9a9c-a2fd4782eaf1speciesvernacularMatchAnimaliaChordataAvesPasseriformesPetroicidaePetroicaPetroica goodenoviiRed-capped Robin noIssue
recordIDscientificNametaxonConceptID decimalLatitude decimalLongitude eventDatescientificNametaxonConceptIDdataResourceName occurrenceStatusdataResourceName
001ec30d-3376-4f63-ba32-b48bc3dd137dMorganella purpurascenshttps://id.biodiversity.org.au/node/fungi/60092001 -33.66218 150.2708 2021-04-10Morganella purpurascenshttps://id.biodiversity.org.au/node/fungi/60092001NSW BioNet AtlasPRESENT
PRESENTNSW BioNet Atlas
02ba39cd-8077-4868-a0ff-e50765089788Morganella compactaNZOR-6-128055 -41.28082 174.7943 NAPRESENTNew Zealand Virtual Herbarium
0422009d-c1f0-4e2e-8d29-e88df6de2049 Morganella compacta NZOR-6-128055New Zealand Virtual HerbariumPRESENT
0422009d-c1f0-4e2e-8d29-e88df6de2049 -36.44838 174.6714 NAPRESENTNew Zealand Virtual Herbarium
04aeeb8d-0538-477c-aff1-29574eafa349 Morganella compacta NZOR-6-128055New Zealand Virtual HerbariumPRESENT
04aeeb8d-0538-477c-aff1-29574eafa349 -36.84225 174.4695 1993-06-19Morganella compactaNZOR-6-128055New Zealand Virtual HerbariumPRESENT
PRESENTNew Zealand Virtual Herbarium
092b6f3e-ef27-4cbf-bb28-b172c1b200c5Morganella purpurascenshttps://id.biodiversity.org.au/node/fungi/60092001 -26.77940 152.8803 2009-02-19Morganella purpurascenshttps://id.biodiversity.org.au/node/fungi/60092001National Herbarium of Victoria (MEL) AVH dataPRESENT
PRESENTNational Herbarium of Victoria (MEL) AVH data
0be95d59-29a4-4475-8586-a497cac607f7Morganella compactaNZOR-6-128055 -43.15002 171.7305 NAMorganella compactaNZOR-6-128055New Zealand Virtual HerbariumPRESENT
PRESENTNew Zealand Virtual Herbarium
Petroica boodang Scarlet Robin118733
118822
Petroica goodenovii Red-capped Robin110021
110138
Petroica phoenicea Flame Robin81256
81321
Petroica rosea Rose Robin52301
52328
Petroica rodinogaster Pink Robin13361
13380
Petroica multicolor Norfolk Island Robin6574
6694
Arthropoda8070909
8223999
Mollusca1274134
1338998
Annelida313177
313898
Cnidaria274188
278180
Echinodermata190004
192131
Porifera130139
130767
Pitta (Pitta) versicolor Species25996
26023
Pitta (Pitta) iris Species 5716
724
Pitta (Pitta) versicolor versicolor Subspecies302
303
Pitta (Erythropitta) erythrogaster Species 190
PittaGenus72
Pitta (Pitta) iris iris Subspecies70
76
PittaGenus73
Pitta (Pitta) versicolor intermedia Subspecies 42
Aquila (Uroaetus) audax fleayi4896
4909
Bettongia gaimardi1162
1174
Bettongia gaimardi cuniculus 41
Bettongia gaimardi gaimardi 9
Melanodryas (Amaurodryas) vittata14104
14111
Melanodryas (Amaurodryas) vittata kingi 15
Melanodryas (Amaurodryas) vittata vittata34
36
Platycercus (Platycercus) caledonicus43285
43344
Platycercus (Platycercus) caledonicus brownii 24
Platycercus (Platycercus) caledonicus caledonicus
Sarcophilus 3
Sarcophilus harrisii36219
36240
Tyto novaehollandiae castanops 62