本文へ移動

Hoshi Stars星

肉眼で見える星の名前・色・距離、88星座の線と境界、メシエ天体、そしてそれらを描くための7種類の図法を使えます。

「星」(ほし) は、夜空に光って見えるものです。 名前について(英語)

目次

やり方

近くにあるもの

星、メシエ天体、または空の1点に近い星や天体を、空の角度か宇宙での距離で調べます。となり合う星座も分かります。

English

@johnmorrisdotca/hoshi-stars/nearestは、「これの近くに何がある?」に3つの関数で答えます。明るい星の表を読み、kind: "deep-sky"のときはメシエ天体の表も読みます。となり合う星座は星座の境界から求めます。

空で近いもの

nearest(target, options)は近い順に{ thing, angle }を返します。angleは度です。targetには、星、天体、starByNameかdeepSkyObjectが受け付ける名前、または度で表した{ rightAscension, declination }を渡せます。target自身は答えに入りません。

import { nearest, within } from "@johnmorrisdotca/hoshi-stars/nearest";

const pair = nearest("Mizar", { count: 3 });
console.log(pair.map((n) => `${n.thing.name ?? n.thing.hr} ${n.angle.toFixed(2)}`));
console.log(within("Alcyone", 1, { magnitude: 5 }).map((n) => n.thing.name));
// [ '5055 0.00', 'Alcor 0.20', '5109 1.52' ]
// [ 'Merope', 'Atlas', 'Maia', 'Electra', 'Taygeta' ]
[ '5055 0.00', 'Alcor 0.20', '5109 1.52' ]
[ 'Merope', 'Atlas', 'Maia', 'Electra', 'Taygeta' ]

ミザールは二重星なので、いちばん近いのは相棒の星(HR 5055)で、アルコルは0.20度はなれています。within(target, radius)は、個数の上限なしのnearestです。オプション:

オプションはたらき
count何個返すか(nearestは10、withinはすべて)
withinこの範囲の中だけ。空なら度、宇宙なら光年
kind"star"(初期値)か"deep-sky"(メシエ天体)
magnitude入れる中でいちばん暗いもの。stars({ magnitude })と同じです(ちょうどその等級も入ります)
dateその日時まで固有運動で星を動かしてから測ります。歳差はすべての天体を同じ向きに回すので、角度は変わりません
among自分のリストから探します(たとえば/deep-sky/ngc-icのdeepSky())
by"sky"(初期値)か"space"

角度は単位ベクトルのatan2(|a x b|, a . b)で測るので、0度や180度のそば、極のそば、赤経0と360をまたぐ場所でも正確です。5,080個すべてを調べても約1ミリ秒です。索引は作りません。

宇宙で近いもの

by: "space"にすると、各星を年周視差から3次元の位置に置き、{ thing, distance, parsecs, error }を返します。まっすぐな距離を光年とパーセクで出します。

import { nearest } from "@johnmorrisdotca/hoshi-stars/nearest";

const close = nearest("Sirius", { by: "space", count: 2 });
console.log(close.map((n) => `${n.thing.name} ${n.distance.toFixed(1)}`));
console.log(close.skipped, close[0].error);
// [ 'Procyon 5.1', 'Ran 8.0' ]
// 2547 undefined
[ 'Procyon 5.1', 'Ran 8.0' ]
2547 undefined
  • この表の星だけです。 答えは、5,080個のうち年周視差がある2,533個が対象です。この表に入っていない、もっと暗くて近い星もあります。among: [...stars(), ...nearbyStars()]を渡すと、近くの星の5,565個(プロキシマ・ケンタウリ、バーナード星、赤色矮星)も数えます。
  • **skipped**は、使える距離がなくて外した個数です(視差が0以下の星と、メシエ天体など)。
  • **error**はundefinedです。イェール星表は視差を1ミリ秒角の単位でしか載せていなくて、誤差も載っていないので、計算できません。距離は100光年以内で数パーセント程度の精度で、暗くて遠い星ではあてになりません。
  • targetには距離が必要です。視差がある星、{ rightAscension, declination, lightYears }、または太陽を原点にしたJ2000赤道座標軸のパーセクの点{ x, y, z }です。

となり合う星座

import { neighbouringConstellations } from "@johnmorrisdotca/hoshi-stars/nearest";

console.log(neighbouringConstellations("Orion").map((c) => c.abbreviation));
// [ 'Eri', 'Gem', 'Lep', 'Mon', 'Tau' ]
[ 'Eri', 'Gem', 'Lep', 'Mon', 'Tau' ]

境界の一部を共有している星座がとなり同士です。角で1点だけ触れているものは入りません。表はIAUの境界から最初に必要になったときに計算され(数ミリ秒)、そのあと使い回します。答えはラテン名のアルファベット順です。

ソースを見るGitHub で編集@johnmorrisdotca/hoshi-stars 0.7.0 のソースから作成しました。

この日本語は、まだ日本語を母語とする方の確認を受けていません。訂正を歓迎します。