Why so silent?
I haven't posted in a while because, well, we've been working on the code! You can see the progress in our GitHub repository, where I've made a few big contributions over the past few weeks in pull requests 11 and 14. Most of the discussion about the development of the core functionality of astroplan is in those pull requests.
Quick Tutorial: observation planning basics
Say you're going to observe sometime in the near future, and you need to figure out: the time of sunrise and sunset, the altitude of your target at a particular time from your observatory, and when the target next transits the meridian. Let's use Vega as our target and Mauna Kea as the location of our observatory, and use astroplan to find the answers:
from astropy.coordinates import EarthLocation from astropy.time import Time from astroplan import Observer, FixedTarget import astropy.units as u # Initialize Observer object at the location of Keck keck = EarthLocation.from_geodetic('204d31m18s', '19d49m42s', 4160) obs = Observer(location=keck, timezone='US/Hawaii') # Initialize FixedTarget object for Vega using from_name vega = FixedTarget.from_name('Vega') # Pick the time of our observations in UTC time = Time('2015-07-09 03:00:00') # Calculate the time Vega rises above 30 degress: next_rise_vega = obs.calc_rise(time, vega, horizon=30*u.deg) print('Vega rises: {0} [ISO] = {1} [JD]'.format(next_rise_vega.iso, next_rise_vega.jd))The above code returns:
Vega rises: 2015-07-09 05:24:22.732 [ISO] = 2457212.72526 [JD]The time at next rise is an astropy Time object, so it's easy to convert it to other units. Now let's do the rest of the calculations:
# Calculate time of sunrise, sunset previous_sunset = obs.sunset(time, which='previous') next_sunrise = obs.sunrise(time, which='next') print('Previous sunset: {}'.format(previous_sunset.iso)) print('Next sunrise: {}'.format(next_sunrise.iso)) # Is Vega up at the present time? vega_visible = obs.can_see(time, vega) print('Is Vega up?: {}'.format(vega_visible)) # When will Vega next transit the meridian? next_transit = obs.calc_meridian_transit(time, vega, which='next') print("Vega's next transit: {}".format(next_transit.iso))
prints the following:
Previous sunset: 2015-07-08 05:02:09.435 Next sunrise: 2015-07-09 15:53:53.525 Is Vega up?: True Vega's next transit: 2015-07-09 09:51:18.800Now let's say you need a half-night of observations. What are the times of astronomical sunrise/sunset and midnight?
# Sunrise/sunset at astronomical twilight, nearest midnight: set_astro = obs.evening_astronomical(time, which='previous') rise_astro = obs.morning_astronomical(time, which='next') midnight = obs.midnight(time) print('Astronomical sunset: {}'.format(set_astro.iso)) print('Astronomical sunrise: {}'.format(rise_astro.iso)) print('Midnight: {}'.format(midnight.iso))which prints:
Astronomical sunset: 2015-07-08 06:29:05.259 Astronomical sunrise: 2015-07-09 14:27:05.156 Midnight: 2015-07-09 10:27:59.015You can also view this code in an iPython Notebook here.