知识库
SU-003 / 宿曜占星

本命宿算法为什么不同

内容版本 · · 资料与出处

宿名对不上?先查规则,再比结果
保存分享卡 ↓

两个网站给出的本命宿不同,先看它们走的是“月日查表”还是“月亮黄经分区”。用一次 799/800 角分的演算、两份资料的对照和一张核查单,找到最先出现分歧的那一步。

阅读提要约 6 分钟读完

两个网站的宿名不同,先分清它们回答的是“查月日表”还是“按月亮黄经分区”。这是两个不同的问题,输入链本来就不一样。

  • 月日查表要的是历法转换、月日序号和一张表;黄经分区要的是确定的时刻、月亮黄经和声明过的坐标起点。
  • 国立天文台的二十七分法每段 13 度 20 分,即 800 角分:799 角分在第 1 区,800 角分进入第 2 区。
  • “都依据《宿曜经》”不够:两份资料里正月初一的格子分别是室宿和虚宿。核对时记下最先分歧的那一步,缺资料就写“未确认”。
18 秒看差异:先看查表与分区两条路,再用 799/800 角分演算分区边界,最后三项核查。

前置阅读

宿曜占星与本命宿是什么? ↗

二十七宿与二十八宿有什么区别? ↗

为什么同一个生日会得到两个宿名

网站甲说你是室宿,网站乙说是虚宿。很自然的反应,是读两段性格描述,挑更像自己的那个。但这样选出来的是喜欢的解释,不是核对过的算法。

要查差异,第一步是保存输入和规则:生日用的是哪种历法,日期怎样转换,用了哪张表,或者是不是按月亮的位置分区。先把结果暂记为“甲法”“乙法”,比过早认定谁才是真实的自己,更容易找到可以复算的原因。

两条并列的输入路径:历日查表从月份日序经指定月初表到宿名;黄经分区从时刻与坐标基准经月亮黄经到区号再到宿名。打开原图放大查看

输入路径对照,不是优劣排名:两条路要的证据不同,结果不能直接比较。

“都叫二十七宿”,不等于同一套计算

一

宿的名单

参与排列的宿是哪些。

二

月初起宿

每个月从哪一宿开始。

三

日期换算

生日怎样转成所用历法的月日。

四

分区起点

黄经从哪里开始量。

两条路,要的证据不同

月日查表法先取得所用历法的月份和日序,再由起宿表与推进规则得到标签。按黄经分区的方法则需要某个时刻的月亮黄经,并明确坐标起点,再判断它落在哪个区间。

历日查表输入:月份与日序月份 · 日序历法转换后查指定月初表起宿 + 推进得宿名结果黄经分区输入:时刻与坐标时刻 · 坐标基准要声明算月亮黄经落入哪个区间得区号 → 宿名结果一个用日期格,一个用天体位置:输入链本来就不同
放大图解 · 可横向滑动查看
历日查表输入:月份与日序月份 · 日序历法转换后查指定月初表起宿 + 推进得宿名结果黄经分区输入:时刻与坐标时刻 · 坐标基准要声明算月亮黄经落入哪个区间得区号 → 宿名结果一个用日期格,一个用天体位置:输入链本来就不同
历日查表从月份与日序经指定月初表得到宿名;黄经分区从时刻与坐标经月亮黄经落入的区间得到区号再到宿名。两条路的输入不同。

查表需要历法转换、月日序号和对应的表;分区需要确定的时刻、月亮黄经和声明过的坐标约定。

演算一遍:799 与 800 角分

国立天文台的 Nakṣatra 条目说明了一种二十七等分:一周 360 度,每段 13 度 20 分。换成角分,360 × 60 ÷ 27 = 800,每段正好 800 角分。

12345678910111213141516171819202122232425262727 区每区 800 角分799′ 在第 1 区 · 800′ 进入第 2 区
放大图解 · 可横向滑动查看
12345678910111213141516171819202122232425262727 区每区 800 角分799′ 在第 1 区 · 800′ 进入第 2 区
黄道被分成 27 个区,每区 800 角分;799 角分仍在第 1 区,800 角分进入第 2 区。

下面做一个纯算术练习:假定黄经已经换成该分区所需的坐标,把第一段记为第 1 区,区间包含起点、不含终点。

假定黄经所在区原因0′第 1 区起点包含在内799′第 1 区还没到 800800′第 2 区到了第一段的终点,进入下一段1599′第 2 区第 2 区到 1599 为止1600′第 3 区2 × 80021599′第 27 区26 × 800 = 20800,第 27 区是 20800 至 2159921600′ 就是 360 度,回到起点,重新是第 1 区
放大图解 · 可横向滑动查看
假定黄经所在区原因0′第 1 区起点包含在内799′第 1 区还没到 800800′第 2 区到了第一段的终点,进入下一段1599′第 2 区第 2 区到 1599 为止1600′第 3 区2 × 80021599′第 27 区26 × 800 = 20800,第 27 区是 20800 至 2159921600′ 就是 360 度,回到起点,重新是第 1 区
假定黄经 0 与 799 角分在第 1 区,800 与 1599 在第 2 区,1600 在第 3 区,21599 在第 27 区;21600 角分回到起点。

同一个书名,不等于同一张表

即使都做“月日查表”,只写“依据《宿曜经》”也不是完整的规格。看一个具体例子:两份资料里两个明确标出的格子。

国立天文台 暦Wiki二十七宿表(月初配当)正月初一配为室宿CBETA 2023.Q4 电子本《宿曜经》· 大唐月建图正月一日格子是虚宿图中另列有牛宿两份资料、两个明确标出的格子,结果不同
放大图解 · 可横向滑动查看
国立天文台 暦Wiki二十七宿表(月初配当)正月初一配为室宿CBETA 2023.Q4 电子本《宿曜经》· 大唐月建图正月一日格子是虚宿图中另列有牛宿两份资料、两个明确标出的格子,结果不同
国立天文台暦Wiki的二十七宿表把正月初一配为室宿;CBETA 2023.Q4 电子本《宿曜经》的大唐月建图,正月一日格是虚宿,图中另列有牛宿。

工具的说法,要复现需要什么

“传统历法算法”

要复现,需要

所用的表及版本,或有出处的改订规则。

“由你的生日算出”

要复现,需要

输入的历法,以及转换后的月、日。

“以月亮位置为准”

要复现,需要

采用的时刻、坐标设置与区间方案。

“已处理闰月”

要复现,需要

写明的闰月规则,而不是猜出来的默认值。

核查单:停在第一个分歧的那一步

遇到真实的分歧,按顺序留四行记录;哪一步缺资料,就在那一步写“未确认”。

一 原始生日及历法输入的是哪种历法、哪一天二 转换得到的日期或时刻闰月单列;边界日保存实际转换结果三 采用的表或分区规则表及版本,或坐标起点与区间方案四 最终宿名最后才记结果哪一步缺资料,就在那一步写“未确认”
放大图解 · 可横向滑动查看
一 原始生日及历法输入的是哪种历法、哪一天二 转换得到的日期或时刻闰月单列;边界日保存实际转换结果三 采用的表或分区规则表及版本,或坐标起点与区间方案四 最终宿名最后才记结果哪一步缺资料,就在那一步写“未确认”
核查单四行:原始生日及历法、转换得到的日期或时刻、采用的表或分区规则、最终宿名;缺资料的那一步写未确认。

两站都说查表,但其中一站不公布月初表时,只凭输出倒推不出它用了哪份古籍。这样日期换算不同、表不同和程序出错,才能分别定位;同一台钟读数相同,若时区假设不同,也可能指向不同的时刻。

重现了宿名的算法,并不证明性格或关系的说法成立。想分清日历上的当日宿和本命宿,可读本命宿与当日宿,日历格的读法见宿曜日历怎么读。

读完常有的疑问

为什么两个网站给出的本命宿会不一样?

最常见的原因是两个站走了不同的路:一个按月日查表,一个按月亮的黄经分区。就算同样查表,用的历法转换、月初起宿和闰月处理也可能各不相同。

两个站都说依据《宿曜经》,结果还会不同吗?

会。同一个书名下可以有不同的表和版本:国立天文台暦Wiki的二十七宿表把正月初一配为室宿,CBETA 电子本的“大唐月建图”正月一日是虚宿。不能只凭书名断定两站用了同一张表。

能不能读两段性格描述,挑更像自己的那个?

不能。这样选出来的是自己喜欢的解释,不是核对过的算法。即使把宿名算对了,也不能证明后面的性格或关系说法成立,那是另一个独立的问题。

这篇文章对你有帮助吗?

所在学习路径

宿曜:从本命宿到关系边界 · 第 3 步 / 共 3 步已上线

资料与出处

  1. NAOJ 暦Wiki — 二十八宿・二十七宿(月初配当表) ↗
  2. T1299, CBETA 2023.Q4 — 大唐月建圖 ↗
  3. NAOJ 暦Wiki — Nakṣatra divisions and coordinates ↗

继续阅读

回归黄道与恒星黄道:同一方向为什么有两种读数 ↗