{"calculation_version":"2026-10-10.1","days":30,"nights":[{"best_hours":3.92,"best_label":"marginal","best_window":"19:05\u201323:00","dark_hours":10.96,"date":"2029-01-25","moon_free_dark_hours":1.73,"moon_illumination":79,"moon_separation":51.1,"score":null,"score_astronomy":26,"score_weather":null,"transit_alt":89.7,"transit_local":"16:45","verdict":"unknown","weather_source":"none","weekday":"Thu"},{"best_hours":3.75,"best_label":"marginal","best_window":"19:10\u201322:55","dark_hours":10.94,"date":"2029-01-26","moon_free_dark_hours":0.78,"moon_illumination":87,"moon_separation":61.8,"score":null,"score_astronomy":27,"score_weather":null,"transit_alt":89.7,"transit_local":"16:40","verdict":"unknown","weather_source":"none","weekday":"Fri"},{"best_hours":0.08,"best_label":"good","best_window":"19:10\u201319:15","dark_hours":10.91,"date":"2029-01-27","moon_free_dark_hours":0.0,"moon_illumination":93,"moon_separation":73.3,"score":null,"score_astronomy":33,"score_weather":null,"transit_alt":89.6,"transit_local":"16:35","verdict":"unknown","weather_source":"none","weekday":"Sat"},{"best_hours":1.25,"best_label":"good","best_window":"19:10\u201320:25","dark_hours":10.88,"date":"2029-01-28","moon_free_dark_hours":0.0,"moon_illumination":98,"moon_separation":85.5,"score":null,"score_astronomy":42,"score_weather":null,"transit_alt":89.5,"transit_local":"16:35","verdict":"unknown","weather_source":"none","weekday":"Sun"},{"best_hours":2.5,"best_label":"good","best_window":"19:10\u201321:40","dark_hours":10.84,"date":"2029-01-29","moon_free_dark_hours":0.0,"moon_illumination":100,"moon_separation":98.0,"score":null,"score_astronomy":52,"score_weather":null,"transit_alt":89.7,"transit_local":"16:30","verdict":"unknown","weather_source":"none","weekday":"Mon"},{"best_hours":3.0,"best_label":"good","best_window":"19:10\u201322:10","dark_hours":10.81,"date":"2029-01-30","moon_free_dark_hours":0.0,"moon_illumination":99,"moon_separation":110.7,"score":null,"score_astronomy":64,"score_weather":null,"transit_alt":89.7,"transit_local":"16:25","verdict":"unknown","weather_source":"none","weekday":"Tue"},{"best_hours":3.0,"best_label":"good","best_window":"19:15\u201322:15","dark_hours":10.78,"date":"2029-01-31","moon_free_dark_hours":0.27,"moon_illumination":96,"moon_separation":123.1,"score":null,"score_astronomy":78,"score_weather":null,"transit_alt":89.7,"transit_local":"16:20","verdict":"unknown","weather_source":"none","weekday":"Wed"},{"best_hours":3.0,"best_label":"good","best_window":"19:15\u201322:15","dark_hours":10.75,"date":"2029-02-01","moon_free_dark_hours":1.5,"moon_illumination":90,"moon_separation":134.7,"score":null,"score_astronomy":79,"score_weather":null,"transit_alt":89.5,"transit_local":"16:15","verdict":"unknown","weather_source":"none","weekday":"Thu"},{"best_hours":3.0,"best_label":"good","best_window":"19:15\u201322:15","dark_hours":10.71,"date":"2029-02-02","moon_free_dark_hours":2.73,"moon_illumination":82,"moon_separation":144.6,"score":null,"score_astronomy":79,"score_weather":null,"transit_alt":89.6,"transit_local":"16:15","verdict":"unknown","weather_source":"none","weekday":"Fri"},{"best_hours":3.08,"best_label":"good","best_window":"19:15\u201322:20","dark_hours":10.68,"date":"2029-02-03","moon_free_dark_hours":3.98,"moon_illumination":72,"moon_separation":150.8,"score":null,"score_astronomy":78,"score_weather":null,"transit_alt":89.7,"transit_local":"16:10","verdict":"unknown","weather_source":"none","weekday":"Sat"},{"best_hours":2.92,"best_label":"good","best_window":"19:20\u201322:15","dark_hours":10.65,"date":"2029-02-04","moon_free_dark_hours":5.22,"moon_illumination":61,"moon_separation":151.0,"score":null,"score_astronomy":74,"score_weather":null,"transit_alt":89.7,"transit_local":"16:05","verdict":"unknown","weather_source":"none","weekday":"Sun"},{"best_hours":2.83,"best_label":"good","best_window":"19:20\u201322:10","dark_hours":10.61,"date":"2029-02-05","moon_free_dark_hours":6.42,"moon_illumination":50,"moon_separation":145.5,"score":null,"score_astronomy":73,"score_weather":null,"transit_alt":89.6,"transit_local":"16:00","verdict":"unknown","weather_source":"none","weekday":"Mon"},{"best_hours":2.75,"best_label":"good","best_window":"19:20\u201322:05","dark_hours":10.58,"date":"2029-02-06","moon_free_dark_hours":7.57,"moon_illumination":39,"moon_separation":136.7,"score":null,"score_astronomy":70,"score_weather":null,"transit_alt":89.5,"transit_local":"15:55","verdict":"unknown","weather_source":"none","weekday":"Tue"},{"best_hours":2.67,"best_label":"good","best_window":"19:20\u201322:00","dark_hours":10.54,"date":"2029-02-07","moon_free_dark_hours":8.58,"moon_illumination":28,"moon_separation":126.3,"score":null,"score_astronomy":68,"score_weather":null,"transit_alt":89.6,"transit_local":"15:55","verdict":"unknown","weather_source":"none","weekday":"Wed"},{"best_hours":2.67,"best_label":"good","best_window":"19:20\u201322:00","dark_hours":10.5,"date":"2029-02-08","moon_free_dark_hours":9.47,"moon_illumination":19,"moon_separation":115.3,"score":null,"score_astronomy":66,"score_weather":null,"transit_alt":89.7,"transit_local":"15:50","verdict":"unknown","weather_source":"none","weekday":"Thu"},{"best_hours":2.5,"best_label":"good","best_window":"19:25\u201321:55","dark_hours":10.47,"date":"2029-02-09","moon_free_dark_hours":10.2,"moon_illumination":12,"moon_separation":104.0,"score":null,"score_astronomy":62,"score_weather":null,"transit_alt":89.7,"transit_local":"15:45","verdict":"unknown","weather_source":"none","weekday":"Fri"},{"best_hours":2.42,"best_label":"good","best_window":"19:25\u201321:50","dark_hours":10.43,"date":"2029-02-10","moon_free_dark_hours":10.4,"moon_illumination":6,"moon_separation":92.8,"score":null,"score_astronomy":61,"score_weather":null,"transit_alt":89.6,"transit_local":"15:40","verdict":"unknown","weather_source":"none","weekday":"Sat"},{"best_hours":2.33,"best_label":"good","best_window":"19:25\u201321:45","dark_hours":10.39,"date":"2029-02-11","moon_free_dark_hours":10.37,"moon_illumination":2,"moon_separation":81.7,"score":null,"score_astronomy":59,"score_weather":null,"transit_alt":89.5,"transit_local":"15:40","verdict":"unknown","weather_source":"none","weekday":"Sun"},{"best_hours":2.33,"best_label":"good","best_window":"19:25\u201321:45","dark_hours":10.35,"date":"2029-02-12","moon_free_dark_hours":10.33,"moon_illumination":0,"moon_separation":70.9,"score":null,"score_astronomy":57,"score_weather":null,"transit_alt":89.7,"transit_local":"15:35","verdict":"unknown","weather_source":"none","weekday":"Mon"},{"best_hours":2.17,"best_label":"good","best_window":"19:30\u201321:40","dark_hours":10.31,"date":"2029-02-13","moon_free_dark_hours":10.3,"moon_illumination":0,"moon_separation":60.4,"score":null,"score_astronomy":53,"score_weather":null,"transit_alt":89.7,"transit_local":"15:30","verdict":"unknown","weather_source":"none","weekday":"Tue"},{"best_hours":2.08,"best_label":"good","best_window":"19:30\u201321:35","dark_hours":10.27,"date":"2029-02-14","moon_free_dark_hours":10.27,"moon_illumination":2,"moon_separation":50.5,"score":null,"score_astronomy":52,"score_weather":null,"transit_alt":89.7,"transit_local":"15:25","verdict":"unknown","weather_source":"none","weekday":"Wed"},{"best_hours":2.0,"best_label":"good","best_window":"19:30\u201321:30","dark_hours":10.23,"date":"2029-02-15","moon_free_dark_hours":9.62,"moon_illumination":6,"moon_separation":41.6,"score":null,"score_astronomy":48,"score_weather":null,"transit_alt":89.5,"transit_local":"15:20","verdict":"unknown","weather_source":"none","weekday":"Thu"},{"best_hours":1.92,"best_label":"good","best_window":"19:30\u201321:25","dark_hours":10.19,"date":"2029-02-16","moon_free_dark_hours":8.6,"moon_illumination":11,"moon_separation":34.2,"score":null,"score_astronomy":44,"score_weather":null,"transit_alt":89.6,"transit_local":"15:20","verdict":"unknown","weather_source":"none","weekday":"Fri"},{"best_hours":1.67,"best_label":"good","best_window":"19:35\u201321:15","dark_hours":10.15,"date":"2029-02-17","moon_free_dark_hours":7.6,"moon_illumination":18,"moon_separation":29.4,"score":null,"score_astronomy":37,"score_weather":null,"transit_alt":89.7,"transit_local":"15:15","verdict":"unknown","weather_source":"none","weekday":"Sat"},{"best_hours":1.5,"best_label":"good","best_window":"19:35\u201321:05","dark_hours":10.11,"date":"2029-02-18","moon_free_dark_hours":6.58,"moon_illumination":25,"moon_separation":28.6,"score":null,"score_astronomy":31,"score_weather":null,"transit_alt":89.7,"transit_local":"15:10","verdict":"unknown","weather_source":"none","weekday":"Sun"},{"best_hours":1.25,"best_label":"good","best_window":"19:35\u201320:50","dark_hours":10.07,"date":"2029-02-19","moon_free_dark_hours":5.53,"moon_illumination":34,"moon_separation":32.1,"score":null,"score_astronomy":25,"score_weather":null,"transit_alt":89.6,"transit_local":"15:05","verdict":"unknown","weather_source":"none","weekday":"Mon"},{"best_hours":0.42,"best_label":"good","best_window":"19:35\u201320:00","dark_hours":10.03,"date":"2029-02-20","moon_free_dark_hours":4.5,"moon_illumination":43,"moon_separation":38.8,"score":null,"score_astronomy":20,"score_weather":null,"transit_alt":89.5,"transit_local":"15:00","verdict":"unknown","weather_source":"none","weekday":"Tue"},{"best_hours":2.0,"best_label":"marginal","best_window":"19:35\u201321:35","dark_hours":9.99,"date":"2029-02-21","moon_free_dark_hours":3.48,"moon_illumination":53,"moon_separation":47.5,"score":null,"score_astronomy":17,"score_weather":null,"transit_alt":89.6,"transit_local":"15:00","verdict":"unknown","weather_source":"none","weekday":"Wed"},{"best_hours":1.75,"best_label":"marginal","best_window":"19:40\u201321:25","dark_hours":9.94,"date":"2029-02-22","moon_free_dark_hours":2.53,"moon_illumination":63,"moon_separation":57.6,"score":null,"score_astronomy":14,"score_weather":null,"transit_alt":89.7,"transit_local":"14:55","verdict":"unknown","weather_source":"none","weekday":"Thu"},{"best_hours":1.67,"best_label":"marginal","best_window":"19:40\u201321:20","dark_hours":9.9,"date":"2029-02-23","moon_free_dark_hours":1.67,"moon_illumination":73,"moon_separation":68.5,"score":null,"score_astronomy":13,"score_weather":null,"transit_alt":89.7,"transit_local":"14:50","verdict":"unknown","weather_source":"none","weekday":"Fri"}],"note":"score_astronomy for every night; score_weather/score only where a forecast (next 4 days) or ERA5 history exists \u2014 null otherwise","start":"2029-01-25","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}}
