From 3c8dbef054924d32d7105a2763f01172b83487cb Mon Sep 17 00:00:00 2001 From: yan Date: Wed, 17 Apr 2024 10:55:08 +0800 Subject: [PATCH] debug --- .../CTI/__pycache__/CTI.cpython-311.pyc | Bin 0 -> 8708 bytes .../CTI/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 169 bytes csst_mci_sim/csst_mci_sim.py | 93 +------- csst_mci_sim/earthshine.py | 216 ++++++++++++++++++ csst_mci_sim/shraylight.py | 216 ++++++++++++++++++ .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 173 bytes .../__pycache__/cosmicrays.cpython-311.pyc | Bin 0 -> 12302 bytes .../__pycache__/logger.cpython-311.pyc | Bin 0 -> 1468 bytes csst_mci_sim/zodiacal.py | 75 ++++++ tests/test_earthshine.py | 58 +++++ tests/test_straylight.py | 58 +++++ tests/test_zodiacal.py | 51 +++++ 12 files changed, 683 insertions(+), 84 deletions(-) create mode 100644 csst_mci_sim/CTI/__pycache__/CTI.cpython-311.pyc create mode 100644 csst_mci_sim/CTI/__pycache__/__init__.cpython-311.pyc create mode 100644 csst_mci_sim/earthshine.py create mode 100644 csst_mci_sim/shraylight.py create mode 100644 csst_mci_sim/support/__pycache__/__init__.cpython-311.pyc create mode 100644 csst_mci_sim/support/__pycache__/cosmicrays.cpython-311.pyc create mode 100644 csst_mci_sim/support/__pycache__/logger.cpython-311.pyc create mode 100644 csst_mci_sim/zodiacal.py create mode 100644 tests/test_earthshine.py create mode 100644 tests/test_straylight.py create mode 100644 tests/test_zodiacal.py diff --git a/csst_mci_sim/CTI/__pycache__/CTI.cpython-311.pyc b/csst_mci_sim/CTI/__pycache__/CTI.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a983316360d3e6a00ecc939a20238bbe7c6c991a GIT binary patch literal 8708 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 RK$3fxw;BD52CZ!9{{X{(0L%aY literal 0 HcmV?d00001 diff --git a/csst_mci_sim/CTI/__pycache__/__init__.cpython-311.pyc b/csst_mci_sim/CTI/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..caed98cd22b974dc7d35c35afc730601a59b2f07 GIT binary patch literal 169 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 NzrpptuhEK$`9Bp+F)RQ8 literal 0 HcmV?d00001 diff --git a/csst_mci_sim/support/__pycache__/logger.cpython-311.pyc b/csst_mci_sim/support/__pycache__/logger.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..667ec88207c5cbff63444d0e2650a66f96b87462 GIT binary patch literal 1468 zcmZ`(&1)M+6rWv<cK4_jPovONCt&*oE^I@Z2k6kDu4kvyP60hfm zPL~B1SMzDF5{;5xZk{apWFcKT4{WOmA|v~g+8B+tn}kwb*QQ|ip*zVaI6 zH#7Z(+E)+ev!o#?oJk0EWbT+2qm@N3oO&I=0iUKmT8w^?S?DpBM%W+si2Ip?rF3_G z?c>Fa3W900d5=_n4Z@pLLF`gr?R@AqKiilS79--!F@WY=VzHk&-2*^G-Tz%DK#yt2 zNv})H-z+ewnFu;{pKaK?qoQ|Ag zBdNn^*kb^msS(h~L({itoM`|4)oUgP{Cc#)$qjP#nitqTH&rCIA3{gTo=f+rE32ix zfK#&tTBRVCWO@Lt$hT(gG`PnfFeLAabl}X@=rKGUPPhUkS z!6icFMUZ!QYVE+IwdbZ^^DL(kQXbYU&clY(xZ^DJt|%wY#(9$<)iN({krqZgAp!AxIDz=|G>v69U8aB z#;t#DkBqyKad)uuHiyoxMJrc^WoNX~iB>v;ua0ry5U-8#+N(<=ycOZCA>NwgQ2xxJ zwm#O@N7_cDZA_4oB}ba^BUmqwwaX)IGtxGP+U7CV5Ao_4um0Q`;ZlT4LtHv8oE6C{~|lrsZE{*KUR!}LGNtt;my=o2ii@*a`aXCnXr literal 0 HcmV?d00001 diff --git a/csst_mci_sim/zodiacal.py b/csst_mci_sim/zodiacal.py new file mode 100644 index 0000000..350340c --- /dev/null +++ b/csst_mci_sim/zodiacal.py @@ -0,0 +1,75 @@ +import numpy as np +import julian +from datetime import datetime +from astropy.time import Time +from astropy.coordinates import get_sun +from astropy.coordinates import SkyCoord +import pandas as pd +from astropy import units as u + +from scipy import interpolate + +def zodiacal(ra, dec, time, path): + """ + For given RA, DEC and TIME, return the interpolated zodical spectrum in Leinert-1998. + + :param ra: RA in unit of degree, ICRS frame + :param dec: DEC in unit of degree, ICRS frame + :param time: the specified string that in ISO format i.e., yyyy-mm-dd. + :param path: the relative file path + :return: + wave_A: wavelength of the zodical spectrum + + spec_erg: flux of the zodical spectrum, in unit of erg/s/cm^2/A/sr + + """ + + # get solar position + dt = datetime.fromisoformat(time) + jd = julian.to_jd(dt, fmt='jd') + + ###jd = time2jd(dt) + t = Time(jd, format='jd', scale='utc') + + astro_sun = get_sun(t) + ra_sun, dec_sun = astro_sun.gcrs.ra.deg, astro_sun.gcrs.dec.deg + + radec_sun = SkyCoord(ra=ra_sun*u.degree, dec=dec_sun*u.degree, frame='gcrs') + lb_sun = radec_sun.transform_to('geocentrictrueecliptic') + + # get offsets between the target and sun. + radec_obj = SkyCoord(ra=ra*u.degree, dec=dec*u.degree, frame='icrs') + lb_obj = radec_obj.transform_to('geocentrictrueecliptic') + + beta = abs(lb_obj.lat.degree) + lamda = abs(lb_obj.lon.degree - lb_sun.lon.degree) + + # interpolated zodical surface brightness at 0.5 um + zodi = pd.read_csv(path+'MCI_inputData/refs/zodi_map.dat', sep='\s+', header=None, comment='#') + beta_angle = np.array([0, 5, 10, 15, 20, 25, 30, 45, 60, 75]) + lamda_angle = np.array([0, 5, 10, 15, 20, 25, 30, 35, 40, 45, + 60, 75, 90, 105, 120, 135, 150, 165, 180]) + xx, yy = np.meshgrid(beta_angle, lamda_angle) + f = interpolate.interp2d(xx, yy, zodi, kind='linear') + zodi_obj = f(beta, lamda) # 10^�? W m�? sr�? um�? + + # read the zodical spectrum in the ecliptic + cat_spec = pd.read_csv(path+'MCI_inputData/refs/solar_spec.dat', sep='\s+', header=None, comment='#') + wave = cat_spec[0].values # A + spec0 = cat_spec[1].values # 10^-8 W m^�? sr^�? μm^�? + zodi_norm = 252 # 10^-8 W m^�? sr^�? μm^�? + + spec = spec0 * (zodi_obj / zodi_norm) * 1e-8 # W m^�? sr^�? μm^�? + + # convert to the commonly used unit of MJy/sr, erg/s/cm^2/A/sr + wave_A = wave # A + #spec_mjy = spec * 0.1 * wave_A**2 / 3e18 * 1e23 * 1e-6 # MJy/sr + spec_erg = spec * 0.1 # erg/s/cm^2/A/sr + spec_erg2 = spec_erg / 4.25452e10 # erg/s/cm^2/A/arcsec^2 + + return wave_A, spec_erg2 + + +############################### +# path='/home/yan/MCI/' +# wave0, zodi0=zodiacal(10.0, 20.0, '2024-04-04', path) diff --git a/tests/test_earthshine.py b/tests/test_earthshine.py new file mode 100644 index 0000000..8a5705e --- /dev/null +++ b/tests/test_earthshine.py @@ -0,0 +1,58 @@ +""" +Identifier: mci_sim/tests/test_earthshine.py +Name: test_earthshine.py +Description: Test earthshine sim. +Author: Zhaojun Yan +Created: 2024-04-09 +Modified-History: + 2024-04-09, Zhaojun Yan, created + +""" + +import unittest +import os +import sys +import faulthandler +from csst_mci_sim import earthshine as eth + + +class TestDemoFunction(unittest.TestCase): + def test_earthshine(self): + """ + Aim + --- + Test earthshine sim function: . + + Criteria + -------- + Pass if the demo function returns `1`. + + Details + ------- + The demo function returns the length of the input argument list. + This case aims to test whether the demo function returns `1` if input is `None`. + """ + faulthandler.enable() + + # demo function test + dir_path = os.path.join(os.environ['UNIT_TEST_DATA_ROOT'], 'mci_sim/') + print(dir_path) + + # 获取当前工作目录 + # current_path = os.getcwd() + # print("当前路径:", current_path) + + time_jd = 2460417.59979167 + x_sat = -4722.543136 + y_sat = -1478.219213 + z_sat = 4595.402769 + ra = 116.18081536720157 + dec = 39.42316681016602 + earthshine0 = eth.earthshine( + dir_path, time_jd, x_sat, y_sat, z_sat, ra, dec) + + self.assertEqual( + 1, 1, + "case 1: EXDF sim passes.", + ) + ############################################# diff --git a/tests/test_straylight.py b/tests/test_straylight.py new file mode 100644 index 0000000..ce98abc --- /dev/null +++ b/tests/test_straylight.py @@ -0,0 +1,58 @@ +""" +Identifier: mci_sim/tests/test_straylight.py +Name: test_straylight.py +Description: Test straylight sim. +Author: Zhaojun Yan +Created: 2024-04-09 +Modified-History: + 2024-04-09, Zhaojun Yan, created + +""" + +import unittest +import os +import sys +import faulthandler +from csst_mci_sim import straylight as stl + + +class TestDemoFunction(unittest.TestCase): + def test_straylight(self): + """ + Aim + --- + Test straylight sim function: . + + Criteria + -------- + Pass if the demo function returns `1`. + + Details + ------- + The demo function returns the length of the input argument list. + This case aims to test whether the demo function returns `1` if input is `None`. + """ + faulthandler.enable() + + # demo function test + dir_path = os.path.join(os.environ['UNIT_TEST_DATA_ROOT'], 'mci_sim/') + print(dir_path) + + # 获取当前工作目录 + # current_path = os.getcwd() + # print("当前路径:", current_path) + + time_jd = 2460417.59979167 + x_sat = -4722.543136 + y_sat = -1478.219213 + z_sat = 4595.402769 + ra = 116.18081536720157 + dec = 39.42316681016602 + straylight0 = stl.stray_light( + dir_path, time_jd, x_sat, y_sat, z_sat, ra, dec) + + self.assertEqual( + 1, 1, + "case 1: EXDF sim passes.", + ) + ############################################# diff --git a/tests/test_zodiacal.py b/tests/test_zodiacal.py new file mode 100644 index 0000000..78efdf8 --- /dev/null +++ b/tests/test_zodiacal.py @@ -0,0 +1,51 @@ +""" +Identifier: mci_sim/tests/test_zodiacal.py +Name: test_zodiacal.py +Description: Test zodiacal sim. +Author: Zhaojun Yan +Created: 2024-04-09 +Modified-History: + 2024-04-09, Zhaojun Yan, created + +""" + +import unittest +import os +import sys +import faulthandler +from csst_mci_sim import zodiacal + + +class TestDemoFunction(unittest.TestCase): + def test_zodiacal(self): + """ + Aim + --- + Test zodiacal sim function: . + + Criteria + -------- + Pass if the demo function returns `1`. + + Details + ------- + The demo function returns the length of the input argument list. + This case aims to test whether the demo function returns `1` if input is `None`. + """ + faulthandler.enable() + + # demo function test + dir_path = os.path.join(os.environ['UNIT_TEST_DATA_ROOT'], 'mci_sim/') + print(dir_path) + + # 获取当前工作目录 + # current_path = os.getcwd() + # print("当前路径:", current_path) + + zodiacal(10.0, 20.0, '2024-04-04', dir_path): + + self.assertEqual( + 1, 1, + "case 1: EXDF sim passes.", + ) + ############################################# -- GitLab