From a5975ed99c2f1f76dc6b8c91d515aca70222a209 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=A1=D0=B5?= =?UTF-8?q?=D0=BD=D0=B4=D0=B7=D0=B8=D0=BA=D0=B0=D1=81?= Date: Sat, 9 Aug 2025 16:23:25 +0300 Subject: [PATCH 1/3] =?UTF-8?q?issue-310=20=D1=84=D1=83=D0=BD=D0=BA=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B0=D1=81=D1=87?= =?UTF-8?q?=D1=91=D1=82=D0=B0=20=D0=BF=D0=BE=D0=B3=D0=BB=D0=BE=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/domain/dust.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 app/domain/dust.py diff --git a/app/domain/dust.py b/app/domain/dust.py new file mode 100644 index 00000000..bf1b0c36 --- /dev/null +++ b/app/domain/dust.py @@ -0,0 +1,39 @@ +from typing import Callable + +from astropy.coordinates import SkyCoord +from dustmaps.config import config +from dustmaps.planck import PlanckQuery +from dustmaps.sfd import SFDQuery, SFDWebQuery +from pathlib import Path + +project_dir = Path(__file__).parent.resolve() +config['data_dir'] = f'{project_dir}/dust_maps' + + +def get_absorption(coords: SkyCoord, dust_map: Callable): + """ + Получение поглощения + пример веб запроса: + создаём координаты + l = [180., 160.] + b = [30., 45.] + coords = SkyCoord(l, b, unit='deg', frame='galactic') + создаём карту + sdf = SFDWebQuery() + вызываем функцию + absorption = get_absorption(coords=coords, map=sdf) + + пример локального запроса: + в директории с этим файлом создаём папку dust_maps и в неё скачиваем локальные карты + + создаём координаты + l = [180., 160.] + b = [30., 45.] + coords = SkyCoord(l, b, unit='deg', frame='galactic') + создаём локальную карту + sdf = SFDQuery() + вызываем функцию + absorption = get_absorption(coords=coords, map=sdf) + """ + resp = dust_map(coords) + return resp From 619b89620b12da469b4e5fe6247d3047b99cae1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=A1=D0=B5?= =?UTF-8?q?=D0=BD=D0=B4=D0=B7=D0=B8=D0=BA=D0=B0=D1=81?= Date: Wed, 10 Sep 2025 22:57:56 +0300 Subject: [PATCH 2/3] =?UTF-8?q?issue-310=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=B4=D0=BE=D0=BF=20=D1=84=D1=83=D0=BD=D0=BA?= =?UTF-8?q?=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/domain/dust.py | 184 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 156 insertions(+), 28 deletions(-) diff --git a/app/domain/dust.py b/app/domain/dust.py index bf1b0c36..4ac35cf1 100644 --- a/app/domain/dust.py +++ b/app/domain/dust.py @@ -1,39 +1,167 @@ -from typing import Callable - from astropy.coordinates import SkyCoord from dustmaps.config import config from dustmaps.planck import PlanckQuery from dustmaps.sfd import SFDQuery, SFDWebQuery +from dustmaps.csfd import CSFDQuery +from dustmaps.bayestar import BayestarQuery +from dustmaps.chen2014 import Chen2014Query +from dustmaps.decaps import DECaPSQuery +from dustmaps.edenhofer2023 import Edenhofer2023Query +from dustmaps.gaia_tge import GaiaTGEQuery +from dustmaps.iphas import IPHASQuery +from dustmaps.leike2020 import Leike2020Query +from dustmaps.leike_ensslin_2019 import LeikeEnsslin2019Query +from dustmaps.lenz2017 import Lenz2017Query +from dustmaps.marshall import MarshallQuery +from dustmaps.pg2010 import PG2010Query from pathlib import Path project_dir = Path(__file__).parent.resolve() +""" + Для локального запроса в директории с этим файлом создаём папку dust_maps и в неё скачиваем локальные карты + 1) карта должна быть примерно по такому пути /db-app/app/domain/dust_maps/sfd/SFD_dust_4096_ngp.fits + скачать её можно командами в пайтон консоли + + from dustmaps.config import config + config['data_dir'] = '/path/to/store/maps/in' + + import dustmaps.sfd + dustmaps.sfd.fetch() + + import dustmaps.csfd + dustmaps.csfd.fetch() + + import dustmaps.planck + dustmaps.planck.fetch() + + import dustmaps.planck + dustmaps.planck.fetch(which='GNILC') + + import dustmaps.bayestar + dustmaps.bayestar.fetch() + + import dustmaps.iphas + dustmaps.iphas.fetch() + + import dustmaps.marshall + dustmaps.marshall.fetch() + + import dustmaps.chen2014 + dustmaps.chen2014.fetch() + + import dustmaps.lenz2017 + dustmaps.lenz2017.fetch() + + import dustmaps.pg2010 + dustmaps.pg2010.fetch() + + import dustmaps.leike_ensslin_2019 + dustmaps.leike_ensslin_2019.fetch() + + import dustmaps.leike2020 + dustmaps.leike2020.fetch() + + import dustmaps.edenhofer2023 + dustmaps.edenhofer2023.fetch() + + import dustmaps.gaia_tge + dustmaps.gaia_tge.fetch() + + import dustmaps.decaps + dustmaps.decaps.fetch() +""" config['data_dir'] = f'{project_dir}/dust_maps' +""" + 1) coords = SkyCoord('12h30m25.3s', '15d15m58.1s', frame='icrs') + + 2) l = np.array([0., 90., 180.]) + b = np.array([15., 0., -15.]) + coords = SkyCoord(l, b, unit='deg', frame='galactic') + + 3) coords = SkyCoord(180., 0., unit='deg', frame='galactic') +""" + + +def get_absorption_sdf_web(coords: SkyCoord): + edv = SFDWebQuery() + resp = edv(coords) + return resp + + +def get_absorption_sdf(coords: SkyCoord): + edv = SFDQuery() + resp = edv(coords) + return resp + + +def get_absorption_plank(coords: SkyCoord): + edv = PlanckQuery() + resp = edv(coords) + return resp + -def get_absorption(coords: SkyCoord, dust_map: Callable): - """ - Получение поглощения - пример веб запроса: - создаём координаты - l = [180., 160.] - b = [30., 45.] - coords = SkyCoord(l, b, unit='deg', frame='galactic') - создаём карту - sdf = SFDWebQuery() - вызываем функцию - absorption = get_absorption(coords=coords, map=sdf) - - пример локального запроса: - в директории с этим файлом создаём папку dust_maps и в неё скачиваем локальные карты - - создаём координаты - l = [180., 160.] - b = [30., 45.] - coords = SkyCoord(l, b, unit='deg', frame='galactic') - создаём локальную карту - sdf = SFDQuery() - вызываем функцию - absorption = get_absorption(coords=coords, map=sdf) - """ - resp = dust_map(coords) +def get_absorption_scfd(coords: SkyCoord): + edv = CSFDQuery() + resp = edv(coords) return resp + + +def get_absorption_bayerstar(coords: SkyCoord): + edv = BayestarQuery() + resp = edv(coords) + return resp + + +def get_absorption_chen2014(coords: SkyCoord): + edv = Chen2014Query() + resp = edv(coords) + return resp + + +def get_absorption_decaps(coords: SkyCoord): + edv = DECaPSQuery() + resp = edv(coords) + return resp + + +def get_absorption_edenhofer_2023(coords: SkyCoord): + edv = Edenhofer2023Query() + resp = edv(coords) + return resp + + +def get_absorption_gaia_tge(coords: SkyCoord): + edv = GaiaTGEQuery() + resp = edv(coords) + return resp + + +def get_absorption_iphas(coords: SkyCoord): + edv = IPHASQuery() + resp = edv(coords) + return resp + + +def get_absorption_leike_2020(coords: SkyCoord): + edv = Leike2020Query() + resp = edv(coords) + return resp + + +def get_absorption_leike_ensslin_2019(coords: SkyCoord): + edv = LeikeEnsslin2019Query() + resp = edv(coords) + return resp + + +def get_absorption_lenz2017(coords: SkyCoord): + edv = Lenz2017Query() + resp = edv(coords) + return resp + + +def get_absorption_marshall(coords: SkyCoord): + edv = MarshallQuery() + resp = edv(coords) + return resp \ No newline at end of file From a154a98360d1893373bfab6f69fdb55015a78f50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=A1=D0=B5?= =?UTF-8?q?=D0=BD=D0=B4=D0=B7=D0=B8=D0=BA=D0=B0=D1=81?= Date: Sun, 14 Sep 2025 18:24:44 +0300 Subject: [PATCH 3/3] =?UTF-8?q?issue-310=20=D0=BE=D1=81=D1=82=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=B4=D0=B0=D1=8E=D1=89=D0=B8=D0=B5=20=D0=BA=D0=BE?= =?UTF-8?q?=D1=80=D1=80=D0=B5=D0=BA=D1=82=D0=BD=D1=8B=D0=B9=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B7=D1=83=D0=BB=D1=8C=D1=82=D0=B0=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/domain/dust.py | 109 ++------------------------------------------- 1 file changed, 3 insertions(+), 106 deletions(-) diff --git a/app/domain/dust.py b/app/domain/dust.py index 4ac35cf1..67a58edf 100644 --- a/app/domain/dust.py +++ b/app/domain/dust.py @@ -1,19 +1,9 @@ from astropy.coordinates import SkyCoord from dustmaps.config import config from dustmaps.planck import PlanckQuery -from dustmaps.sfd import SFDQuery, SFDWebQuery +from dustmaps.sfd import SFDQuery from dustmaps.csfd import CSFDQuery -from dustmaps.bayestar import BayestarQuery -from dustmaps.chen2014 import Chen2014Query -from dustmaps.decaps import DECaPSQuery -from dustmaps.edenhofer2023 import Edenhofer2023Query -from dustmaps.gaia_tge import GaiaTGEQuery -from dustmaps.iphas import IPHASQuery -from dustmaps.leike2020 import Leike2020Query -from dustmaps.leike_ensslin_2019 import LeikeEnsslin2019Query from dustmaps.lenz2017 import Lenz2017Query -from dustmaps.marshall import MarshallQuery -from dustmaps.pg2010 import PG2010Query from pathlib import Path project_dir = Path(__file__).parent.resolve() @@ -23,7 +13,7 @@ скачать её можно командами в пайтон консоли from dustmaps.config import config - config['data_dir'] = '/path/to/store/maps/in' + config['data_dir'] = ('/Volumes/NVME 1TB/PyProjects/LEDA/app/domain/dust_maps') # нужно прописать свой путь import dustmaps.sfd dustmaps.sfd.fetch() @@ -34,41 +24,8 @@ import dustmaps.planck dustmaps.planck.fetch() - import dustmaps.planck - dustmaps.planck.fetch(which='GNILC') - - import dustmaps.bayestar - dustmaps.bayestar.fetch() - - import dustmaps.iphas - dustmaps.iphas.fetch() - - import dustmaps.marshall - dustmaps.marshall.fetch() - - import dustmaps.chen2014 - dustmaps.chen2014.fetch() - import dustmaps.lenz2017 dustmaps.lenz2017.fetch() - - import dustmaps.pg2010 - dustmaps.pg2010.fetch() - - import dustmaps.leike_ensslin_2019 - dustmaps.leike_ensslin_2019.fetch() - - import dustmaps.leike2020 - dustmaps.leike2020.fetch() - - import dustmaps.edenhofer2023 - dustmaps.edenhofer2023.fetch() - - import dustmaps.gaia_tge - dustmaps.gaia_tge.fetch() - - import dustmaps.decaps - dustmaps.decaps.fetch() """ config['data_dir'] = f'{project_dir}/dust_maps' @@ -83,12 +40,6 @@ """ -def get_absorption_sdf_web(coords: SkyCoord): - edv = SFDWebQuery() - resp = edv(coords) - return resp - - def get_absorption_sdf(coords: SkyCoord): edv = SFDQuery() resp = edv(coords) @@ -101,67 +52,13 @@ def get_absorption_plank(coords: SkyCoord): return resp -def get_absorption_scfd(coords: SkyCoord): +def get_absorption_csfd(coords: SkyCoord): edv = CSFDQuery() resp = edv(coords) return resp -def get_absorption_bayerstar(coords: SkyCoord): - edv = BayestarQuery() - resp = edv(coords) - return resp - - -def get_absorption_chen2014(coords: SkyCoord): - edv = Chen2014Query() - resp = edv(coords) - return resp - - -def get_absorption_decaps(coords: SkyCoord): - edv = DECaPSQuery() - resp = edv(coords) - return resp - - -def get_absorption_edenhofer_2023(coords: SkyCoord): - edv = Edenhofer2023Query() - resp = edv(coords) - return resp - - -def get_absorption_gaia_tge(coords: SkyCoord): - edv = GaiaTGEQuery() - resp = edv(coords) - return resp - - -def get_absorption_iphas(coords: SkyCoord): - edv = IPHASQuery() - resp = edv(coords) - return resp - - -def get_absorption_leike_2020(coords: SkyCoord): - edv = Leike2020Query() - resp = edv(coords) - return resp - - -def get_absorption_leike_ensslin_2019(coords: SkyCoord): - edv = LeikeEnsslin2019Query() - resp = edv(coords) - return resp - - def get_absorption_lenz2017(coords: SkyCoord): edv = Lenz2017Query() resp = edv(coords) return resp - - -def get_absorption_marshall(coords: SkyCoord): - edv = MarshallQuery() - resp = edv(coords) - return resp \ No newline at end of file