1
+ <!DOCTYPE html>
2
+ < html class ="writer-html5 " lang ="en " >
3
+ < head >
4
+ < meta charset ="utf-8 " />
5
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
6
+ < title > galsim.config.extra_badpix — GalSim 2.7.0 documentation</ title >
7
+ < link rel ="stylesheet " href ="../../../_static/pygments.css " type ="text/css " />
8
+ < link rel ="stylesheet " href ="../../../_static/css/theme.css " type ="text/css " />
9
+ <!--[if lt IE 9]>
10
+ <script src="../../../_static/js/html5shiv.min.js"></script>
11
+ <![endif]-->
12
+
13
+ < script src ="../../../_static/jquery.js "> </ script >
14
+ < script src ="../../../_static/_sphinx_javascript_frameworks_compat.js "> </ script >
15
+ < script data-url_root ="../../../ " id ="documentation_options " src ="../../../_static/documentation_options.js "> </ script >
16
+ < script src ="../../../_static/doctools.js "> </ script >
17
+ < script src ="../../../_static/sphinx_highlight.js "> </ script >
18
+ < script src ="../../../_static/js/theme.js "> </ script >
19
+ < link rel ="index " title ="Index " href ="../../../genindex.html " />
20
+ < link rel ="search " title ="Search " href ="../../../search.html " />
21
+ </ head >
22
+
23
+ < body class ="wy-body-for-nav ">
24
+ < div class ="wy-grid-for-nav ">
25
+ < nav data-toggle ="wy-nav-shift " class ="wy-nav-side ">
26
+ < div class ="wy-side-scroll ">
27
+ < div class ="wy-side-nav-search " >
28
+
29
+
30
+
31
+ < a href ="../../../index.html " class ="icon icon-home ">
32
+ GalSim
33
+ </ a >
34
+ < div class ="version ">
35
+ 2.7
36
+ </ div >
37
+ < div role ="search ">
38
+ < form id ="rtd-search-form " class ="wy-form " action ="../../../search.html " method ="get ">
39
+ < input type ="text " name ="q " placeholder ="Search docs " aria-label ="Search docs " />
40
+ < input type ="hidden " name ="check_keywords " value ="yes " />
41
+ < input type ="hidden " name ="area " value ="default " />
42
+ </ form >
43
+ </ div >
44
+ </ div > < div class ="wy-menu wy-menu-vertical " data-spy ="affix " role ="navigation " aria-label ="Navigation menu ">
45
+ < ul >
46
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../overview.html "> Overview</ a > </ li >
47
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../install.html "> Installation Instructions</ a > </ li >
48
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../tutorials.html "> Tutorials</ a > </ li >
49
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../image.html "> Images and Related Concepts</ a > </ li >
50
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../sb.html "> Surface Brightness Profiles</ a > </ li >
51
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../chromatic.html "> Wavelength-dependent Profiles</ a > </ li >
52
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../units.html "> Units</ a > </ li >
53
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../wcs.html "> World Coordinate Systems</ a > </ li >
54
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../random.html "> Noise and Random Values</ a > </ li >
55
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../wl.html "> Weak Lensing</ a > </ li >
56
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../photon.html "> Photon Shooting</ a > </ li >
57
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../utilities.html "> Helper Functions and Classes</ a > </ li >
58
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../errors.html "> Errors and Warnings</ a > </ li >
59
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../config.html "> The Config Module</ a > </ li >
60
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../hsm.html "> The HSM Module</ a > </ li >
61
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../des.html "> The DES Module</ a > </ li >
62
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../roman.html "> The Roman Space Telescope Module</ a > </ li >
63
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../cpp.html "> C++ Layer</ a > </ li >
64
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../shared.html "> Shared Data</ a > </ li >
65
+ < li class ="toctree-l1 "> < a class ="reference internal " href ="../../../history.html "> Revision History</ a > </ li >
66
+ </ ul >
67
+
68
+ </ div >
69
+ </ div >
70
+ </ nav >
71
+
72
+ < section data-toggle ="wy-nav-shift " class ="wy-nav-content-wrap "> < nav class ="wy-nav-top " aria-label ="Mobile navigation menu " >
73
+ < i data-toggle ="wy-nav-top " class ="fa fa-bars "> </ i >
74
+ < a href ="../../../index.html "> GalSim</ a >
75
+ </ nav >
76
+
77
+ < div class ="wy-nav-content ">
78
+ < div class ="rst-content ">
79
+ < div role ="navigation " aria-label ="Page navigation ">
80
+ < ul class ="wy-breadcrumbs ">
81
+ < li > < a href ="../../../index.html " class ="icon icon-home " aria-label ="Home "> </ a > </ li >
82
+ < li class ="breadcrumb-item "> < a href ="../../index.html "> Module code</ a > </ li >
83
+ < li class ="breadcrumb-item active "> galsim.config.extra_badpix</ li >
84
+ < li class ="wy-breadcrumbs-aside ">
85
+ </ li >
86
+ </ ul >
87
+ < hr />
88
+ </ div >
89
+ < div role ="main " class ="document " itemscope ="itemscope " itemtype ="http://schema.org/Article ">
90
+ < div itemprop ="articleBody ">
91
+
92
+ < h1 > Source code for galsim.config.extra_badpix</ h1 > < div class ="highlight "> < pre >
93
+ < span > </ span > < span class ="c1 "> # Copyright (c) 2012-2023 by the GalSim developers team on GitHub</ span >
94
+ < span class ="c1 "> # https://github.com/GalSim-developers</ span >
95
+ < span class ="c1 "> #</ span >
96
+ < span class ="c1 "> # This file is part of GalSim: The modular galaxy image simulation toolkit.</ span >
97
+ < span class ="c1 "> # https://github.com/GalSim-developers/GalSim</ span >
98
+ < span class ="c1 "> #</ span >
99
+ < span class ="c1 "> # GalSim is free software: redistribution and use in source and binary forms,</ span >
100
+ < span class ="c1 "> # with or without modification, are permitted provided that the following</ span >
101
+ < span class ="c1 "> # conditions are met:</ span >
102
+ < span class ="c1 "> #</ span >
103
+ < span class ="c1 "> # 1. Redistributions of source code must retain the above copyright notice, this</ span >
104
+ < span class ="c1 "> # list of conditions, and the disclaimer given in the accompanying LICENSE</ span >
105
+ < span class ="c1 "> # file.</ span >
106
+ < span class ="c1 "> # 2. Redistributions in binary form must reproduce the above copyright notice,</ span >
107
+ < span class ="c1 "> # this list of conditions, and the disclaimer given in the documentation</ span >
108
+ < span class ="c1 "> # and/or other materials provided with the distribution.</ span >
109
+ < span class ="c1 "> #</ span >
110
+
111
+ < span class ="kn "> from</ span > < span class ="nn "> .extra</ span > < span class ="kn "> import</ span > < span class ="n "> ExtraOutputBuilder</ span > < span class ="p "> ,</ span > < span class ="n "> RegisterExtraOutput</ span >
112
+ < span class ="kn "> from</ span > < span class ="nn "> ..image</ span > < span class ="kn "> import</ span > < span class ="n "> ImageS</ span >
113
+
114
+ < span class ="c1 "> # The badpix extra output type is currently just a placeholder for when we eventually add</ span >
115
+ < span class ="c1 "> # defects, saturation, etc. Now it always just builds an Image with all 0's.</ span >
116
+
117
+ < div class ="viewcode-block " id ="BadPixBuilder "> < a class ="viewcode-back " href ="../../../config_output.html#galsim.config.extra_badpix.BadPixBuilder "> [docs]</ a > < span class ="k "> class</ span > < span class ="nc "> BadPixBuilder</ span > < span class ="p "> (</ span > < span class ="n "> ExtraOutputBuilder</ span > < span class ="p "> ):</ span >
118
+ < span class ="w "> </ span > < span class ="sd "> """This builds a bad pixel mask image to go along with each regular data image.</ span >
119
+
120
+ < span class ="sd "> There's not much here currently, since GalSim doesn't yet have any image artifacts that</ span >
121
+ < span class ="sd "> would be appropriate to do something with here. So this is mostly just a placeholder for</ span >
122
+ < span class ="sd "> when we eventually add defects, saturation, etc.</ span >
123
+ < span class ="sd "> """</ span >
124
+
125
+ < span class ="c1 "> # The function to call at the end of building each stamp</ span >
126
+ < span class ="k "> def</ span > < span class ="nf "> processStamp</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> obj_num</ span > < span class ="p "> ,</ span > < span class ="n "> config</ span > < span class ="p "> ,</ span > < span class ="n "> base</ span > < span class ="p "> ,</ span > < span class ="n "> logger</ span > < span class ="p "> ):</ span >
127
+ < span class ="c1 "> # Note: This is just a placeholder for now. Once we implement defects, saturation, etc.,</ span >
128
+ < span class ="c1 "> # these features should be marked in the badpix mask. For now though, all pixels = 0.</ span >
129
+ < span class ="k "> if</ span > < span class ="n "> base</ span > < span class ="p "> [</ span > < span class ="s1 "> 'do_noise_in_stamps'</ span > < span class ="p "> ]:</ span >
130
+ < span class ="n "> badpix_im</ span > < span class ="o "> =</ span > < span class ="n "> ImageS</ span > < span class ="p "> (</ span > < span class ="n "> base</ span > < span class ="p "> [</ span > < span class ="s1 "> 'current_stamp'</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> bounds</ span > < span class ="p "> ,</ span > < span class ="n "> wcs</ span > < span class ="o "> =</ span > < span class ="n "> base</ span > < span class ="p "> [</ span > < span class ="s1 "> 'wcs'</ span > < span class ="p "> ],</ span > < span class ="n "> init_value</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span > < span class ="p "> )</ span >
131
+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> scratch</ span > < span class ="p "> [</ span > < span class ="n "> obj_num</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="n "> badpix_im</ span >
132
+
133
+ < span class ="c1 "> # The function to call at the end of building each image</ span >
134
+ < span class ="k "> def</ span > < span class ="nf "> processImage</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> index</ span > < span class ="p "> ,</ span > < span class ="n "> obj_nums</ span > < span class ="p "> ,</ span > < span class ="n "> config</ span > < span class ="p "> ,</ span > < span class ="n "> base</ span > < span class ="p "> ,</ span > < span class ="n "> logger</ span > < span class ="p "> ):</ span >
135
+ < span class ="n "> image</ span > < span class ="o "> =</ span > < span class ="n "> ImageS</ span > < span class ="p "> (</ span > < span class ="n "> base</ span > < span class ="p "> [</ span > < span class ="s1 "> 'image_bounds'</ span > < span class ="p "> ],</ span > < span class ="n "> wcs</ span > < span class ="o "> =</ span > < span class ="n "> base</ span > < span class ="p "> [</ span > < span class ="s1 "> 'wcs'</ span > < span class ="p "> ],</ span > < span class ="n "> init_value</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span > < span class ="p "> )</ span >
136
+ < span class ="k "> if</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> scratch</ span > < span class ="p "> )</ span > < span class ="o "> ></ span > < span class ="mf "> 0.</ span > < span class ="p "> :</ span >
137
+ < span class ="c1 "> # If we have been accumulating the variance on the stamps, build the total from them.</ span >
138
+ < span class ="c1 "> # Make sure to only use the stamps for objects in this image.</ span >
139
+ < span class ="k "> for</ span > < span class ="n "> obj_num</ span > < span class ="ow "> in</ span > < span class ="n "> obj_nums</ span > < span class ="p "> :</ span >
140
+ < span class ="n "> stamp</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> scratch</ span > < span class ="p "> [</ span > < span class ="n "> obj_num</ span > < span class ="p "> ]</ span >
141
+ < span class ="n "> b</ span > < span class ="o "> =</ span > < span class ="n "> stamp</ span > < span class ="o "> .</ span > < span class ="n "> bounds</ span > < span class ="o "> &</ span > < span class ="n "> image</ span > < span class ="o "> .</ span > < span class ="n "> bounds</ span >
142
+ < span class ="k "> if</ span > < span class ="n "> b</ span > < span class ="o "> .</ span > < span class ="n "> isDefined</ span > < span class ="p "> ():</ span > < span class ="c1 "> # pragma: no branch</ span >
143
+ < span class ="c1 "> # This next line is equivalent to:</ span >
144
+ < span class ="c1 "> # image[b] |= stamp[b]</ span >
145
+ < span class ="c1 "> # except that this doesn't work through the proxy. We can only call methods</ span >
146
+ < span class ="c1 "> # that don't start with _. Hence using the more verbose form here.</ span >
147
+ < span class ="n "> image</ span > < span class ="o "> .</ span > < span class ="n "> setSubImage</ span > < span class ="p "> (</ span > < span class ="n "> b</ span > < span class ="p "> ,</ span > < span class ="n "> image</ span > < span class ="o "> .</ span > < span class ="n "> subImage</ span > < span class ="p "> (</ span > < span class ="n "> b</ span > < span class ="p "> )</ span > < span class ="o "> |</ span > < span class ="n "> stamp</ span > < span class ="p "> [</ span > < span class ="n "> b</ span > < span class ="p "> ])</ span >
148
+ < span class ="k "> else</ span > < span class ="p "> :</ span >
149
+ < span class ="c1 "> # Otherwise, build the bad pixel mask here.</ span >
150
+ < span class ="c1 "> # Again, nothing here yet.</ span >
151
+ < span class ="k "> pass</ span >
152
+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="p "> [</ span > < span class ="n "> index</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="n "> image</ span > </ div >
153
+
154
+
155
+ < span class ="c1 "> # Register this as a valid extra output</ span >
156
+ < span class ="n "> RegisterExtraOutput</ span > < span class ="p "> (</ span > < span class ="s1 "> 'badpix'</ span > < span class ="p "> ,</ span > < span class ="n "> BadPixBuilder</ span > < span class ="p "> ())</ span >
157
+ </ pre > </ div >
158
+
159
+ </ div >
160
+ </ div >
161
+ < footer >
162
+
163
+ < hr />
164
+
165
+ < div role ="contentinfo ">
166
+ < p > © Copyright 2023, GalSim-developers.</ p >
167
+ </ div >
168
+
169
+ Built with < a href ="https://www.sphinx-doc.org/ "> Sphinx</ a > using a
170
+ < a href ="https://github.com/readthedocs/sphinx_rtd_theme "> theme</ a >
171
+ provided by < a href ="https://readthedocs.org "> Read the Docs</ a > .
172
+
173
+
174
+ </ footer >
175
+ </ div >
176
+ </ div >
177
+ </ section >
178
+ </ div >
179
+ < script >
180
+ jQuery ( function ( ) {
181
+ SphinxRtdTheme . Navigation . enable ( true ) ;
182
+ } ) ;
183
+ </ script >
184
+
185
+ </ body >
186
+ </ html >
0 commit comments