{"calculation_version":"2026-10-10.1","days":30,"nights":[{"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"},{"best_hours":1.67,"best_label":"marginal","best_window":"19:40\u201321:20","dark_hours":9.86,"date":"2029-02-24","moon_free_dark_hours":0.9,"moon_illumination":82,"moon_separation":80.2,"score":null,"score_astronomy":14,"score_weather":null,"transit_alt":89.6,"transit_local":"14:45","verdict":"unknown","weather_source":"none","weekday":"Sat"},{"best_hours":2.17,"best_label":"marginal","best_window":"19:10\u201321:20","dark_hours":9.81,"date":"2029-02-25","moon_free_dark_hours":0.23,"moon_illumination":89,"moon_separation":92.4,"score":null,"score_astronomy":16,"score_weather":null,"transit_alt":89.5,"transit_local":"14:45","verdict":"unknown","weather_source":"none","weekday":"Sun"},{"best_hours":0.58,"best_label":"good","best_window":"19:45\u201320:20","dark_hours":9.77,"date":"2029-02-26","moon_free_dark_hours":0.0,"moon_illumination":95,"moon_separation":105.0,"score":null,"score_astronomy":18,"score_weather":null,"transit_alt":89.7,"transit_local":"14:40","verdict":"unknown","weather_source":"none","weekday":"Mon"},{"best_hours":0.75,"best_label":"good","best_window":"19:45\u201320:30","dark_hours":9.72,"date":"2029-02-27","moon_free_dark_hours":0.0,"moon_illumination":99,"moon_separation":117.6,"score":null,"score_astronomy":20,"score_weather":null,"transit_alt":89.7,"transit_local":"14:35","verdict":"unknown","weather_source":"none","weekday":"Tue"},{"best_hours":0.75,"best_label":"good","best_window":"19:45\u201320:30","dark_hours":9.68,"date":"2029-02-28","moon_free_dark_hours":0.0,"moon_illumination":100,"moon_separation":129.9,"score":null,"score_astronomy":21,"score_weather":null,"transit_alt":89.7,"transit_local":"14:30","verdict":"unknown","weather_source":"none","weekday":"Wed"},{"best_hours":0.67,"best_label":"good","best_window":"19:45\u201320:25","dark_hours":9.63,"date":"2029-03-01","moon_free_dark_hours":0.0,"moon_illumination":98,"moon_separation":140.9,"score":null,"score_astronomy":21,"score_weather":null,"transit_alt":89.5,"transit_local":"14:25","verdict":"unknown","weather_source":"none","weekday":"Thu"},{"best_hours":0.67,"best_label":"good","best_window":"19:50\u201320:30","dark_hours":9.59,"date":"2029-03-02","moon_free_dark_hours":1.1,"moon_illumination":92,"moon_separation":149.0,"score":null,"score_astronomy":22,"score_weather":null,"transit_alt":89.6,"transit_local":"14:25","verdict":"unknown","weather_source":"none","weekday":"Fri"},{"best_hours":0.67,"best_label":"good","best_window":"19:50\u201320:30","dark_hours":9.54,"date":"2029-03-03","moon_free_dark_hours":2.38,"moon_illumination":85,"moon_separation":151.5,"score":null,"score_astronomy":21,"score_weather":null,"transit_alt":89.7,"transit_local":"14:20","verdict":"unknown","weather_source":"none","weekday":"Sat"},{"best_hours":0.58,"best_label":"good","best_window":"19:50\u201320:25","dark_hours":9.5,"date":"2029-03-04","moon_free_dark_hours":3.65,"moon_illumination":76,"moon_separation":147.4,"score":null,"score_astronomy":19,"score_weather":null,"transit_alt":89.7,"transit_local":"14:15","verdict":"unknown","weather_source":"none","weekday":"Sun"},{"best_hours":0.5,"best_label":"good","best_window":"19:50\u201320:20","dark_hours":9.45,"date":"2029-03-05","moon_free_dark_hours":4.87,"moon_illumination":65,"moon_separation":139.0,"score":null,"score_astronomy":18,"score_weather":null,"transit_alt":89.6,"transit_local":"14:10","verdict":"unknown","weather_source":"none","weekday":"Mon"},{"best_hours":0.42,"best_label":"good","best_window":"19:50\u201320:15","dark_hours":9.4,"date":"2029-03-06","moon_free_dark_hours":5.95,"moon_illumination":54,"moon_separation":128.7,"score":null,"score_astronomy":16,"score_weather":null,"transit_alt":89.5,"transit_local":"14:05","verdict":"unknown","weather_source":"none","weekday":"Tue"},{"best_hours":0.25,"best_label":"good","best_window":"19:55\u201320:10","dark_hours":9.35,"date":"2029-03-07","moon_free_dark_hours":6.88,"moon_illumination":44,"moon_separation":117.7,"score":null,"score_astronomy":13,"score_weather":null,"transit_alt":89.6,"transit_local":"14:05","verdict":"unknown","weather_source":"none","weekday":"Wed"},{"best_hours":0.25,"best_label":"good","best_window":"19:55\u201320:10","dark_hours":9.31,"date":"2029-03-08","moon_free_dark_hours":7.65,"moon_illumination":33,"moon_separation":106.5,"score":null,"score_astronomy":12,"score_weather":null,"transit_alt":89.7,"transit_local":"14:00","verdict":"unknown","weather_source":"none","weekday":"Thu"},{"best_hours":0.17,"best_label":"good","best_window":"19:55\u201320:05","dark_hours":9.26,"date":"2029-03-09","moon_free_dark_hours":8.28,"moon_illumination":24,"moon_separation":95.3,"score":null,"score_astronomy":10,"score_weather":null,"transit_alt":89.7,"transit_local":"13:55","verdict":"unknown","weather_source":"none","weekday":"Fri"},{"best_hours":0.08,"best_label":"good","best_window":"19:55\u201320:00","dark_hours":9.21,"date":"2029-03-10","moon_free_dark_hours":8.8,"moon_illumination":16,"moon_separation":84.3,"score":null,"score_astronomy":9,"score_weather":null,"transit_alt":89.6,"transit_local":"13:50","verdict":"unknown","weather_source":"none","weekday":"Sat"},{"best_hours":0.5,"best_label":"marginal","best_window":"20:00\u201320:30","dark_hours":9.16,"date":"2029-03-11","moon_free_dark_hours":9.15,"moon_illumination":10,"moon_separation":73.5,"score":null,"score_astronomy":7,"score_weather":null,"transit_alt":89.5,"transit_local":"13:50","verdict":"unknown","weather_source":"none","weekday":"Sun"},{"best_hours":0.42,"best_label":"marginal","best_window":"20:00\u201320:25","dark_hours":9.11,"date":"2029-03-12","moon_free_dark_hours":9.1,"moon_illumination":5,"moon_separation":63.1,"score":null,"score_astronomy":6,"score_weather":null,"transit_alt":89.6,"transit_local":"13:45","verdict":"unknown","weather_source":"none","weekday":"Mon"},{"best_hours":0.33,"best_label":"marginal","best_window":"20:00\u201320:20","dark_hours":9.06,"date":"2029-03-13","moon_free_dark_hours":9.03,"moon_illumination":2,"moon_separation":53.1,"score":null,"score_astronomy":5,"score_weather":null,"transit_alt":89.7,"transit_local":"13:40","verdict":"unknown","weather_source":"none","weekday":"Tue"},{"best_hours":0.33,"best_label":"marginal","best_window":"20:00\u201320:20","dark_hours":9.01,"date":"2029-03-14","moon_free_dark_hours":9.0,"moon_illumination":0,"moon_separation":44.0,"score":null,"score_astronomy":4,"score_weather":null,"transit_alt":89.7,"transit_local":"13:35","verdict":"unknown","weather_source":"none","weekday":"Wed"},{"best_hours":0.17,"best_label":"marginal","best_window":"20:05\u201320:15","dark_hours":8.96,"date":"2029-03-15","moon_free_dark_hours":8.95,"moon_illumination":1,"moon_separation":36.1,"score":null,"score_astronomy":3,"score_weather":null,"transit_alt":89.5,"transit_local":"13:30","verdict":"unknown","weather_source":"none","weekday":"Thu"},{"best_hours":0.08,"best_label":"marginal","best_window":"20:05\u201320:10","dark_hours":8.91,"date":"2029-03-16","moon_free_dark_hours":8.9,"moon_illumination":3,"moon_separation":30.5,"score":null,"score_astronomy":3,"score_weather":null,"transit_alt":89.5,"transit_local":"13:30","verdict":"unknown","weather_source":"none","weekday":"Fri"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":8.86,"date":"2029-03-17","moon_free_dark_hours":7.98,"moon_illumination":7,"moon_separation":28.6,"score":null,"score_astronomy":1,"score_weather":null,"transit_alt":89.7,"transit_local":"13:25","verdict":"unknown","weather_source":"none","weekday":"Sat"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":8.81,"date":"2029-03-18","moon_free_dark_hours":6.95,"moon_illumination":12,"moon_separation":30.9,"score":null,"score_astronomy":1,"score_weather":null,"transit_alt":89.7,"transit_local":"13:20","verdict":"unknown","weather_source":"none","weekday":"Sun"}],"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-02-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}}
