Skip to content

Table: ndb.chronologies#

Description#

This table stores Chronology data. A Chronology refers to an explicit chronology assigned to a Collection Unit. A Chronology has Chronology Controls, the actual age-depth control points, which are stored in the ChronControls table. A Chronology is also based on an Age Model, which may be a numerical method that fits a curve to a set of age-depth control points or may simply be individually dated Analysis Units. A Collection Unit may have more than one Chronology, for example one in radiocarbon years and another in calibrated radiocarbon years. There may be a Chronology developed by the original author and another developed by a later research project. Chronologies may be stored for archival reasons, even though they are now believed to have problems, if they were used for an important research project. One Chronology per Age Type may be designated the default Chronology, which is the Chronology currently preferred by the database stewards. Based upon the Chronology, which includes the Age Model and the Chron Controls, ages are assigned to individual samples, which are stored in the SampleAges table. A younger and older age bounds are assigned to the Chronology. Within these bounds the Chronology is regarded as reliable. Ages may be assigned to samples beyond the reliable age bounds, but these are not considered reliable

TODO: Expand this description with: - What data does this table store? - What is the business/research purpose? - How is this data collected or generated? - Are there any important caveats or data quality issues?

Table Structure#

Visual Schema

Schema: ndb | Table Comment: This table stores Chronology data. A Chronology refers to an explicit chronology assigned to a Collection Unit. A Chronology has Chronology Controls, the actual age-depth control points, which are stored in the ChronControls table. A Chronology is also based on an Age Model, which may be a numerical method that fits a curve to a set of age-depth control points or may simply be individually dated Analysis Units. A Collection Unit may have more than one Chronology, for example one in radiocarbon years and another in calibrated radiocarbon years. There may be a Chronology developed by the original author and another developed by a later research project. Chronologies may be stored for archival reasons, even though they are now believed to have problems, if they were used for an important research project. One Chronology per Age Type may be designated the default Chronology, which is the Chronology currently preferred by the database stewards. Based upon the Chronology, which includes the Age Model and the Chron Controls, ages are assigned to individual samples, which are stored in the SampleAges table. A younger and older age bounds are assigned to the Chronology. Within these bounds the Chronology is regarded as reliable. Ages may be assigned to samples beyond the reliable age bounds, but these are not considered reliable

Statistics#

Metric Value
Row Count 41,167
Total Size 9560 kB
Table Size 6096 kB
Indexes Size 3416 kB

Relationships#

Primary Key: chronologyid

Foreign Keys:

Referenced By:

TODO: Document which tables reference this table (will be auto-detected in validation).

Data Dictionary#

Column Type Nullable Default Constraints Description
chronologyid integer nextval('ndb.seq_chronologi... PRIMARY KEY An arbitrary Chronology identification number.
collectionunitid integer - FOREIGN KEY Collection Unit to which the Chronology applies. Field links to the CollectionUnits table.
agetypeid integer - FOREIGN KEY Age type or units. Field links to the AgeTypes table.
contactid integer - FOREIGN KEY Person who developed the Age Model. Field links to the Contacts table.
isdefault boolean - - Indicates whether the Chronology is a default chronology or not. Default status is determined by a Neotoma data steward. Collection Units may have more than one default Chronology, but may have only one default Chronology per Age Type. Thus, there may be a default radiocarbon year Chronology and a default calibrated radiocarbon year Chronology, but only one of each. Default Chronologies may be used by the Neotoma web site, or other web sites, for displaying default diagrams or time series of data. Default Chronologies may also be of considerable use for actual research purposes; however, users may of course choose to develop their own chronologies.
chronologyname character varying(80) - - Optional name for the Chronology. Some examples are:
COHMAP chron 1 A Chronology assigned by the COHMAP project.
COHMAP chron 2 An alternative Chronology assigned by the COHMAP project
NAPD 1 A Chronology assigned by the North American Pollen Database.
Gajewski 1995 A Chronology assigned by Gajewski (1995).
dateprepared date - - Date that the Chronology was prepared.
agemodel character varying(80) - - The age model used for the Chronology. Some examples are: linear interpolation, 3rd order polynomial, and individually dated analysis units.
ageboundyounger integer - - The younger reliable age bound for the Chronology. Younger ages may be assigned to samples, but are not regarded as reliable. If the entire Chronology is considered reliable, AgeBoundYounger is assigned the youngest sample age rounded down to the nearest 10. Thus, for 72 BP, AgeBoundYounger = 70 BP; for -45 BP, AgeBoundYounger = -50 BP.
ageboundolder integer - - The older reliable age bound for the Chronology. Ages older than AgeOlderBound may be assigned to samples, but are not regarded as reliable. This situation is particularly true for ages extrapolated beyond the oldest Chron Control. . If the entire Chronology is considered reliable, AgeBoundOlder is assigned the oldest sample age rounded up to the nearest 10. Thus, for 12564 BP, AgeBoundOlder is 12570.
notes text - - Free form notes or comments about the Chronology.
recdatecreated timestamp without time zone timezone('UTC'::text, now()) -
recdatemodified timestamp without time zone - -

TODO: Review column descriptions and add comments where missing.

Usage Examples#

Example 1: Basic Selection#

-- Get recent records from chronologies
SELECT *
FROM chronologies
ORDER BY chronologyid DESC
LIMIT 10;

Purpose: Retrieve the 10 most recent records from chronologies

Example 2: Count Records#

-- Count total records
SELECT COUNT(*) as total_records
FROM chronologies;

Purpose: Get the total number of records in chronologies

Example 3: Filter by Date Range#

-- Get records within a date range
SELECT *
FROM chronologies
WHERE dateprepared >= '2024-01-01'
  AND dateprepared < '2025-01-01'
ORDER BY dateprepared DESC;

Purpose: Retrieve records from chronologies within a specific date range

Example 4: Join with agetypes#

-- Join with related table
SELECT 
    t1.*,
    t2.*
FROM chronologies t1
INNER JOIN agetypes t2 
    ON t1.agetypeid = t2.agetypeid
LIMIT 100;

Purpose: Retrieve chronologies records with related data from agetypes

Example 5: Aggregate Data#

-- Aggregate records by collectionunitid
SELECT 
    collectionunitid,
    COUNT(*) as count
FROM chronologies
GROUP BY collectionunitid
ORDER BY count DESC
LIMIT 10;

Purpose: Count records grouped by collectionunitid

TODO: Add more specific examples relevant to common research questions or operational tasks.

Data Quality Notes#

Automated Data Quality Tests#

This table is subject to the following automated quality checks:

✅ comp_004: sample_ages_for_samples

  • Severity: WARNING
  • Status: PASSED
  • Description: Samples should have sample ages, whether from a chronology or collection date.

See the Data Quality Report for details.

Maintenance#

  • Data Owner: TODO: Assign owner
  • Update Frequency: TODO: Document frequency
  • Last Major Schema Change: TODO: Document when schema last changed

TODO: Link to: - Related API endpoints - Data collection procedures - Analysis notebooks or reports that use this table - External ontologies or standards