Skip to contents

Cloud Storage (GCS)

functions for Google Cloud Storage operations

cc_stage_dir()
Local Staging Root for Bulk Data
cc_stage_path()
Path Within the Local Staging Root
check_release_complete()
Assert a frozen release is structurally complete
cleanup_gcs_obsolete()
Clean up obsolete GCS directories from dataset renames
copy_gcs_file()
Server-side copy between GCS paths
create_gcs_manifest()
Create a manifest of current GCS files
delete_gcs_prefix()
Delete all objects under a GCS prefix
gcs_object_md5() local_md5_base64()
The MD5 of a GCS object, as GCS reports it (base64), or NA when it does not exist
get_calcofi_file()
Get a CalCOFI file from the immutable archive
get_gcs_file()
Get a file from Google Cloud Storage
get_historical_file()
Get historical file from a specific date
get_manifest()
Get manifest for a specific date
list_calcofi_files()
List CalCOFI files from manifest
list_gcs_files()
List files in a GCS bucket/prefix
list_gcs_versions()
List versions of a file in GCS archive
promote_release()
Promote a release to latest.txt
put_gcs_file()
Upload a file to Google Cloud Storage
read_promoted_release()
Read the currently promoted release, authoritatively
sync_to_gcs()
Sync local files to GCS, skipping unchanged files

Parquet

functions for Apache Parquet file operations

add_parquet_metadata()
Add metadata to Parquet file
csv_to_parquet()
Convert CSV file to Parquet format
export_parquet()
Export a DuckDB Table or Query to Parquet
get_parquet_metadata()
Get Parquet file metadata
read_parquet_table()
Read a Parquet table
upload_parquet()
Upload Parquet file to GCS
write_parquet_table()
Write data to Parquet format

DuckDB

basic DuckDB database operations

close_duckdb()
Disconnect from DuckDB and shutdown
create_duckdb_from_parquet()
Create DuckDB from Parquet files
create_duckdb_views()
Create views from a manifest
duckdb_to_parquet()
Export DuckDB table to Parquet
get_duckdb_con()
Get a DuckDB connection
get_duckdb_tables()
Get table information from DuckDB
load_duckdb_extension()
Install and load DuckDB extension
save_duckdb_to_gcs()
Save DuckDB to GCS
set_duckdb_comments()
Set table and column comments in DuckDB

Working DuckLake

functions for the internal Working DuckLake with provenance tracking

add_provenance_columns()
Add provenance columns to a data frame
get_working_ducklake()
Get Working DuckLake connection
ingest_dataset()
Ingest Dataset into Working DuckLake
ingest_to_working()
Ingest data to Working DuckLake
list_working_tables()
List tables with provenance in Working DuckLake
load_prior_tables()
Load Tables from a Prior Ingest's Parquet Directory
query_at_time()
Query Working DuckLake at a point in time
save_working_ducklake()
Save Working DuckLake to GCS
strip_provenance_columns()
Strip provenance columns from data

Frozen Releases

functions for creating and managing frozen DuckLake releases

compare_releases()
Compare two frozen releases
freeze_release()
Freeze a release of the DuckLake
get_release_metadata()
Get metadata for a frozen release
list_frozen_releases()
List available frozen releases
upload_frozen_release()
Upload Frozen Release to GCS
validate_for_release()
Validate Working DuckLake for release

Read

functions reading data, particularly from CSV files in the Google Drive CalCOFI data folder

create_redefinition_files()
Create Redefinition Files for Tables and Fields
determine_field_types()
Determine Field Types for Database
read_csv_files()
Read CSV Files and Their Metadata
read_csv_metadata()
Read CSV Files and Extract Metadata

Transform

functions to transform data, after reading data and before ingesting into the database

detect_csv_changes()
Detect Changes in CSV Files
display_csv_changes()
Display CSV Changes in a Formatted Table
print_csv_change_stats()
Print CSV Change Statistics
transform_data()
Transform Data for Database Ingestion

Check

functions for data validation and integrity checking

check_cruise_coverage()
Cruises that carry samples but no observations — the silent-loss guard
check_data_integrity()
Check Data Integrity for Ingestion
check_dataset_taxon()
The ingest asserts its own taxon crosswalk (taxon plan D6)
check_multiple_datasets()
Check Multiple Datasets for Integrity
check_taxon_ids()
The taxa that no authority resolved, per dataset — reported, and gated
check_taxon_registries()
Every dataset a taxon registry names must be one some dataset supplies
check_ungridded_obs()
Observations that resolve no CalCOFI grid cell — reported, never dropped
render_integrity_message()
Render Data Integrity Check Message

Validate

functions for referential integrity validation and flagging invalid rows

bounds_datatable()
Render a bounds check as the standard notebook table
check_measurement_bounds()
Check measured values against the registry's declared bounds
delete_flagged_rows()
Delete Flagged Rows from Database
drop_out_of_bounds()
Delete values outside their declared bounds
flag_invalid_rows()
Flag and Export Invalid Rows
validate_dataset()
Run All Validations for a Dataset
validate_egg_stages()
Validate Egg Stage Values
validate_fk_references()
Validate Foreign Key References
validate_lookup_values()
Validate Lookup Values Exist

Ingest

functions for ingesting data into the database (PostgreSQL deprecated, use DuckLake)

changed_inputs()
Which inputs changed since a recorded fingerprint
ingest_csv_to_db() deprecated
Ingest CSV data to PostgreSQL database (DEPRECATED)
ingest_dataset_pg() deprecated
Ingest a Dataset to PostgreSQL (DEPRECATED)
input_fingerprint()
Fingerprint the inputs an ingest's outputs depend on
read_input_fingerprint()
Read a previously recorded input fingerprint
write_input_fingerprint()
Record an input fingerprint next to an ingest's outputs

Version

functions for schema and package versioning

get_schema_versions()
Get Schema Version History
init_schema_version_csv()
Initialize Schema Version CSV
record_schema_version()
Record Schema Version

Utilities

utility functions for database operations (PostgreSQL deprecated)

copy_schema()
Copy Database Schema
get_db_con() deprecated
Get a database connection to the CalCOFI PostgreSQL database (DEPRECATED)

Wrangle

functions for local DuckDB wrangling (keys, IDs, table consolidation)

apply_data_corrections()
Apply Data Corrections
assign_deterministic_uuids()
Assign deterministic UUIDs from composite key columns
assign_deterministic_uuids_md5()
Assign deterministic UUIDs using DuckDB-native md5
assign_sequential_ids()
Assign Sequential IDs with Deterministic Sort Order
build_metadata_json()
Build Metadata JSON for Parquet Outputs
build_relationships_json()
Build Relationships JSON from dm Object
collect_cruise_key_mismatches()
Collect Cruise Key Mismatches
collect_measurement_type_mismatches()
Collect Measurement Type Mismatches
collect_ship_mismatches()
Collect Ship Mismatches
consolidate_ichthyo_tables()
Consolidate Ichthyoplankton Tables into Tidy Format
convert_cruise_key_format()
Convert Old YYMMKK Cruise Key to YYYY-MM-NODC Format
create_cruise_key()
Create Cruise Key from Ship NODC Code and Date
create_lookup_table()
Create Lookup Table from Vocabulary Definitions
derive_measurement_type_datasets()
Derive measurement_type → contributing datasets from the data
enforce_column_types()
Enforce Column Types Before Export
ingest_yaml_to_dataset_df()
Build the dataset registry table from ingest YAML blocks
merge_metadata_json()
Merge Per-Ingest metadata.json into a Release-Level Sidecar
merge_relationships_json()
Merge Multiple Relationships JSON Files
propagate_natural_key()
Propagate Key from Parent to Child Table
read_calcofi_meta()
Read the calcofi YAML block from a single workflow file
read_ingest_yaml()
Read calcofi YAML blocks from ingest_*.qmd front matter
read_relationships_json()
Read Relationships JSON and Optionally Apply to dm
release_excluded_datasets()
Datasets held out of the release by calcofi.in_release: false
replace_uuid_with_id()
Replace UUIDs with Integer Foreign Keys
scan_metadata_gaps()
Scan a metadata sidecar for missing documentation
standardize_site_key()
Standardize Site Key from Line and Station Columns
write_parquet_outputs()
Write Tables to Parquet Files
write_spatial_manifest()
Write Spatial Manifest

Workflow

functions for orchestrating ingestion workflow steps

build_release_table_registry()
Build Release Table Registry from Ingest Manifests
build_targets_list()
Build Targets List from Quarto Frontmatter
finalize_ingest()
Finalize Ingest — Push Parquet Tables to Working DuckLake
integrate_to_working_ducklake()
Integrate Ingest Outputs into Working DuckLake
list_ingest_outputs()
List Available Ingest Outputs
parse_qmd_frontmatter()
Parse YAML Frontmatter from Quarto Notebooks
read_ingest_manifest()
Read Ingest Manifest from GCS
read_ingest_parquet()
Read Ingest Parquet Table from GCS
write_ingest_outputs()
Write Ingest Workflow Outputs to GCS

Display

helper functions for workflow display outputs (GitHub links, validation tables)

dt()
Create Interactive Data Table with CSV Export
github_file_link()
Create GitHub File Link
preview_tables()
Preview Tables with Head and Tail Rows
show_flagged_file()
Show Flagged File Result
show_validation_results()
Show Validation Results with GitHub Links

Archive

functions for archiving and managing historical data snapshots

cleanup_duplicate_archives()
Remove duplicate archives from GCS
compare_local_vs_archive()
Compare local files with GCS archive
download_archive()
Download archive to local directory
get_archive_manifest()
Get archive manifest (file metadata)
get_latest_archive_timestamp()
Get latest archive timestamp from GCS
get_local_manifest()
Get local file manifest
sync_to_gcs_archive()
Sync local files to GCS archive (deprecated wrapper)

Version Sync

functions for synchronizing schema and package versions

commit_version_and_permalink()
Commit Version Changes and Get Permalink
complete_version_release()
Complete Version Release Workflow
get_package_version()
Get Current Package Version
suggest_next_version()
Suggest Next Version
update_package_version()
Synchronized Version Management for Package and Database

Visualize

functions visualizing diagnostic outputs, particularly color coded data tables

show_fields_redefine()
Show fields to redefine
show_source_files()
Show source files
show_tables_redefine()
Show tables to redefine

Other

check for other functions or datasets not captured by above categories

CC_DEPTH_MAX_M
Deepest plausible sample depth in the CalCOFI region, metres
CC_PARQUET_WRITER
Pinned parquet writer options for released tables
CC_RELEASE_PREFIX CC_TABLES_PREFIX
Release layout prefixes (bucket-relative)
OBS_VIEW_COLUMNS
The 18 columns of obs, in order
add_cruise_date_span()
Add the observed date span of each cruise to the cruise reference
add_point_geom()
Add Point Geometry Column to a DuckDB Table
add_release_citation()
Write the release citation into a catalog.json list
add_sample_seafloor()
Stamp seafloor_depth_m onto the sample table
append_dataset_taxon()
Stage a dataset's taxon vocabulary in dataset_taxon (taxon plan D1)
append_obs()
Append occurrence-headline rows into the core obs table
append_obs_attribute()
Append sub-occurrence attribute rows into the core obs_attribute table
append_sample()
Append event rows into the core sample dimension
append_sample_measurement()
Append event-level (effort) rows into the core sample_measurement table
apply_taxon_common()
Apply the common-name precedence to the merged taxon table
assemble_core()
Assemble the whole consolidated core from the ingest shards
assemble_core_table()
Assemble one core table from its per-dataset shards
assert_dataset_catalog()
Stop on any non-exempt error finding from check_dataset_catalog()
assert_dataset_citation()
Stop on any non-exempt error finding from check_dataset_citation()
assert_dwc()
Stop when a Darwin Core check found an error
assert_eml()
Stop on any non-exempt error finding from check_eml()
assert_sitemap()
Stop when check_sitemap() found an error
assert_stac()
Stop when check_stac() found an error
assign_grid_key()
Assign Grid Key via Spatial Join
build_climatology()
Build the release's climatology table
build_coverage()
The coverage cube behind the explorer's first paint
build_coverage_stations()
The per-station coverage card: n obs by dataset x year and by dataset x month, for one station
build_dataset_catalog()
Build the dataset catalog record — datasets.json
build_datasets_sitemap()
Build the rows of datasets/sitemap.xml from the record
build_eml()
Build one dataset's EML 2.2 document from the catalog record
build_eml_catalog()
Build an EML document for every dataset in the catalog record
build_grid_reference()
Build the shared grid reference table (deterministic, dataset-independent)
build_obs_slim()
The bio or env realm of obs, browser-shaped — and, since 3.31.0, its physical store
build_release_catalog()
Build the release catalog with per-table hashes and objects
build_sample_root()
Root sampling events with a dense integer id
build_sample_spatial()
Exact polygon membership of every root sample, one layer at a time
build_spatial_layers()
The explorer's boundary-layer sidecar: the registry joined with the release's spatial table
build_stac()
Build the static STAC catalog of a release
build_taxon_group()
Build the taxon_group grouping table (many taxa per group) from the registry
build_taxon_hierarchy()
Build Taxon Hierarchy from Local spp.duckdb via Recursive CTEs
build_taxon_reference()
Build the unified taxon reference table
build_taxon_table()
Build Taxonomic Hierarchy Table from WoRMS
build_versions_json()
Build the versions.json register of every release under a prefix
canonical_path()
Canonical (content-addressed) object path for a table or partition
catalog_findings()
The findings check_dataset_catalog() can report, with their level
cc_calcofi_to_lonlat()
Convert CalCOFI line/station to longitude/latitude
cc_lonlat_to_calcofi()
Convert longitude/latitude to CalCOFI line/station
cc_station_regions()
Region polygons from a station-membership list
check_core_pk_unique()
Fail unless every core table is unique on its primary key
check_cruise_key_integrity()
Fail (or ratchet) the release on a cruise_key that does not hold up
check_dataset_catalog()
Check every record of the dataset catalog
check_dataset_citation()
Check every dataset's citation, license and DOI, structurally and against its authority
check_dataset_meta_split()
Assert that no notebook still carries a descriptive dataset_meta key
check_depth_bounds()
Check depth coordinates against an absolute range
check_depth_vs_seafloor()
Find samples deeper than the seafloor at their position
check_eml()
Check one dataset's EML document
check_eml_catalog()
Check every dataset's EML document
check_obs_pair_parity()
Assert that obs_bio + obs_env hold exactly the rows of obs
check_registry_na_strings()
Reject sentinel strings that should have been empty cells
check_release_relationships()
Measure every declared primary and foreign key on the frozen tables
check_seafloor_nulls()
Classify the samples whose seafloor_depth_m is NULL, by cause
check_sitemap()
Check a generated sitemap
check_stac()
Validate a written STAC catalog
citation_findings() citation_error_findings()
The findings check_dataset_citation() can report, with their level
classify_portal()
Which portal family a URL belongs to
clean_taxon_name()
Normalize a source taxon name for an authority lookup
compat_event_sql()
Rebuild a per-dataset event table as a VIEW over the core sample
compat_measurement_sql()
Rebuild a per-dataset measurement table as a VIEW over obs
complete_cruise_reference()
Complete the cruise reference with cruises no SWFSC site row names
core_output_tables()
Core tables an ingest writes to parquet
core_relationships()
PK/FK spec for the consolidated core tables
core_shard_paths()
Find the per-dataset parquet shards for a core table
ctd_map_columns()
Map an uploaded file's columns onto measurement types
ctd_upload_to_core()
Project an uploaded file into the core obs / sample shape
dataset_distributions()
Every endpoint of one dataset, measured and curated
dataset_meta_descriptive_keys() dataset_meta_structural_keys()
The dataset_meta keys that live in the descriptive sidecar, not the notebook
dataset_since_versions()
The first release each dataset appeared in
declare_measurement_bounds()
Declare valid_min / valid_max on measurement types that already exist
declare_measurement_fields()
Declare category / variable / derivation / is_canonical / NERC ids on measurement types that already exist
derive_cruise_key_on_casts()
Derive Cruise Key on Bottle Casts via Ship Matching
derive_registration_id()
The identifier a portal knows a dataset by, read off its own URL
discover_sample_levels()
Discover a dataset's sampling hierarchy from the core sample table
distribution_changes()
What changed since the last observation
distribution_kinds() distribution_portals() distribution_statuses() registration_statuses() holding_statuses() visibility_values()
The controlled vocabularies of the dataset catalog registries
distribution_targets()
Every external endpoint worth observing: the registry plus the holdings' links
dwc_absence_rule()
Which occurrenceStatus rule a dataset falls under
dwc_archive()
Write a Darwin Core Archive and its manifest
dwc_check()
Check an archive's three tables before it is written
dwc_datasets()
The biological datasets a Darwin Core Archive can be built for
dwc_emof()
Build the ExtendedMeasurementOrFact extension for one dataset
dwc_event()
Build the Darwin Core Event core for one dataset
dwc_findings()
The findings dwc_check() can report, with their level
dwc_manifest_status()
Read a Darwin Core Archive manifest and say whether the OBIS copy is current
dwc_meta_xml()
Generate meta.xml for an Event-core archive
dwc_occurrence()
Build the Darwin Core Occurrence extension for one dataset
dwc_registries()
Read the three registries a Darwin Core Archive needs
dwc_term_map()
The Darwin Core term URI for every column the archive can carry
eml_contact_address()
The CalCOFI role address used as the EML contact of last resort
eml_findings()
The findings check_eml() can report, with their level
ensure_interim_ships()
Ensure Interim Ship Entries for Unmatched Ships
ensure_measurement_taxon()
Stage the _measurement_taxon crosswalk in a connection
ensure_taxon_common()
Fetch and cache vernacular (common) names from WoRMS
ensure_taxon_lineage()
Materialize the WoRMS/ITIS lineage build_taxon_reference() reads
ensure_taxon_xref()
Materialize the authority cross-reference .taxon_norm_sources() reads
erddap_globals()
The ERDDAP global attributes of one dataset, from the same record
erddap_grain_description()
What one ERDDAP grain means, in a sentence
export_release_parquet()
Deterministic parquet export of one released table
fetch_erddap_datasets() parse_erddap_all_datasets()
What ERDDAP serves now: allDatasets as a table
fetch_netcdf_manifests()
The netCDF manifests.json of every dataset published by publish_to-netcdf.qmd
fetch_ship_ices()
Fetch Ship Codes from ICES Reference Codes API
fetch_taxon_lineage()
Fetch (and cache) the WoRMS/ITIS lineage for a set of taxon ids
fetch_taxon_xref()
Fetch (and cache) the WoRMS <-> ITIS cross-reference for a set of taxa
format_bbox()
Format a Bounding Box as a Human-Readable Extent
freeze_plan()
Decide, per object, whether to upload or reuse
h3_parent_sql()
H3 parent of a cell as plain SQL (no extension)
holdings_from_sidecars() write_holdings_csv()
The holdings.csv index, generated from the holding sidecars
license_statuses()
The allowed status values of metadata/license.csv
load_gcs_parquet_to_duckdb()
Load a GCS Parquet File into DuckDB
mark_taxon_common_manual()
Tag the hand-picked rows of the registry as source = "manual"
match_by_site_datetime()
Match Records to a Reference Table by Key + Datetime Window
match_cruise_by_track()
Match Records to a Cruise by Space-Time Proximity to an Occupied-Station Track
match_nearest_by_depth()
Match Records to the Nearest Reference Row Along a Continuous Axis
match_ships()
Match Ship Codes Across Datasets Using Multi-Source References
match_station_occupation()
Stamp sample.station_uuid: the SWFSC station occupation an event belongs to
measurement_var_meta()
CF variable metadata from the measurement_type registry
merge_dataset_meta()
Merge a notebook's structural dataset_meta with its descriptive sidecar
merge_taxon_shards()
Merge the per-dataset taxon shards into one authoritative reference
nc_global_atts()
Build the CF/ACDD global attributes for a published dataset
nc_level_put()
Write the data and attributes for one level defined by nc_level_vars()
nc_level_vars()
Build the variable definitions for one level of a nested dataset
nc_profile_atts()
Write the CF Discrete-Sampling-Geometry attributes
nc_profile_def()
Define a CF Discrete-Sampling-Geometry file (profile or trajectory)
nc_profile_write()
Write one chunk of a CF profile file
normalize_citation()
Normalize a citation string for comparison
ns_key()
Namespaced sample_key expression: dataset_key:sample_type:id
obs_view_sql()
obs as a view over obs_bio + obs_env
obs_wide_sql()
SQL that widens long obs rows into one column per measurement type
observation_statuses()
The statuses an observation can report
observe_distributions()
Ask every portal what it says about our external copies
observe_methods()
The observation methods portal.csv may declare
observed_coverage()
Measure Observed Temporal and Spatial Coverage per Dataset
parse_edi_cite() parse_erddap_das() parse_ncei_landing() parse_datacite() parse_doi_bibliography()
Parse a resolver's response into the fields the citation cache carries
parse_registration()
Parse one publish_* cell of dataset_status.csv
plan_dataset_netcdf()
Plan the netCDF shape for a dataset
promote_unreleased()
Turn # Unreleased into the section for a version being cut
prune_taxon_shard()
Prune the taxa references to one dataset's shard
publish_release_notes()
Render and (re)publish RELEASE_NOTES.md for a version
qc_cast_base()
Strip the direction suffix from a CTD cast sample_key
qc_cast_direction()
Direction of a CTD cast sample_key
qc_cast_profile()
Fetch one physical cast's profile, both directions
qc_parse_params()
Parse a rule's params cell into a named list
qc_present_types()
Which measurement types actually exist for a dataset
qc_read_rules()
Read the rule registry, attaching SQL text and parsed params
qc_render_sql()
Substitute {{param}} placeholders into a rule's SQL
qc_run_all()
Run every rule in a registry, one at a time
qc_run_rule()
Execute one rule, returning its findings
qc_stage_reference()
Stage the QC reference tables a rule registry expects
qc_summarize()
Collapse rule results into one row per rule
qc_upload_con()
A connection an uploaded cast can be QC'd on
question_statuses() question_priorities()
The controlled vocabulary of the question registry
questions_datatable()
Render a question registry as the standard notebook table
read_catalog_registries()
Read every registry the dataset catalog joins
read_ctd_upload()
Read any supported CTD upload
read_dataset_sidecar()
Read one descriptive sidecar, metadata/{provider}/{dataset}/dataset_meta.yml
read_dataset_sidecars()
Read every descriptive sidecar under a metadata/ root
read_dataset_status()
Read metadata/dataset_status.csv, the pipeline-stage tracker
read_distribution_observed()
Read metadata/distribution_observed.json
read_distribution_registry()
Read metadata/distribution.csv, the curated endpoints per dataset
read_gear_registry() dataset_gear()
Read metadata/gear.csv, the net-gear registry
read_license_registry()
Read metadata/license.csv, the registry of dataset licenses
read_life_stage_registry()
Read metadata/life_stage.csv, the life-stage registry
read_measurement_type()
Read metadata/measurement_type.csv, refusing a corrupted registry
read_portal_registry()
Read metadata/portal.csv, the portal capability registry
read_questions()
Read a dataset's questions.csv, validated and ranked
read_sbe_asc()
Read a Sea-Bird .asc ASCII export
read_sbe_btl()
Read a Sea-Bird .btl bottle summary
read_sbe_cnv()
Read a Sea-Bird .cnv converted data file
read_sbe_header()
Parse a Sea-Bird * / ** header block
read_taxon_common()
Read the vernacular-name registry
read_taxon_group_rules()
Read the taxon_group rule registry (metadata/taxon_group.csv)
register_measurement_types()
Append new measurement types to the shared registry, safely
release_citation()
The citation for a release of the integrated database
release_notes_section()
The RELEASES.md section that documents a version
release_notes_sections()
Split RELEASES.md into its top-level sections
release_objects()
Describe the objects an exported table consists of
release_sort_keys()
Sort keys (and partition column) for every released table
release_view_tables() substitute_view_tables()
The tables a catalog view reads, and the SQL with them resolved
release_views()
Views a release carries beside its tables
render_release_notes()
Render a version's RELEASE_NOTES.md: narrative + generated appendix
report_ship_matches()
Report Ship Matching Status for a Dataset
report_taxon_overrides()
What each taxon_override.csv row matched, applied to and skipped
resolve_cruise_key()
Resolve cruise_key on an event table by span, designation, then month
resolve_dataset_taxon() build_dataset_taxon()
Fill taxon_key on the dataset_taxon crosswalk (per-dataset vocabulary -> taxon)
resolve_source_accessed()
Resolve each dataset's source_accessed: the ingest's own stamp, else git
sample_arm_self()
Build a sample arm for a single self-contained event table
sample_seafloor()
Seafloor depth at each sample position from a GEBCO GeoTIFF
sbe_split_header()
Recover the column names from a fixed-width Sea-Bird ASCII header
sitemap_findings()
The findings check_sitemap() can report
source_accessed_from_git()
When was a dataset's source last read? Measured from git
stac_collection()
A STAC Collection for one dataset record
stac_findings()
The findings check_stac() can report
stac_item()
A STAC Item for one dataset at one release
stamp_source_access() sources_block()
Record when an ingest read its sources
standardize_species()
Standardize Species Identifiers Using WoRMS/ITIS/GBIF APIs
standardize_species_local()
Standardize Species Using Local spp.duckdb Lookups
summarise_netcdf_plan()
Summarise a netCDF plan as one row
supplemental_core_tables()
Supplemental full-resolution tables declared by the ingests
taxa_rank_reference()
The canonical taxonomic rank ordering (taxa_rank)
taxon_key_of()
Encode an authority-prefixed taxon_key
thin_plan()
Archive-thinning plan: which versions lose their parquet
unescape_unicode()
Decode \\uXXXX escapes in a character vector (what ERDDAP's CSV emits for non-ASCII)
upload_release_objects()
Execute a freeze plan against GCS
upsert_measurement_types()
Replace a measurement type's definition while keeping its curated columns
validate_dataset_catalog()
Validate a datasets.json against the package's JSON schema
write_dataset_catalog()
Write datasets.json and one datasets/{key}.json per dataset
write_distribution_observed()
Write metadata/distribution_observed.json
write_eml_files()
Write eml/{dataset_key}.xml for every built document
write_sitemap_xml()
Write a sitemap XML file (sitemaps.org 0.9)
write_taxon_common()
Write the vernacular-name registry
zenodo_doi_for_tag() zenodo_record_for_tag()
Find the Zenodo record (and DOI) minted for a release tag
zenodo_metadata() citation_cff() write_citation_files()
Metadata for .zenodo.json and CITATION.cff at the workflows repo root