ヘンジファインダー:太陽があなたの通りと重なる瞬間を探し出す

2026/05/23 5:39

ヘンジファインダー:太陽があなたの通りと重なる瞬間を探し出す

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Hengefinder は、Recurse Center で開発された革新的なデジタルツールであり、「ヘンジ」と呼ばれる極めて稀な全球的瞬間を検出します。これは太陽または月が道路、運河、建物の屋上など直線状の都市要素と正確に重なる時のことです。このプラットフォームは、複雑な天文学的問題を解決するために、真北相対的な道路の方位角を計算し(経度の収束を補正するために cos(緯度) を用いる)、太陽円盤が地平線に触れる瞬間を対象とし(標準的な日の入り定義ではなく)、年間を通じて太陽の方位角が非単調的に変化する問題を扱い、2 段階の検索戦略を採用します。ユーザーはインタラクティブなウェブインターフェースを通じてこれらの現象を探索でき、地図や図解を表示できます。また、月との重なりを追跡する近々提供予定のモバイルアプリ「Sauron Henges」でも利用可能です。多くのヨーロッパの都市では歴史的な曲線により直線的な街路が不足していますが、このツールはアムステルダムの直線運河や UT オースティン、タイペイ 101 などにおいて隠された天体とのつながりを明らかにし、写真家、観光客、天文学愛好家のために古代の都市計画の謎を現代技術と結びつけています。

Text to translate:

Hengefinder is an innovative digital tool developed at the Recurse Center that identifies "henges"—rare global moments when the sun or moon align precisely with straight urban lines such as roads, canals, or building tops. The platform solves complex astronomical challenges by computing road bearings relative to true north (correcting for longitude convergence using cos(latitude)), targeting the moment the sun's disk touches the horizon rather than standard sunset definitions, and employing a two-phase search strategy to handle the sun's non-monotonic azimuth over a year. Users can explore these phenomena via an interactive web interface with maps and diagrams, or upcoming mobile apps that track lunar alignments called "Sauron Henges." While many European cities lack suitable straight streets due to historical curvature, the tool reveals hidden celestial connections in locations like Amsterdam's straight canals, UT Austin, Taipei 101, and beyond, bridging ancient urban planning mysteries with modern technology for photographers, tourists, and astronomy enthusiasts.

本文

マンハッタンヘンジと Hengefinder: 世界に散在する天文学的奇跡の探求

イントロ:太陽がビルで挟まれる瞬間

マンハッタンでは、太陽が東西南北を走る通りのグリッドに完璧に整列して沈む現象があります。これを**「マンハッタンヘンジ(Manhattanhenge)」**と呼びます。

  • 発生頻度: 1 年に 2 回
  • 現象: 夕暮れ時、左右のビルによって太陽が完全に枠込まれる瞬間
  • 特徴: 太陽は空を数分間移動した後に、ビルによって遮られるように見える

天文学者はこの現象の時期をどのように計算しているのか。もし解明すれば、なぜマンハッタンだけに限定する必要があるのか。この疑問から生まれたのが、世界中のどこでもヘンジを探せるツール**「Hengefinder」**です。

  • リサーチャー・センター (Recurse Center) の最初のプロジェクト
  • ソースコード: GitHub で公開
  • ウェブサイト: 住所を入力するだけで未来の日時を検索可能
  • モバイルアプリ: 同僚のジョン・プリビールが追加開発(「サーロンヘンジ」機能あり)

プロジェクトの核心:3 つのステップ

ヘンジを見つけるには、主に以下の 3 つの計算ステップが必要です。

  1. 道路の方位角 (Bearing): 真北を基準とした通りの角度を算出
  2. 太陽の方位角 (Azimuth): 毎日夕暮れ時の太陽の角度を算出
  3. 一致日の特定: 上記の 2 つが一致する日付を見つける

魅力的だったのは、**「単純に見える部分問題を徹底的に解決するか、あるいはライブラリや近似値で済ますか」**という選択肢を持つことでした。多くの箱は開けず、必要な部分だけを構築しました。しかし、現実世界では前提条件が崩れ、「単純な問題」が複雑になるのを肌で感じながら開発を進めました。

以下に、私が直面した課題と解決策を詳しく解説します。


課題 #1: 道路の方位角を求める(地球は平らではない)

最初の課題は、2 つの住所間の道路の方位角(True North を基準とした角度)を計算することです。 単純な考え方では、「緯度差」と「経度差」を取り、そのまま

atan2
で角度を計算すればよさそうです。

# 【誤り】この方法では地球が平面と仮定しているので失敗する
delta_lat = lat_2 - lat_1
delta_lon = lon_2 - lon_1
bearing = atan2(delta_lon, delta_lat) 

問題点:地図は丸い

地球上では緯度線と経度線の間隔が異なります。

  • 緯度線: どこでも等しい距離(平行)
  • 経度線: 極に近づくほど収束する(平行ではない)

ニューヨークで 1 度の経度は約 52 マイル ですが、高緯度地域ではこの距離は短くなります。そのため、経度をそのまま扱っても誤差が大きくなります。

解決策:球面幾何学の応用

経度を「緯度と同じ単位」に変換する必要があります。その鍵となるのが**

cos(緯度)
**です。 地球を半径 1 の球と考えると、緯度 $\phi$ の地点で東西に移動する円の半径は
sin(φ)
とはならず、水平な直角辺(赤道から見た距離)の分母に関与するのは
cos(φ)
です。

TL;DR: 実装例

修正アプローチ: 経度を平均緯度の余弦 (

cos(mean_lat)
) で縮小してから計算します。

import math

# 緯度・経度は度数 (degrees) で入力
delta_y = lat_2 - lat_1  

# 経度を緯度と同じ「単位」に変換(平均緯度の余弦でスケール)
mean_lat_rad = math.radians((lat_1 + lat_2) / 2) 
delta_x = (lon_2 - lon_1) * math.cos(mean_lat_rad)  
    
# これで安全に atan2 を使用できる
bearing_rad = math.atan2(delta_x, delta_y)
bearing_deg = math.degrees(bearing_rad)

: この方法は近似式ですが、短距離のストリートであれば十分正確です。


課題 #2: 太陽の方位角を求めよう(「夕暮れ」とは何か?)

ヘンジの瞬間には、**「太陽全体が見えるが地平線とわずかに触れている状態」**が必要です。 標準的な天文学ライブラリ

Astral
は、太陽が完全に地平線以下に入ってからを定義するため、これではタイミングが遅すぎます。

境界探索か?値探索か?

単純に「何分後に太陽の角度がターゲットより低くなるか」を探すのは、API コール回数が多すぎるため非効率的です。ここで重要なのは、**夕暮れ時の太陽の高さは単調減少する(時間経過とともに下がる)**ということです。

これは**バイナリサーチ(二分探索)の対象となります。しかし、通常の「値の一致」を探すのではなく、「真 (True) が続いている最後の瞬間」**を探す必要があります。

「最後までの真」を探索するバイナリサーチ

標準的なバイナリサーチは値の相等 (

==
) を探しますが、ここでは条件
altitude > target
が成立している最後のインデックスを探します。

# 高度角 (altitude) ターゲット以上が True の最後の時間を見つける
while left < right:
    # 「最後までの真」探索のために上側偏向 (Ceiling) で中間点を計算
    mid = (left + right + 1) // 2 
    
    if altitude[mid] > target_altitude: 
        # まだ有効な範囲なので、左端を更新(この分も含まれる可能性あり)
        left = mid 
    else:
        # 太陽が地平線以下にあるため、無効
        right = mid - 1 # より早い時間を探索
        
# left が「真」が続く最後の時刻を示す

このアプローチにより、正確なヘンジの瞬間を高い精度で特定できます。


課題 #3: 方位角が一致する日付を見つける(2 段階探索)

一年間の 365 日すべてに対してバイナリサーチを行うのは非効率的です。太陽の方位角は年度を通じて単調に変わらないため、無理やり全日をチェックする必要はありません。

関係性の理解

特定の地点では、太陽の夕暮れ時の方位角は滑らかな曲線を描きます(冬至と夏至を境に反転します)。

  • 南北に近い道路:ヘンジが発生しにくい(一致する日が存在しないことも)
  • 東西に近い道路:通常、1 年に 2 回程度発生

完全な天文学モデルを使わずとも、**「妥協案としての 2 段階探索」**で十分精度が確保できます。

ステップ 1: 粗い探索(グリッド検索)

30 日ごとにサンプリングして、ヘンジが発生しうる候補期間を特定します。

  • 条件 A: サンプリング間で方位角が道路の方位角を越えている(中間値定理より通過していることが保証)
  • 条件 B: 太陽の方位角の向きが変わった(極大値や極小値付近でヘンジが含まれている可能性)

これにより、精査が必要なウィンドウのみを特定できます。

ステップ 2: 微細な探索

  1. 粗い探索で絞り込んだ期間内を**「1 日単位」**に精度を高めます。
  2. 前述の「最後までの真」バイナリサーチを適用し、正確な日付を特定します。

この手法は API コールを最小限に抑えつつ、正確なヘンジの予測を可能にしました。


ツールの統合と発見

これら 3 つのステップを統合した**「Hengefinder」**として Web サイトを発表し、さらにモバイルアプリも公開しました。

  • Web サイト: 住所を入力すると、次回のヘンジの日時を表示
    • インタラクティブな図面付きで、なぜヘンジが起きるか解説
  • モバイルアプリ: John Prebeer による拡張
    • **「サーロンヘンジ(Sauron Henge)」**機能: ヌイ・エントレイン・オブ・アランディールの目(指輪への穴)と月を同時に捉える現象を検出可能

発見した美しい場所

マンハッタン以外でも、驚くべきヘンジが存在しました。

  • オースティン (USA): テキサス大学オーキャンタウワーでのサーロンヘンジ
  • 台北: 台北 101 でのサーロンヘンジ(世界有数の超高層ビル)
  • アムステルダム (Netherlands): ハーレメルトレックヴァート運河
    • 中世に建造された直線の運河。400 年もの間、水面に映る太陽が運河と完璧に一致するヘンジが発生し続けていた。
    • 公式には知られておらず、誰も観測しようとはしていなかった。

幾何学的な視点: 太陽の方位角が直線的に整列することは極めて稀です。しかし、世界中で常に行われており、それを発見できた私たちはラッキーです。

同じ日のほかのニュース

一覧に戻る →

2026/05/24 3:45

私の Writerdeck を語る時が来ました。

## 日本語翻訳: 著者は、6年経った System76 Galago Pro ラップトップを「writerdeck」と名づけたオフライン書写ステーションに変換し、X11、Wayland、およびデスクトップ環境を排する tty ベースの構成で Debian Trixie を実行することでミニマリズムを優先しています。コンテンツが公開共有を目的としているためフルディスク暗号化は省略され、管理には `sudo` ユーザーモデルに切り替えて root ログインが無効化されました。本質的なツールとして、Neovim がテキスト編集に使用され(従来のエディタに代わり)、Debian バックポートからの `kmscon` でスケーラブルなターミナルウィンドウを可能にし、セッション多重化には `tmux` を使用し、インストール済みの Network Manager 経由の `nm-tui` が Wi-Fi/WAN の管理に用いられます。電力モニタリングおよび画面明るさ制御は `acpi` と `light` コマンドで行われ、自動ログインと `.bashrc`内の起動スクリプトにより Neovim が `tmux` セッション内で動作し、ブート時に Vimwiki が起動するようにしています。Syncthing は Vimwiki フォルダをリモートサーバーに同期させ、ブラウザ GUI を必要とせずオフラインファーストなワークスペースを維持するために全てのネットワークアドレスを活用しています。この構成はデジタルの雑多さを削減し、悪い書写習慣を打破助けるとともに、クリエイティブ専門家にとってセキュリティと生産性を向上させます。

2026/05/24 7:25

自分でロールを作るな

## 日本語訳: 要約: 開発者は、暗号化やユーザーインターフェースコンポーネントといった重要な機能に対して独自の実装を即時に停止する必要があります。なぜなら、「自分自身でつくる」というソリューションは過去の実績が証明する通り危険であるためです。最も重要な教訓は、安全性と使い勝手を確保するために、自作コードの代わりに既成でピアレビューされた標準を採用しなければならないことです。独自のカスタム暗号化パッケージには、初期化の不備や予測可能なパターンなどの深刻な欠陥を内包しており、規制産業では財務規制に違反し、高額の罰則を引き起こす可能性があります。セキュリティの問題だけでなく、ネイティブブラウザ要素を置換することは性能低下をもたらし、過剰な JavaScript ロジックによりキーボードスクロールの破損やリンクの読み込み遅延といった問題を引き起こします。さらに、独自のソリューションは自動入力機能など、安全なパスワード管理などの重要なネイティブ機能を排除してしまいます。この傾向は、組み込みブラウザ機能の安定性よりも創造的なツールの構築を優先しており、ユーザー(高齢者のご家族も含まれます)が慣れ親しんだツールを常に再学習することを強いられています。これらの使い勝手に関する落とし穴を防ぎ、規制当局による罰金を避けるためには、開発者はネイティブ要素を置換するのではなく補完する方向へ転換すべきです。これにより、すべてのウェブサイトで一貫した動作を確保できます。

2026/05/21 6:21

私の二画面デスクセットアップ(2025)

## 日本語訳: 著者は、壁を向いた単調なパソコンデスクを部屋の方を向くように回転させることで(ドアを見渡させ、奥行きを追加)、そしてテック専用だった単一の面を、二つの明確なゾーニングに分かれた大規模な USM ハラーデスクに置き換えることにより、ハイブリッドなワークスペースへと成功裡に変化させています。このデザインは、ソーシャルメディアでのフィードバックを受けてから以前の壁を向いた配置が持っていた「古い」外観に対応し、また、未使用のアイテム、おもちゃ、プロジェクトをアナログ側の面に置き続けることで、ストイックなミニマリズムの限界を解決し、アイデアを刺激することを可能にしています。単純にチェアを二つの半分の間で移動させることで強化された明確な精神的境界線により、このセットアップは一つの表面上で「作業」「思考」「子供たちと過ごす時間」という 3 つの異なる機能を発揮します。9 ヶ月の使用後、著者は単一コンピューターの配置に戻る予定はないことを確認しており、むしろミニマリスト的な規律とマキシマリスト的な柔軟性を融合させたこの柔軟なシステムを維持する意欲を持っています。これにより、別々の部屋を必要とせずに、ワークフローと創造的アウトプットを向上させることができます。

ヘンジファインダー:太陽があなたの通りと重なる瞬間を探し出す | そっか~ニュース