Data HubContributeData Hub on GitHub
Get involved

Contribute to the Hub

The Hub grows because Centers, programs and partners contribute — datasets, docs, and tutorials. Pick a guide below.

Need help?

Unsure where to start, or stuck partway? Open an issue on GitHub with your question and the Hub team will pick it up.


Add a dataset

A dataset joins the Hub through its metadata record. You prepare the data and the record, submit the record for review, and once two reviewers approve it, it is published in the catalog. The data can be hosted by the Hub or stay with its provider.

1

Confirm scope and licensing

Check that the dataset is climate-relevant for agri-food systems, comes from a credible source, and does not duplicate something already in the catalog. It must carry a valid license with clear attribution and reuse terms; externally hosted data keeps whatever license its provider set. Unsure? Open an issue and ask before doing any work.

2

Prepare the data

If the Hub will host the data, convert it to a cloud-optimized format: COG for rasters, Zarr for cubes, Parquet or GeoParquet for tables and vectors. Choose the chunking or sorting for how people will actually read it, and follow the naming and versioning rules in the data conventions. Externally hosted data that already supports partial reads can be linked as it is.

3

Author the metadata record

Describe the dataset in a record that follows the Hub metadata standard: what it is, who made it, how to cite it, where the files are, and what the variables mean. Use the metadata app, the AI agent skill, or write the YAML by hand from a validated example.

4

Check the record

Validate the record with the metadata app or the standard's checklist, then read it against the data itself. Validation confirms the structure and required fields; it cannot confirm that links point at the right release or that units and coverage are right. Check those by hand, including anything an AI tool drafted.

5

Submit and review

Submit through the metadata app, or open an issue or pull request on the catalog repository. Include any open questions. Two reviewers assess scope, scientific suitability, metadata, and licensing, and may ask for changes. Once approved, the record is merged and the dataset appears in the catalog.

Pre-submission checklist

  • The dataset is in scope and carries a valid license with attribution and citation details.
  • Hosted data is in a cloud-optimized format, and the layout choice is documented in the record.
  • The record validates and has at least one data link, a licensor contact, and a citation.
  • Spatial and temporal coverage, variables, units, and missing values are described.
  • Known limitations and caveats are in the record's note field.
  • The record names someone who can answer questions about the data.

Edit a wiki page

Wikis are Markdown files under src/content/wikis/ in the site repo. Edits go through normal pull requests, so every change is reviewed, versioned and attributable.

1

Find the page in the repo

Every wiki page ends with an 'Edit this page on GitHub' link that opens its source file. To add a page, copy the front-matter of an existing one and set its group (The Hub, Data standards, Methods, Concepts or Reference).

2

Open a PR with your edit

Fork or branch, edit the Markdown, bump the updated date in the front-matter, and open a pull request. CI checks formatting and builds the site; a broken link or front-matter field fails the build. To see the page, run the site locally with bun run dev.

3

Request review

One suitable reviewer approves wiki changes; you cannot approve your own. Mention in the PR what changed and why, and ask a Hub maintainer if you are not sure who should review.

Pre-submission checklist

  • Front-matter (title, description, group, updated) is correct.
  • Internal links resolve and external links are correct.
  • Code blocks specify a language for syntax highlighting.
  • Images include alt text.

Write a tutorial

Tutorials are runnable, step-by-step guides to working with Hub data. They can be written as Markdown or contributed as an executed Jupyter notebook — both render the same way on the site, with styled prose, highlighted code, and saved outputs.

1

Pick a format

Markdown (.md) suits prose-led guides; a Jupyter notebook (.ipynb) suits analysis-led ones — commit it executed, and saved outputs (plots, tables, dataset previews) render right in the page. Either file goes in src/content/tutorials/, and the filename becomes the URL, so keep it a short lowercase slug.

2

Add the tutorial metadata

Markdown files take YAML front-matter. Notebooks carry the same fields in their notebook metadata under a "cdh" key (in JupyterLab, edit it via the Property Inspector → Advanced Tools). Outcomes are the "you'll be able to" bullets shown on the tutorial card.

JSON
{
  "cdh": {
    "title": "Tropical Livestock Units from GLW4",
    "description": "Compute TLU from GLW4 species densities.",
    "audience": "Python & R",
    "topic": "Livestock",
    "time": "15 min",
    "updated": "2026-07-10",
    "outcomes": ["Stream GLW4 densities from the Zarr store"],
    "datasets": ["glw4-2020"]
  }
}
3

Link the data you use

List the catalog record ids your tutorial works with in "datasets". The site cross-links both ways — your tutorial shows the records it uses, and each record page lists tutorials that use it.

4

Keep outputs static and the notebook runnable

Matplotlib figures, pandas tables and xarray previews all render on the site. Interactive outputs (Plotly, ipywidgets) don't — clear them, or talk to us about publishing that tutorial as an exported HTML page instead. Notebook pages also offer an 'Open in Colab' link, so the notebook must run from a clean session: install what it needs and stream data from Hub endpoints.

5

Open a PR and request review

Fork or branch, add your file, and open a pull request. CI builds the site, so missing metadata fails the check; run bun run dev to see the page locally. One suitable reviewer approves tutorials; you cannot approve your own.

Pre-submission checklist

  • Filename is a short lowercase slug (it becomes the URL and the notebook download link).
  • Metadata is complete (title, description, audience, topic, time, updated, outcomes).
  • Data is streamed from Hub endpoints, not bundled or downloaded ahead.
  • The notebook is committed executed, with only the outputs that teach.
  • Section headings (##) are present so the page gets a table of contents.
  • Linked dataset ids in "datasets" match catalog record ids.

Report a bug or issue

Spotted something off in a dataset, a broken link, or a glitch on this site? Tell us. Pick what you're reporting — each opens a prefilled GitHub issue on the right repository.

Be specific — what you expected vs what you got, with exact values and steps where possible. For data-quality issues, include the dataset id from its catalog page.