forked from jaratma/astro-nex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pysw.py
208 lines (171 loc) · 5.53 KB
/
pysw.py
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.11
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.
from sys import version_info as _swig_python_version_info
if _swig_python_version_info >= (2, 7, 0):
def swig_import_helper():
import importlib
pkg = __name__.rpartition('.')[0]
mname = '.'.join((pkg, '_pysw')).lstrip('.')
try:
return importlib.import_module(mname)
except ImportError:
return importlib.import_module('_pysw')
_pysw = swig_import_helper()
del swig_import_helper
elif _swig_python_version_info >= (2, 6, 0):
def swig_import_helper():
from os.path import dirname
import imp
fp = None
try:
fp, pathname, description = imp.find_module('_pysw', [dirname(__file__)])
except ImportError:
import _pysw
return _pysw
try:
_mod = imp.load_module('_pysw', fp, pathname, description)
finally:
if fp is not None:
fp.close()
return _mod
_pysw = swig_import_helper()
del swig_import_helper
else:
import _pysw
del _swig_python_version_info
try:
_swig_property = property
except NameError:
pass # Python < 2.2 doesn't have 'property'.
try:
import builtins as __builtin__
except ImportError:
import __builtin__
def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
if (name == "thisown"):
return self.this.own(value)
if (name == "this"):
if type(value).__name__ == 'SwigPyObject':
self.__dict__[name] = value
return
method = class_type.__swig_setmethods__.get(name, None)
if method:
return method(self, value)
if (not static):
if _newclass:
object.__setattr__(self, name, value)
else:
self.__dict__[name] = value
else:
raise AttributeError("You cannot add attributes to %s" % self)
def _swig_setattr(self, class_type, name, value):
return _swig_setattr_nondynamic(self, class_type, name, value, 0)
def _swig_getattr(self, class_type, name):
if (name == "thisown"):
return self.this.own()
method = class_type.__swig_getmethods__.get(name, None)
if method:
return method(self)
raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))
def _swig_repr(self):
try:
strthis = "proxy of " + self.this.__repr__()
except __builtin__.Exception:
strthis = ""
return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
try:
_object = object
_newclass = 1
except __builtin__.Exception:
class _object:
pass
_newclass = 0
def swe_julday(year, month, day, hour, gregflag):
return _pysw.swe_julday(year, month, day, hour, gregflag)
swe_julday = _pysw.swe_julday
def swe_sidtime(tjd):
return _pysw.swe_sidtime(tjd)
swe_sidtime = _pysw.swe_sidtime
def swe_revjul(tjd, gregflag):
return _pysw.swe_revjul(tjd, gregflag)
swe_revjul = _pysw.swe_revjul
def swe_calc(tjd, ipl, iflag):
return _pysw.swe_calc(tjd, ipl, iflag)
swe_calc = _pysw.swe_calc
def swe_calc_ut(tjd, ipl, iflag):
return _pysw.swe_calc_ut(tjd, ipl, iflag)
swe_calc_ut = _pysw.swe_calc_ut
def swe_fixstar_ut(star, tjd, iflag):
return _pysw.swe_fixstar_ut(star, tjd, iflag)
swe_fixstar_ut = _pysw.swe_fixstar_ut
def swe_houses(tjd_ut, geolat, geolon, hsys):
return _pysw.swe_houses(tjd_ut, geolat, geolon, hsys)
swe_houses = _pysw.swe_houses
def swe_houses_armc(armc, geolat, eps, hsys):
return _pysw.swe_houses_armc(armc, geolat, eps, hsys)
swe_houses_armc = _pysw.swe_houses_armc
def swe_close():
return _pysw.swe_close()
swe_close = _pysw.swe_close
def swe_deltat(tjd):
return _pysw.swe_deltat(tjd)
swe_deltat = _pysw.swe_deltat
def swe_set_ephe_path(path):
return _pysw.swe_set_ephe_path(path)
swe_set_ephe_path = _pysw.swe_set_ephe_path
def julday(y,m,d,h):
if (y * 10000 + m * 100 + d) < 15821015:
gregflag = 0
else:
gregflag = 1
r = _pysw.swe_julday(y,m,d,h,gregflag)
return r
def revjul(jd,gregflag=1):
return _pysw.swe_revjul(jd,gregflag)
def calc(jd,pl,epheflag=4):
r = _pysw.swe_calc(jd+delta(jd),pl,epheflag)
return r[0], r[1][0], r[-1]
def calc_ut(jd,pl,epheflag=4):
r = _pysw.swe_calc(jd,pl,epheflag)
return r[0], r[1][0], r[-1]
def calc_ut_with_speed(jd,pl,epheflag=4):
r = _pysw.swe_calc(jd,pl,epheflag|256)
return r[0], r[1][0], r[1][3], r[-1]
def fixstar(star,jd,epheflag=4):
r = _pysw.swe_fixstar_ut(star,jd,epheflag)
return r
def houses(jd,glt,glg):
s,h = _pysw.swe_houses(jd,glt,glg,ord('K'))
if s < 0 and glt < 66.53333336:
print("error computing houses")
return None
return h
def local_houses(jd,glg,glt,epheflag):
armc = glg
if armc < 0:
armc += 360
s,eps,e = calc(jd,-1,epheflag)
s,h = _pysw.swe_houses_armc(armc,glt,eps,ord('K'))
if s < 0:
print("error computing local houses")
return None
return h
def delta(jd):
return _pysw.swe_deltat(jd)
def planets(jd,epheflag,p=12):
pl = []
for i in range(p):
if i == 10:
continue
s,l,e = calc(jd,i,epheflag)
if s < 0:
print("error: %s" % e)
return None
pl.append(l)
return pl
setpath = _pysw.swe_set_ephe_path
sidtime = _pysw.swe_sidtime
# This file is compatible with both classic and new-style classes.