# caac **Repository Path**: ns-cn/caac ## Basic Information - **Project Name**: caac - **Description**: No description available - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-25 - **Last Updated**: 2026-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CAAC Data 民航相关基础数据集合,源自中国民用航空局(CAAC)相关业务整理。 ## 数据文件 | 文件 | 条目数 | 说明 | | --- | --- | --- | | `airport.json` | 10069 | 全球机场信息。包含 IATA / ICAO 代码、中英文名称、所在国家与城市、经纬度、IANA 时区、UTC 偏移、海拔等字段。 | | `countries.json` | 250 | 国家信息。包含 ISO 3166-1 alpha-2/3 代码、首都、区域、货币、顶级域名等。 | | `timezone.json` | 252 | IANA 时区与对应的 GMT 偏移(字符串形式)。 | ## 数据示例 ### airport.json ```json { "iata": "AAA", "icao": "NTGA", "cname": "阿纳", "ccountry": null, "cstate": null, "ccity": "阿纳", "latitude": -17.3506654, "longitude": -145.51111994065877, "timezone": "Pacific/Tahiti", "timezone_offset": "GMT-10:00", "elevation": 36.0, "url": null, "id_city": "AAA", "id_country": "PF", "ename": "Anaa", "ecountry": "French Polynesia", "estate": null, "ecity": null } ``` ### countries.json ```json { "name.common": "Aruba", "name.official": "Aruba", "tld": ".aw", "cca2": "AW", "ccn3": 533, "cca3": "ABW", "cioc": "ARU", "independent": "0", "status": "officially-assigned", "unMember": "0", "currencies": "AWG", "idd.root": "+2", "capital": "Oranjestad", "altSpellings": "AW", "region": "Americas", "subregion": "Caribbean" } ``` ### timezone.json ```json { "name": "Pacific/Tahiti", "offset": "GMT-10:00" } ``` ## 字段说明 ### airport.json 每条记录代表一个机场,共 18 个字段。**数值字段已统一为 `float` 类型**,可直接用于数值计算。示例值取自仓库真实记录:基础字段取自 `CAN`(广州白云国际机场),缺失场景另注。 | 字段 | 类型 | 是否可空 | 说明 | 示例 | | --- | --- | --- | --- | --- | | `iata` | string | 否 | IATA 三字代码。**全局唯一但存在 3 条重复记录**。 | `"AAA"` | | `icao` | string | 是(1723/10069) | ICAO 四字代码。约 17% 的机场无 ICAO(多为小型或军用机场)。 | `"ZGGG"` / `null` | | `id_city` | string | 是(296/10069) | 所属城市的 IATA 代码。296 条完全没有此字段(连同 `id_country`/`latitude`/`longitude`/`timezone` 一并缺失)。 | `"CAN"` / `null` | | `id_country` | string | 是(296/10069) | 所属国家的 ISO 3166-1 alpha-2 代码。 | `"CN"` / `null` | | `cname` | string | 是(6795/10069) | 机场中文名。缺失集中于非通航国家的小机场。 | `"广州白云国际机场"` / `null` | | `ccountry` | string | 是(8770/10069) | 机场所在国家的中文名。 | `"中国"` / `null` | | `cstate` | string | 是(9358/10069) | 机场所在省/州的中文名。 | `"广东"` / `null` | | `ccity` | string | 是(6887/10069) | 机场所在城市的中文名。 | `"广州"` / `null` | | `ename` | string | 几乎无空 | 机场英文名。仅有 2 条缺失。 | `"Guangzhou Baiyun International Airport"` | | `ecountry` | string | 是(297/10069) | 机场所在国家的英文名。 | `"China"` | | `estate` | string | 是(2962/10069) | 机场所在省/州的英文名。 | `"Guangdong"` / `null` | | `ecity` | string | 是(1051/10069) | 机场所在城市的英文名。 | `null`(CAN 此字段为空) | | `latitude` | float | 是(296/10069) | 纬度,十进制度,范围 `[-90, 90]`。 | `23.3931854` / `null` | | `longitude` | float | 是(296/10069) | 经度,十进制度,范围 `[-180, 180]`。 | `113.3015079267467` / `null` | | `elevation` | float | 是(296/10069) | 海拔,单位英尺。可为负值(海平面以下)。范围 `[-1299, 17011]`。 | `39.0` / `null` | | `timezone` | string | 是(296/10069) | IANA 时区标识符。 | `"Asia/Shanghai"` / `null` | | `timezone_offset` | string | 是(1935/10069) | 与 UTC 的偏移,格式 `GMT±HH:MM`。 | `"GMT+08:00"` | | `url` | string | 是(8329/10069) | 机场官方网站。约 83% 缺失。 | `"http://www.baiyunairport.com/"` / `null` | > **字段命名约定**:以 `c` 开头的为中文(如 `cname`),以 `e` 开头的为英文(如 `ename`),以 `id_` 开头的为对应编码。 ### countries.json 每条记录代表一个国家或地区,共 16 个字段。字段名中的点号(`.`)是字符串本身的字符,并非嵌套结构 —— 整个对象是扁平的。示例值取自 `Aruba`(标准)、`Kosovo`(异常)、`Bahamas`(多值拼接)。 | 字段 | 类型 | 是否可空 | 说明 | 示例 | | --- | --- | --- | --- | --- | | `name.common` | string | 否 | 通用简称。 | `"Aruba"` / `"Kosovo"` | | `name.official` | string | 否 | 官方全称。 | `"Aruba"` / `"Republic of Kosovo"` | | `tld` | string | 否 | 顶级域名,格式 `.xx`。 | `".aw"` / `".xk"` | | `cca2` | string | 否 | ISO 3166-1 alpha-2 二字代码。 | `"AW"` / `"XK"` | | `ccn3` | integer | 是(1/250) | ISO 3166-1 numeric 三位代码,已统一为 `int`。仅 Kosovo 因 ISO 未分配为 `null`。 | `533` / `null` | | `cca3` | string | 否 | ISO 3166-1 alpha-3 三字代码。 | `"ABW"` / `"UNK"` | | `cioc` | string | 否 | IOC(国际奥委会)三字代码。 | `"ARU"` / `"KOS"` | | `independent` | string | 是(1/250) | 是否为主权国家,`"1"` 或 `"0"`(注意是字符串,不是布尔)。仅 Kosovo 为 `null`。 | `"0"` / `"1"` / `null` | | `status` | string | 否 | ISO 状态,取值 `officially-assigned` 或 `user-assigned`。 | `"officially-assigned"` / `"user-assigned"` | | `unMember` | string | 否 | 是否为联合国会员国,`"1"` 或 `"0"`。 | `"0"` / `"1"` | | `currencies` | string | 否 | 使用的货币代码,**多个时直接拼接**(如 `"USD,EUR"`),无分隔符规范。 | `"AWG"` / `"EUR"` / `"BSD,USD"` | | `idd.root` | string | 否 | 国际长途区号根号,多个时直接拼接(如 `"+2,+7"`)。区号的子位需结合其他来源。 | `"+2"` / `"+1"` / `"+2,+7"` | | `capital` | string | 否 | 首都名称。 | `"Oranjestad"` / `"Pristina"` | | `altSpellings` | string | 否 | 其他拼写形式,**多个时直接拼接**,无分隔符规范。 | `"AW"` / `"XK,Република Косово"` | | `region` | string | 否 | 所在大洲。 | `"Americas"` / `"Europe"` | | `subregion` | string | 否 | 所在次区域。 | `"Caribbean"` / `"Southeast Europe"` | > **注意**:`currencies`、`idd.root`、`altSpellings` 三个字段在多值时只是简单字符串拼接,未提供数组形式,使用时需自行按业务规则拆分(建议优先以国家代码查询更可靠的结构化数据源)。 ### timezone.json 每条记录代表一个 IANA 时区,共 2 个字段。 | 字段 | 类型 | 是否可空 | 说明 | 示例 | | --- | --- | --- | --- | --- | | `name` | string | 否 | IANA 时区标识符。共 252 个,覆盖 `airport.json.timezone` 全部取值。 | `"Asia/Shanghai"` / `"Pacific/Tahiti"` | | `offset` | string | 否 | 与 UTC 的偏移,格式 `GMT±HH:MM`。共 36 种不同值,全部带冒号。范围 `GMT-11:00` 至 `GMT+14:00`。 | `"GMT+08:00"` / `"GMT-10:00"` | > `timezone.json.offset` 缺失时区夏令时信息,若需精确处理夏令时,请结合 `zoneinfo`(Python)或 `Intl.DateTimeFormat`(JavaScript)等运行时库。 ## 通用约定 - **中文**字段以 `c` 前缀(如 `cname`、`ccity`),**英文**字段以 `e` 前缀(如 `ename`、`ecity`),**标识**字段以 `id_` 前缀。 - 国家代码遵循 ISO 3166-1 alpha-2(`id_country`、`cca2`)。 - 时区统一使用 IANA 名称,偏移以 `GMT±HH:MM` 字符串记录。 - `airport.json` 的 `latitude`/`longitude`/`elevation` 已统一为 `float`,可与数值直接运算。 - `countries.json` 的 `ccn3` 已统一为 `int`(除 Kosovo 为 `null`)。 ## 许可 本仓库数据在 [MIT](./LICENSE) 协议下发布,详见 `LICENSE` 文件。