{"calculation_version":"2026-10-10.1","days":30,"nights":[{"best_hours":1.08,"best_label":"good","best_window":"19:45\u201320:50","dark_hours":9.78,"date":"2030-02-26","moon_free_dark_hours":8.03,"moon_illumination":30,"moon_separation":110.6,"score":null,"score_astronomy":29,"score_weather":null,"transit_alt":89.7,"transit_local":"14:40","verdict":"unknown","weather_source":"none","weekday":"Tue"},{"best_hours":1.0,"best_label":"good","best_window":"19:45\u201320:45","dark_hours":9.74,"date":"2030-02-27","moon_free_dark_hours":8.78,"moon_illumination":20,"moon_separation":98.7,"score":null,"score_astronomy":28,"score_weather":null,"transit_alt":89.7,"transit_local":"14:35","verdict":"unknown","weather_source":"none","weekday":"Wed"},{"best_hours":0.92,"best_label":"good","best_window":"19:45\u201320:40","dark_hours":9.69,"date":"2030-02-28","moon_free_dark_hours":9.4,"moon_illumination":12,"moon_separation":86.8,"score":null,"score_astronomy":26,"score_weather":null,"transit_alt":89.6,"transit_local":"14:30","verdict":"unknown","weather_source":"none","weekday":"Thu"},{"best_hours":0.83,"best_label":"good","best_window":"19:45\u201320:35","dark_hours":9.65,"date":"2030-03-01","moon_free_dark_hours":9.63,"moon_illumination":6,"moon_separation":75.2,"score":null,"score_astronomy":25,"score_weather":null,"transit_alt":89.5,"transit_local":"14:30","verdict":"unknown","weather_source":"none","weekday":"Fri"},{"best_hours":0.83,"best_label":"good","best_window":"19:45\u201320:35","dark_hours":9.6,"date":"2030-03-02","moon_free_dark_hours":9.58,"moon_illumination":2,"moon_separation":63.9,"score":null,"score_astronomy":23,"score_weather":null,"transit_alt":89.7,"transit_local":"14:25","verdict":"unknown","weather_source":"none","weekday":"Sat"},{"best_hours":0.67,"best_label":"good","best_window":"19:50\u201320:30","dark_hours":9.55,"date":"2030-03-03","moon_free_dark_hours":9.55,"moon_illumination":0,"moon_separation":53.2,"score":null,"score_astronomy":21,"score_weather":null,"transit_alt":89.7,"transit_local":"14:20","verdict":"unknown","weather_source":"none","weekday":"Sun"},{"best_hours":0.58,"best_label":"good","best_window":"19:50\u201320:25","dark_hours":9.51,"date":"2030-03-04","moon_free_dark_hours":9.48,"moon_illumination":1,"moon_separation":43.6,"score":null,"score_astronomy":20,"score_weather":null,"transit_alt":89.7,"transit_local":"14:15","verdict":"unknown","weather_source":"none","weekday":"Mon"},{"best_hours":0.5,"best_label":"good","best_window":"19:50\u201320:20","dark_hours":9.46,"date":"2030-03-05","moon_free_dark_hours":9.43,"moon_illumination":3,"moon_separation":35.7,"score":null,"score_astronomy":18,"score_weather":null,"transit_alt":89.5,"transit_local":"14:10","verdict":"unknown","weather_source":"none","weekday":"Tue"},{"best_hours":0.42,"best_label":"good","best_window":"19:50\u201320:15","dark_hours":9.41,"date":"2030-03-06","moon_free_dark_hours":8.52,"moon_illumination":7,"moon_separation":30.5,"score":null,"score_astronomy":15,"score_weather":null,"transit_alt":89.6,"transit_local":"14:10","verdict":"unknown","weather_source":"none","weekday":"Wed"},{"best_hours":0.17,"best_label":"good","best_window":"19:55\u201320:05","dark_hours":9.37,"date":"2030-03-07","moon_free_dark_hours":7.47,"moon_illumination":13,"moon_separation":29.4,"score":null,"score_astronomy":11,"score_weather":null,"transit_alt":89.7,"transit_local":"14:05","verdict":"unknown","weather_source":"none","weekday":"Thu"},{"best_hours":1.33,"best_label":"marginal","best_window":"19:20\u201320:40","dark_hours":9.32,"date":"2030-03-08","moon_free_dark_hours":6.43,"moon_illumination":20,"moon_separation":32.6,"score":null,"score_astronomy":9,"score_weather":null,"transit_alt":89.7,"transit_local":"14:00","verdict":"unknown","weather_source":"none","weekday":"Fri"},{"best_hours":0.75,"best_label":"marginal","best_window":"19:55\u201320:40","dark_hours":9.27,"date":"2030-03-09","moon_free_dark_hours":5.45,"moon_illumination":28,"moon_separation":39.0,"score":null,"score_astronomy":7,"score_weather":null,"transit_alt":89.6,"transit_local":"13:55","verdict":"unknown","weather_source":"none","weekday":"Sat"},{"best_hours":0.67,"best_label":"marginal","best_window":"19:55\u201320:35","dark_hours":9.22,"date":"2030-03-10","moon_free_dark_hours":4.48,"moon_illumination":37,"moon_separation":47.2,"score":null,"score_astronomy":6,"score_weather":null,"transit_alt":89.5,"transit_local":"13:55","verdict":"unknown","weather_source":"none","weekday":"Sun"},{"best_hours":0.5,"best_label":"marginal","best_window":"20:00\u201320:30","dark_hours":9.17,"date":"2030-03-11","moon_free_dark_hours":3.58,"moon_illumination":46,"moon_separation":56.4,"score":null,"score_astronomy":4,"score_weather":null,"transit_alt":89.6,"transit_local":"13:50","verdict":"unknown","weather_source":"none","weekday":"Mon"},{"best_hours":0.42,"best_label":"marginal","best_window":"20:00\u201320:25","dark_hours":9.12,"date":"2030-03-12","moon_free_dark_hours":2.77,"moon_illumination":56,"moon_separation":66.4,"score":null,"score_astronomy":3,"score_weather":null,"transit_alt":89.7,"transit_local":"13:45","verdict":"unknown","weather_source":"none","weekday":"Tue"},{"best_hours":0.33,"best_label":"marginal","best_window":"20:00\u201320:20","dark_hours":9.07,"date":"2030-03-13","moon_free_dark_hours":2.03,"moon_illumination":65,"moon_separation":76.8,"score":null,"score_astronomy":3,"score_weather":null,"transit_alt":89.7,"transit_local":"13:40","verdict":"unknown","weather_source":"none","weekday":"Wed"},{"best_hours":0.25,"best_label":"marginal","best_window":"20:00\u201320:15","dark_hours":9.02,"date":"2030-03-14","moon_free_dark_hours":1.35,"moon_illumination":74,"moon_separation":87.7,"score":null,"score_astronomy":2,"score_weather":null,"transit_alt":89.6,"transit_local":"13:35","verdict":"unknown","weather_source":"none","weekday":"Thu"},{"best_hours":0.17,"best_label":"marginal","best_window":"20:05\u201320:15","dark_hours":8.97,"date":"2030-03-15","moon_free_dark_hours":0.75,"moon_illumination":83,"moon_separation":99.0,"score":null,"score_astronomy":2,"score_weather":null,"transit_alt":89.5,"transit_local":"13:35","verdict":"unknown","weather_source":"none","weekday":"Fri"},{"best_hours":0.08,"best_label":"marginal","best_window":"20:05\u201320:10","dark_hours":8.92,"date":"2030-03-16","moon_free_dark_hours":0.2,"moon_illumination":90,"moon_separation":110.4,"score":null,"score_astronomy":2,"score_weather":null,"transit_alt":89.7,"transit_local":"13:30","verdict":"unknown","weather_source":"none","weekday":"Sat"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":8.87,"date":"2030-03-17","moon_free_dark_hours":0.0,"moon_illumination":96,"moon_separation":121.9,"score":null,"score_astronomy":1,"score_weather":null,"transit_alt":89.7,"transit_local":"13:25","verdict":"unknown","weather_source":"none","weekday":"Sun"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":8.82,"date":"2030-03-18","moon_free_dark_hours":0.0,"moon_illumination":99,"moon_separation":133.0,"score":null,"score_astronomy":1,"score_weather":null,"transit_alt":89.7,"transit_local":"13:20","verdict":"unknown","weather_source":"none","weekday":"Mon"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":8.77,"date":"2030-03-19","moon_free_dark_hours":0.0,"moon_illumination":100,"moon_separation":142.7,"score":null,"score_astronomy":1,"score_weather":null,"transit_alt":89.5,"transit_local":"13:15","verdict":"unknown","weather_source":"none","weekday":"Tue"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":8.72,"date":"2030-03-20","moon_free_dark_hours":0.0,"moon_illumination":98,"moon_separation":149.3,"score":null,"score_astronomy":1,"score_weather":null,"transit_alt":89.6,"transit_local":"13:15","verdict":"unknown","weather_source":"none","weekday":"Wed"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":8.67,"date":"2030-03-21","moon_free_dark_hours":1.0,"moon_illumination":93,"moon_separation":150.2,"score":null,"score_astronomy":1,"score_weather":null,"transit_alt":89.7,"transit_local":"13:10","verdict":"unknown","weather_source":"none","weekday":"Thu"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":8.62,"date":"2030-03-22","moon_free_dark_hours":2.22,"moon_illumination":86,"moon_separation":145.0,"score":null,"score_astronomy":0,"score_weather":null,"transit_alt":89.7,"transit_local":"13:05","verdict":"unknown","weather_source":"none","weekday":"Fri"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":8.56,"date":"2030-03-23","moon_free_dark_hours":3.42,"moon_illumination":77,"moon_separation":135.8,"score":null,"score_astronomy":0,"score_weather":null,"transit_alt":89.6,"transit_local":"13:00","verdict":"unknown","weather_source":"none","weekday":"Sat"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":8.51,"date":"2030-03-24","moon_free_dark_hours":4.5,"moon_illumination":66,"moon_separation":124.8,"score":null,"score_astronomy":0,"score_weather":null,"transit_alt":89.5,"transit_local":"13:00","verdict":"unknown","weather_source":"none","weekday":"Sun"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":8.46,"date":"2030-03-25","moon_free_dark_hours":5.45,"moon_illumination":55,"moon_separation":113.1,"score":null,"score_astronomy":0,"score_weather":null,"transit_alt":89.6,"transit_local":"12:55","verdict":"unknown","weather_source":"none","weekday":"Mon"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":8.41,"date":"2030-03-26","moon_free_dark_hours":6.22,"moon_illumination":44,"moon_separation":101.3,"score":null,"score_astronomy":0,"score_weather":null,"transit_alt":89.7,"transit_local":"12:50","verdict":"unknown","weather_source":"none","weekday":"Tue"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":8.35,"date":"2030-03-27","moon_free_dark_hours":6.87,"moon_illumination":34,"moon_separation":89.5,"score":null,"score_astronomy":0,"score_weather":null,"transit_alt":89.7,"transit_local":"12:45","verdict":"unknown","weather_source":"none","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":"2030-02-26","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}}
