{"calculation_version":"2026-10-10.1","days":30,"nights":[{"best_hours":0.92,"best_label":"good","best_window":"02:45\u201303:40","dark_hours":4.43,"date":"2025-06-17","moon_free_dark_hours":2.02,"moon_illumination":60,"moon_separation":52.1,"score":22,"score_astronomy":22,"score_weather":100,"transit_alt":89.6,"transit_local":"08:20","verdict":"poor","weather_source":"history","weekday":"Tue"},{"best_hours":1.08,"best_label":"good","best_window":"02:35\u201303:40","dark_hours":4.43,"date":"2025-06-18","moon_free_dark_hours":2.38,"moon_illumination":49,"moon_separation":42.1,"score":24,"score_astronomy":24,"score_weather":100,"transit_alt":89.7,"transit_local":"08:15","verdict":"poor","weather_source":"history","weekday":"Wed"},{"best_hours":1.25,"best_label":"good","best_window":"02:25\u201303:40","dark_hours":4.42,"date":"2025-06-19","moon_free_dark_hours":2.75,"moon_illumination":37,"moon_separation":34.2,"score":29,"score_astronomy":29,"score_weather":100,"transit_alt":89.7,"transit_local":"08:10","verdict":"poor","weather_source":"history","weekday":"Thu"},{"best_hours":1.25,"best_label":"good","best_window":"02:25\u201303:40","dark_hours":4.42,"date":"2025-06-20","moon_free_dark_hours":3.15,"moon_illumination":26,"moon_separation":30.4,"score":32,"score_astronomy":35,"score_weather":90,"transit_alt":89.6,"transit_local":"08:05","verdict":"poor","weather_source":"history","weekday":"Fri"},{"best_hours":1.67,"best_label":"good","best_window":"02:00\u201303:40","dark_hours":4.42,"date":"2025-06-21","moon_free_dark_hours":3.65,"moon_illumination":17,"moon_separation":32.5,"score":40,"score_astronomy":41,"score_weather":98,"transit_alt":89.5,"transit_local":"08:05","verdict":"marginal","weather_source":"history","weekday":"Sat"},{"best_hours":1.75,"best_label":"good","best_window":"01:55\u201303:40","dark_hours":4.42,"date":"2025-06-22","moon_free_dark_hours":4.27,"moon_illumination":9,"moon_separation":39.7,"score":47,"score_astronomy":47,"score_weather":100,"transit_alt":89.6,"transit_local":"08:00","verdict":"marginal","weather_source":"history","weekday":"Sun"},{"best_hours":1.83,"best_label":"good","best_window":"01:50\u201303:40","dark_hours":4.43,"date":"2025-06-23","moon_free_dark_hours":4.42,"moon_illumination":3,"moon_separation":49.9,"score":49,"score_astronomy":49,"score_weather":100,"transit_alt":89.7,"transit_local":"07:55","verdict":"marginal","weather_source":"history","weekday":"Mon"},{"best_hours":1.92,"best_label":"good","best_window":"01:45\u201303:40","dark_hours":4.44,"date":"2025-06-24","moon_free_dark_hours":4.42,"moon_illumination":1,"moon_separation":61.5,"score":50,"score_astronomy":50,"score_weather":100,"transit_alt":89.7,"transit_local":"07:50","verdict":"marginal","weather_source":"history","weekday":"Tue"},{"best_hours":1.92,"best_label":"good","best_window":"01:45\u201303:40","dark_hours":4.45,"date":"2025-06-25","moon_free_dark_hours":4.43,"moon_illumination":0,"moon_separation":73.6,"score":53,"score_astronomy":53,"score_weather":100,"transit_alt":89.5,"transit_local":"07:45","verdict":"marginal","weather_source":"history","weekday":"Wed"},{"best_hours":2.0,"best_label":"good","best_window":"01:40\u201303:40","dark_hours":4.46,"date":"2025-06-26","moon_free_dark_hours":4.43,"moon_illumination":3,"moon_separation":85.8,"score":55,"score_astronomy":55,"score_weather":100,"transit_alt":89.5,"transit_local":"07:45","verdict":"marginal","weather_source":"history","weekday":"Thu"},{"best_hours":1.33,"best_label":"good","best_window":"01:40\u201303:00","dark_hours":4.47,"date":"2025-06-27","moon_free_dark_hours":4.45,"moon_illumination":8,"moon_separation":97.7,"score":38,"score_astronomy":56,"score_weather":68,"transit_alt":89.7,"transit_local":"07:40","verdict":"poor","weather_source":"history","weekday":"Fri"},{"best_hours":0.67,"best_label":"good","best_window":"03:00\u201303:40","dark_hours":4.48,"date":"2025-06-28","moon_free_dark_hours":4.18,"moon_illumination":15,"moon_separation":109.2,"score":26,"score_astronomy":58,"score_weather":45,"transit_alt":89.7,"transit_local":"07:35","verdict":"poor","weather_source":"history","weekday":"Sat"},{"best_hours":2.17,"best_label":"good","best_window":"01:30\u201303:40","dark_hours":4.5,"date":"2025-06-29","moon_free_dark_hours":3.78,"moon_illumination":23,"moon_separation":120.0,"score":60,"score_astronomy":60,"score_weather":100,"transit_alt":89.6,"transit_local":"07:30","verdict":"marginal","weather_source":"history","weekday":"Sun"},{"best_hours":2.33,"best_label":"good","best_window":"01:25\u201303:45","dark_hours":4.52,"date":"2025-06-30","moon_free_dark_hours":3.47,"moon_illumination":32,"moon_separation":129.9,"score":58,"score_astronomy":63,"score_weather":92,"transit_alt":89.5,"transit_local":"07:25","verdict":"marginal","weather_source":"history","weekday":"Mon"},{"best_hours":2.33,"best_label":"good","best_window":"01:25\u201303:45","dark_hours":4.54,"date":"2025-07-01","moon_free_dark_hours":3.17,"moon_illumination":42,"moon_separation":138.6,"score":64,"score_astronomy":65,"score_weather":98,"transit_alt":89.6,"transit_local":"07:25","verdict":"marginal","weather_source":"history","weekday":"Tue"},{"best_hours":2.5,"best_label":"good","best_window":"01:15\u201303:45","dark_hours":4.56,"date":"2025-07-02","moon_free_dark_hours":2.87,"moon_illumination":51,"moon_separation":145.4,"score":66,"score_astronomy":66,"score_weather":100,"transit_alt":89.7,"transit_local":"07:20","verdict":"marginal","weather_source":"history","weekday":"Wed"},{"best_hours":2.58,"best_label":"good","best_window":"01:10\u201303:45","dark_hours":4.59,"date":"2025-07-03","moon_free_dark_hours":2.57,"moon_illumination":61,"moon_separation":149.3,"score":68,"score_astronomy":68,"score_weather":100,"transit_alt":89.7,"transit_local":"07:15","verdict":"marginal","weather_source":"history","weekday":"Thu"},{"best_hours":2.5,"best_label":"good","best_window":"01:15\u201303:45","dark_hours":4.62,"date":"2025-07-04","moon_free_dark_hours":2.23,"moon_illumination":70,"moon_separation":149.2,"score":70,"score_astronomy":70,"score_weather":100,"transit_alt":89.6,"transit_local":"07:10","verdict":"good","weather_source":"history","weekday":"Fri"},{"best_hours":2.67,"best_label":"good","best_window":"01:10\u201303:50","dark_hours":4.64,"date":"2025-07-05","moon_free_dark_hours":1.83,"moon_illumination":78,"moon_separation":145.3,"score":73,"score_astronomy":73,"score_weather":100,"transit_alt":89.5,"transit_local":"07:10","verdict":"good","weather_source":"history","weekday":"Sat"},{"best_hours":2.67,"best_label":"good","best_window":"01:10\u201303:50","dark_hours":4.67,"date":"2025-07-06","moon_free_dark_hours":1.33,"moon_illumination":85,"moon_separation":138.5,"score":74,"score_astronomy":74,"score_weather":100,"transit_alt":89.6,"transit_local":"07:05","verdict":"good","weather_source":"history","weekday":"Sun"},{"best_hours":2.75,"best_label":"good","best_window":"01:05\u201303:50","dark_hours":4.7,"date":"2025-07-07","moon_free_dark_hours":0.72,"moon_illumination":91,"moon_separation":130.0,"score":74,"score_astronomy":74,"score_weather":99,"transit_alt":89.7,"transit_local":"07:00","verdict":"good","weather_source":"history","weekday":"Mon"},{"best_hours":2.75,"best_label":"good","best_window":"01:05\u201303:50","dark_hours":4.74,"date":"2025-07-08","moon_free_dark_hours":0.0,"moon_illumination":96,"moon_separation":120.3,"score":68,"score_astronomy":68,"score_weather":100,"transit_alt":89.7,"transit_local":"06:55","verdict":"marginal","weather_source":"history","weekday":"Tue"},{"best_hours":2.75,"best_label":"good","best_window":"01:05\u201303:50","dark_hours":4.77,"date":"2025-07-09","moon_free_dark_hours":0.0,"moon_illumination":99,"moon_separation":110.0,"score":61,"score_astronomy":61,"score_weather":100,"transit_alt":89.5,"transit_local":"06:50","verdict":"marginal","weather_source":"history","weekday":"Wed"},{"best_hours":0.92,"best_label":"good","best_window":"03:00\u201303:55","dark_hours":4.81,"date":"2025-07-10","moon_free_dark_hours":0.0,"moon_illumination":100,"moon_separation":99.1,"score":45,"score_astronomy":56,"score_weather":80,"transit_alt":89.5,"transit_local":"06:50","verdict":"marginal","weather_source":"history","weekday":"Thu"},{"best_hours":1.92,"best_label":"marginal","best_window":"02:00\u201303:55","dark_hours":4.85,"date":"2025-07-11","moon_free_dark_hours":0.0,"moon_illumination":99,"moon_separation":88.0,"score":29,"score_astronomy":48,"score_weather":60,"transit_alt":89.7,"transit_local":"06:45","verdict":"poor","weather_source":"history","weekday":"Fri"},{"best_hours":1.08,"best_label":"good","best_window":"02:50\u201303:55","dark_hours":4.88,"date":"2025-07-12","moon_free_dark_hours":0.0,"moon_illumination":95,"moon_separation":76.6,"score":37,"score_astronomy":41,"score_weather":89,"transit_alt":89.7,"transit_local":"06:40","verdict":"poor","weather_source":"history","weekday":"Sat"},{"best_hours":0.92,"best_label":"marginal","best_window":"03:00\u201303:55","dark_hours":4.92,"date":"2025-07-13","moon_free_dark_hours":0.0,"moon_illumination":90,"moon_separation":65.3,"score":17,"score_astronomy":36,"score_weather":48,"transit_alt":89.6,"transit_local":"06:35","verdict":"poor","weather_source":"history","weekday":"Sun"},{"best_hours":4.0,"best_label":"marginal","best_window":"00:00\u201304:00","dark_hours":4.97,"date":"2025-07-14","moon_free_dark_hours":0.28,"moon_illumination":82,"moon_separation":54.3,"score":35,"score_astronomy":35,"score_weather":100,"transit_alt":89.5,"transit_local":"06:30","verdict":"poor","weather_source":"history","weekday":"Mon"},{"best_hours":4.0,"best_label":"marginal","best_window":"00:00\u201304:00","dark_hours":5.01,"date":"2025-07-15","moon_free_dark_hours":0.67,"moon_illumination":73,"moon_separation":44.0,"score":33,"score_astronomy":36,"score_weather":92,"transit_alt":89.6,"transit_local":"06:30","verdict":"poor","weather_source":"history","weekday":"Tue"},{"best_hours":4.17,"best_label":"marginal","best_window":"23:50\u201304:00","dark_hours":5.05,"date":"2025-07-16","moon_free_dark_hours":1.07,"moon_illumination":62,"moon_separation":35.6,"score":37,"score_astronomy":41,"score_weather":90,"transit_alt":89.7,"transit_local":"06:25","verdict":"poor","weather_source":"history","weekday":"Wed"}],"note":"score_astronomy for every night; score_weather/score only where a forecast (next 4 days) or ERA5 history exists \u2014 null otherwise","start":"2025-06-17","target":{"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}}
