cosmo/complete_analysis.py

93 lines
2.9 KiB
Python

#!/usr/bin/env python3
"""Show the complete picture of the sizing problem"""
print("=" * 90)
print("COMPLETE SIZE CALCULATION ANALYSIS")
print("=" * 90)
# Real radii (km)
real_radii = {
'Sun': 696000,
'Jupiter': 69911,
'Saturn': 58232,
'Earth': 6371,
'Ceres': 476,
'Pluto': 1188,
}
# Current config
planet_ratio = 0.00008
dwarf_ratio = 0.00015
star_ratio = 0.0000015
# Current TYPE_SIZES fallback
type_sizes = {
'planet': 0.6,
'dwarf_planet': 0.18,
'star': 0.4,
}
print("\n📊 CURRENT SITUATION:")
print("-" * 90)
print(f"{'Body':<15} {'Has real_radius?':<20} {'Calculation':<40} {'Size':<10}")
print("-" * 90)
# Planets with real_radius
for name in ['Jupiter', 'Saturn', 'Earth']:
radius = real_radii[name]
size = radius * planet_ratio
calc = f"{radius} * {planet_ratio} = {size:.4f}"
print(f"{name:<15} {'YES (✓)':<20} {calc:<40} {size:<10.4f}")
# Dwarf planets WITHOUT real_radius (using fallback)
for name in ['Ceres', 'Pluto']:
radius = real_radii[name]
fallback_size = type_sizes['dwarf_planet']
correct_size = radius * planet_ratio # What it SHOULD be
calc = f"FALLBACK: {fallback_size:.2f} (should be {correct_size:.4f})"
ratio = fallback_size / correct_size
print(f"{name:<15} {'NO (✗) MISSING!':<20} {calc:<40} {fallback_size:<10.2f} ({ratio:.1f}x too large!)")
# Sun WITHOUT real_radius
name = 'Sun'
radius = real_radii[name]
fallback_size = type_sizes['star']
correct_size = radius * star_ratio
calc = f"FALLBACK: {fallback_size:.2f} (should be {correct_size:.4f})"
ratio = fallback_size / correct_size
print(f"{name:<15} {'NO (✗) MISSING!':<20} {calc:<40} {fallback_size:<10.2f}")
print("\n" + "=" * 90)
print("⚠️ PROBLEMS:")
print("=" * 90)
print("1. Dwarf planets (Ceres, Pluto, etc.) use FIXED fallback size 0.18")
print(" → Ceres (476 km) should be 0.0381 but shows as 0.18 (4.7x too large!)")
print(" → Pluto (1188 km) should be 0.0950 but shows as 0.18 (1.9x too large!)")
print()
print("2. Different ratios for different types causes MORE confusion:")
print(f" → planet ratio: {planet_ratio}")
print(f" → dwarf_planet ratio: {dwarf_ratio} (1.875x larger!)")
print()
print("3. Sun has no real_radius, uses fixed size 0.4")
print()
print("=" * 90)
print("✅ SOLUTION:")
print("=" * 90)
print("1. Add missing real_radius data for:")
print(" • Sun: 696000 km")
print(" • Ceres: 476 km")
print(" • Pluto: 1188 km")
print(" • Eris: 1163 km")
print(" • Haumea: 816 km")
print(" • Makemake: 715 km")
print()
print("2. Use UNIFIED ratio for all types:")
print(" • Recommended: 0.00008 for ALL types (star, planet, dwarf_planet, etc.)")
print(" • This ensures consistent scaling based on real physical size")
print()
print("3. If planets appear too large visually, adjust the GLOBAL ratio:")
print(" • Reduce ratio to 0.00005 or 0.00004 for ALL types")
print(" • This keeps relative sizes correct while fitting better on screen")
print("=" * 90)