Palmer Penguins dataset

Bill length and depth, flipper length, body mass and sex for 344 Adélie, Chinstrap and Gentoo penguins on three islands near Palmer Station, Antarctica, from 2007 to 2009. Dr. Kristen Gorman collected the data with the Palmer Station Long Term Ecological Research program, and Allison Horst, Alison Hill and Kristen Gorman published it in the palmerpenguins R package under CC0. The source writes a missing value as NA, and the recipe reads it as missing.
Load it
These commands install arc, Meridian’s open-source Protocol runner, clone the open-analytics repository and run this Protocol, which writes build/penguins.parquet in open-analytics/examples/palmer-penguins.
curl -fsSL https://install.meridian.online/arc | bash
git clone https://github.com/meridian-online/open-analytics
cd open-analytics/examples/palmer-penguins && arc runarc runs the Protocol’s SQL on DuckDB 2.x, which its installer puts in place when no DuckDB is on your PATH, saying what to add to PATH; the last step, which describes the Parquet, needs finetype 0.6.54 or later on your PATH.
Columns
| Name | Type | Description |
|---|---|---|
| species | string | Adelie, Chinstrap or Gentoo. |
| island | string | Biscoe, Dream or Torgersen, in the Palmer Archipelago. |
| bill_length_mm | number | Bill (culmen) length, in millimetres. Missing for two penguins whose bill was not measured. |
| bill_depth_mm | number | Bill (culmen) depth, in millimetres. |
| flipper_length_mm | integer | Flipper length, in millimetres. |
| body_mass_g | integer | Body mass, in grams. |
| sex | string | female or male, as recorded; missing where the source has NA. |
| year | year | The year the penguin was studied, 2007 to 2009. |
| record_status | string | complete, bill not measured, or sex not recorded: which part of the record, if any, the source left as NA. |
Source and licence
Licence
Sources
- inst/extdata/penguins.csv in the palmerpenguins R package (Horst, Hill and Gorman), at commit 8957207b
- Gorman, K. B., Williams, T. D. and Fraser, W. R. (2014). Ecological sexual dimorphism and environmental variability within a community of Antarctic penguins (genus Pygoscelis). PLoS ONE 9(3): e90081
Meridian hosts none of this data: the Protocol downloads it, from the address its fetch step names, when you run it.
The steps
5 stepsduckdb >=1.2Every step runs in order. op: steps are typed, versioned operators; sql: steps are DuckDB models.
- 01fetch_penguinsop: http_fetch@1
Fetch penguins.csv from the palmerpenguins package's own repository, pinned to a commit and by sha256.
producesbuild/penguins.csvwithurl: https://raw.githubusercontent.com/allisonhorst/palmerpenguins/8957207b78d6ccd1b4654a9dd9c9041b657478ab/inst/extdata/penguins.csv out: build/penguins.csv sha256: f204db2c753b0937caac3cb35258562c14f073e4bbc76be24b4c51ce22767a93 headers: User-Agent: Meridian Protocol (open-analytics demo; research@meridian.online) - 02raw_penguinssql: models/01_raw_penguins.sql
Read the CSV as it arrives, every column as text, since it writes a missing value as the string NA.
readsbuild/penguins.csvproducesraw_penguinsmodelmodels/01_raw_penguins.sql - 03penguinssql: models/02_penguins.sql
Read NA as missing, type each measure, and say whether each penguin's record is complete.
producespenguinsmodelmodels/02_penguins.sql - 04export_penguinsop: parquet_export@1
Write build/penguins.parquet, the file this Protocol ends in, on your own disk. ORDER BY ALL makes the bytes reproducible.
readspenguinsproducesbuild/penguins.parquetwithinput: penguins dest: build/penguins.parquet compression: zstd order_by: ALL - 05describeop: datapackage_describe@1
Emit datapackage.json from the built Parquet: finetype types every column, and descriptor.overrides.json adds the curated title, licence, sources and per-field prose.
readsbuild/penguins.parquetdescriptor.overrides.jsonproducesdatapackage.jsonwithparquet: build/penguins.parquet overrides: descriptor.overrides.json out: datapackage.json