EnVar microschema · class
Source Dataset
SourceDataset
The upstream gridded / station product the exposure values originate from. Carries identity, DOI, version, coverage, producer, citation, license, native format, and homogenisation status. One per record.
Where it sits
Composed intoEnvironmentalExposureRecord
ReferencesAnyValue
Fields
Weather and air-quality data come from named products made by different organisations, much like maps come from different map-makers. This is simply the full official name of the product the values were taken from.
Full name of the source product, e.g. "Daymet V4 Daily Surface Weather Data", "GridMET", "NARR", "ERA5-HEAT".
Example
Daymet V4 Daily Surface Weather Data
Covered by — 5 standards
Why it matters & mappings
Without the product name, "daily maximum temperature" could come from any of a dozen products whose values disagree; the name is the first anchor for identifying which upstream data actually produced the exposure values.
Datasets get updated and re-released like software, and the numbers can change between releases. The version says exactly which release the values came from.
Source product version. E.g. "V4 R1" for Daymet; "V5.GL.03" vs "V6.GL.02" for ACAG PM products. Version differences materially change values.
Examples
V4 R1 — Daymet V4 Release 1
V5.GL.04 — ACAG global PM2.5 product version
Covered by — 5 standards
Why it matters & mappings
Version differences materially change values (e.g. ACAG V5 vs V6 PM2.5), so two studies "using Daymet" may in fact use different data; a value without a version is not reproducible.
Weather stations get moved, replaced, or re-instrumented over the decades, which creates artificial jumps in their records. "Homogenised" data has had those jumps statistically corrected; "not homogenised" data is raw, as observed.
For station-based products, whether values have been homogenised. Mandatory for station-based products; GHCN-D = not_homogenised, GHCN-M v4 = homogenised.
Example
not_homogenised — e.g. GHCN-Daily station observations
Allowed values
homogenised Values have been homogenised against breakpoints
not_homogenised Values are as-observed, with no homogenisation applied
partial Partial homogenisation has been applied
Why it matters & mappings
Using a non-homogenised station product (e.g. GHCN-Daily) for trend work without saying so is a known trap: station moves and instrument changes masquerade as climate signal. Mandatory for station-based products.
A short nickname for the dataset, like a username, that computers can match exactly — "Daymet V4 Daily Surface Weather Data" becomes just daymet_v4.
Short code keying into the EnVar source registry, e.g. daymet_v4, gridmet, narr, era5_heat.
Example
daymet_v4
Covered by — 5 standards
Why it matters & mappings
A stable machine-readable key lets tools group and compare records from the same product without fuzzy-matching free-text names, which vary in spelling and capitalisation across studies.
A DOI is a permanent ID for a dataset or paper that keeps working even when websites move. Looking it up at doi.org always leads to the current home of the data.
DOI of the source dataset. Mandatory if a DOI exists. Daymet V4 = 10.3334/ORNLDAAC/2129; ERA5 = 10.24381/cds.adbb2d47.
Example
10.3334/ORNLDAAC/2129 — Daymet V4 R1 DOI
Covered by — 5 standards
Why it matters & mappings
The DOI is the durable handle for the source; access URLs rot, but a DOI keeps resolving to the dataset, so future readers can always retrieve exactly what was used and producers get citable credit.
See also: https://www.doi.org/, https://datacite.org/
Simply the first and last dates the dataset covers. If you ask for a day outside that window, there was never any data to find — which is different from data that should exist but is missing.
Source product temporal coverage as an ISO 8601 interval string <start>/<end>.
Example
1980-01-01/2024-12-31
Covered by — 5 standards
Why it matters & mappings
Knowing the product's full time span distinguishes "date outside the product's coverage" from "value genuinely missing", preventing coverage gaps from being misread as data errors.
See also: https://en.wikipedia.org/wiki/ISO_8601
A plain-language note of which regions the dataset covers, for example the continental United States plus Hawaii and Puerto Rico. Places outside this area simply have no data.
Human-readable spatial extent of the product, e.g. "CONUS, Hawaii, Puerto Rico".
Example
CONUS, Hawaii, Puerto Rico
Covered by — 5 standards
Why it matters & mappings
The product footprint distinguishes "location outside the product's extent" from "missing value"; without it, a subject in Alaska queried against a CONUS-only product looks like a data error rather than an out-of-coverage case.
The organisation that makes and publishes the dataset — for example a NASA data centre or a university group. Knowing who made the data tells you where to go with questions.
Producer institution, e.g. "NASA ORNL DAAC", "University of Idaho", "NOAA NCEP", "ECMWF Copernicus".
Example
NASA ORNL DAAC
Covered by — 5 standards
Why it matters & mappings
Identifies who is accountable for the product, supports correct attribution, and helps disambiguate similarly named products maintained by different institutions.
The ready-to-paste reference for the dataset, formatted the way academic papers list their sources, so anyone reusing the data knows exactly how to cite it.
Full APA-style citation for the source dataset.
Example
Thornton, M.M., et al. (2022). Daymet: Daily Surface Weather Data on a 1-km Grid for North America, Version 4 R1. ORNL DAAC. — truncated form; the real citation lists all authors
Covered by — 5 standards
Why it matters & mappings
The producer's requested citation is what enables attribution and retrieval; omitting it makes it harder for readers to credit the producers and to locate the exact product in the literature.
SPDX codes are standard short names for licenses, like CC-BY-4.0, so software can check reuse rules automatically. The license says what you are allowed to do with the data.
SPDX identifier of the source license, e.g. CC0-1.0, CC-BY-4.0. Use public-domain-us-gov for US federal data with no formal SPDX equivalent.
Examples
public-domain-us-gov — US federal data (e.g. Daymet V4)
CC-BY-4.0 — e.g. ACAG PM2.5 V5.GL
Covered by — 5 standards
Why it matters & mappings
Without the license, downstream deposit and redistribution legality is unknowable — you cannot tell whether derived exposure values may be shared, deposited in a repository, or must stay private.
See also: https://spdx.org/licenses/
The dataset's home page on the web — the front door where you can read about the data and find the download options — rather than a direct file link that stops working when files move.
Landing-page URL for the dataset (not a download link, which rots).
Example
https://daymet.ornl.gov/
Covered by — 5 standards
Why it matters & mappings
A stable landing page is how future users actually reach the data; a raw download link rots when files are reorganised, leaving the record pointing nowhere.
Scientific data comes packaged in different file types (NetCDF, GeoTIFF, CSV, and others), a bit like documents come as PDF or Word. This records which package the producer ships.
Format the source ships in.
Example
netcdf4_cf
Allowed values
netcdf4_cf NetCDF version 4 with CF Conventions metadata
hdf5 Hierarchical Data Format version 5
geotiff GeoTIFF raster format
grib1 WMO GRIB-1 format
grib2 WMO GRIB-2 format
csv_station_observations CSV file of station observations
zarr Zarr cloud-optimised array format
parquet Apache Parquet tabular format
Covered by — 5 standards
Why it matters & mappings
The shipping format determines which tools can read the source and what metadata survives; knowing it lets others rebuild the same extraction pipeline and anticipate format-specific quirks.
If the DOI box is empty, this field says why — for example, the producer never issued one. That way an empty field is a deliberate statement, not an oversight.
Reason source_dataset_doi is null.
Example
not_provided_by_source
Allowed values
not_provided_by_source Source product does not produce this information
available_but_not_extracted Source produces this information but the current pipeline does not surface it
upstream_data_not_propagated An upstream tool emitted this information but the current pipeline dropped it...
under_investigation We are working on populating this slot
not_applicable This slot does not apply to this variable / record
Why it matters & mappings
Distinguishes "this product genuinely has no DOI" from "nobody filled the field in"; a blank is a bug, while a null-with-reason is information a completeness checker can act on.
BibTeX is a structured text format that reference-manager software understands. It carries the same citation as the human-readable text, but in a form computers can read directly.
BibTeX entry for the source dataset, machine-parseable.
Example
@misc{daymet_v4_r1, title={Daymet: Daily Surface Weather Data on a 1-km Grid for North America, Version 4 R1}, author={Thornton, M.M. and others}, year={2022}, publisher={ORNL DAAC}, doi={10.3334/ORNLDAAC/2129}}
Why it matters & mappings
A machine-parseable citation lets reference managers and pipelines ingest the attribution automatically, avoiding transcription errors when the citation is copied by hand.
If the machine-readable citation is empty, this field says why, so the gap is a deliberate statement rather than an oversight.
Reason source_citation_bibtex is null.
Example
not_provided_by_source
Allowed values
not_provided_by_source Source product does not produce this information
available_but_not_extracted Source produces this information but the current pipeline does not surface it
upstream_data_not_propagated An upstream tool emitted this information but the current pipeline dropped it...
under_investigation We are working on populating this slot
not_applicable This slot does not apply to this variable / record
Why it matters & mappings
Records whether the BibTeX entry is absent because the producer never supplied one or because it was not extracted, so an empty field is auditable rather than ambiguous.
If the homogenisation field is empty, this field says why — most often because the data is a gridded product rather than raw station records, so the question does not apply.
Reason source_homogenisation_status is null.
Example
not_applicable — e.g. gridded (non-station) products
Allowed values
not_provided_by_source Source product does not produce this information
available_but_not_extracted Source produces this information but the current pipeline does not surface it
upstream_data_not_propagated An upstream tool emitted this information but the current pipeline dropped it...
under_investigation We are working on populating this slot
not_applicable This slot does not apply to this variable / record
Why it matters & mappings
For gridded products homogenisation status is genuinely not applicable; recording that reason keeps the conditionally-core check auditable instead of leaving an ambiguous blank.
Many scientific data files carry a built-in "title page" of descriptive labels inside the file itself (following the ACDD convention). This field simply copies those labels across so nothing the producer wrote is lost.
Passthrough of ACDD (Attribute Convention for Data Discovery) global attributes from the source NetCDF header, as a native key/value object.
Example
None
Why it matters & mappings
Carrying the source's own ACDD header attributes forward preserves producer-supplied metadata verbatim, allowing later cross-checks against what this record claims without re-downloading the source.
If the copied-over file labels are absent, this field says why — often because the source is not distributed as a NetCDF file that carries such labels.
Reason source_acdd_attributes is null.
Example
not_provided_by_source — e.g. source not distributed as NetCDF with ACDD headers
Allowed values
not_provided_by_source Source product does not produce this information
available_but_not_extracted Source produces this information but the current pipeline does not surface it
upstream_data_not_propagated An upstream tool emitted this information but the current pipeline dropped it...
under_investigation We are working on populating this slot
not_applicable This slot does not apply to this variable / record
Why it matters & mappings
Distinguishes sources that ship no ACDD headers (e.g. CSV station data) from headers that simply were not extracted, keeping the empty field auditable.
Full field reference — every slot, cardinality & inheritance
| Field | Name | Tier | Cardinality / Range | Description |
|---|---|---|---|---|
| Source Dataset Name | source_dataset_name |
core | 1 String |
Full name of the source product, e |
| Source Dataset Short Code | source_dataset_short_code |
recommended | 0..1 String |
Short code keying into the EnVar source registry, e |
| Source Dataset DOI | source_dataset_doi |
recommended | 0..1 String |
DOI of the source dataset |
| Reason Source Dataset DOI Is Missing | source_dataset_doi_missing_reason |
optional | 0..1 MissingReasonEnum |
Reason source_dataset_doi is null |
| Source Dataset Version | source_dataset_version |
core | 1 String |
Source product version |
| Source Dataset Temporal Coverage | source_dataset_temporal_coverage |
recommended | 0..1 String |
Source product temporal coverage as an ISO 8601 interval string ` |
| Source Dataset Spatial Extent | source_dataset_spatial_extent |
recommended | 0..1 String |
Human-readable spatial extent of the product, e |
| Producer Institution | source_producer_institution |
recommended | 0..1 String |
Producer institution, e |
| Source Citation (APA) | source_citation_apa |
recommended | 0..1 String |
Full APA-style citation for the source dataset |
| Source Citation (BibTeX) | source_citation_bibtex |
optional | 0..1 String |
BibTeX entry for the source dataset, machine-parseable |
| Reason BibTeX Citation Is Missing | source_citation_bibtex_missing_reason |
optional | 0..1 MissingReasonEnum |
Reason source_citation_bibtex is null |
| Source License (SPDX) | source_license_spdx |
recommended | 0..1 String |
SPDX identifier of the source license, e |
| Source Access URL | source_access_url |
recommended | 0..1 Uri |
Landing-page URL for the dataset (not a download link, which rots) |
| Source Native Format | source_native_format |
recommended | 0..1 SourceNativeFormatEnum |
Format the source ships in |
| Homogenisation Status | source_homogenisation_status |
conditionally core | 0..1 HomogenisationStatusEnum |
For station-based products, whether values have been homogenised |
| Reason Homogenisation Status Is Missing | source_homogenisation_status_missing_reason |
optional | 0..1 MissingReasonEnum |
Reason source_homogenisation_status is null |
| ACDD Global Attributes | source_acdd_attributes |
optional | 0..1 AnyValue |
Passthrough of ACDD (Attribute Convention for Data Discovery) global attribut... |
| Reason ACDD Attributes Are Missing | source_acdd_attributes_missing_reason |
optional | 0..1 MissingReasonEnum |
Reason source_acdd_attributes is null |
Diagram & LinkML source
classDiagram
class SourceDataset
click SourceDataset href "../../classes/SourceDataset/"
SourceDataset : source_access_url
SourceDataset : source_acdd_attributes
SourceDataset --> "0..1" AnyValue : source_acdd_attributes
click AnyValue href "../../classes/AnyValue/"
SourceDataset : source_acdd_attributes_missing_reason
SourceDataset --> "0..1" MissingReasonEnum : source_acdd_attributes_missing_reason
click MissingReasonEnum href "../../enums/MissingReasonEnum/"
SourceDataset : source_citation_apa
SourceDataset : source_citation_bibtex
SourceDataset : source_citation_bibtex_missing_reason
SourceDataset --> "0..1" MissingReasonEnum : source_citation_bibtex_missing_reason
click MissingReasonEnum href "../../enums/MissingReasonEnum/"
SourceDataset : source_dataset_doi
SourceDataset : source_dataset_doi_missing_reason
SourceDataset --> "0..1" MissingReasonEnum : source_dataset_doi_missing_reason
click MissingReasonEnum href "../../enums/MissingReasonEnum/"
SourceDataset : source_dataset_name
SourceDataset : source_dataset_short_code
SourceDataset : source_dataset_spatial_extent
SourceDataset : source_dataset_temporal_coverage
SourceDataset : source_dataset_version
SourceDataset : source_homogenisation_status
SourceDataset --> "0..1" HomogenisationStatusEnum : source_homogenisation_status
click HomogenisationStatusEnum href "../../enums/HomogenisationStatusEnum/"
SourceDataset : source_homogenisation_status_missing_reason
SourceDataset --> "0..1" MissingReasonEnum : source_homogenisation_status_missing_reason
click MissingReasonEnum href "../../enums/MissingReasonEnum/"
SourceDataset : source_license_spdx
SourceDataset : source_native_format
SourceDataset --> "0..1" SourceNativeFormatEnum : source_native_format
click SourceNativeFormatEnum href "../../enums/SourceNativeFormatEnum/"
SourceDataset : source_producer_institution
name: SourceDataset
annotations:
domain_of_use:
tag: domain_of_use
value: environmental_exposure
description: The upstream gridded / station product the exposure values originate
from. Carries identity, DOI, version, coverage, producer, citation, license, native
format, and homogenisation status. One per record.
title: Source Dataset
from_schema: https://w3id.org/linkml/microschemas/envar
see_also:
- https://www.doi.org/
- https://spdx.org/licenses/
- https://wiki.esipfed.org/Attribute_Convention_for_Data_Discovery_1-3
rank: 1000
slot_usage:
source_dataset_name:
name: source_dataset_name
required: true
source_dataset_version:
name: source_dataset_version
required: true
attributes:
source_dataset_name:
name: source_dataset_name
annotations:
tier:
tag: tier
value: core
justification:
tag: justification
value: Without the product name, "daily maximum temperature" could come from
any of a dozen products whose values disagree; the name is the first anchor
for identifying which upstream data actually produced the exposure values.
explanation:
tag: explanation
value: Weather and air-quality data come from named products made by different
organisations, much like maps come from different map-makers. This is simply
the full official name of the product the values were taken from.
covered_by:
tag: covered_by
annotations:
omop_gaia:
tag: omop_gaia
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: verified
where:
tag: where
value: gaia_db data_source.dataset_name; meta_dcat_*.json dct:title
evidence:
tag: evidence
value: EnVar/examples/heat/COMPARISON.md §I (Dataset name — ✅ OMOP/GAIA)
note:
tag: note
value: GAIA carries the dataset name first-class in data_source and
the DCAT title.
degauss:
tag: degauss
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: DeGAUSS emits no dataset-name field; only the container name
is baked into the CSV filename.
amadeus:
tag: amadeus
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: Amadeus carries no dataset name; it has to be inferred from
the THREDDS URL path.
cher:
tag: cher
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: asserted
where:
tag: where
value: table_dictionary dataset (via table_name {dataset} slot)
note:
tag: note
value: C-HER names the dataset first-class as the {dataset} component
of the reproducible table_name and as a foreign key on table_dictionary.
codata:
tag: codata
annotations:
extent:
tag: extent
value: out_of_layer
status:
tag: status
value: asserted
where:
tag: where
value: DDI-CDI dataset-level description (conceptual layer)
note:
tag: note
value: Dataset identity sits above the DDI-CDI InstanceVariable layer
CODATA scores; conceptual, excluded from instance-layer scoring.
description: Full name of the source product, e.g. "Daymet V4 Daily Surface Weather
Data", "GridMET", "NARR", "ERA5-HEAT".
title: Source Dataset Name
examples:
- value: Daymet V4 Daily Surface Weather Data
from_schema: https://w3id.org/linkml/microschemas/envar
see_also:
- https://daymet.ornl.gov/
- https://www.ecmwf.int/en/forecasts/dataset/ecmwf-reanalysis-v5
owner: SourceDataset
domain_of:
- SourceDataset
range: string
required: true
source_dataset_short_code:
name: source_dataset_short_code
annotations:
tier:
tag: tier
value: recommended
justification:
tag: justification
value: A stable machine-readable key lets tools group and compare records
from the same product without fuzzy-matching free-text names, which vary
in spelling and capitalisation across studies.
explanation:
tag: explanation
value: A short nickname for the dataset, like a username, that computers can
match exactly — "Daymet V4 Daily Surface Weather Data" becomes just `daymet_v4`.
covered_by:
tag: covered_by
annotations:
omop_gaia:
tag: omop_gaia
annotations:
extent:
tag: extent
value: partial
status:
tag: status
value: asserted
where:
tag: where
value: gaia_db data_source.dataset_name (no registry short code)
note:
tag: note
value: GAIA carries the dataset name but no stable per-product short
registry code; scored partial.
degauss:
tag: degauss
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: DeGAUSS emits no dataset short code.
amadeus:
tag: amadeus
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: Amadeus emits no dataset short code.
cher:
tag: cher
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: asserted
where:
tag: where
value: table_dictionary dataset ({dataset} component of table_name)
note:
tag: note
value: The {dataset} slot in the reproducible table_name is exactly
a stable machine-readable short code keying the product.
codata:
tag: codata
annotations:
extent:
tag: extent
value: out_of_layer
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: A registry short code is a catalogue/discovery concern above
the DDI-CDI InstanceVariable layer CODATA scores.
description: Short code keying into the EnVar source registry, e.g. `daymet_v4`,
`gridmet`, `narr`, `era5_heat`.
title: Source Dataset Short Code
examples:
- value: daymet_v4
from_schema: https://w3id.org/linkml/microschemas/envar
owner: SourceDataset
domain_of:
- SourceDataset
range: string
source_dataset_doi:
name: source_dataset_doi
annotations:
tier:
tag: tier
value: recommended
justification:
tag: justification
value: The DOI is the durable handle for the source; access URLs rot, but
a DOI keeps resolving to the dataset, so future readers can always retrieve
exactly what was used and producers get citable credit.
explanation:
tag: explanation
value: A DOI is a permanent ID for a dataset or paper that keeps working even
when websites move. Looking it up at doi.org always leads to the current
home of the data.
covered_by:
tag: covered_by
annotations:
omop_gaia:
tag: omop_gaia
annotations:
extent:
tag: extent
value: partial
status:
tag: status
value: asserted
where:
tag: where
value: meta_dcat_*.json dct:identifier
note:
tag: note
value: GAIA carries a DOI in DCAT dct:identifier for daymet, but not
all entries carry one (gridmet has only a url), so scored conservatively
as partial.
degauss:
tag: degauss
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: DeGAUSS carries no DOI.
amadeus:
tag: amadeus
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: Amadeus carries no DOI.
cher:
tag: cher
annotations:
extent:
tag: extent
value: partial
status:
tag: status
value: asserted
where:
tag: where
value: table_dictionary doi (via doi_id FK)
note:
tag: note
value: C-HER has a doi field (foreign key doi_id) but it is on the
optional-field list, so a DOI is not guaranteed present.
codata:
tag: codata
annotations:
extent:
tag: extent
value: out_of_layer
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: Source-dataset DOI is a discovery/citation concern above the
DDI-CDI InstanceVariable layer CODATA scores.
description: DOI of the source dataset. Mandatory if a DOI exists. Daymet V4 =
`10.3334/ORNLDAAC/2129`; ERA5 = `10.24381/cds.adbb2d47`.
title: Source Dataset DOI
examples:
- value: 10.3334/ORNLDAAC/2129
description: Daymet V4 R1 DOI
from_schema: https://w3id.org/linkml/microschemas/envar
see_also:
- https://www.doi.org/
- https://datacite.org/
slot_uri: dcterms:identifier
owner: SourceDataset
domain_of:
- SourceDataset
range: string
source_dataset_doi_missing_reason:
name: source_dataset_doi_missing_reason
annotations:
tier:
tag: tier
value: optional
justification:
tag: justification
value: Distinguishes "this product genuinely has no DOI" from "nobody filled
the field in"; a blank is a bug, while a null-with-reason is information
a completeness checker can act on.
explanation:
tag: explanation
value: If the DOI box is empty, this field says why — for example, the producer
never issued one. That way an empty field is a deliberate statement, not
an oversight.
description: Reason `source_dataset_doi` is null.
title: Reason Source Dataset DOI Is Missing
examples:
- value: not_provided_by_source
from_schema: https://w3id.org/linkml/microschemas/envar
owner: SourceDataset
domain_of:
- SourceDataset
range: MissingReasonEnum
source_dataset_version:
name: source_dataset_version
annotations:
tier:
tag: tier
value: core
justification:
tag: justification
value: Version differences materially change values (e.g. ACAG V5 vs V6 PM2.5),
so two studies "using Daymet" may in fact use different data; a value without
a version is not reproducible.
explanation:
tag: explanation
value: Datasets get updated and re-released like software, and the numbers
can change between releases. The version says exactly which release the
values came from.
covered_by:
tag: covered_by
annotations:
omop_gaia:
tag: omop_gaia
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: verified
where:
tag: where
value: gaia_db data_source.dataset_version
evidence:
tag: evidence
value: EnVar/examples/heat/COMPARISON.md §I (Dataset version — ✅ OMOP/GAIA,
'V4 R1')
note:
tag: note
value: GAIA carries the upstream dataset version first-class in data_source.dataset_version.
degauss:
tag: degauss
annotations:
extent:
tag: extent
value: partial
status:
tag: status
value: asserted
where:
tag: where
value: CSV filename token (daymet_1.0.0)
note:
tag: note
value: DeGAUSS bakes only the container version into the filename,
not the upstream dataset version.
amadeus:
tag: amadeus
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: Amadeus carries no dataset version.
cher:
tag: cher
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: asserted
where:
tag: where
value: table_dictionary version ({version} component of table_name)
note:
tag: note
value: C-HER carries an auto-generated version code first-class in
the table_name and via the version table (§2.6).
codata:
tag: codata
annotations:
extent:
tag: extent
value: out_of_layer
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: Product version is a discovery/lineage concern above the DDI-CDI
InstanceVariable layer CODATA scores.
description: Source product version. E.g. "V4 R1" for Daymet; "V5.GL.03" vs "V6.GL.02"
for ACAG PM products. Version differences materially change values.
title: Source Dataset Version
examples:
- value: V4 R1
description: Daymet V4 Release 1
- value: V5.GL.04
description: ACAG global PM2.5 product version
from_schema: https://w3id.org/linkml/microschemas/envar
owner: SourceDataset
domain_of:
- SourceDataset
range: string
required: true
source_dataset_temporal_coverage:
name: source_dataset_temporal_coverage
annotations:
tier:
tag: tier
value: recommended
justification:
tag: justification
value: Knowing the product's full time span distinguishes "date outside the
product's coverage" from "value genuinely missing", preventing coverage
gaps from being misread as data errors.
explanation:
tag: explanation
value: Simply the first and last dates the dataset covers. If you ask for
a day outside that window, there was never any data to find — which is different
from data that should exist but is missing.
covered_by:
tag: covered_by
annotations:
omop_gaia:
tag: omop_gaia
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: verified
where:
tag: where
value: meta_dcat_*.json dct:temporal; gaia_db variable_source.start_date/end_date
evidence:
tag: evidence
value: EnVar/examples/heat/COMPARISON.md §H (Dataset time-span — ✅
OMOP/GAIA)
note:
tag: note
value: GAIA carries the product time span in DCAT dct:temporal and
the variable_source start/end dates.
degauss:
tag: degauss
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: DeGAUSS carries no dataset time-span.
amadeus:
tag: amadeus
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: verified
where:
tag: where
value: thredds_dataset.xml TimeSpan
evidence:
tag: evidence
value: EnVar/examples/heat/COMPARISON.md §H (Dataset time-span — ✅
Amadeus, TimeSpan 1979→present)
note:
tag: note
value: Amadeus records the full dataset time span in the THREDDS dataset.xml
TimeSpan element.
cher:
tag: cher
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: asserted
where:
tag: where
value: table_dictionary temporal_extent (YYYYMMDDYYYYMMDD in table_name)
note:
tag: note
value: C-HER carries temporal extent as a start+end date pair in the
reproducible table_name (§2.4).
codata:
tag: codata
annotations:
extent:
tag: extent
value: out_of_layer
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: Product temporal coverage is a discovery-layer concern above
the DDI-CDI InstanceVariable layer CODATA scores.
description: Source product temporal coverage as an ISO 8601 interval string `<start>/<end>`.
title: Source Dataset Temporal Coverage
examples:
- value: 1980-01-01/2024-12-31
from_schema: https://w3id.org/linkml/microschemas/envar
see_also:
- https://en.wikipedia.org/wiki/ISO_8601
owner: SourceDataset
domain_of:
- SourceDataset
range: string
source_dataset_spatial_extent:
name: source_dataset_spatial_extent
annotations:
tier:
tag: tier
value: recommended
justification:
tag: justification
value: The product footprint distinguishes "location outside the product's
extent" from "missing value"; without it, a subject in Alaska queried against
a CONUS-only product looks like a data error rather than an out-of-coverage
case.
explanation:
tag: explanation
value: A plain-language note of which regions the dataset covers, for example
the continental United States plus Hawaii and Puerto Rico. Places outside
this area simply have no data.
covered_by:
tag: covered_by
annotations:
omop_gaia:
tag: omop_gaia
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: verified
where:
tag: where
value: meta_dcat_*.json spatialCoverage; gaia_db data_source.spatial_coverage;
meta_etl_*.json extent (POLYGON WKT)
evidence:
tag: evidence
value: EnVar/examples/heat/COMPARISON.md §G (Source-dataset spatial
coverage — ✅ OMOP/GAIA)
note:
tag: note
value: GAIA carries the source spatial coverage in DCAT, in data_source.spatial_coverage,
and as a POLYGON WKT extent.
degauss:
tag: degauss
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: DeGAUSS carries no source spatial coverage.
amadeus:
tag: amadeus
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: verified
where:
tag: where
value: thredds_dataset.xml projectionBox + LatLonBox
evidence:
tag: evidence
value: EnVar/examples/heat/COMPARISON.md §G (Source-dataset spatial
coverage — ✅ Amadeus, CONUS bbox)
note:
tag: note
value: Amadeus records the source bbox via the THREDDS projectionBox
and LatLonBox elements.
cher:
tag: cher
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: asserted
where:
tag: where
value: table_dictionary spatial_extent (Gxx/Txx/Cxx/sxx code in table_name)
note:
tag: note
value: C-HER carries spatial extent first-class as a coded component
of the reproducible table_name (§2.2).
codata:
tag: codata
annotations:
extent:
tag: extent
value: out_of_layer
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: Product spatial extent is a discovery-layer concern above the
DDI-CDI InstanceVariable layer CODATA scores.
description: Human-readable spatial extent of the product, e.g. "CONUS, Hawaii,
Puerto Rico".
title: Source Dataset Spatial Extent
examples:
- value: CONUS, Hawaii, Puerto Rico
from_schema: https://w3id.org/linkml/microschemas/envar
owner: SourceDataset
domain_of:
- SourceDataset
range: string
source_producer_institution:
name: source_producer_institution
annotations:
tier:
tag: tier
value: recommended
justification:
tag: justification
value: Identifies who is accountable for the product, supports correct attribution,
and helps disambiguate similarly named products maintained by different
institutions.
explanation:
tag: explanation
value: The organisation that makes and publishes the dataset — for example
a NASA data centre or a university group. Knowing who made the data tells
you where to go with questions.
covered_by:
tag: covered_by
annotations:
omop_gaia:
tag: omop_gaia
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: verified
where:
tag: where
value: gaia_db data_source.creator/provider; meta_dcat_*.json dct:publisher
evidence:
tag: evidence
value: EnVar/examples/heat/COMPARISON.md §I (Publisher/creator/provider
— ✅ OMOP/GAIA)
note:
tag: note
value: GAIA carries publisher/creator/provider first-class in data_source
and DCAT dct:publisher.
degauss:
tag: degauss
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: DeGAUSS carries no producer/publisher field.
amadeus:
tag: amadeus
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: Amadeus carries no producer/publisher field.
cher:
tag: cher
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: asserted
where:
tag: where
value: table_dictionary org ({org} component of table_name; publishing
organization)
note:
tag: note
value: C-HER encodes the publishing organization first-class as the
{org} component of table_name; selecting a dataset implicitly selects
its organization (§1).
codata:
tag: codata
annotations:
extent:
tag: extent
value: out_of_layer
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: Producer institution is a discovery/attribution concern above
the DDI-CDI InstanceVariable layer CODATA scores.
description: Producer institution, e.g. "NASA ORNL DAAC", "University of Idaho",
"NOAA NCEP", "ECMWF Copernicus".
title: Producer Institution
examples:
- value: NASA ORNL DAAC
from_schema: https://w3id.org/linkml/microschemas/envar
owner: SourceDataset
domain_of:
- SourceDataset
range: string
source_citation_apa:
name: source_citation_apa
annotations:
tier:
tag: tier
value: recommended
justification:
tag: justification
value: The producer's requested citation is what enables attribution and retrieval;
omitting it makes it harder for readers to credit the producers and to locate
the exact product in the literature.
explanation:
tag: explanation
value: The ready-to-paste reference for the dataset, formatted the way academic
papers list their sources, so anyone reusing the data knows exactly how
to cite it.
covered_by:
tag: covered_by
annotations:
omop_gaia:
tag: omop_gaia
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: GAIA carries publisher and DOI but no assembled APA citation
string; none is emitted.
degauss:
tag: degauss
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: DeGAUSS carries no citation.
amadeus:
tag: amadeus
annotations:
extent:
tag: extent
value: partial
status:
tag: status
value: asserted
where:
tag: where
value: acknowledgement string (acknowledgement = TRUE)
note:
tag: note
value: Amadeus can attach a free-text acknowledgement string, which
is a citation-like credit but not a formatted APA reference (related-approaches.md
§3).
cher:
tag: cher
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: C-HER carries contributors, rights, and DOI but no assembled
APA citation string.
codata:
tag: codata
annotations:
extent:
tag: extent
value: out_of_layer
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: A formatted citation is a discovery/attribution concern above
the DDI-CDI InstanceVariable layer CODATA scores.
description: Full APA-style citation for the source dataset.
title: Source Citation (APA)
examples:
- value: 'Thornton, M.M., et al. (2022). Daymet: Daily Surface Weather Data on
a 1-km Grid for North America, Version 4 R1. ORNL DAAC.'
description: truncated form; the real citation lists all authors
from_schema: https://w3id.org/linkml/microschemas/envar
owner: SourceDataset
domain_of:
- SourceDataset
range: string
source_citation_bibtex:
name: source_citation_bibtex
annotations:
tier:
tag: tier
value: optional
justification:
tag: justification
value: A machine-parseable citation lets reference managers and pipelines
ingest the attribution automatically, avoiding transcription errors when
the citation is copied by hand.
explanation:
tag: explanation
value: BibTeX is a structured text format that reference-manager software
understands. It carries the same citation as the human-readable text, but
in a form computers can read directly.
description: BibTeX entry for the source dataset, machine-parseable.
title: Source Citation (BibTeX)
examples:
- value: '@misc{daymet_v4_r1, title={Daymet: Daily Surface Weather Data on a 1-km
Grid for North America, Version 4 R1}, author={Thornton, M.M. and others},
year={2022}, publisher={ORNL DAAC}, doi={10.3334/ORNLDAAC/2129}}'
from_schema: https://w3id.org/linkml/microschemas/envar
owner: SourceDataset
domain_of:
- SourceDataset
range: string
source_citation_bibtex_missing_reason:
name: source_citation_bibtex_missing_reason
annotations:
tier:
tag: tier
value: optional
justification:
tag: justification
value: Records whether the BibTeX entry is absent because the producer never
supplied one or because it was not extracted, so an empty field is auditable
rather than ambiguous.
explanation:
tag: explanation
value: If the machine-readable citation is empty, this field says why, so
the gap is a deliberate statement rather than an oversight.
description: Reason `source_citation_bibtex` is null.
title: Reason BibTeX Citation Is Missing
examples:
- value: not_provided_by_source
from_schema: https://w3id.org/linkml/microschemas/envar
owner: SourceDataset
domain_of:
- SourceDataset
range: MissingReasonEnum
source_license_spdx:
name: source_license_spdx
annotations:
tier:
tag: tier
value: recommended
justification:
tag: justification
value: Without the license, downstream deposit and redistribution legality
is unknowable — you cannot tell whether derived exposure values may be shared,
deposited in a repository, or must stay private.
explanation:
tag: explanation
value: SPDX codes are standard short names for licenses, like CC-BY-4.0, so
software can check reuse rules automatically. The license says what you
are allowed to do with the data.
covered_by:
tag: covered_by
annotations:
omop_gaia:
tag: omop_gaia
annotations:
extent:
tag: extent
value: partial
status:
tag: status
value: asserted
where:
tag: where
value: gaia_db data_source.license; meta_dcat_*.json dct:license
note:
tag: note
value: GAIA carries a license first-class but as a freeform string
with no SPDX normalisation, so it only partly satisfies this SPDX-specific
slot.
degauss:
tag: degauss
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: DeGAUSS carries no license field.
amadeus:
tag: amadeus
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: Amadeus carries no license field.
cher:
tag: cher
annotations:
extent:
tag: extent
value: partial
status:
tag: status
value: asserted
where:
tag: where
value: table_dictionary rights (via rights FK)
note:
tag: note
value: C-HER carries a required rights field, but it is not SPDX-coded,
so it only partly satisfies this SPDX-specific slot.
codata:
tag: codata
annotations:
extent:
tag: extent
value: out_of_layer
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: License is a discovery/rights concern above the DDI-CDI InstanceVariable
layer CODATA scores.
description: SPDX identifier of the source license, e.g. `CC0-1.0`, `CC-BY-4.0`.
Use `public-domain-us-gov` for US federal data with no formal SPDX equivalent.
title: Source License (SPDX)
examples:
- value: public-domain-us-gov
description: US federal data (e.g. Daymet V4)
- value: CC-BY-4.0
description: e.g. ACAG PM2.5 V5.GL
from_schema: https://w3id.org/linkml/microschemas/envar
see_also:
- https://spdx.org/licenses/
owner: SourceDataset
domain_of:
- SourceDataset
range: string
source_access_url:
name: source_access_url
annotations:
tier:
tag: tier
value: recommended
justification:
tag: justification
value: A stable landing page is how future users actually reach the data;
a raw download link rots when files are reorganised, leaving the record
pointing nowhere.
explanation:
tag: explanation
value: The dataset's home page on the web — the front door where you can read
about the data and find the download options — rather than a direct file
link that stops working when files move.
covered_by:
tag: covered_by
annotations:
omop_gaia:
tag: omop_gaia
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: verified
where:
tag: where
value: gaia_db data_source.url; meta_etl_*.json source; JSON-LD url
evidence:
tag: evidence
value: EnVar/examples/heat/COMPARISON.md §I (Source landing-page URL
— ✅ OMOP/GAIA)
note:
tag: note
value: GAIA carries the source landing-page URL first-class in data_source.url
and the JSON-LD url.
degauss:
tag: degauss
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: DeGAUSS carries no source landing-page URL.
amadeus:
tag: amadeus
annotations:
extent:
tag: extent
value: partial
status:
tag: status
value: asserted
where:
tag: where
value: thredds_dataset.xml @location (NCSS data endpoint)
note:
tag: note
value: Amadeus carries only the THREDDS NCSS data-endpoint URL, not
the human landing page.
cher:
tag: cher
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: C-HER records an S3-protocol storage location for the resource,
not a source landing-page URL.
codata:
tag: codata
annotations:
extent:
tag: extent
value: out_of_layer
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: A source landing-page URL is a discovery concern above the
DDI-CDI InstanceVariable layer CODATA scores.
description: Landing-page URL for the dataset (not a download link, which rots).
title: Source Access URL
examples:
- value: https://daymet.ornl.gov/
from_schema: https://w3id.org/linkml/microschemas/envar
owner: SourceDataset
domain_of:
- SourceDataset
range: uri
source_native_format:
name: source_native_format
annotations:
tier:
tag: tier
value: recommended
justification:
tag: justification
value: The shipping format determines which tools can read the source and
what metadata survives; knowing it lets others rebuild the same extraction
pipeline and anticipate format-specific quirks.
explanation:
tag: explanation
value: Scientific data comes packaged in different file types (NetCDF, GeoTIFF,
CSV, and others), a bit like documents come as PDF or Word. This records
which package the producer ships.
covered_by:
tag: covered_by
annotations:
omop_gaia:
tag: omop_gaia
annotations:
extent:
tag: extent
value: partial
status:
tag: status
value: asserted
where:
tag: where
value: meta_etl_*.json structure/geometry (raster); gaia_db data_source.geom_type
note:
tag: note
value: GAIA records dataset structure (raster) and geometry type but
not the native file format (e.g. NetCDF-4/CF) as a first-class slot.
degauss:
tag: degauss
annotations:
extent:
tag: extent
value: absent
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: DeGAUSS records no source native format.
amadeus:
tag: amadeus
annotations:
extent:
tag: extent
value: partial
status:
tag: status
value: asserted
where:
tag: where
value: gridmet_tmmx.cf_metadata.json (CF metadata implies NetCDF)
note:
tag: note
value: Amadeus's CF metadata blob implies the NetCDF/CF native format
but does not declare it in a dedicated format field.
cher:
tag: cher
annotations:
extent:
tag: extent
value: full
status:
tag: status
value: asserted
where:
tag: where
value: table_dictionary resource_format (IANA Media Types controlled
vocab)
note:
tag: note
value: C-HER carries resource_format first-class against the IANA
Media Types controlled vocabulary.
codata:
tag: codata
annotations:
extent:
tag: extent
value: out_of_layer
status:
tag: status
value: asserted
where:
tag: where
value: no column
note:
tag: note
value: Native shipping format is a packaging/discovery concern above
the DDI-CDI InstanceVariable layer CODATA scores.
description: Format the source ships in.
title: Source Native Format
examples:
- value: netcdf4_cf
from_schema: https://w3id.org/linkml/microschemas/envar
owner: SourceDataset
domain_of:
- SourceDataset
range: SourceNativeFormatEnum
source_homogenisation_status:
name: source_homogenisation_status
annotations:
tier:
tag: tier
value: conditionally_core
tier_context:
tag: tier_context
value: not machine-decidable — the stated context is "station-based products",
which cannot be read reliably off the sidecar (no slot declares station-ness).
No rule and no checker predicate; the slot scores as Optional out of context
by design.
justification:
tag: justification
value: 'Using a non-homogenised station product (e.g. GHCN-Daily) for trend
work without saying so is a known trap: station moves and instrument changes
masquerade as climate signal. Mandatory for station-based products.'
explanation:
tag: explanation
value: Weather stations get moved, replaced, or re-instrumented over the decades,
which creates artificial jumps in their records. "Homogenised" data has
had those jumps statistically corrected; "not homogenised" data is raw,
as observed.
description: For station-based products, whether values have been homogenised.
Mandatory for station-based products; GHCN-D = `not_homogenised`, GHCN-M v4
= `homogenised`.
title: Homogenisation Status
examples:
- value: not_homogenised
description: e.g. GHCN-Daily station observations
from_schema: https://w3id.org/linkml/microschemas/envar
see_also:
- https://en.wikipedia.org/wiki/Homogenization_(climate)
owner: SourceDataset
domain_of:
- SourceDataset
range: HomogenisationStatusEnum
source_homogenisation_status_missing_reason:
name: source_homogenisation_status_missing_reason
annotations:
tier:
tag: tier
value: optional
justification:
tag: justification
value: For gridded products homogenisation status is genuinely not applicable;
recording that reason keeps the conditionally-core check auditable instead
of leaving an ambiguous blank.
explanation:
tag: explanation
value: If the homogenisation field is empty, this field says why — most often
because the data is a gridded product rather than raw station records, so
the question does not apply.
description: Reason `source_homogenisation_status` is null.
title: Reason Homogenisation Status Is Missing
examples:
- value: not_applicable
description: e.g. gridded (non-station) products
from_schema: https://w3id.org/linkml/microschemas/envar
owner: SourceDataset
domain_of:
- SourceDataset
range: MissingReasonEnum
source_acdd_attributes:
name: source_acdd_attributes
annotations:
tier:
tag: tier
value: optional
justification:
tag: justification
value: Carrying the source's own ACDD header attributes forward preserves
producer-supplied metadata verbatim, allowing later cross-checks against
what this record claims without re-downloading the source.
explanation:
tag: explanation
value: Many scientific data files carry a built-in "title page" of descriptive
labels inside the file itself (following the ACDD convention). This field
simply copies those labels across so nothing the producer wrote is lost.
description: Passthrough of ACDD (Attribute Convention for Data Discovery) global
attributes from the source NetCDF header, as a native key/value object.
title: ACDD Global Attributes
examples:
- object:
title: Daymet Daily Surface Weather Data
institution: ORNL DAAC
Conventions: CF-1.6, ACDD-1.3
from_schema: https://w3id.org/linkml/microschemas/envar
see_also:
- https://wiki.esipfed.org/Attribute_Convention_for_Data_Discovery_1-3
owner: SourceDataset
domain_of:
- SourceDataset
range: AnyValue
inlined: true
source_acdd_attributes_missing_reason:
name: source_acdd_attributes_missing_reason
annotations:
tier:
tag: tier
value: optional
justification:
tag: justification
value: Distinguishes sources that ship no ACDD headers (e.g. CSV station data)
from headers that simply were not extracted, keeping the empty field auditable.
explanation:
tag: explanation
value: If the copied-over file labels are absent, this field says why — often
because the source is not distributed as a NetCDF file that carries such
labels.
description: Reason `source_acdd_attributes` is null.
title: Reason ACDD Attributes Are Missing
examples:
- value: not_provided_by_source
description: e.g. source not distributed as NetCDF with ACDD headers
from_schema: https://w3id.org/linkml/microschemas/envar
owner: SourceDataset
domain_of:
- SourceDataset
range: MissingReasonEnum
See Also
- https://www.doi.org/
- https://spdx.org/licenses/
- https://wiki.esipfed.org/Attribute_Convention_for_Data_Discovery_1-3
Identifier and Mapping Information
Annotations
| property | value |
|---|---|
| domain_of_use | environmental_exposure |
Schema Source
- from schema: https://w3id.org/linkml/microschemas/envar
Mappings
| Mapping Type | Mapped Value |
|---|---|
| self | envar:SourceDataset |
| native | envar:SourceDataset |