In [1]:
# calculate sunrise, sunset, twilight for Subaru
from qplan.common import moon
from qplan.util.site import get_site
subaru = get_site('subaru')

In [2]:
t = subaru.get_date('2016-02-29')
t


Out[2]:
datetime.datetime(2016, 2, 29, 0, 0, tzinfo=<StaticTzInfo 'HST'>)

In [3]:
# leap year day
subaru.set_date(t)

In [4]:
subaru.sunset()


Out[4]:
datetime.datetime(2016, 2, 29, 18, 37, 21, 223300, tzinfo=<StaticTzInfo 'HST'>)

In [5]:
print(subaru.get_text_almanac(subaru.get_date('2016-02-29')))


Almanac for the night of 2016-02-29

Evening
______________________________
Sunset: 18:37
12d: 19:15
18d: 19:41

Morning
______________________________
18d: 05:27
12d: 05:52
Sunrise: 06:31


In [6]:
print(subaru.get_text_almanac(subaru.get_date('2016-03-01')))


Almanac for the night of 2016-03-01

Evening
______________________________
Sunset: 18:37
12d: 19:16
18d: 19:41

Morning
______________________________
18d: 05:26
12d: 05:52
Sunrise: 06:30


In [7]:
print(subaru.get_text_almanac(subaru.get_date('2016-03-04')))


Almanac for the night of 2016-03-04

Evening
______________________________
Sunset: 18:38
12d: 19:17
18d: 19:42

Morning
______________________________
18d: 05:24
12d: 05:49
Sunrise: 06:28


In [8]:
subaru.night_center()


Out[8]:
datetime.datetime(2016, 3, 1, 0, 34, 1, 605844, tzinfo=<StaticTzInfo 'HST'>)

In [9]:
from qplan.entity import StaticTarget

In [10]:
tgt1 = StaticTarget(name="target1", ra="10:00:00.000", dec="+08:00:00.00")
tgt2 = StaticTarget(name="target2", ra="14:00:00.000", dec="-10:00:00.00")

subaru.set_date(subaru.get_date('2016-03-01'))

In [11]:
# moon sparation, elevation and illumination
cr1 = subaru.calc(tgt1, subaru.get_date('2016-03-02 03:30:00'))
cr1.moon_sep, cr1.moon_alt, cr1.moon_pct


Out[11]:
(104.55960502341136, -74.9190609303059, 0.48465189092944666)

In [12]:
cr2 = subaru.calc(tgt2, subaru.get_date('2016-03-02 03:30:00'))
cr2.moon_sep


Out[12]:
42.17142028581866

In [13]:
subaru.moon_rise(subaru.get_date('2016-02-29 17:50'))


Out[13]:
datetime.datetime(2016, 3, 1, 0, 13, 55, 156263, tzinfo=<StaticTzInfo 'HST'>)

In [14]:
# moonrise
# TODO: got to be a way to simplify this in the entity
subaru.moon_rise(subaru.get_date('2016-02-29 17:50')).strftime("%m/%d %H:%M")


Out[14]:
'03/01 00:13'

In [15]:
# moon set
#subaru.tz_utc.localize(subaru.moon_set(subaru.get_date('2016-03-01 00:50')).datetime()).astimezone(subaru.tz_local).strftime("%m/%d %H:%M")
subaru.moon_set().strftime("%m/%d %H:%M")


Out[15]:
'03/01 12:08'

In [16]:
subaru.moon_phase(subaru.get_date('2016-02-29 17:50'))


Out[16]:
0.5805647449087787

In [17]:
from qplan.plots import airmass

In [18]:
reload(airmass)


Out[18]:
<module 'qplan.plots.airmass' from '/home/eric/Git/qplan/qplan/plots/airmass.pyc'>

In [19]:
from ginga.misc.log import get_logger
logger = get_logger('foo', log_stderr=True)

In [20]:
amp = airmass.AirMassPlot(800, 600, logger=logger)
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
canvas = FigureCanvas(amp.fig)

In [21]:
subaru.set_date(subaru.get_date('2016-02-29 17:00:00'))
subaru.date


Out[21]:
datetime.datetime(2016, 2, 29, 17, 0, tzinfo=<StaticTzInfo 'HST'>)

In [22]:
print(subaru.get_target_info_table(tgt1))


Date       Local  UTC    LMST   HA     PA     AM    Moon 
__________________________________________________________
29Feb2016  18:30  04:30  4:45   -5:15  -1.2   4.3   33.1 
29Feb2016  18:35  04:35  4:50   -5:10  -1.2   3.96  32.1 
29Feb2016  18:40  04:40  4:55   -5:05  -1.2   3.68  31.2 
29Feb2016  18:45  04:45  5:00   -5:00  -1.2   3.43  30.2 
29Feb2016  18:50  04:50  5:05   -4:55  -1.3   3.22  29.2 
29Feb2016  18:55  04:55  5:10   -4:49  -1.3   3.03  28.3 
29Feb2016  19:00  05:00  5:15   -4:44  -1.3   2.87  27.3 
29Feb2016  19:05  05:05  5:20   -4:39  -1.3   2.72  26.3 
29Feb2016  19:10  05:10  5:25   -4:34  -1.3   2.58  25.3 
29Feb2016  19:15  05:15  5:30   -4:29  -1.3   2.46  24.2 
29Feb2016  19:20  05:20  5:35   -4:24  -1.3   2.36  23.2 
29Feb2016  19:25  05:25  5:40   -4:19  -1.3   2.26  22.2 
29Feb2016  19:30  05:30  5:45   -4:14  -1.3   2.17  21.2 
29Feb2016  19:35  05:35  5:50   -4:09  -1.3   2.09  20.1 
29Feb2016  19:40  05:40  5:55   -4:04  -1.3   2.01  19.1 
29Feb2016  19:45  05:45  6:01   -3:59  -1.2   1.94  18.1 
29Feb2016  19:50  05:50  6:06   -3:54  -1.2   1.88  17.0 
29Feb2016  19:55  05:55  6:11   -3:49  -1.2   1.82  16.0 
29Feb2016  20:00  06:00  6:16   -3:44  -1.2   1.77  14.9 
29Feb2016  20:05  06:05  6:21   -3:39  -1.2   1.72  13.9 
29Feb2016  20:10  06:10  6:26   -3:34  -1.2   1.67  12.8 
29Feb2016  20:15  06:15  6:31   -3:29  -1.2   1.62  11.7 
29Feb2016  20:20  06:20  6:36   -3:24  -1.2   1.58  10.7 
29Feb2016  20:25  06:25  6:41   -3:19  -1.2   1.54  9.6  
29Feb2016  20:30  06:30  6:46   -3:14  -1.2   1.51  8.5  
29Feb2016  20:35  06:35  6:51   -3:09  -1.2   1.48  7.5  
29Feb2016  20:40  06:40  6:56   -3:04  -1.2   1.44  6.4  
29Feb2016  20:45  06:45  7:01   -2:59  -1.2   1.41  5.3  
29Feb2016  20:50  06:50  7:06   -2:54  -1.2   1.39  4.3  
29Feb2016  20:55  06:55  7:11   -2:49  -1.2   1.36  3.2  
29Feb2016  21:00  07:00  7:16   -2:44  -1.2   1.34  2.1  
29Feb2016  21:05  07:05  7:21   -2:39  -1.2   1.31  1.1  
29Feb2016  21:10  07:10  7:26   -2:34  -1.2   1.29  0.1  
29Feb2016  21:15  07:15  7:31   -2:29  -1.2   1.27       
29Feb2016  21:20  07:20  7:36   -2:24  -1.2   1.25       
29Feb2016  21:25  07:25  7:41   -2:19  -1.2   1.23       
29Feb2016  21:30  07:30  7:46   -2:14  -1.2   1.22       
29Feb2016  21:35  07:35  7:51   -2:09  -1.1   1.2        
29Feb2016  21:40  07:40  7:56   -2:04  -1.1   1.18       
29Feb2016  21:45  07:45  8:01   -1:59  -1.1   1.17       
29Feb2016  21:50  07:50  8:06   -1:54  -1.1   1.16       
29Feb2016  21:55  07:55  8:11   -1:49  -1.1   1.14       
29Feb2016  22:00  08:00  8:16   -1:44  -1.1   1.13       
29Feb2016  22:05  08:05  8:21   -1:39  -1.1   1.12       
29Feb2016  22:10  08:10  8:26   -1:34  -1.0   1.11       
29Feb2016  22:15  08:15  8:31   -1:29  -1.0   1.1        
29Feb2016  22:20  08:20  8:36   -1:24  -1.0   1.09       
29Feb2016  22:25  08:25  8:41   -1:19  -1.0   1.08       
29Feb2016  22:30  08:30  8:46   -1:14  -1.0   1.08       
29Feb2016  22:35  08:35  8:51   -1:09  -0.9   1.07       
29Feb2016  22:40  08:40  8:56   -1:04  -0.9   1.06       
29Feb2016  22:45  08:45  9:01   -0:59  -0.9   1.06       
29Feb2016  22:50  08:50  9:06   -0:54  -0.8   1.05       
29Feb2016  22:55  08:55  9:11   -0:49  -0.8   1.04       
29Feb2016  23:00  09:00  9:16   -0:44  -0.7   1.04       
29Feb2016  23:05  09:05  9:21   -0:39  -0.7   1.04       
29Feb2016  23:10  09:10  9:26   -0:34  -0.6   1.03       
29Feb2016  23:15  09:15  9:31   -0:29  -0.5   1.03       
29Feb2016  23:20  09:20  9:36   -0:24  -0.4   1.03       
29Feb2016  23:25  09:25  9:41   -0:19  -0.4   1.03       
29Feb2016  23:30  09:30  9:46   -0:14  -0.3   1.02       
29Feb2016  23:35  09:35  9:51   -0:09  -0.2   1.02       
29Feb2016  23:40  09:40  9:56   -0:04  -0.1   1.02       
29Feb2016  23:45  09:45  10:01  0:00   0.0    1.02       
29Feb2016  23:50  09:50  10:06  0:05   0.1    1.02       
29Feb2016  23:55  09:55  10:11  0:10   0.2    1.02       
01Mar2016  00:00  10:00  10:16  0:15   0.3    1.02       
01Mar2016  00:05  10:05  10:21  0:20   0.4    1.03       
01Mar2016  00:10  10:10  10:26  0:25   0.5    1.03       
01Mar2016  00:15  10:15  10:31  0:30   0.5    1.03       
01Mar2016  00:20  10:20  10:36  0:35   0.6    1.03       
01Mar2016  00:25  10:25  10:41  0:40   0.7    1.04       
01Mar2016  00:30  10:30  10:46  0:45   0.7    1.04       
01Mar2016  00:35  10:35  10:51  0:50   0.8    1.05       
01Mar2016  00:40  10:40  10:56  0:55   0.8    1.05       
01Mar2016  00:45  10:45  11:01  1:00   0.9    1.06       
01Mar2016  00:50  10:50  11:06  1:05   0.9    1.06       
01Mar2016  00:55  10:55  11:11  1:10   0.9    1.07       
01Mar2016  01:00  11:00  11:16  1:16   1.0    1.08       
01Mar2016  01:05  11:05  11:21  1:21   1.0    1.09       
01Mar2016  01:10  11:10  11:26  1:26   1.0    1.09       
01Mar2016  01:15  11:15  11:31  1:31   1.0    1.1        
01Mar2016  01:20  11:20  11:36  1:36   1.1    1.11       
01Mar2016  01:25  11:25  11:41  1:41   1.1    1.12       
01Mar2016  01:30  11:30  11:46  1:46   1.1    1.14       
01Mar2016  01:35  11:35  11:51  1:51   1.1    1.15       
01Mar2016  01:40  11:40  11:56  1:56   1.1    1.16       
01Mar2016  01:45  11:45  12:01  2:01   1.1    1.17       
01Mar2016  01:50  11:50  12:07  2:06   1.1    1.19       
01Mar2016  01:55  11:55  12:12  2:11   1.2    1.2        
01Mar2016  02:00  12:00  12:17  2:16   1.2    1.22       
01Mar2016  02:05  12:05  12:22  2:21   1.2    1.24       
01Mar2016  02:10  12:10  12:27  2:26   1.2    1.26       
01Mar2016  02:15  12:15  12:32  2:31   1.2    1.28       
01Mar2016  02:20  12:20  12:37  2:36   1.2    1.3        
01Mar2016  02:25  12:25  12:42  2:41   1.2    1.32       
01Mar2016  02:30  12:30  12:47  2:46   1.2    1.34       
01Mar2016  02:35  12:35  12:52  2:51   1.2    1.37       
01Mar2016  02:40  12:40  12:57  2:56   1.2    1.39       
01Mar2016  02:45  12:45  13:02  3:01   1.2    1.42       
01Mar2016  02:50  12:50  13:07  3:06   1.2    1.45       
01Mar2016  02:55  12:55  13:12  3:11   1.2    1.49       
01Mar2016  03:00  13:00  13:17  3:16   1.2    1.52       
01Mar2016  03:05  13:05  13:22  3:21   1.2    1.56       
01Mar2016  03:10  13:10  13:27  3:26   1.2    1.6        
01Mar2016  03:15  13:15  13:32  3:31   1.2    1.64       
01Mar2016  03:20  13:20  13:37  3:36   1.2    1.68       
01Mar2016  03:25  13:25  13:42  3:41   1.2    1.73       
01Mar2016  03:30  13:30  13:47  3:46   1.2    1.78       
01Mar2016  03:35  13:35  13:52  3:51   1.2    1.84       
01Mar2016  03:40  13:40  13:57  3:56   1.2    1.9        
01Mar2016  03:45  13:45  14:02  4:01   1.2    1.96       
01Mar2016  03:50  13:50  14:07  4:06   1.3    2.04       
01Mar2016  03:55  13:55  14:12  4:11   1.3    2.11       
01Mar2016  04:00  14:00  14:17  4:16   1.3    2.2        
01Mar2016  04:05  14:05  14:22  4:21   1.3    2.29       
01Mar2016  04:10  14:10  14:27  4:26   1.3    2.39       
01Mar2016  04:15  14:15  14:32  4:31   1.3    2.5        
01Mar2016  04:20  14:20  14:37  4:36   1.3    2.62       
01Mar2016  04:25  14:25  14:42  4:41   1.3    2.76       
01Mar2016  04:30  14:30  14:47  4:46   1.3    2.92       
01Mar2016  04:35  14:35  14:52  4:51   1.3    3.09       
01Mar2016  04:40  14:40  14:57  4:56   1.3    3.28       
01Mar2016  04:45  14:45  15:02  5:01   1.2    3.51       
01Mar2016  04:50  14:50  15:07  5:06   1.2    3.77       
01Mar2016  04:55  14:55  15:12  5:11   1.2    4.06       
01Mar2016  05:00  15:00  15:17  5:16   1.2    4.42       
01Mar2016  05:05  15:05  15:22  5:21   1.2    4.83       
01Mar2016  05:10  15:10  15:27  5:26   1.2    5.34       
01Mar2016  05:15  15:15  15:32  5:31   1.2    5.96       
01Mar2016  05:20  15:20  15:37  5:36   1.2    6.73       
01Mar2016  05:25  15:25  15:42  5:41   1.2    7.72       
01Mar2016  05:30  15:30  15:47  5:46   1.2    9.0        
01Mar2016  05:35  15:35  15:52  5:51   1.2    10.67      
01Mar2016  05:40  15:40  15:57  5:56   1.2    12.63      
01Mar2016  05:45  15:45  16:02  6:01   1.2    13.33      
01Mar2016  05:50  15:50  16:07  6:06   1.2    13.33      
01Mar2016  05:55  15:55  16:12  6:11   1.2    13.33      
01Mar2016  06:00  16:00  16:17  6:16   1.2    13.33      
01Mar2016  06:05  16:05  16:22  6:21   1.2    13.33      
01Mar2016  06:10  16:10  16:27  6:26   1.2    13.33      
01Mar2016  06:15  16:15  16:32  6:31   1.2    13.33      
01Mar2016  06:20  16:20  16:37  6:36   1.2    13.33      
01Mar2016  06:25  16:25  16:42  6:41   1.2    13.33      
01Mar2016  06:30  16:30  16:47  6:46   1.2    13.33      


In [23]:
targets = [tgt1, tgt2]

In [24]:
from ginga.misc import Bunch

In [25]:
target_data = []
for tgt in targets:
    info_list = subaru.get_target_info(tgt)
    target_data.append(Bunch.Bunch(history=info_list, target=tgt))

In [26]:
subaru.date


Out[26]:
datetime.datetime(2016, 2, 29, 17, 0, tzinfo=<StaticTzInfo 'HST'>)

In [27]:
#subaru.set_date(subaru.get_date('2016-03-02 17:00:00'))
amp.plot_airmass(subaru, target_data, subaru.timezone)


/usr/lib/pymodules/python2.7/matplotlib/collections.py:548: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
  if self._edgecolors == 'face':

In [28]:
from io import BytesIO
buf = BytesIO()
canvas.print_figure(buf, format='png')

In [29]:
from IPython.display import Image
Image(data=bytes(buf.getvalue()), format='png', embed=True)


Out[29]:

In [30]:
subaru.sunset(subaru.get_date('2016-02-29 17:50')).strftime("%m/%d %H:%M")


Out[30]:
'02/29 18:37'

In [31]:
subaru.date


Out[31]:
datetime.datetime(2016, 2, 29, 17, 0, tzinfo=<StaticTzInfo 'HST'>)

In [32]:
#subaru.set_date(subaru.get_date('2016-03-02 17:00:00'))
amp.plot_altitude(subaru, target_data, subaru.timezone)
buf2 = BytesIO()
canvas.print_figure(buf2, format='png')
Image(data=bytes(buf2.getvalue()), format='png', embed=True)


Out[32]:

In [ ]: