时空坐标数据标准(Spatio-Temporal Coordinate Data Standard, STCDS)

版本:1.0
发布日期:2025年12月1日
适用领域:数字人文、历史地理、文化遗产、天文史、跨文明研究

1. 引言

1.1 目的

本标准定义了一种统一的数据模型,用于表达具有空间与时间不确定性的事件或实体。通过“中心 + 半径 + 可信度”三段式结构,支持从地球局部到宇宙尺度的多层级时空描述,并兼容绝对参考系与相对叙事锚点。

1.2 范围

  • 适用于结构化存储、交换、查询和可视化时空数据;
  • 支持地球地理事件(如历史人物行踪)、太阳系事件(如彗星观测)、宇宙事件(如超新星爆发);
  • 明确区分测量/记载不确定性参考系差异

1.3 设计原则

  • 统一性:所有时空对象采用相同核心结构;
  • 可扩展性:支持地球、太阳系、宇宙三级参考系;
  • 可解释性:保留原始语义与转换路径;
  • 互操作性:兼容 WGS84、ICRS、JD、TCB 等国际标准;
  • 不确定性显式化:拒绝“伪精确”,将模糊性作为一等公民建模。

2. 核心概念

2.1 时空对象(SpatioTemporalEntity)

表示一个在时空中发生的事件、存在的实体或观测记录,由以下组成部分构成:

  • 唯一标识符(id
  • 空间描述(space
  • 时间描述(time
  • 元数据(metadata

2.2 三段式结构

每个维度(空间、时间)均采用三段式表达:

组件含义类型
中心(center)最可能的位置或时刻坐标或时间标量
半径(radius / uncertainty)不确定性范围(误差边界)长度或时间量
可信度(confidence)数据可靠性评估分级标签或概率值

2.3 参考系层级(Reference System Levels)

层级代码名称空间基准时间基准典型应用场景
earth地球层WGS84 (EPSG:4326)Terrestrial Time (TT)历史事件、考古遗址、文学地景
solarsys太阳系层ICRS (J2000)Barycentric Coordinate Time (TCB)彗星、行星观测、航天任务
cosmic宇宙层ICRS + RedshiftCosmic Time (ΛCDM)超新星、伽马暴、系外行星

注:所有内部计算推荐归一化至绝对参考系(WGS84 / ICRS + TT / TCB)。

3. 数据模型规范

3.1 时空对象整体结构(JSON Schema)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": { "type": "string", "format": "uri" },
    "label": { "type": "string" },
    "description": { "type": "string" },
    "space": { "$ref": "#/$defs/uncertain_space" },
    "time": { "$ref": "#/$defs/uncertain_time" },
    "metadata": { "$ref": "#/$defs/metadata" }
  },
  "required": ["id", "space", "time"],
  "$defs": {
    "uncertain_space": { /* 见 3.2 */ },
    "uncertain_time": { /* 见 3.3 */ },
    "metadata": { /* 见 3.4 */ }
  }
}

3.2 空间描述(uncertain_space

字段定义

字段类型必填说明
reference_systemstring取值:earth | solarsys | cosmic
centerobject中心坐标(结构依参考系而定)
spatial_uncertaintyobject不确定性参数
confidence_levelstring取值:high | medium | low | speculative

center 结构(按参考系)

  • earth:
{ "type": "earth", "lon": number, "lat": number, "alt_m": number? }
  • lonlat:十进制度(WGS84),范围 [-180,180], [-90,90]
  • alt_m:海拔(米),可选
  • solarsyscosmic:
{
  "type": "icrs",
  "ra_deg": number,
  "dec_deg": number,
  "distance_ly": number?,
  "redshift": number?
}
  • ra_deg:赤经(度),[0, 360)
  • dec_deg:赤纬(度),[-90, 90]
  • distance_ly 与 redshift 至少提供其一

spatial_uncertainty 结构

  • earth:
{ "radius_m": number }
  • solarsys / cosmic:
{
  "angular_radius_arcsec": number,
  "distance_uncertainty_ly": number?
}

3.3 时间描述(uncertain_time

字段定义

字段类型必填说明
reference_systemstringearth → TT;solarsys/cosmic → TCB
center_jdnumber儒略日(浮点数)
time_radius_secondsnumber时间不确定性(秒)
confidence_levelstring同空间字段

儒略日说明

  • earth 层:基于 Terrestrial Time (TT)
  • solarsys/cosmic 层:基于 Barycentric Coordinate Time (TCB)
  • 转换工具见附录 A

3.4 元数据(metadata

字段类型说明
original_descriptionstring原始文本(如“乾元二年秋客秦州”)
original_calendarstring?原历法(如 chinese_lunarislamicjulian
sourcestring数据来源(文献、数据库、观测)
conversion_methodstring转换方法说明
anchor_event_idstring?若为相对时间,引用锚点事件 ID
created_bystring录入者或系统

4. 置信度分级标准(CL-Level)

等级代码置信区间判定标准
CL1high≥0.90多源交叉验证;仪器实测;官方档案
CL2medium0.70–0.89单源可靠记载;有上下文佐证;合理推断
CL3low0.40–0.69模糊描述(如“江南”);孤证;间接证据
CL4speculative<0.40假说;象征性地点;无直接依据

✅ 建议优先使用分级代码,而非连续概率值,以保证跨项目一致性。

5. 数据交换格式

5.1 JSON(推荐)

完整遵循第 3 节 JSON Schema。

5.2 GeoJSON 扩展

properties 中嵌入时空对象:

{
  "type": "Feature",
  "geometry": { "type": "Point", "coordinates": [lon, lat] },
  "properties": {
    "stcds": {
      "id": "...",
      "time": { ... },
      "space": { ... },
      "metadata": { ... }
    }
  }
}

5.3 RDF/OWL(用于知识图谱)

  • 使用自定义本体 http://vocab.stcds.org/
  • 类:stcds:SpatioTemporalEntity
  • 属性:stcds:hasSpacestcds:hasTimestcds:confidenceLevel 等

6. 实施建议

6.1 存储

  • 关系型数据库:使用 PostgreSQL + PostGIS + 自定义复合类型(见附录 B)
  • 文档数据库:直接存储 JSON 对象

6.2 转换工具

  • 提供 Python 库 stcds-core,包含:
    • 历法转换(公历、农历、干支等 → JD)
    • WGS84 ↔ ICRS 坐标转换
    • TT ↔ TCB 时间转换
    • 相对时间解析器

6.3 验证

  • 提供在线 JSON Schema 验证器
  • 支持置信度逻辑检查(如:CL1 数据不应有 >100km 半径)

附录 A:时间系统说明

时间系统缩写定义适用层级
Terrestrial TimeTT地面原子钟时间,忽略引力红移earth
Barycentric Coordinate TimeTCB太阳系质心坐标时(广义相对论)solarsyscosmic
Cosmic Time自大爆炸起的共动时间cosmic(理论)

转换公式复杂,建议使用 astropy.time 库实现。

附录 B:PostgreSQL 类型定义(示例)

CREATE TYPE stcds_confidence AS ENUM ('high', 'medium', 'low', 'speculative');

CREATE TYPE stcds_space_earth AS (
  lon DOUBLE PRECISION,
  lat DOUBLE PRECISION,
  alt_m DOUBLE PRECISION
);

CREATE TYPE stcds_space_icrs AS (
  ra_deg DOUBLE PRECISION,
  dec_deg DOUBLE PRECISION,
  distance_ly DOUBLE PRECISION,
  redshift DOUBLE PRECISION
);

CREATE TYPE stcds_uncertain_space AS (
  reference_system TEXT,
  center JSONB,
  spatial_uncertainty JSONB,
  confidence_level stcds_confidence
);

-- time 类型类似...

附录 C:示例数据

示例 1:地球事件(杜甫游秦州)

{
  "id": "cbdb:event:dufu_qinzhou_759",
  "label": "杜甫客居秦州",
  "space": {
    "reference_system": "earth",
    "center": { "type": "earth", "lon": 105.7, "lat": 34.6 },
    "spatial_uncertainty": { "radius_m": 20000 },
    "confidence_level": "medium"
  },
  "time": {
    "reference_system": "earth",
    "center_jd": 1965832.5,
    "time_radius_seconds": 7776000,
    "confidence_level": "medium"
  },
  "metadata": {
    "original_description": "乾元二年秋,客秦州",
    "original_calendar": "chinese_lunar",
    "source": "《旧唐书》《秦州杂诗》",
    "conversion_method": "乾元二年 = 759 CE; 秋 ≈ Aug–Oct"
  }
}

示例 2:宇宙事件(SN1987A 超新星)

{
  "id": "nasa:sn1987a",
  "label": "超新星 SN1987A 爆发",
  "space": {
    "reference_system": "cosmic",
    "center": {
      "type": "icrs",
      "ra_deg": 83.8958,
      "dec_deg": -69.2667,
      "distance_ly": 168000
    },
    "spatial_uncertainty": {
      "angular_radius_arcsec": 0.1,
      "distance_uncertainty_ly": 5000
    },
    "confidence_level": "high"
  },
  "time": {
    "reference_system": "solarsys",
    "center_jd": 2446850.5,
    "time_radius_seconds": 86400,
    "confidence_level": "high"
  },
  "metadata": {
    "original_description": "Observed on 1987-02-24 UTC",
    "source": "IAU Circular No. 4316",
    "conversion_method": "Light travel time corrected; TCB conversion applied"
  }
}

标准维护(假设):本标准由开放时空数据联盟(Open Spatio-Temporal Data Consortium, OSTDC)维护。
反馈与贡献https://github.com/ostdc/stcds-spec
许可证:CC BY-SA 4.0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理