Error in obtaining twilight time for site
- Dominant language
- Python
- Stars
- 225
- Forks
- 121
- Avg merge
- 28m
- Merged PRs (30d)
- 1
Description
I've found that issues #464 and #533 present a similar problem.
I'm using astroplan version `0.10.1`
I'm running the following code for testing:
```python
import astropy.units as u
from astropy.time import Time
from astropy.coordinates import EarthLocation
from astroplan import Observer
observatory = 'SOAR Telescope'
geodetic_location = ['-70d44m01.11s', '-30d14m16.41s', 2748]
longitude = geodetic_location[0]
latitude = geodetic_location[1]
elevation = geodetic_location[2]
timezone = 'UTC'
description = 'Soar Telescope on Cerro Pachon, Chile'
soar_loc = EarthLocation.from_geodetic(
longitude,
latitude,
elevation * u.m,
ellipsoid='WGS84')
soar = Observer(name=observatory,
location=soar_loc,
timezone=timezone,
description=description)
date_obs = [
'2024-12-08T19:12:58.281',
'2024-12-08T19:14:00.814',
'2024-12-08T19:14:13.016',
'2024-12-08T19:14:25.218',
'2024-12-08T19:14:37.423',
'2024-12-08T19:14:49.627',
'2024-12-08T19:15:01.826',
'2024-12-08T19:15:14.025',
'2024-12-08T19:15:26.223',
'2024-12-08T19:15:38.421',
'2024-12-08T19:15:50.620',
'2024-12-08T19:16:02.819',
'2024-12-08T19:26:51.024',
'2024-12-08T19:27:01.016',
'2024-12-08T19:27:10.980',
'2024-12-08T19:27:20.945',
'2024-12-08T19:27:30.939',
'2024-12-08T19:27:40.904',
'2024-12-08T19:27:50.873',
'2024-12-08T19:28:00.841',
'2024-12-08T19:28:10.807',
'2024-12-08T19:28:20.773',
'2024-12-08T19:31:11.133',
'2024-12-08T19:32:03.088',
'2024-12-08T19:32:14.580',
'2024-12-08T19:32:26.074',
'2024-12-08T19:32:37.592',
'2024-12-08T19:32:49.092',
'2024-12-08T19:33:00.585',
'2024-12-08T19:33:12.073',
'2024-12-08T19:33:23.569',
'2024-12-08T19:33:35.067',
'2024-12-08T19:35:16.249',
'2024-12-08T19:37:07.451',
'2024-12-08T19:39:44.707',
'2024-12-08T19:41:30.004',
'2024-12-08T19:41:55.606',
'2024-12-08T19:44:42.483',
'2024-12-08T19:45:43.977',
'2024-12-08T19:45:59.987',
'2024-12-08T19:46:15.949',
'2024-12-08T19:46:31.938',
'2024-12-08T19:46:47.928',
'2024-12-08T19:47:03.930',
'2024-12-08T19:47:19.913',
'2024-12-08T19:47:35.907',
'2024-12-08T19:47:51.902',
'2024-12-08T19:48:07.926',
'2024-12-09T00:36:05.258',
'2024-12-09T00:42:48.890',
'2024-12-09T00:45:59.575',
'2024-12-09T00:49:47.609',
'2024-12-09T00:51:15.288',
'2024-12-09T00:54:38.605',
'2024-12-09T01:02:21.778',
'2024-12-09T01:13:07.968',
'2024-12-09T01:23:34.241',
'2024-12-09T01:35:06.785',
'2024-12-09T01:43:37.992',
'2024-12-09T01:45:02.019',
'2024-12-09T02:04:56.958',
'2024-12-09T02:15:06.920',
'2024-12-09T02:26:06.814',
'2024-12-09T02:32:23.438',
'2024-12-09T02:42:33.399',
'2024-12-09T02:52:43.364',
'2024-12-09T03:03:35.575',
'2024-12-09T03:09:17.902',
'2024-12-09T03:15:02.153',
'2024-12-09T03:20:44.887',
'2024-12-09T03:32:59.756',
'2024-12-09T03:38:22.151',
'2024-12-09T03:44:21.035',
'2024-12-09T03:50:33.126',
'2024-12-09T03:55:54.897',
'2024-12-09T04:01:39.901',
'2024-12-09T04:07:31.277',
'2024-12-09T04:17:57.604',
'2024-12-09T04:19:47.582',
'2024-12-09T04:22:57.544',
'2024-12-09T04:31:11.036',
'2024-12-09T04:41:21.359',
'2024-12-09T04:51:37.185',
'2024-12-09T05:02:19.628',
'2024-12-09T05:08:44.461',
'2024-12-09T05:18:54.425',
'2024-12-09T05:29:43.797',
'2024-12-09T05:35:50.238',
'2024-12-09T05:46:00.214',
'2024-12-09T05:56:16.908',
'2024-12-09T06:07:08.788',
'2024-12-09T06:10:44.439',
'2024-12-09T06:11:54.360',
'2024-12-09T06:12:44.865',
'2024-12-09T06:21:21.403',
'2024-12-09T06:26:31.429',
'2024-12-09T06:32:43.745',
'2024-12-09T06:38:25.124',
'2024-12-09T06:43:51.164',
'2024-12-09T06:49:01.142',
'2024-12-09T06:54:58.791',
'2024-12-09T07:03:49.460',
'2024-12-09T07:08:59.467',
'2024-12-09T07:14:41.059',
'2024-12-09T07:25:59.400',
'2024-12-09T07:36:09.377',
'2024-12-09T07:46:19.382',
'2024-12-09T07:58:00.468',
'2024-12-09T07:59:00.468']
for _t in date_obs:
print(f"{Time(_t)} Evening: {soar.twilight_evening_astronomical(Time(_t), which='nearest').isot} Morning: {soar.twilight_morning_astronomical(Time(_t), which='nearest').isot}")
```
And I obtain the following output, I removed some of them for brevity:
```
2024-12-08T19:12:58.281 Evening: 2024-12-09T01:12:33.691 Morning: 2024-12-08T07:57:58.333
2024-12-08T19:14:00.814 Evening: 2024-12-09T01:12:33.739 Morning: 2024-12-08T07:57:58.146
...
...
2024-12-09T00:51:15.288 Evening: 2024-12-09T01:12:33.764 Morning: 2024-12-09T07:57:59.287
2024-12-09T00:54:38.605 Evening: 2024-12-09T01:12:33.682 Morning: 2024-12-09T07:57:59.567
2024-12-09T01:02:21.778 Evening: 2024-12-09T01:12:33.505 Morning: 2024-12-09T07:57:59.343
2024-12-09T01:13:07.968 Evening: ——— Morning: 2024-12-09T07:57:59.620
2024-12-09T01:23:34.241 Evening: 2024-12-09T01:12:33.691 Morning: 2024-12-09T07:57:59.560
2024-12-09T01:35:06.785 Evening: 2024-12-09T01:12:33.718 Morning: 2024-12-09T07:57:59.270
2024-12-09T01:43:37.992 Evening: 2024-12-09T01:12:33.774 Morning: 2024-12-09T07:57:59.368
2024-12-09T01:45:02.019 Evening: 2024-12-09T01:12:33.672 Morning: 2024-12-09T07:57:59.278
...
...
2024-12-09T07:36:09.377 Evening: 2024-12-09T01:12:33.771 Morning: 2024-12-09T07:57:59.298
2024-12-09T07:46:19.382 Evening: 2024-12-09T01:12:33.689 Morning: 2024-12-09T07:57:59.309
2024-12-09T07:58:00.468 Evening: 2024-12-09T01:12:33.629 Morning: ———
2024-12-09T07:59:00.468 Evening: 2024-12-09T01:12:33.791 Morning: 2024-12-09T07:57:59.451
```
There are these two points where the output is not correct, they seem to be random, in my application I use the first and the last value to get the corresponding twilight for evening and morning. In this case the last value was failing so I just copied it and added one minute and a a proper value is obtained.
Thanks in advance!
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by running the supplied reproducer with astroplan 0.10.1 and inspect Observer.twilight_evening_astronomical and Observer.twilight_morning_astronomical, especially with which='nearest'. Compare the boundary timestamps that produce a missing value or an apparently wrong date with nearby inputs. Done means these twilight lookups return consistent, correct results at the reported evening and morning boundaries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100