SkyMapMod 0.0.1__py3-none-any.whl → 0.0.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
SkyMapMod/__init__.py CHANGED
@@ -0,0 +1 @@
1
+ from .zodiac import *
SkyMapMod/zodiac.py CHANGED
@@ -0,0 +1,139 @@
1
+ import numpy as np
2
+ import math
3
+ import matplotlib.pyplot as plt
4
+
5
+ def gret():
6
+ print('Hello')
7
+
8
+ #переопределяю тригонометрические функции, чтобы работать с градусами
9
+ def cos(x):
10
+ return math.cos(x * math.pi / 180)
11
+
12
+ def sin(x):
13
+ return math.sin(x * math.pi / 180)
14
+
15
+ def tan(x):
16
+ return math.tan(x * math.pi / 180)
17
+
18
+ def acos(x):
19
+ return math.acos(x) * 180 / math.pi
20
+
21
+ def asin(x):
22
+ return math.asin(x) * 180 / math.pi
23
+
24
+ def atan(x):
25
+ return math.atan(x) * 180 / math.pi
26
+
27
+ #переопределяю прочие функции для красоты записи
28
+ def exp(x):
29
+ return math.exp(x)
30
+
31
+ def sqrt(x):
32
+ return math.sqrt(x)
33
+
34
+ #функция Хевисайда (в контексте статьи определяется именно так)
35
+ def u(x):
36
+ if x <= 0:
37
+ return 0
38
+ elif x > 0:
39
+ return 1
40
+
41
+ #функции для перехода из одной СК в другую
42
+ #сферические в декартовы
43
+ def spheral_to_decart(r, lmbd, beta):
44
+ x = r * cos(lmbd) * cos(beta)
45
+ y = r * sin(lmbd) * cos(beta)
46
+ z = r * sin(beta)
47
+ return (x, y, z)
48
+
49
+ #декартовы в сферические
50
+ def decart_to_spheral(x, y, z):
51
+ r = sqrt(x**2 + y**2 + z**2)
52
+ lmbd = atan(y/(x + 1e-30))
53
+ beta = asin(z/r)
54
+ return(r, lmbd, beta)
55
+
56
+ #функция для поворота эклиптических координат
57
+ def rotate_ekl(lmbd, beta, lmbd0, beta0):
58
+ x, y, z = spheral_to_decart(1, lmbd-lmbd0, beta)
59
+ x1 = x * cos(beta0) + z * sin(beta0)
60
+ z1 = - x * sin(beta0) + z * cos(beta0)
61
+ y1 = y
62
+ r, lmbd2, beta2 = decart_to_spheral(x1, y1, z1)
63
+ return(lmbd2, beta2)
64
+
65
+ #Далее идут функции, которые входят в общую формулу для расчета зод. света
66
+ #Компонента S
67
+ def S(lmbd, beta, lmbd_sun, Omega):
68
+ c = cos(lmbd - lmbd_sun) * cos(beta)
69
+ eps = acos(c)
70
+ first = 6 * abs(sin(lmbd_sun - Omega))
71
+ second = ((1-u(eps-90)) * (sin(eps) + 1e-30)**(-2.3) + u(eps - 90) * sin(eps))
72
+ #third = (1 - u(Omega - lmbd_sun) / 4 + 2 * (1-u(eps-90)) * c)
73
+ third = (1 - (1-u(lmbd_sun - Omega))/4 + 2*(1-u(eps-90)) * c)
74
+ #equap = ((u(Omega - lmbd_sun) - u(lmbd_sun - Omega)) * beta + 5) / 10
75
+ equap = ((1 - u(lmbd_sun - Omega) - u(lmbd_sun - Omega)) * beta + 5) / 10
76
+ fourth = max(0, min(equap, 1))
77
+ S = first * second * third * fourth
78
+ return S
79
+
80
+ #Компонента D -- "эмпирический вклад в форме гантели"
81
+ def D(lmbd, beta, lmbd_sun):
82
+
83
+ d = abs(lmbd - lmbd_sun) / 6.5 - abs(beta) + 15 + 5 * u(beta)
84
+ eps = acos(cos(lmbd - lmbd_sun) * cos(beta))
85
+ if beta > 0:
86
+ lmbd1, beta1 = rotate_ekl(lmbd, beta, lmbd_sun, 21)
87
+ elif beta <= 0:
88
+ lmbd1, beta1 = rotate_ekl(lmbd, beta, lmbd_sun, -15)
89
+ gamma1 = atan(sin(lmbd1)/( 1e-30 + tan(beta1)))
90
+ eps1 = acos(cos(lmbd1) * cos(beta1))
91
+ h = gamma1 * (1 - u(beta)) + (gamma1) * u(beta)
92
+ A = (1 + 0.5 * (1 - u(beta))) * (1-u(eps-90)) * ((1-u(eps-75)) + u(eps - 75) * exp(-(eps - 75)**2 / 120))
93
+ # f = 60 * exp(- eps1 / 16) * (0.15 + 0.85 * exp(-6 * cos(0.6 * h)**4))
94
+ f = 60 * exp(- eps1 / 16) * (0.85 + 0.15 * exp(-6 * cos(0.6 * h)**4))
95
+ g = 25 * exp(- acos(cos(2 * lmbd1) * cos(0.7 * beta1)) / 10)
96
+ D = A * ((f * math.exp(-d / 10) + g * math.exp(-d / 8)) * u(d) + (f + g) * (1 - u(d)))
97
+ return D
98
+
99
+ #Компонента E -- остаточная, не учитывалась
100
+ def E(lmbd, beta):
101
+ return 0
102
+
103
+ #Компонента F -- остаточная, не учитывалась
104
+ def F(lmbd, beta, lmbd_sun):
105
+ return 0
106
+
107
+ #Компонента G -- антисолнечная точка
108
+ def G(lmbd, beta, lmbd_sun):
109
+ lmbd_tild = lmbd - lmbd_sun - 180
110
+ if lmbd_tild > 180:
111
+ lmbd_tild = lmbd_tild - 360
112
+ elif lmbd_tild < -180:
113
+ lmbd_tild = lmbd_tild + 360
114
+ eps_tild = 180 - acos(cos(lmbd_tild + 180) * cos(beta))
115
+ G_b = 7.5 * exp(-eps_tild / 4) + 39.5 * exp(-eps_tild / 25)
116
+ G_lmbd_tild = 7.5 * exp(-eps_tild / 4) + 39.5 * exp(-eps_tild / 35)
117
+ first = 1 - 0.02 * beta * lmbd_tild**2 / (eps_tild**3 + 1e-300)
118
+ second = (beta**2 * G_b + lmbd_tild**2 * G_lmbd_tild) / (eps_tild**2 + 1e-300)
119
+ third = (1 - u(eps_tild - 60) * (1 - exp(-(eps_tild - 60)**2 / 300)))
120
+ G = first * second * third
121
+ return G
122
+
123
+ #Общая формула для зод. света
124
+ def zodiacal_light(lmbd, beta, lmbd_sun):
125
+ b = 1.5 * (sqrt(1 + (beta / 1.5)**2) - 1)
126
+ c = cos(lmbd - lmbd_sun) * cos(beta)
127
+ eps = acos(c)
128
+ eps_tild = 180 - eps
129
+ lmbd_tild = lmbd - lmbd_sun - 180
130
+ abs_gm = abs(atan(sin(lmbd - lmbd_sun) / (tan(beta) + 1e-30)))
131
+ Omega = 78.25
132
+ first = 7 + 8 * (1 - cos(b)) + 6 * exp(- beta**2 / 512)
133
+ second_1 = (1-u(eps-90)) * (65 + 120 * c - 185 * c**2 + 65 * c**3) * (sin(eps) + 1e-30)**(-2.3)
134
+ second_2 = u(eps - 90) * (65 + 120 * c + 154 * c**2 + 88 * c**3)
135
+ second_mult = 10 ** (- sin(b) / (0.009 * (eps + 40)))
136
+ third = (1-u(eps-90)) * (30 * ((sin(eps) + 1e-30)**(-2.3) - 1) * cos(b))
137
+ fourth = (8800 * exp((1 - sqrt(1 + ((abs_gm - 90)/3)**2))/10) - 1200) * exp(-eps/10)
138
+ zod = first + (second_1 + second_2) * second_mult + third + fourth + S(lmbd, beta, lmbd_sun, Omega) + D(lmbd, beta, lmbd_sun) + E(lmbd, beta) + F(lmbd, beta, lmbd_sun) + G(lmbd, beta, lmbd_sun)
139
+ return zod/0.415 #деление на 0.415 осуществляет переход из ед. ADU в ед. S10
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: SkyMapMod
3
- Version: 0.0.1
3
+ Version: 0.0.3
4
4
  Project-URL: Homepage, https://istina.msu.ru/profile/aminevann/
5
5
  Author-email: Anna Amineva <amineva.2219@physics.msu.ru>
6
6
  License-File: LICENSE
@@ -0,0 +1,6 @@
1
+ SkyMapMod/__init__.py,sha256=-4UxDRV4W4BVTrQv1c5eRoakgBxMiKE-DT6pGQNf2ns,21
2
+ SkyMapMod/zodiac.py,sha256=hc09KVhe120keXkQqbz32dWIAm4qlr0YSFMzNNQ-dk4,5549
3
+ skymapmod-0.0.3.dist-info/METADATA,sha256=_8j7TE6eGPmAqvA5sOa0vn4yxbcfTb-VBRxUYATfoPs,446
4
+ skymapmod-0.0.3.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
5
+ skymapmod-0.0.3.dist-info/licenses/LICENSE,sha256=eShhW1a77wkzEW9UASG0IaNNaJ3vnxmpcxp8tXh5WCA,1045
6
+ skymapmod-0.0.3.dist-info/RECORD,,
@@ -1,6 +0,0 @@
1
- SkyMapMod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- SkyMapMod/zodiac.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- skymapmod-0.0.1.dist-info/METADATA,sha256=fvxwrOcS7eP3GfnmWnYZ1SNFdnggK7a2Wa-242beuRk,446
4
- skymapmod-0.0.1.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
5
- skymapmod-0.0.1.dist-info/licenses/LICENSE,sha256=eShhW1a77wkzEW9UASG0IaNNaJ3vnxmpcxp8tXh5WCA,1045
6
- skymapmod-0.0.1.dist-info/RECORD,,