Migrating to 2.0

Loading the package

library(Argentum)

The package name is unchanged: library(Argentum) works exactly as it did in 1.x. Everything in 2.0 is a deprecation, not a break — old code runs and warns.

Function mapping

1.x 2.0 Notes
argentum_list_organizations() argentum_organizations() Columns renamed to lower case
argentum_search_organizations() New
argentum_select_organization() argentum_search_organizations() Or argentum_browse() for a menu
argentum_list_layers() argentum_layers() Adds abstract, crs, bbox; works for WMS too
argentum_get_capabilities() argentum_capabilities() Negotiates version; cached; printable
argentum_import_wfs_layer() argentum_read_wfs() Adds bbox, crs, filter, max_features, paging
argentum_download_layers() argentum_download() Failures are actually reported
argentum_interactive_import() argentum_browse("read")
argentum_interactive_download() argentum_browse("download")
argentum_read_wms() New
argentum_wms_legend() New
argentum_cache_path(), argentum_cache_clear() New

Column names

argentum_organizations() returns name, category, organization, wms_url, wfs_url. 1.x returned Name, WMS_URL, WFS_URL.

Note that 2.1.0 changed this set again, replacing category with level and jurisdiction and adding dependency, updated, wcs_url and csw_url. See NEWS.md if you are coming from 1.x straight to 2.1.0.

orgs <- argentum_list_organizations()   # 1.x names, still works
orgs$Name

orgs <- argentum_organizations()        # 2.0
orgs$name

argentum_layers() returns name and title in lower case, plus three new columns. The deprecated argentum_list_layers() keeps the old Name/Title.

Behaviour that changed for the better

Downloads report their failures. In 1.x, argentum_download_layers() assigned the error status inside its tryCatch() handler. Because the handler runs in its own frame, the assignment modified a copy that was then discarded: failed layers were written into the report as "pending", and the closing summary printed zero errors. If you have been relying on that summary, expect it to start reporting failures that were always happening.

Arguments are validated. Passing an organization name that does not exist now raises argentum_error_unknown_org with a suggestion, rather than producing a zero-row result you discover three steps later.

The catalogue survives its sources. 1.x read five Datawrapper URLs with a version number in the path. When a chart was republished the URL 404’d and the package stopped working with no warning. 2.0 discovers the version at runtime and falls back to a snapshot shipped inside the package.

Requests are cached. Scripts that called argentum_list_organizations() in a loop were downloading five CSVs per iteration.

Silencing the deprecation warnings

They fire once per session per function, not once per call. If you want them gone before you have time to migrate:

suppressWarnings(library(Argentum))
options(warn = -1)  # blunt; prefer fixing the calls

Better, migrate incrementally — the two APIs coexist and can be mixed freely in the same script.