-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathogle_utils.py
More file actions
122 lines (111 loc) · 4.2 KB
/
ogle_utils.py
File metadata and controls
122 lines (111 loc) · 4.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File from https://ogle.astrouw.edu.pl/ -> download site -> ogle4/microlensing_maps/get_OGLE_field.py
"""
A bunch of useful python scripts that:
* return equatorial/Galactic coordinates of vertices of OGLE-IV fields
* plot OGLE-IV fields/subfields in equatorial/Galactic coordinates
P. Mroz, 26 May 2019
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as colors
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
PIXEL_SIZE = 0.2585 # 1 pix = 0.2585 arcsec
def o4_field (ra0, dec0):
"""
Returns the equatorial coordinates of vertices of an OGLE-IV field
centered on (ra0, dec0).
"""
ra, dec = [], []
pix = PIXEL_SIZE / 3600.0
pixra = PIXEL_SIZE / 3600.0 / np.cos(dec0*np.pi/180.0)
ra.append(ra0-7518.0*pixra)
dec.append(dec0+4321.0*pix)
ra.append(ra0-7518.0*pixra)
dec.append(dec0+8610.0*pix)
ra.append(ra0+7518.0*pixra)
dec.append(dec0+8610.0*pix)
ra.append(ra0+7518.0*pixra)
dec.append(dec0+4321.0*pix)
ra.append(ra0+9616.0*pixra)
dec.append(dec0+4321.0*pix)
ra.append(ra0+9616.0*pixra)
dec.append(dec0-4321.0*pix)
ra.append(ra0+7518.0*pixra)
dec.append(dec0-4321.0*pix)
ra.append(ra0+7518.0*pixra)
dec.append(dec0-8610.0*pix)
ra.append(ra0-7518.0*pixra)
dec.append(dec0-8610.0*pix)
ra.append(ra0-7518.0*pixra)
dec.append(dec0-4321.0*pix)
ra.append(ra0-9616.0*pixra)
dec.append(dec0-4321.0*pix)
ra.append(ra0-9616.0*pixra)
dec.append(dec0+4321.0*pix)
return np.array(ra), np.array(dec)
def o4_subfield (ra0, dec0, chip):
"""
Returns the equatorial coordinates of vertices of an OGLE-IV subfield
centered on (ra0, dec0).
"""
ra, dec = [], []
pix = PIXEL_SIZE / 3600.0
pixra = PIXEL_SIZE / 3600.0 / np.cos(dec0*np.pi/180.0)
assert type(chip) is int, 'chip is not an integer: %r' % chip
assert chip >=1 and chip <= 32, 'chip >=1 and chip <= 32'
if chip >= 1 and chip <= 7:
ra.append(ra0+7468.0*pixra-(chip-1.0)*2148.0*pixra)
dec.append(dec0-8610.0*pix)
ra.append(ra0+7468.0*pixra-(chip-1.0)*2148.0*pixra)
dec.append(dec0-4508.0*pix)
ra.append(ra0+5420.0*pixra-(chip-1.0)*2148.0*pixra)
dec.append(dec0-4508.0*pix)
ra.append(ra0+5420.0*pixra-(chip-1.0)*2148.0*pixra)
dec.append(dec0-8610.0*pix)
elif chip >= 8 and chip <= 16:
ra.append(ra0+9616.0*pixra-(chip-8.0)*2148.0*pixra)
dec.append(dec0-4134.0*pix)
ra.append(ra0+9616.0*pixra-(chip-8.0)*2148.0*pixra)
dec.append(dec0-32.0*pix)
ra.append(ra0+7568.0*pixra-(chip-8.0)*2148.0*pixra)
dec.append(dec0-32.0*pix)
ra.append(ra0+7568.0*pixra-(chip-8.0)*2148.0*pixra)
dec.append(dec0-4134.0*pix)
elif chip >= 17 and chip <= 25:
ra.append(ra0+9616.0*pixra-(chip-17.0)*2148.0*pixra)
dec.append(dec0+4134.0*pix)
ra.append(ra0+9616.0*pixra-(chip-17.0)*2148.0*pixra)
dec.append(dec0+32.0*pix)
ra.append(ra0+7568.0*pixra-(chip-17.0)*2148.0*pixra)
dec.append(dec0+32.0*pix)
ra.append(ra0+7568.0*pixra-(chip-17.0)*2148.0*pixra)
dec.append(dec0+4134.0*pix)
elif chip >= 26 and chip <= 32:
ra.append(ra0+7468.0*pixra-(chip-26.0)*2148.0*pixra)
dec.append(dec0+8610.0*pix)
ra.append(ra0+7468.0*pixra-(chip-26.0)*2148.0*pixra)
dec.append(dec0+4508.0*pix)
ra.append(ra0+5420.0*pixra-(chip-26.0)*2148.0*pixra)
dec.append(dec0+4508.0*pix)
ra.append(ra0+5420.0*pixra-(chip-26.0)*2148.0*pixra)
dec.append(dec0+8610.0*pix)
return np.array(ra), np.array(dec)
def equatorial_to_galactic (_ra, _dec):
""" Transforming equatorial to Galactic coordinates"""
deg = np.pi/180.0
ra_g = 192.85948*deg
dec_g = 27.12825*deg
l_NGP = 122.93192*deg
ra = _ra*deg
dec = _dec*deg
sinb = np.cos(dec)*np.cos(dec_g)*np.cos(ra-ra_g)+np.sin(dec)*np.sin(dec_g)
sinlcosb = np.cos(dec)*np.sin(ra-ra_g)
coslcosb = np.sin(dec)*np.cos(dec_g)-np.cos(dec)*np.sin(dec_g)*np.cos(ra-ra_g)
b = np.arcsin(sinb)
l = np.arctan2(sinlcosb,coslcosb)
l = l_NGP - l
b /= deg
l /= deg
l[l>180] -= 360.0
return l, b