地球の基本設定を返す関数。

import math

def earth_settings():
    """
    地球の基本設定を返す関数。
    
    Returns:
        dict: 地球の各種設定をまとめた辞書。
    """
    # 地球の基本パラメータ
    earth = {
        "radius": 6_371_000,                # 地球の半径 (m)
        "mass": 5.972e24,                  # 地球の質量 (kg)
        "surface_gravity": 9.8,            # 表面重力加速度 (m/s^2)
        "rotation_velocity": 465,          # 赤道地点の自転速度 (m/s)
        "gravitational_constant": 6.674e-11, # 万有引力定数 (m^3/kg/s^2)
        "escape_velocity": None,           # 脱出速度 (m/s)
        "orbital_velocity": None,          # 第一宇宙速度 (m/s)
        "karman_line": 100_000,            # カーマンライン高度 (m)
    }
    
    # 脱出速度の計算
    # v_escape = sqrt(2GM / R)
    earth["escape_velocity"] = math.sqrt(2 * earth["gravitational_constant"] * earth["mass"] / earth["radius"])
    
    # 第一宇宙速度(円軌道速度)の計算
    # v_orbit = sqrt(GM / R)
    earth["orbital_velocity"] = math.sqrt(earth["gravitational_constant"] * earth["mass"] / earth["radius"])
    
    return earth

# 使用例
earth = earth_settings()
print("地球の設定:")
print(f"半径: {earth['radius'] / 1000:.1f} km")
print(f"質量: {earth['mass']:.2e} kg")
print(f"表面重力加速度: {earth['surface_gravity']} m/s²")
print(f"赤道自転速度: {earth['rotation_velocity']} m/s")
print(f"脱出速度: {earth['escape_velocity']:.1f} m/s")
print(f"第一宇宙速度: {earth['orbital_velocity']:.1f} m/s")
print(f"カーマンライン高度: {earth['karman_line'] / 1000:.1f} km")

いいなと思ったら応援しよう!