Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
csst-sims
csst_msc_sim
Commits
02adb0ea
Commit
02adb0ea
authored
Apr 12, 2024
by
Wei Chengliang
Browse files
append unittest:dark
parent
e6411518
Changes
1
Show whitespace changes
Inline
Side-by-side
tests/test_darknoise_func.py
0 → 100644
View file @
02adb0ea
import
unittest
import
sys
,
os
,
math
from
itertools
import
islice
import
numpy
as
np
import
galsim
import
yaml
from
ObservationSim.Instrument
import
Chip
,
Filter
,
FilterParam
,
FocalPlane
#from ObservationSim.Instrument.Chip import ChipUtils as chip_utils
### test FUNCTION --- START ###
def
get_base_img
(
img
,
chip
,
read_noise
,
readout_time
,
dark_noise
,
exptime
=
150.
,
InputDark
=
None
):
if
InputDark
==
None
:
# base_level = read_noise**2 + dark_noise*(exptime+0.5*readout_time)
## base_level = dark_noise*(exptime+0.5*readout_time)
base_level
=
dark_noise
*
(
exptime
)
base_img1
=
base_level
*
np
.
ones_like
(
img
.
array
)
else
:
base_img1
=
np
.
zeros_like
(
img
.
array
)
ny
=
int
(
chip
.
npix_y
/
2
)
nx
=
chip
.
npix_x
arr
=
np
.
arange
(
ny
).
reshape
(
ny
,
1
)
arr
=
np
.
broadcast_to
(
arr
,
(
ny
,
nx
))
base_img2
=
np
.
zeros_like
(
img
.
array
)
base_img2
[:
ny
,
:]
=
arr
base_img2
[
ny
:,
:]
=
arr
[::
-
1
,:]
base_img2
[:,:]
=
base_img2
[:,:]
*
(
readout_time
/
ny
)
*
dark_noise
return
base_img1
+
base_img2
### test FUNCTION --- END ###
def
defineCCD
(
iccd
,
config_file
):
with
open
(
config_file
,
"r"
)
as
stream
:
try
:
config
=
yaml
.
safe_load
(
stream
)
#for key, value in config.items():
# print (key + " : " + str(value))
except
yaml
.
YAMLError
as
exc
:
print
(
exc
)
chip
=
Chip
(
chipID
=
iccd
,
config
=
config
)
chip
.
img
=
galsim
.
ImageF
(
chip
.
npix_x
,
chip
.
npix_y
)
focal_plane
=
FocalPlane
(
chip_list
=
[
iccd
])
chip
.
img
.
wcs
=
focal_plane
.
getTanWCS
(
192.8595
,
27.1283
,
-
113.4333
*
galsim
.
degrees
,
chip
.
pix_scale
)
return
chip
def
defineFilt
(
chip
):
filter_param
=
FilterParam
()
filter_id
,
filter_type
=
chip
.
getChipFilter
()
filt
=
Filter
(
filter_id
=
filter_id
,
filter_type
=
filter_type
,
filter_param
=
filter_param
,
ccd_bandpass
=
chip
.
effCurve
)
bandpass_list
=
filt
.
bandpass_sub_list
return
bandpass_list
class
detModule_coverage
(
unittest
.
TestCase
):
def
__init__
(
self
,
methodName
=
'runTest'
):
super
(
detModule_coverage
,
self
).
__init__
(
methodName
)
self
.
dataPath
=
"/public/home/chengliang/CSSOSDataProductsSims/csst-simulation/tests/UNIT_TEST_DATA"
##os.path.join(os.getenv('UNIT_TEST_DATA_ROOT'), 'csst_fz_gc1')
self
.
iccd
=
1
def
test_add_dark
(
self
):
config_file
=
os
.
path
.
join
(
self
.
dataPath
,
'config_test.yaml'
)
chip
=
defineCCD
(
self
.
iccd
,
config_file
)
bandpass
=
defineFilt
(
chip
)
print
(
chip
.
chipID
)
print
(
chip
.
cen_pix_x
,
chip
.
cen_pix_y
)
exptime
=
150.
base_img
=
get_base_img
(
img
=
chip
.
img
,
chip
=
chip
,
read_noise
=
chip
.
read_noise
,
readout_time
=
chip
.
readout_time
,
dark_noise
=
chip
.
dark_noise
,
exptime
=
exptime
,
InputDark
=
None
)
ny
=
int
(
chip
.
npix_y
/
2
)
self
.
assertTrue
(
np
.
abs
(
np
.
max
(
base_img
)
-
(
exptime
*
chip
.
dark_noise
+
(
ny
-
1
)
*
(
chip
.
readout_time
/
ny
)
*
chip
.
dark_noise
))
<
1e-6
)
self
.
assertTrue
(
np
.
min
(
base_img
)
==
3
)
base_img
=
get_base_img
(
img
=
chip
.
img
,
chip
=
chip
,
read_noise
=
chip
.
read_noise
,
readout_time
=
chip
.
readout_time
,
dark_noise
=
chip
.
dark_noise
,
exptime
=
150.
,
InputDark
=
"testTag"
)
self
.
assertTrue
(
np
.
abs
(
np
.
max
(
base_img
)
-
((
ny
-
1
)
*
(
chip
.
readout_time
/
ny
)
*
chip
.
dark_noise
))
<
1e-6
)
if
__name__
==
'__main__'
:
unittest
.
main
()
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment