52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
"""
|
|
Test NASA SBDB service directly
|
|
"""
|
|
import asyncio
|
|
from datetime import datetime, timedelta
|
|
from app.services.nasa_sbdb_service import nasa_sbdb_service
|
|
|
|
async def test_nasa_sbdb():
|
|
"""Test NASA SBDB API directly"""
|
|
|
|
# Calculate date range
|
|
date_min = datetime.utcnow().strftime("%Y-%m-%d")
|
|
date_max = (datetime.utcnow() + timedelta(days=365)).strftime("%Y-%m-%d")
|
|
|
|
print(f"Querying NASA SBDB for close approaches...")
|
|
print(f"Date range: {date_min} to {date_max}")
|
|
print(f"Max distance: 1.0 AU")
|
|
|
|
events = await nasa_sbdb_service.get_close_approaches(
|
|
date_min=date_min,
|
|
date_max=date_max,
|
|
dist_max="1.0",
|
|
body="Earth",
|
|
limit=10,
|
|
fullname=True
|
|
)
|
|
|
|
print(f"\nRetrieved {len(events)} events from NASA SBDB")
|
|
|
|
if events:
|
|
print("\nFirst 3 events:")
|
|
for i, event in enumerate(events[:3], 1):
|
|
print(f"\n{i}. {event.get('des', 'Unknown')}")
|
|
print(f" Full name: {event.get('fullname', 'N/A')}")
|
|
print(f" Date: {event.get('cd', 'N/A')}")
|
|
print(f" Distance: {event.get('dist', 'N/A')} AU")
|
|
print(f" Velocity: {event.get('v_rel', 'N/A')} km/s")
|
|
|
|
# Test parsing
|
|
parsed = nasa_sbdb_service.parse_event_to_celestial_event(event)
|
|
if parsed:
|
|
print(f" ✓ Parsed successfully")
|
|
print(f" Title: {parsed['title']}")
|
|
print(f" Body ID: {parsed['body_id']}")
|
|
else:
|
|
print(f" ✗ Failed to parse")
|
|
else:
|
|
print("No events found")
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(test_nasa_sbdb())
|