{"calculation_version":"2026-10-10.1","days":30,"nights":[{"best_hours":0.5,"best_label":"marginal","best_window":"03:30\u201304:00","dark_hours":5.31,"date":"2025-05-20","moon_free_dark_hours":4.1,"moon_illumination":45,"moon_separation":60.4,"score":4,"score_astronomy":6,"score_weather":72,"transit_alt":89.6,"transit_local":"10:10","verdict":"poor","weather_source":"history","weekday":"Tue"},{"best_hours":0.25,"best_label":"marginal","best_window":"03:45\u201304:00","dark_hours":5.26,"date":"2025-05-21","moon_free_dark_hours":4.45,"moon_illumination":34,"moon_separation":49.6,"score":5,"score_astronomy":7,"score_weather":68,"transit_alt":89.7,"transit_local":"10:05","verdict":"poor","weather_source":"history","weekday":"Wed"},{"best_hours":0.5,"best_label":"marginal","best_window":"03:25\u201303:55","dark_hours":5.21,"date":"2025-05-22","moon_free_dark_hours":4.78,"moon_illumination":24,"moon_separation":39.8,"score":6,"score_astronomy":7,"score_weather":89,"transit_alt":89.7,"transit_local":"10:00","verdict":"poor","weather_source":"history","weekday":"Thu"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":5.16,"date":"2025-05-23","moon_free_dark_hours":5.15,"moon_illumination":15,"moon_separation":32.7,"score":2,"score_astronomy":10,"score_weather":21,"transit_alt":89.6,"transit_local":"09:55","verdict":"poor","weather_source":"history","weekday":"Fri"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":5.12,"date":"2025-05-24","moon_free_dark_hours":5.1,"moon_illumination":7,"moon_separation":30.6,"score":0,"score_astronomy":11,"score_weather":0,"transit_alt":89.5,"transit_local":"09:55","verdict":"unusable","weather_source":"history","weekday":"Sat"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":5.07,"date":"2025-05-25","moon_free_dark_hours":5.07,"moon_illumination":2,"moon_separation":34.8,"score":0,"score_astronomy":12,"score_weather":0,"transit_alt":89.6,"transit_local":"09:50","verdict":"unusable","weather_source":"history","weekday":"Sun"},{"best_hours":0.67,"best_label":"marginal","best_window":"03:10\u201303:50","dark_hours":5.03,"date":"2025-05-26","moon_free_dark_hours":5.0,"moon_illumination":0,"moon_separation":43.6,"score":10,"score_astronomy":12,"score_weather":80,"transit_alt":89.7,"transit_local":"09:45","verdict":"poor","weather_source":"history","weekday":"Mon"},{"best_hours":0.25,"best_label":"good","best_window":"03:35\u201303:50","dark_hours":4.98,"date":"2025-05-27","moon_free_dark_hours":4.97,"moon_illumination":1,"moon_separation":54.6,"score":14,"score_astronomy":14,"score_weather":100,"transit_alt":89.7,"transit_local":"09:40","verdict":"poor","weather_source":"history","weekday":"Tue"},{"best_hours":0.08,"best_label":"good","best_window":"03:45\u201303:50","dark_hours":4.94,"date":"2025-05-28","moon_free_dark_hours":4.92,"moon_illumination":5,"moon_separation":66.5,"score":13,"score_astronomy":15,"score_weather":89,"transit_alt":89.5,"transit_local":"09:35","verdict":"poor","weather_source":"history","weekday":"Wed"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":4.9,"date":"2025-05-29","moon_free_dark_hours":4.0,"moon_illumination":11,"moon_separation":78.6,"score":0,"score_astronomy":16,"score_weather":0,"transit_alt":89.5,"transit_local":"09:35","verdict":"unusable","weather_source":"history","weekday":"Thu"},{"best_hours":0.25,"best_label":"marginal","best_window":"03:30\u201303:45","dark_hours":4.86,"date":"2025-05-30","moon_free_dark_hours":3.25,"moon_illumination":19,"moon_separation":90.5,"score":5,"score_astronomy":17,"score_weather":30,"transit_alt":89.7,"transit_local":"09:30","verdict":"poor","weather_source":"history","weekday":"Fri"},{"best_hours":0.08,"best_label":"good","best_window":"03:40\u201303:45","dark_hours":4.82,"date":"2025-05-31","moon_free_dark_hours":2.68,"moon_illumination":28,"moon_separation":102.1,"score":16,"score_astronomy":18,"score_weather":88,"transit_alt":89.7,"transit_local":"09:25","verdict":"poor","weather_source":"history","weekday":"Sat"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":4.79,"date":"2025-06-01","moon_free_dark_hours":2.23,"moon_illumination":38,"moon_separation":113.0,"score":1,"score_astronomy":19,"score_weather":4,"transit_alt":89.6,"transit_local":"09:20","verdict":"poor","weather_source":"history","weekday":"Sun"},{"best_hours":0.5,"best_label":"good","best_window":"03:15\u201303:45","dark_hours":4.75,"date":"2025-06-02","moon_free_dark_hours":1.85,"moon_illumination":48,"moon_separation":123.3,"score":21,"score_astronomy":21,"score_weather":100,"transit_alt":89.5,"transit_local":"09:15","verdict":"poor","weather_source":"history","weekday":"Mon"},{"best_hours":0.58,"best_label":"good","best_window":"03:10\u201303:45","dark_hours":4.72,"date":"2025-06-03","moon_free_dark_hours":1.52,"moon_illumination":58,"moon_separation":132.7,"score":23,"score_astronomy":23,"score_weather":100,"transit_alt":89.6,"transit_local":"09:15","verdict":"poor","weather_source":"history","weekday":"Tue"},{"best_hours":0.58,"best_label":"good","best_window":"03:05\u201303:40","dark_hours":4.69,"date":"2025-06-04","moon_free_dark_hours":1.2,"moon_illumination":67,"moon_separation":140.8,"score":23,"score_astronomy":23,"score_weather":100,"transit_alt":89.7,"transit_local":"09:10","verdict":"poor","weather_source":"history","weekday":"Wed"},{"best_hours":0.67,"best_label":"marginal","best_window":"03:00\u201303:40","dark_hours":4.65,"date":"2025-06-05","moon_free_dark_hours":0.88,"moon_illumination":76,"moon_separation":146.7,"score":12,"score_astronomy":24,"score_weather":51,"transit_alt":89.7,"transit_local":"09:05","verdict":"poor","weather_source":"history","weekday":"Thu"},{"best_hours":0.58,"best_label":"good","best_window":"03:05\u201303:40","dark_hours":4.63,"date":"2025-06-06","moon_free_dark_hours":0.53,"moon_illumination":83,"moon_separation":149.5,"score":24,"score_astronomy":24,"score_weather":100,"transit_alt":89.6,"transit_local":"09:00","verdict":"poor","weather_source":"history","weekday":"Fri"},{"best_hours":0.67,"best_label":"good","best_window":"03:00\u201303:40","dark_hours":4.6,"date":"2025-06-07","moon_free_dark_hours":0.15,"moon_illumination":90,"moon_separation":148.2,"score":25,"score_astronomy":25,"score_weather":100,"transit_alt":89.5,"transit_local":"09:00","verdict":"poor","weather_source":"history","weekday":"Sat"},{"best_hours":0.67,"best_label":"good","best_window":"03:00\u201303:40","dark_hours":4.57,"date":"2025-06-08","moon_free_dark_hours":0.0,"moon_illumination":95,"moon_separation":143.4,"score":24,"score_astronomy":24,"score_weather":100,"transit_alt":89.6,"transit_local":"08:55","verdict":"poor","weather_source":"history","weekday":"Sun"},{"best_hours":0.75,"best_label":"good","best_window":"02:55\u201303:40","dark_hours":4.55,"date":"2025-06-09","moon_free_dark_hours":0.0,"moon_illumination":98,"moon_separation":136.1,"score":23,"score_astronomy":24,"score_weather":97,"transit_alt":89.7,"transit_local":"08:50","verdict":"poor","weather_source":"history","weekday":"Mon"},{"best_hours":0.5,"best_label":"marginal","best_window":"03:10\u201303:40","dark_hours":4.53,"date":"2025-06-10","moon_free_dark_hours":0.0,"moon_illumination":100,"moon_separation":127.2,"score":10,"score_astronomy":25,"score_weather":39,"transit_alt":89.7,"transit_local":"08:45","verdict":"poor","weather_source":"history","weekday":"Tue"},{"best_hours":0.58,"best_label":"good","best_window":"03:05\u201303:40","dark_hours":4.51,"date":"2025-06-11","moon_free_dark_hours":0.0,"moon_illumination":100,"moon_separation":117.4,"score":23,"score_astronomy":25,"score_weather":90,"transit_alt":89.5,"transit_local":"08:40","verdict":"poor","weather_source":"history","weekday":"Wed"},{"best_hours":0.75,"best_label":"good","best_window":"02:55\u201303:40","dark_hours":4.49,"date":"2025-06-12","moon_free_dark_hours":0.0,"moon_illumination":97,"moon_separation":107.0,"score":23,"score_astronomy":23,"score_weather":100,"transit_alt":89.5,"transit_local":"08:40","verdict":"poor","weather_source":"history","weekday":"Thu"},{"best_hours":0.67,"best_label":"good","best_window":"03:00\u201303:40","dark_hours":4.47,"date":"2025-06-13","moon_free_dark_hours":0.2,"moon_illumination":93,"moon_separation":96.2,"score":20,"score_astronomy":22,"score_weather":93,"transit_alt":89.7,"transit_local":"08:35","verdict":"poor","weather_source":"history","weekday":"Fri"},{"best_hours":1.67,"best_label":"marginal","best_window":"02:00\u201303:40","dark_hours":4.46,"date":"2025-06-14","moon_free_dark_hours":0.78,"moon_illumination":87,"moon_separation":85.2,"score":15,"score_astronomy":20,"score_weather":74,"transit_alt":89.7,"transit_local":"08:30","verdict":"poor","weather_source":"history","weekday":"Sat"},{"best_hours":1.67,"best_label":"marginal","best_window":"02:00\u201303:40","dark_hours":4.45,"date":"2025-06-15","moon_free_dark_hours":1.25,"moon_illumination":79,"moon_separation":74.0,"score":19,"score_astronomy":20,"score_weather":94,"transit_alt":89.6,"transit_local":"08:25","verdict":"poor","weather_source":"history","weekday":"Sun"},{"best_hours":0.42,"best_label":"good","best_window":"03:15\u201303:40","dark_hours":4.44,"date":"2025-06-16","moon_free_dark_hours":1.67,"moon_illumination":70,"moon_separation":62.9,"score":20,"score_astronomy":20,"score_weather":100,"transit_alt":89.5,"transit_local":"08:20","verdict":"poor","weather_source":"history","weekday":"Mon"},{"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"}],"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-05-20","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}}
