SkyMapMod 0.1.21__tar.gz → 0.1.22__tar.gz
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-0.1.21 → skymapmod-0.1.22}/PKG-INFO +1 -1
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/__init__.py +2 -1
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/planets.py +1 -1
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/star_catalogues.py +6 -1
- skymapmod-0.1.22/SkyMapMod/total_background.py +116 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/pyproject.toml +1 -1
- {skymapmod-0.1.21 → skymapmod-0.1.22}/LICENSE +0 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/README.md +0 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/airglow.py +0 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/airglow_spectrum.py +0 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/albedo_of_planets.py +0 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/band_V_data.py +0 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/data/__init__.py +0 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/data/load_data.py +0 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/data/star_brightness.npy +0 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/data/star_temperatures.npy +0 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/modtran_default_kp_transparency.py +0 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/solar_radio_flux.py +0 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/solar_spectrum.py +0 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/transparency.py +0 -0
- {skymapmod-0.1.21 → skymapmod-0.1.22}/SkyMapMod/zodiac.py +0 -0
@@ -18,7 +18,7 @@ def coordinates_of_planet(body, date, time): #'mars', 'venus', 'saturn', 'jupyte
|
|
18
18
|
return(l, b)
|
19
19
|
|
20
20
|
|
21
|
-
def magnitude_of_planet(body, date, time): #'mars', 'venus', 'saturn', '
|
21
|
+
def magnitude_of_planet(body, date, time): #'mars', 'venus', 'saturn', 'jupiter'; 2023-11-03; 12:00:00';
|
22
22
|
if body == 'venus':
|
23
23
|
planet = ephem.Venus()
|
24
24
|
elif body == 'mars':
|
@@ -7,7 +7,12 @@ from.zodiac import black_body_phot
|
|
7
7
|
#на вход подаем галактические координаты (l -- долгота, b -- широта) и массив длин волн, по которым строим спектр
|
8
8
|
#РАЗОБРАТЬСЯ С КОЭФФИЦИЕНТАМИ А -- НАДО ЛИ НОРМИРОВАТЬ НА C (КАЖЕТСЯ НАДО) А ЕЩЕ ВРОДЕ Я ЕГО ОТНОРМИРОВАЛА И ПОДГРУЗИЛА -- ПРОВЕРИТЬ
|
9
9
|
def star_spectrum(l, b, lmbd):
|
10
|
-
|
10
|
+
#пересчет из галактических к позиции в массиве, ЕСЛИ ПРОБЛЕМЫ ВОЗНИКЛИ, ПЕРЕПРОВЕРИТЬ
|
11
|
+
if round(l*10) >= 1800:
|
12
|
+
j = int((1800 - round(l*10)) + 3600)
|
13
|
+
elif round(l*10) < 1800:
|
14
|
+
j = int(1800 - round((l+10)*10))
|
15
|
+
|
11
16
|
i = int(900 + round(b*10))
|
12
17
|
star_brightness = load_star_brightness()
|
13
18
|
star_temperatures = load_star_temperatures()
|
@@ -0,0 +1,116 @@
|
|
1
|
+
from astropy.coordinates import Galactic, ICRS, GeocentricMeanEcliptic, get_sun, get_body
|
2
|
+
from astropy.time import Time
|
3
|
+
import astropy.units as u
|
4
|
+
|
5
|
+
from .zodiac import *
|
6
|
+
from .airglow import *
|
7
|
+
from .transparency import *
|
8
|
+
from .airglow_spectrum import *
|
9
|
+
from .modtran_default_kp_transparency import *
|
10
|
+
from .solar_spectrum import *
|
11
|
+
from .band_V_data import *
|
12
|
+
from .solar_radio_flux import *
|
13
|
+
from .star_catalogues import *
|
14
|
+
from .albedo_of_planets import *
|
15
|
+
from .planets import *
|
16
|
+
|
17
|
+
def galactic_to_equatorial(l, b):
|
18
|
+
# Входные данные: галактические координаты и эпоха
|
19
|
+
galactic_l = l * u.deg # Галактическая долгота
|
20
|
+
galactic_b = b * u.deg # Галактическая широта
|
21
|
+
epoch = Time('J2000.0') # Эпоха (стандартная для астрономических расчетов)
|
22
|
+
|
23
|
+
# Создаем объект галактических координат
|
24
|
+
galactic_coords = Galactic(l=galactic_l, b=galactic_b)
|
25
|
+
|
26
|
+
# Преобразуем галактические координаты в экваториальные (ICRS)
|
27
|
+
ecliptic_coords = galactic_coords.transform_to(GeocentricMeanEcliptic(equinox=epoch))
|
28
|
+
|
29
|
+
|
30
|
+
print("Техническая проверка")
|
31
|
+
print(f"Эклиптическая долгота (λ): {ecliptic_coords.lon.to(u.deg)}")
|
32
|
+
print(f"Эклиптическая широта (β): {ecliptic_coords.lat.to(u.deg)}")
|
33
|
+
return(ecliptic_coords.lon.to(u.deg).value, ecliptic_coords.lat.to(u.deg).value)
|
34
|
+
|
35
|
+
def Sun_ecl_lon(date, time):
|
36
|
+
datetime = date + ' ' + time
|
37
|
+
observation_time = Time(datetime)
|
38
|
+
|
39
|
+
# Получаем координаты Солнца в геоцентрической системе координат
|
40
|
+
sun_position = get_sun(observation_time)
|
41
|
+
|
42
|
+
# Преобразуем координаты Солнца в эклиптическую систему (геоцентрическую)
|
43
|
+
ecliptic_coords = sun_position.transform_to(GeocentricMeanEcliptic())
|
44
|
+
|
45
|
+
# Извлекаем эклиптическую долготу (lon) и широту (lat)
|
46
|
+
ecliptic_longitude = ecliptic_coords.lon
|
47
|
+
ecliptic_latitude = ecliptic_coords.lat
|
48
|
+
|
49
|
+
# Выводим результат
|
50
|
+
print("Техническая проверка:")
|
51
|
+
print(f"Эклиптическая долгота Солнца: {ecliptic_longitude}")
|
52
|
+
print(f"Эклиптическая широта Солнца: {ecliptic_latitude}")
|
53
|
+
return(ecliptic_longitude.value)
|
54
|
+
|
55
|
+
|
56
|
+
#собираем за атмосферой все 4 компоненты
|
57
|
+
#принимает на вход галактические координаты
|
58
|
+
#принимает на вход дату и время наблюдения по UTC
|
59
|
+
def total_background(l, b, date, time, Sun_sp_wl = wavelenght_newguey2003, Sun_sp_fx = flux_newguey2003, V_wl = wavelenght_band_V, V_tr = trancparency_band_V, wavelenght_airglow = wavelenght_kp, intensity_airglow = intensity_kp, wavelenght_atmosphere = wavelenght_modtran_kp, transparency_atmosphere = trancparency_modtran_kp, venus_albedo_wl = venus_alb_wl, venus_albedo_rf = venus_alb_rf, mars_albedo_wl = mars_alb_wl, mars_albedo_rf = mars_alb_rf, jupiter_albedo_wl = jupiter_alb_wl, jupiter_albedo_rf = jupiter_alb_rf, saturn_albedo_wl = saturn_alb_wl, saturn_albedo_rf = saturn_alb_rf):
|
60
|
+
#получаем эклиптическую долготу Солнца
|
61
|
+
lmbd_Sun = Sun_ecl_lon(date, time)
|
62
|
+
#переводим галактические координаты в эклиптические геоцентрические
|
63
|
+
lmbd, beta = galactic_to_equatorial(l, b)
|
64
|
+
#получаем спектр зодиакального света (нм, фот / (м^2 сек нм ср))
|
65
|
+
zodiac_wl, zodiac_spec = zodiacal_spectrum(lmbd, beta, lmbd_Sun, Sun_sp_wl, Sun_sp_fx, V_wl, V_tr)
|
66
|
+
# return(zodiac_wl, zodiac_spec)
|
67
|
+
|
68
|
+
#собственное свечение достаем
|
69
|
+
airglow_wl, airglow_spec = airglow_spectrum(wavelenght_airglow, intensity_airglow, wavelenght_atmosphere, transparency_atmosphere)
|
70
|
+
|
71
|
+
# return(airglow_wl, airglow_spec)
|
72
|
+
#зод. свет и собств. свечение -- окей. Нужно допилить звездные каталоги и планеты.
|
73
|
+
|
74
|
+
#звездные каталоги
|
75
|
+
star_cat_wl = zodiac_wl
|
76
|
+
star_cat_spec = star_spectrum(l, b, star_cat_wl)
|
77
|
+
# return star_cat_wl, star_cat_spec
|
78
|
+
|
79
|
+
#планеты
|
80
|
+
#Венера
|
81
|
+
venus_l, venus_b = coordinates_of_planet('venus', date, time)
|
82
|
+
print('Техническая проверка координат Венеры:', round(venus_l, 1), round(venus_b, 1))
|
83
|
+
if round(venus_l, 1) == l and round(venus_b, 1) == b:
|
84
|
+
venus_wl, venus_sp = venus_spectrum(date, time, Sun_sp_wl, Sun_sp_fx, venus_albedo_wl, venus_albedo_rf, V_wl, V_tr)
|
85
|
+
else:
|
86
|
+
venus_wl = zodiac_wl
|
87
|
+
venus_sp = np.zeros(venus_wl.shape[0])
|
88
|
+
|
89
|
+
#Марс
|
90
|
+
mars_l, mars_b = coordinates_of_planet('mars', date, time)
|
91
|
+
print('Техническая проверка координат Марса:', round(mars_l, 1), round(mars_b, 1))
|
92
|
+
if round(mars_l, 1) == l and round(mars_b, 1) == b:
|
93
|
+
mars_wl, mars_sp = mars_spectrum(date, time, Sun_sp_wl, Sun_sp_fx, mars_albedo_wl, mars_albedo_rf, V_wl, V_tr)
|
94
|
+
else:
|
95
|
+
mars_wl = zodiac_wl
|
96
|
+
mars_sp = np.zeros(mars_wl.shape[0])
|
97
|
+
|
98
|
+
#Юпитер
|
99
|
+
jupiter_l, jupiter_b = coordinates_of_planet('jupiter', date, time)
|
100
|
+
print('Техническая проверка координат Юпитера:', round(jupiter_l, 1), round(jupiter_b, 1))
|
101
|
+
if round(jupiter_l, 1) == l and round(jupiter_b, 1) == b:
|
102
|
+
jupiter_wl, jupiter_sp = jupiter_spectrum(date, time, Sun_sp_wl, Sun_sp_fx, jupiter_albedo_wl, jupiter_albedo_rf, V_wl, V_tr)
|
103
|
+
else:
|
104
|
+
jupiter_wl = zodiac_wl
|
105
|
+
jupiter_sp = np.zeros(jupiter_wl.shape[0])
|
106
|
+
|
107
|
+
#Сатурн
|
108
|
+
saturn_l, saturn_b = coordinates_of_planet('saturn', date, time)
|
109
|
+
print('Техническая проверка координат Сатурна:', round(saturn_l, 1), round(saturn_b, 1))
|
110
|
+
if round(saturn_l, 1) == l and round(saturn_b, 1) == b:
|
111
|
+
saturn_wl, saturn_sp = saturn_spectrum(date, time, Sun_sp_wl, Sun_sp_fx, saturn_albedo_wl, saturn_albedo_rf, V_wl, V_tr)
|
112
|
+
else:
|
113
|
+
saturn_wl = zodiac_wl
|
114
|
+
saturn_sp = np.zeros(saturn_wl.shape[0])
|
115
|
+
|
116
|
+
#теперь бы объединить эти спектры
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|