Releases: AtlasOfLivingAustralia/galah-R
v2.1.2
v2.1.1
Minor improvements
- New vignette to demonstrate methods that support reproducibility
- New function
read_zip()to reimport downloaded files - Support
group_by()in occurrence queries to allow facet downloads by any variable (#195, #258) - Improvements to
atlas_citation()for improved clarity
Bug fixes
- Improved documentation to use
galah_filter()to specify ataxon_concept_idrather thangalah_identify()(#245) - Adding a
fieldwithout data breaks occurrence downloads (#248) - Queries that filter using both
!and%in%parse correctly (#251) show_all(lists)no longer truncates results to first 500 rows (#252)atlas_counts()no longer errors whengroup_by()is set but record count = 0 (#254)- Empty tibbles returned by
atlas_species()no longer return different column names to queries that return a result (#255)
galah 2.1.0
Image downloads
galah now supports media downloads for all atlases. The only exceptions are GBIF and France, for whom these APIs are not supported (yet)
Minor improvements
- Reorganise help files for improved clarity, largely following
dplyrsyntax - Support data profiles for Sweden and Spain
- Species downloads (via
atlas_species()) now work for Sweden, France, and Spain (#234) select()now works for species downloads (i.e. viaatlas_species(); #185, #227)- Temporarily remove Estonian atlas (https://elurikkus.ee) during system upgrades
Bug fixes
v2.0.2
Minor improvements
- Experimental
galah_geolocate(type = "radius")added. Supports filtering by point location and radius (in km) (#216) - Support
galah_geolocate()and associated sub-functions for GBIF queries galah_filter()no longer fails when assertions are specified ingalah_filter()(#199)- Improved behaviour and robustness of
atlas_species(), particularly for other atlases (#234) - Improved behavior of
select(), including supportingatlas_species()and adding newgroup = "taxonomy"option (#218, #227) - Updated namematching services for SBDI (Sweden) (#210)
- Add onLoad message so user is clear which organisation is being queried
Bug fixes
collect_media()no longer fails when a thumbnail is missing (#215)galah_filter()parses apostrophes correctly in value names (#214)group_by() |> atlas_counts()no longer truncates rows at 30 (#223, #198)- Fix bug where
search_values()did not return matched values show_values()&atlas_counts()return correctly formatted values (#233)atlas_occurrences()no longer overwrites returned field names with user-supplied onesgalah_apply_profile()now works as expected- List items are no longer truncated when using
show_values()(#235)
v2.0.1
Minor improvements
collapse() now returns a query object, rather than a query_set, and gains a .expand argument to optionally append a query_set for debugging purposes (#217).
Bug fixes
v2.0.0
Object-oriented programming
- galah 2.0.0 is now built around object-oriented programming principles. This architectural change makes query building in galah more modular and transparent. As a result, galah 2.0.0 allows for easier debugging and gives users options for more advanced query building (for more information, see "Object-oriented programming" vignette on galah website) (#183).
collapse(), compute(), collect()
- New underlying architecture behind every function that pings an API in galah separates query building into 3 stages: Convert an object to a
query_setthat lists all APIs that will be pinged (collapse()), send the queries to required APIs (compute()), and return data as atibble(collect()) (#183). - New architecture solves timing-out issue when downloading large numbers of records (#180, #192)
Major improvements to galah_filter()
galah_filter()has been upgraded to use a hierarchical parsing architecture suggested by Advanced R. As a result,galah_filter()is faster and evaluates expressions more consistently (#196, #169)galah_filter()now supportsis.na,!,c()&%in%(#196)
Minor improvements
- The potions package underlies
galah_config()for better options management (#193) - Addition of
slice_head()anddesc()as masked functions to use in galahatlas_counts()query. - New vignettes added for advanced taxonomic, spatial and temporal filtering (#42)
Bug fixes
- Fixed parsing of
|ingalah_filter()(#169) show_values()errors nicely when API is down (#184)- Sporadic
atlas$regionerror when loading galah fixed with potions package implementation (#178) - DOI is no longer missing as an attribute when
atlas_occurrences(mint_doi = TRUE)(#182) - Fixed bug where the order of fields in
group_by()sometimes caused an error (#201) - Fixed parsing of ampersands (
&) in query results (#203) - galah builds correct
data_requestobject when wrapped by a function (#207)
v1.5.4
Patch release to fix minor issues on some devel systems on CRAN
v1.5.3
Minor release to address CRAN issues. Last release before 2.0
v1.5.2
Minor release to resolve issues on CRAN, and a few recent bugs.
Bug fixes
- Prevent error when providing a
tibbleas input tosearch_taxa()(e.g., to resolve homonyms, #168) - Better error message when email address is required, but not given (#179)
- Add an informative message when users call
galah_select()while atlas = GBIF (which is not supported; #181) - Ensure DOIs are added to downloads when requested (#182)
- Improve tests to avoid flagging issues on CRAN when one or more atlases are down (#184)
- Resolve problem where some queries were replaced by
...ingalah_filter()(#186)
v 1.5.1
galah 1.5.1
Mask function names from other packages
An experimental feature of version 1.5.1 is the ability to call functions from other packages (#161), as synonyms for galah_ functions. These are:
identify()({graphics}) as a synonym forgalah_identify()select()({dplyr}) as a synonym forgalah_select()group_by()({dplyr}) as a synonym forgalah_group_by()slice_head()({dplyr}) as a synonym for thelimitargument inatlas_counts()st_crop()({sf}) as a synonym forgalah_polygon()count()({dplyr}) as a synonym foratlas_counts()
These are implemented as S3 methods for objects of class data_request, which are created by galah_call(). Hence new function names only work when piped after galah_call().
Experimental support for GBIF queries
The Global Biodiversity Information Facility (GBIF) is the umbrella organisation to which all other atlases supply data. Hence it is logical to be able to query GBIF and it's "nodes" (i.e. the living atlases) via a common API (#172). Supported functions are:
search_taxaandgalah_identifyfor name matchingshow_all(fields)andshow_all(assertions)show_all()calls that give 'collections' information are limited to 20 records by default, as GBIF datasets are often huge.search_all()is generally more reliableshow_values()for any GBIF fieldgalah_filterandgalah_group_by(and thereforefilterandgroup_by(), see above), but NOTgalah_select.atlas_counts()(and thereforecount(), see above)atlas_occurrences()&atlas_species(); both are implemented via the 'downloads' system, meaning that queries can be larger, but may be slow
The current implementation is experimental and back-end changes are expected in future. Users who require a more stable implementation should use the {rgbif} package.
Minor improvements
galah_config()gains aprintfunction, and now uses fuzzy matching for theatlasfield to match to region, organisation or acronym (as defined byshow_all(atlases)). An example use case is to match to organisations via acronyms, e.g.galah_config(atlas = "ALA").- Improved support for data from Spain via gbif.es (name-matching, lists, spatial)
- Swapped provider for data from France; formerly gbif.fr, now OpenObs, as per advice from maintainers (#156, #165)
- Reading data from disk now uses
readr::read_csvin place ofutils::read.csvfor improved speed show_all(and associated sub-functions) gain alimitargument, set to NULL (i.e. no limit) by defaultgalahno longer imports{data.table}, since the only function previously used from that package (rbindlist) is duplicated bydplyr::bind_rows- Help files are now built without markdown for improved speed (mainly while building)
Bug fixes:
- New function
url_paginate()to handle cases where pagination is needed, but total data length is unknown (e.g.show_all_lists(), #170). galah_select(group = "assertions")is always enacted properly byatlas_occurrences, and won't lead to overly long urls (#137). When called without any other field names,recordIDis added to avoid triggering the 'default' set of columns.atlas_speciesworks again after some minor changes to the API; but requires a registered email to function