diff --git a/ObservationSim/MockObject/FlatLED.py b/ObservationSim/MockObject/FlatLED.py index e21edff0b88532fe87dd7ff59e4d7b84faf10195..0d4428c23bfb49a698be1d56ebef98c43c7967b4 100755 --- a/ObservationSim/MockObject/FlatLED.py +++ b/ObservationSim/MockObject/FlatLED.py @@ -15,6 +15,13 @@ from scipy import interpolate from ObservationSim.MockObject.MockObject import MockObject # from ObservationSim.Straylight import calculateSkyMap_split_g +try: + import importlib.resources as pkg_resources +except ImportError: + # Try backported to PY<37 'importlib_resources' + import importlib_resources as pkg_resources + + # flatDir = '/Volumes/EAGET/LED_FLAT/' LED_name = ['LED1', 'LED2', 'LED3', 'LED4', 'LED5', 'LED6', 'LED7', 'LED8', 'LED9', 'LED10', 'LED11', 'LED12', 'LED13', 'LED14'] @@ -36,19 +43,27 @@ fluxLED = {'LED1': 0.16478729, 'LED2': 0.084220931, 'LED3': 2.263360617, 'LED4': mirro_eff = {'GU':0.61, 'GV':0.8, 'GI':0.8} class FlatLED(object): - def __init__(self, chip,filt, flatDir = '/Users/zhangxin/Work/SlitlessSim/csst_sls_calibration/flat_field_cube/models/', logger=None): + def __init__(self, chip,filt, flatDir = None, logger=None): # self.led_type_list = led_type_list - self.flatDir = flatDir self.filt = filt self.chip = chip self.logger = logger + if flatDir is not None: + self.flatDir = flatDir + else: + try: + with pkg_resources.files('ObservationSim.MockObject.data.led').joinpath("") as ledDir: + self.flatDir = ledDir.as_posix() + except AttributeError: + with pkg_resources.path('ObservationSim.MockObject.data.led', "") as ledDir: + self.flatDir = ledDir.as_posix() ### ### return LED flat, e/s ### def getLEDImage(self, led_type='LED1'): # cwave = cwaves[led_type] - flat = fits.open(self.flatDir + 'model_' + cwaves_name[led_type] + 'nm.fits') + flat = fits.open(os.path.join(self.flatDir, 'model_' + cwaves_name[led_type] + 'nm.fits')) xlen = flat[0].header['NAXIS1'] ylen = 601 x = np.linspace(0, self.chip.npix_x * 6, xlen) diff --git a/ObservationSim/MockObject/data/led/__init__.py b/ObservationSim/MockObject/data/led/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ObservationSim/MockObject/data/led/__pycache__/__init__.cpython-38.pyc b/ObservationSim/MockObject/data/led/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7ef0a5f3a295a16e765166aed8e9175fb7ff3158 Binary files /dev/null and b/ObservationSim/MockObject/data/led/__pycache__/__init__.cpython-38.pyc differ diff --git a/ObservationSim/MockObject/data/led/model_1050nm.fits b/ObservationSim/MockObject/data/led/model_1050nm.fits new file mode 100644 index 0000000000000000000000000000000000000000..ab4d7fe552327f846e2cdbad6afbbd8d421a1fbb Binary files /dev/null and b/ObservationSim/MockObject/data/led/model_1050nm.fits differ diff --git a/ObservationSim/MockObject/data/led/model_275nm.fits b/ObservationSim/MockObject/data/led/model_275nm.fits new file mode 100644 index 0000000000000000000000000000000000000000..da853b48db914fc23344ef2ef756da7a60218c9e Binary files /dev/null and b/ObservationSim/MockObject/data/led/model_275nm.fits differ diff --git a/ObservationSim/MockObject/data/led/model_310nm.fits b/ObservationSim/MockObject/data/led/model_310nm.fits new file mode 100644 index 0000000000000000000000000000000000000000..f327157e1d5a830f448e1c2eaa7ce9696e281b79 Binary files /dev/null and b/ObservationSim/MockObject/data/led/model_310nm.fits differ diff --git a/ObservationSim/MockObject/data/led/model_340nm.fits b/ObservationSim/MockObject/data/led/model_340nm.fits new file mode 100644 index 0000000000000000000000000000000000000000..a492490691d6f24980a01ffe8bd503ac63500bda Binary files /dev/null and b/ObservationSim/MockObject/data/led/model_340nm.fits differ diff --git a/ObservationSim/MockObject/data/led/model_365nm.fits b/ObservationSim/MockObject/data/led/model_365nm.fits new file mode 100644 index 0000000000000000000000000000000000000000..e0ee99d5c299944094361162a71750ec7ff66c48 Binary files /dev/null and b/ObservationSim/MockObject/data/led/model_365nm.fits differ diff --git a/ObservationSim/MockObject/data/led/model_430nm.fits b/ObservationSim/MockObject/data/led/model_430nm.fits new file mode 100644 index 0000000000000000000000000000000000000000..5b047006ff785c7a1d8c3e82abe57ab05c1f6dd6 Binary files /dev/null and b/ObservationSim/MockObject/data/led/model_430nm.fits differ diff --git a/ObservationSim/MockObject/data/led/model_505nm.fits b/ObservationSim/MockObject/data/led/model_505nm.fits new file mode 100644 index 0000000000000000000000000000000000000000..e7c2c5f5ad9eef9d7fe09297ce58847495a0f290 Binary files /dev/null and b/ObservationSim/MockObject/data/led/model_505nm.fits differ diff --git a/ObservationSim/MockObject/data/led/model_545nm.fits b/ObservationSim/MockObject/data/led/model_545nm.fits new file mode 100644 index 0000000000000000000000000000000000000000..aa5190ecb199467cfc3d1f5c7b156e83a6f5cfe6 Binary files /dev/null and b/ObservationSim/MockObject/data/led/model_545nm.fits differ diff --git a/ObservationSim/MockObject/data/led/model_590nm.fits b/ObservationSim/MockObject/data/led/model_590nm.fits new file mode 100644 index 0000000000000000000000000000000000000000..3f50a2d96f1c3b4e8a357260e811ff2f661b7b7d Binary files /dev/null and b/ObservationSim/MockObject/data/led/model_590nm.fits differ diff --git a/ObservationSim/MockObject/data/led/model_670nm.fits b/ObservationSim/MockObject/data/led/model_670nm.fits new file mode 100644 index 0000000000000000000000000000000000000000..67aaa2adb546595bef4e7a6c0c9a8bd1d6ad3e38 Binary files /dev/null and b/ObservationSim/MockObject/data/led/model_670nm.fits differ diff --git a/ObservationSim/MockObject/data/led/model_760nm.fits b/ObservationSim/MockObject/data/led/model_760nm.fits new file mode 100644 index 0000000000000000000000000000000000000000..90dbb05afeb4d73f9e05ef55ca74304577fd5976 Binary files /dev/null and b/ObservationSim/MockObject/data/led/model_760nm.fits differ diff --git a/ObservationSim/MockObject/data/led/model_940nm.fits b/ObservationSim/MockObject/data/led/model_940nm.fits new file mode 100644 index 0000000000000000000000000000000000000000..e38e570efe93d79ceae470daa7ea80761e42d268 Binary files /dev/null and b/ObservationSim/MockObject/data/led/model_940nm.fits differ diff --git a/ObservationSim/ObservationSim.py b/ObservationSim/ObservationSim.py index 1315d9a73fae97eaa1965939d3357e4f6a4f6e7c..7c0facf15587a2f3abe6b3c1e31c1730589afc64 100755 --- a/ObservationSim/ObservationSim.py +++ b/ObservationSim/ObservationSim.py @@ -439,13 +439,13 @@ class Observation(object): pf_map = led_flat # whether to output zero, dark, flat calibration images. expTime = self.config["obs_setting"]["exp_time"] - norm_scaler = skyback_level/expTime * self.filter_param.param[chip.filter_type][5] / self.filter_param.param[sky_level_filt][5] + norm_scaler = skyback_level/expTime / self.filter_param.param[sky_level_filt][5] if skyback_level == 0: self.config["ins_effects"]["shutter_effect"] = False if chip.survey_type == "photometric": - sky_map = np.ones_like(chip.img.array) * norm_scaler / self.tel.pupil_area + sky_map = np.ones_like(chip.img.array) * norm_scaler * self.filter_param.param[chip.filter_type][5] / self.tel.pupil_area elif chip.survey_type == "spectroscopic": flat_normal = np.ones_like(chip.img.array) if self.config["ins_effects"]["flat_fielding"] == True: diff --git a/setup.py b/setup.py index 80993769074ab8f25fe1da00fa041034ea0c30ab..1a902d5258d8989ccda0d0e23d4e4d2a7f6708b8 100644 --- a/setup.py +++ b/setup.py @@ -72,6 +72,7 @@ setup(name='CSSTSim', 'ObservationSim.Instrument.Chip.libBF': ['libmoduleBF.so'], 'ObservationSim.Instrument.Chip.libCTI': ['libmoduleCTI.so'], 'ObservationSim.MockObject.data': ['*.dat'], + 'ObservationSim.MockObject.data.led': ['*.fits'], 'ObservationSim.Instrument.data': ['*.txt', '*.dat', '*.json'], 'ObservationSim.Instrument.data.field_distortion': ['*.pickle'], 'ObservationSim.Instrument.data.ccd': ['*.txt'],