Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

astropy

天文学・天体物理学向けの包括的なPythonライブラリです。天体座標・物理単位・FITSファイル・宇宙論的計算・時刻系・テーブル・世界座標系(WCS)など天文データを扱う際に使用します。座標変換・単位変換・FITSファイル操作・宇宙論的距離計算・時刻スケール変換・天文データ処理といったタスクに活用してください。

description の原文を見る

Comprehensive Python library for astronomy and astrophysics. This skill should be used when working with astronomical data including celestial coordinates, physical units, FITS files, cosmological calculations, time systems, tables, world coordinate systems (WCS), and astronomical data analysis. Use when tasks involve coordinate transformations, unit conversions, FITS file manipulation, cosmological distance calculations, time scale conversions, or astronomical data processing.

SKILL.md 本文

Astropy

概要

Astropyは天文学のためのコアPythonパッケージであり、天文学研究とデータ分析のための本質的な機能を提供します。座標変換、単位と量の計算、FITSファイル操作、宇宙論的計算、正確な時間処理、表形式データの操作、天文画像処理にはastropyを使用します。

このスキルを使用する場合

以下のタスクを伴う場合にastropyを使用します:

  • 天体座標系間の変換(ICRS、Galactic、FK5、AltAzなど)
  • 物理単位と量の操作(JyをmJyに、パーセクをkmに変換するなど)
  • FITSファイルの読み取り、書き込み、操作(画像またはテーブル)
  • 宇宙論的計算(ルミノシティ距離、逆行時間、ハッブルパラメータ)
  • 異なる時間スケール(UTC、TAI、TT、TDB)と形式(JD、MJD、ISO)での正確な時間処理
  • テーブル操作(カタログの読み取り、クロスマッチング、フィルタリング、結合)
  • ピクセル座標とワールド座標間のWCS変換
  • 天文定数と計算

クイックスタート

import astropy.units as u
from astropy.coordinates import SkyCoord
from astropy.time import Time
from astropy.io import fits
from astropy.table import Table
from astropy.cosmology import Planck18

# Units and quantities
distance = 100 * u.pc
distance_km = distance.to(u.km)

# Coordinates
coord = SkyCoord(ra=10.5*u.degree, dec=41.2*u.degree, frame='icrs')
coord_galactic = coord.galactic

# Time
t = Time('2023-01-15 12:30:00')
jd = t.jd  # Julian Date

# FITS files
data = fits.getdata('image.fits')
header = fits.getheader('image.fits')

# Tables
table = Table.read('catalog.fits')

# Cosmology
d_L = Planck18.luminosity_distance(z=1.0)

コア機能

1. 単位と量 (astropy.units)

物理量を単位と共に扱い、単位変換を実行し、計算での次元一貫性を確保します。

主な操作:

  • 値に単位を乗じることで量を作成
  • .to()メソッドを使用して単位間を変換
  • 自動的な単位処理により算術演算を実行
  • 領域固有の変換(スペクトル、ドップラー、視差)に等価性を使用
  • 対数単位(等級、デシベル)で作業

参照: references/units.md で包括的なドキュメント、単位システム、等価性、パフォーマンス最適化、単位演算を確認してください。

2. 座標系 (astropy.coordinates)

天体位置を表現し、異なる座標フレーム間で変換します。

主な操作:

  • SkyCoordを使用して任意のフレーム(ICRS、Galactic、FK5、AltAzなど)で座標を作成
  • 座標系間で変換
  • 角度分離と位置角を計算
  • 座標をカタログにマッチング
  • 3D座標操作のための距離を含める
  • 固有運動と視線速度を処理
  • オンラインデータベースから名前付きオブジェクトをクエリ

参照: references/coordinates.md で詳細な座標フレーム記述、変換、観測者依存フレーム(AltAz)、カタログマッチング、パフォーマンスのヒントを確認してください。

3. 宇宙論的計算 (astropy.cosmology)

標準宇宙論モデルを使用して宇宙論的計算を実行します。

主な操作:

  • 組み込み宇宙論(Planck18、WMAP9など)を使用
  • カスタム宇宙論モデルを作成
  • 距離を計算(ルミノシティ、共動、角径)
  • 年齢と逆行時間を計算
  • 任意の赤方偏移でのハッブルパラメータを決定
  • 密度パラメータとボリュームを計算
  • 逆計算を実行(与えられた距離のzを検出)

参照: references/cosmology.md で利用可能なモデル、距離計算、時間計算、密度パラメータ、ニュートリノ効果を確認してください。

4. FITSファイル処理 (astropy.io.fits)

FITS(柔軟な画像転送システム)ファイルを読み取り、書き込み、操作します。

主な操作:

  • コンテキストマネージャーでFITSファイルを開く
  • HDU(ヘッダーデータユニット)にインデックスまたは名前でアクセス
  • ヘッダーを読み取り、修正(キーワード、コメント、履歴)
  • 画像データ(NumPy配列)で作業
  • テーブルデータ(バイナリおよびASCIIテーブル)を処理
  • 新しいFITSファイルを作成(単一または複数拡張)
  • 大規模ファイルにメモリマッピングを使用
  • リモートFITSファイル(S3、HTTP)にアクセス

参照: references/fits.md で包括的なファイル操作、ヘッダー操作、画像とテーブル処理、複数拡張ファイル、パフォーマンス考慮事項を確認してください。

5. テーブル操作 (astropy.table)

単位、メタデータ、さまざまなファイル形式をサポートする表形式データで作業します。

主な操作:

  • 配列、リスト、または辞書からテーブルを作成
  • 複数の形式(FITS、CSV、HDF5、VOTable)でテーブルを読み取り/書き込み
  • 列と行にアクセスして修正
  • テーブルをソート、フィルタ、インデックス
  • データベース型操作(結合、グループ化、集約)を実行
  • テーブルをスタックおよび連結
  • 単位対応の列(QTable)で作業
  • マスキングで欠損データを処理

参照: references/tables.md でテーブル作成、I/O操作、データ操作、ソート、フィルタリング、結合、グループ化、パフォーマンスのヒントを確認してください。

6. 時間処理 (astropy.time)

時間スケールと形式間での正確な時間表現と変換。

主な操作:

  • さまざまな形式(ISO、JD、MJD、Unixなど)でTimeオブジェクトを作成
  • 時間スケール間を変換(UTC、TAI、TT、TDB、など)
  • TimeDeltaで時間演算を実行
  • 観測者の恒星時を計算
  • 光伝播時間補正(バリセンター、ヘリオセンター)を計算
  • 時間配列を効率的に処理
  • マスク(欠損)時間を処理

参照: references/time.md で時間形式、時間スケール、変換、演算、観測機能、精度処理を確認してください。

7. ワールド座標系 (astropy.wcs)

画像内のピクセル座標とワールド座標間で変換します。

主な操作:

  • FITSヘッダーからWCSを読み取る
  • ピクセル座標をワールド座標に変換(およびその逆)
  • 画像フットプリントを計算
  • WCSパラメータ(参照ピクセル、投影、スケール)にアクセス
  • カスタムWCSオブジェクトを作成

参照: references/wcs_and_other_modules.md でWCS操作と変換を確認してください。

追加機能

references/wcs_and_other_modules.md ファイルは以下もカバーしています:

NDDataとCCDData

メタデータ、不確実性、マスキング、WCS情報を持つn次元データセットのコンテナ。

モデリング

天文データに数学モデルを作成し、フィッティングするためのフレームワーク。

ビジュアライゼーション

適切なストレッチとスケーリングでの天文画像表示ツール。

定数

物理定数と天文定数(光の速度、太陽質量、プランク定数など)。

コンボリューション

スムージングとフィルタリング用の画像処理カーネル。

統計

シグマクリッピングと外れ値除去を含むロバスト統計関数。

インストール

# Install astropy
uv pip install astropy

# With optional dependencies for full functionality
uv pip install astropy[all]

一般的なワークフロー

座標系間の座標変換

from astropy.coordinates import SkyCoord
import astropy.units as u

# Create coordinate
c = SkyCoord(ra='05h23m34.5s', dec='-69d45m22s', frame='icrs')

# Transform to galactic
c_gal = c.galactic
print(f"l={c_gal.l.deg}, b={c_gal.b.deg}")

# Transform to alt-az (requires time and location)
from astropy.time import Time
from astropy.coordinates import EarthLocation, AltAz

observing_time = Time('2023-06-15 23:00:00')
observing_location = EarthLocation(lat=40*u.deg, lon=-120*u.deg)
aa_frame = AltAz(obstime=observing_time, location=observing_location)
c_altaz = c.transform_to(aa_frame)
print(f"Alt={c_altaz.alt.deg}, Az={c_altaz.az.deg}")

FITSファイルの読み取りと分析

from astropy.io import fits
import numpy as np

# Open FITS file
with fits.open('observation.fits') as hdul:
    # Display structure
    hdul.info()

    # Get image data and header
    data = hdul[1].data
    header = hdul[1].header

    # Access header values
    exptime = header['EXPTIME']
    filter_name = header['FILTER']

    # Analyze data
    mean = np.mean(data)
    median = np.median(data)
    print(f"Mean: {mean}, Median: {median}")

宇宙論的距離計算

from astropy.cosmology import Planck18
import astropy.units as u
import numpy as np

# Calculate distances at z=1.5
z = 1.5
d_L = Planck18.luminosity_distance(z)
d_A = Planck18.angular_diameter_distance(z)

print(f"Luminosity distance: {d_L}")
print(f"Angular diameter distance: {d_A}")

# Age of universe at that redshift
age = Planck18.age(z)
print(f"Age at z={z}: {age.to(u.Gyr)}")

# Lookback time
t_lookback = Planck18.lookback_time(z)
print(f"Lookback time: {t_lookback.to(u.Gyr)}")

カタログのクロスマッチング

from astropy.table import Table
from astropy.coordinates import SkyCoord, match_coordinates_sky
import astropy.units as u

# Read catalogs
cat1 = Table.read('catalog1.fits')
cat2 = Table.read('catalog2.fits')

# Create coordinate objects
coords1 = SkyCoord(ra=cat1['RA']*u.degree, dec=cat1['DEC']*u.degree)
coords2 = SkyCoord(ra=cat2['RA']*u.degree, dec=cat2['DEC']*u.degree)

# Find matches
idx, sep, _ = coords1.match_to_catalog_sky(coords2)

# Filter by separation threshold
max_sep = 1 * u.arcsec
matches = sep < max_sep

# Create matched catalogs
cat1_matched = cat1[matches]
cat2_matched = cat2[idx[matches]]
print(f"Found {len(cat1_matched)} matches")

ベストプラクティス

  1. 常に単位を使用: エラーを避け、次元一貫性を確保するために量に単位を付与
  2. FITSファイルにはコンテキストマネージャーを使用: 適切なファイルクローズを確保
  3. ループよりも配列を優先: 複数の座標/時間を配列として処理してパフォーマンスを向上
  4. 座標フレームを確認: 変換前にフレームを検証
  5. 適切な宇宙論を使用: 分析に対して正しい宇宙論モデルを選択
  6. 欠損データを処理: 欠損値を持つテーブルのマスク列を使用
  7. 時間スケールを指定: 正確なタイミングのために時間スケール(UTC、TT、TDB)を明示的に指定
  8. 単位対応テーブルにはQTableを使用: テーブル列に単位がある場合
  9. WCS有効性を確認: 変換を使用する前にWCSを検証
  10. 頻繁に使用される値をキャッシュ: 高コスト計算(例: 宇宙論的距離)はキャッシュ可能

ドキュメントとリソース

リファレンスファイル

特定のモジュールに関する詳細情報:

  • references/units.md - 単位、量、変換、等価性
  • references/coordinates.md - 座標系、変換、カタログマッチング
  • references/cosmology.md - 宇宙論モデルと計算
  • references/fits.md - FITSファイル操作と操作
  • references/tables.md - テーブル作成、I/O、操作
  • references/time.md - 時間形式、スケール、計算
  • references/wcs_and_other_modules.md - WCS、NDData、モデリング、ビジュアライゼーション、定数、ユーティリティ

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
davila7
リポジトリ
davila7/claude-code-templates
ライセンス
MIT
最終更新
不明

Source: https://github.com/davila7/claude-code-templates / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: davila7 · davila7/claude-code-templates · ライセンス: MIT