{"calculation_version":"2026-10-10.1","forecast_source":"history","night_date":"2025-10-31","schedule":[{"end":"2025-10-31T21:00Z","end_local":"23:00","hours":5.75,"mean_quality":0.0,"start":"2025-10-31T15:15Z","start_local":"17:15","target":null},{"end":"2025-11-01T01:00Z","end_local":"03:00","hours":4.0,"mean_quality":0.63,"start":"2025-10-31T21:00Z","start_local":"23:00","target":"M31"},{"end":"2025-11-01T02:00Z","end_local":"04:00","hours":1.0,"mean_quality":0.0,"start":"2025-11-01T01:00Z","start_local":"03:00","target":null},{"end":"2025-11-01T02:50Z","end_local":"04:50","hours":0.83,"mean_quality":0.39,"start":"2025-11-01T02:00Z","start_local":"04:00","target":"M31"},{"end":"2025-11-01T03:00Z","end_local":"05:00","hours":0.17,"mean_quality":0.0,"start":"2025-11-01T02:50Z","start_local":"04:50","target":null},{"end":"2025-11-01T03:05Z","end_local":"05:05","hours":0.08,"mean_quality":0.38,"start":"2025-11-01T03:00Z","start_local":"05:00","target":"M31"},{"end":"2025-11-01T04:55Z","end_local":"06:55","hours":1.83,"mean_quality":0.0,"start":"2025-11-01T03:05Z","start_local":"05:05","target":null}],"targets":[{"best_window":{"end":"2025-11-01T00:30Z","end_local":"02:30","hours":2.5,"label":"good","mean_quality":0.75,"start":"2025-10-31T22:00Z","start_local":"00:00"},"dec":41.26875,"moon_separation":59.8,"name":"M31","quality_hours":2.91,"ra":10.68470833,"resolved":{"common_name":"Andromeda Galaxy","dec":41.26875,"morphology":"SA(s)b","name":"M 31","ra":10.68470833,"simbad_url":"https://simbad.cds.unistra.fr/simbad/sim-id?Ident=M31","source":"sesame","type":"AGN","type_text":"galaxy with an active nucleus","vmag":3.44},"score":37,"score_astronomy":96,"score_weather":38,"transit":{"airmass":1.0,"alt":89.6,"az":222.0,"t":"2025-10-31T20:25Z"},"verdict":"poor","weather_known":true,"windows":[{"end":"2025-10-31T21:00Z","end_local":"23:00","hours":5.75,"label":"unusable","mean_quality":0.0,"start":"2025-10-31T15:15Z","start_local":"17:15"},{"end":"2025-10-31T22:00Z","end_local":"00:00","hours":1.0,"label":"marginal","mean_quality":0.33,"start":"2025-10-31T21:00Z","start_local":"23:00"},{"end":"2025-11-01T00:30Z","end_local":"02:30","hours":2.5,"label":"good","mean_quality":0.75,"start":"2025-10-31T22:00Z","start_local":"00:00"},{"end":"2025-11-01T01:00Z","end_local":"03:00","hours":0.5,"label":"marginal","mean_quality":0.59,"start":"2025-11-01T00:30Z","start_local":"02:30"},{"end":"2025-11-01T02:00Z","end_local":"04:00","hours":1.0,"label":"unusable","mean_quality":0.0,"start":"2025-11-01T01:00Z","start_local":"03:00"},{"end":"2025-11-01T02:50Z","end_local":"04:50","hours":0.83,"label":"marginal","mean_quality":0.39,"start":"2025-11-01T02:00Z","start_local":"04:00"},{"end":"2025-11-01T03:00Z","end_local":"05:00","hours":0.17,"label":"poor","mean_quality":0.28,"start":"2025-11-01T02:50Z","start_local":"04:50"},{"end":"2025-11-01T03:05Z","end_local":"05:05","hours":0.08,"label":"marginal","mean_quality":0.38,"start":"2025-11-01T03:00Z","start_local":"05:00"},{"end":"2025-11-01T04:55Z","end_local":"06:55","hours":1.83,"label":"unusable","mean_quality":0.0,"start":"2025-11-01T03:05Z","start_local":"05:05"}]}],"unscheduled":[],"warnings":[]}
