@@ -115,12 +115,13 @@ <h1>Source code for galsim.roman.roman_bandpass</h1><div class="highlight"><pre>
115115< span class ="kn "> import</ span > < span class ="nn "> os</ span >
116116
117117< span class ="kn "> from</ span > < span class ="nn "> ..</ span > < span class ="kn "> import</ span > < span class ="n "> meta_data</ span >
118- < span class ="kn "> from</ span > < span class ="nn "> ..errors</ span > < span class ="kn "> import</ span > < span class ="n "> galsim_warn</ span >
118+ < span class ="kn "> from</ span > < span class ="nn "> ..errors</ span > < span class ="kn "> import</ span > < span class ="n "> GalSimValueError </ span > < span class =" p " > , </ span > < span class =" n " > galsim_warn</ span >
119119< span class ="kn "> from</ span > < span class ="nn "> ..</ span > < span class ="kn "> import</ span > < span class ="n "> Bandpass</ span > < span class ="p "> ,</ span > < span class ="n "> LookupTable</ span >
120120
121121< div class ="viewcode-block " id ="getBandpasses ">
122122< a class ="viewcode-back " href ="../../../roman.html#galsim.roman.getBandpasses "> [docs]</ a >
123- < span class ="k "> def</ span > < span class ="nf "> getBandpasses</ span > < span class ="p "> (</ span > < span class ="n "> AB_zeropoint</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> ,</ span > < span class ="n "> default_thin_trunc</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> ,</ span > < span class ="n "> include_all_bands</ span > < span class ="o "> =</ span > < span class ="kc "> False</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> kwargs</ span > < span class ="p "> ):</ span >
123+ < span class ="k "> def</ span > < span class ="nf "> getBandpasses</ span > < span class ="p "> (</ span > < span class ="n "> AB_zeropoint</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> ,</ span > < span class ="n "> default_thin_trunc</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> ,</ span > < span class ="n "> include_all_bands</ span > < span class ="o "> =</ span > < span class ="kc "> False</ span > < span class ="p "> ,</ span > < span class ="n "> bandnames</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
124+ < span class ="o "> **</ span > < span class ="n "> kwargs</ span > < span class ="p "> ):</ span >
124125< span class ="w "> </ span > < span class ="sd "> """Utility to get a dictionary containing the Roman ST bandpasses used for imaging.</ span >
125126
126127< span class ="sd "> This routine reads in a file containing a list of wavelengths and throughput for all Roman</ span >
@@ -187,6 +188,9 @@ <h1>Source code for galsim.roman.roman_bandpass</h1><div class="highlight"><pre>
187188< span class ="sd "> There is currently no estimate for the thermal background for these</ span >
188189< span class ="sd "> bands and they are set to zero arbitrarily.</ span >
189190< span class ="sd "> [default: False]</ span >
191+ < span class ="sd "> bandnames: Iterable of bandpass names to get. If None, it gets all the imaging</ span >
192+ < span class ="sd "> bands if ``include_all_bands`` is False, or all bands if</ span >
193+ < span class ="sd "> ``include_all_bands`` is True.</ span >
190194< span class ="sd "> **kwargs: Other kwargs are passed to either `Bandpass.thin` or</ span >
191195< span class ="sd "> `Bandpass.truncate` as appropriate.</ span >
192196
@@ -200,11 +204,19 @@ <h1>Source code for galsim.roman.roman_bandpass</h1><div class="highlight"><pre>
200204 < span class ="n "> data</ span > < span class ="o "> =</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> genfromtxt</ span > < span class ="p "> (</ span > < span class ="n "> datafile</ span > < span class ="p "> ,</ span > < span class ="n "> names</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> )</ span >
201205 < span class ="n "> wave</ span > < span class ="o "> =</ span > < span class ="mf "> 1000.</ span > < span class ="o "> *</ span > < span class ="n "> data</ span > < span class ="p "> [</ span > < span class ="s1 "> 'Wave'</ span > < span class ="p "> ]</ span >
202206
207+ < span class ="k "> if</ span > < span class ="n "> bandnames</ span > < span class ="ow "> is</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
208+ < span class ="n "> bandnames</ span > < span class ="o "> =</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> dtype</ span > < span class ="o "> .</ span > < span class ="n "> names</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="p "> :]</ span >
209+ < span class ="k "> elif</ span > < span class ="p "> (</ span > < span class ="n "> invalid_bandnames</ span > < span class ="o "> :=</ span > < span class ="nb "> set</ span > < span class ="p "> (</ span > < span class ="n "> bandnames</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> difference</ span > < span class ="p "> (</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> dtype</ span > < span class ="o "> .</ span > < span class ="n "> names</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="p "> :])):</ span >
210+ < span class ="k "> raise</ span > < span class ="n "> GalSimValueError</ span > < span class ="p "> (</ span > < span class ="s2 "> "Invalid Roman bandpasses requested;"</ span > < span class ="p "> ,</ span >
211+ < span class ="n "> value</ span > < span class ="o "> =</ span > < span class ="n "> invalid_bandnames</ span > < span class ="p "> ,</ span >
212+ < span class ="n "> allowed_values</ span > < span class ="o "> =</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> dtype</ span > < span class ="o "> .</ span > < span class ="n "> names</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="p "> :],</ span >
213+ < span class ="p "> )</ span >
214+
203215 < span class ="c1 "> # Read in and manipulate the sky background info.</ span >
204216 < span class ="n "> sky_file</ span > < span class ="o "> =</ span > < span class ="n "> os</ span > < span class ="o "> .</ span > < span class ="n "> path</ span > < span class ="o "> .</ span > < span class ="n "> join</ span > < span class ="p "> (</ span > < span class ="n "> meta_data</ span > < span class ="o "> .</ span > < span class ="n "> share_dir</ span > < span class ="p "> ,</ span > < span class ="s2 "> "roman"</ span > < span class ="p "> ,</ span > < span class ="s2 "> "roman_sky_backgrounds.txt"</ span > < span class ="p "> )</ span >
205- < span class ="n "> sky_data</ span > < span class ="o "> =</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> loadtxt </ span > < span class ="p "> (</ span > < span class ="n "> sky_file</ span > < span class ="p "> ) </ span > < span class ="o "> . </ span > < span class ="n " > transpose </ span > < span class ="p "> ( )</ span >
206- < span class ="n "> ecliptic_lat</ span > < span class ="o "> =</ span > < span class ="n "> sky_data</ span > < span class ="p "> [</ span > < span class ="mi " > 0 </ span > < span class ="p "> , </ span > < span class =" p " > : ]</ span >
207- < span class ="n "> ecliptic_lon</ span > < span class ="o "> =</ span > < span class ="n "> sky_data</ span > < span class ="p "> [</ span > < span class ="mi " > 1 </ span > < span class ="p "> , </ span > < span class =" p " > : ]</ span >
217+ < span class ="n "> sky_data</ span > < span class ="o "> =</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> genfromtxt </ span > < span class ="p "> (</ span > < span class ="n "> sky_file</ span > < span class ="p "> , </ span > < span class ="n " > names </ span > < span class =" o "> = </ span > < span class ="kc " > True </ span > < span class ="p "> )</ span >
218+ < span class ="n "> ecliptic_lat</ span > < span class ="o "> =</ span > < span class ="n "> sky_data</ span > < span class ="p "> [</ span > < span class ="s1 " > 'Latitude' </ span > < span class ="p "> ]</ span >
219+ < span class ="n "> ecliptic_lon</ span > < span class ="o "> =</ span > < span class ="n "> sky_data</ span > < span class ="p "> [</ span > < span class ="s1 " > 'Longitude' </ span > < span class ="p "> ]</ span >
208220
209221 < span class ="c1 "> # Parse kwargs for truncation, thinning, etc., and check for nonsense.</ span >
210222 < span class ="n "> truncate_kwargs</ span > < span class ="o "> =</ span > < span class ="p "> [</ span > < span class ="s1 "> 'blue_limit'</ span > < span class ="p "> ,</ span > < span class ="s1 "> 'red_limit'</ span > < span class ="p "> ,</ span > < span class ="s1 "> 'relative_throughput'</ span > < span class ="p "> ]</ span >
@@ -229,7 +241,7 @@ <h1>Source code for galsim.roman.roman_bandpass</h1><div class="highlight"><pre>
229241 < span class ="c1 "> # Set up a dictionary.</ span >
230242 < span class ="n "> bandpass_dict</ span > < span class ="o "> =</ span > < span class ="p "> {}</ span >
231243 < span class ="c1 "> # Loop over the bands.</ span >
232- < span class ="k "> for</ span > < span class ="n "> index </ span > < span class =" p " > , </ span > < span class =" n " > bp_name</ span > < span class ="ow "> in</ span > < span class ="nb " > enumerate </ span > < span class =" p " > ( </ span > < span class =" n "> data </ span > < span class ="o " > . </ span > < span class =" n " > dtype </ span > < span class =" o " > . </ span > < span class =" n " > names </ span > < span class =" p "> [ </ span > < span class =" mi " > 1 </ span > < span class =" p " > :]) :</ span >
244+ < span class ="k "> for</ span > < span class ="n "> bp_name</ span > < span class ="ow "> in</ span > < span class ="n "> bandnames </ span > < span class ="p "> :</ span >
233245 < span class ="k "> if</ span > < span class ="n "> include_all_bands</ span > < span class ="ow "> is</ span > < span class ="kc "> False</ span > < span class ="ow "> and</ span > < span class ="n "> bp_name</ span > < span class ="ow "> in</ span > < span class ="n "> non_imaging_bands</ span > < span class ="p "> :</ span >
234246 < span class ="k "> continue</ span >
235247
@@ -251,14 +263,40 @@ <h1>Source code for galsim.roman.roman_bandpass</h1><div class="highlight"><pre>
251263 < span class ="c1 "> # Store the sky level information as an attribute.</ span >
252264 < span class ="n "> bp</ span > < span class ="o "> .</ span > < span class ="n "> _ecliptic_lat</ span > < span class ="o "> =</ span > < span class ="n "> ecliptic_lat</ span >
253265 < span class ="n "> bp</ span > < span class ="o "> .</ span > < span class ="n "> _ecliptic_lon</ span > < span class ="o "> =</ span > < span class ="n "> ecliptic_lon</ span >
254- < span class ="n "> bp</ span > < span class ="o "> .</ span > < span class ="n "> _sky_level</ span > < span class ="o "> =</ span > < span class ="n "> sky_data</ span > < span class ="p "> [</ span > < span class ="mi " > 2 </ span > < span class =" o " > + </ span > < span class =" n "> index </ span > < span class ="p "> , </ span > < span class =" p " > : ]</ span >
266+ < span class ="n "> bp</ span > < span class ="o "> .</ span > < span class ="n "> _sky_level</ span > < span class ="o "> =</ span > < span class ="n "> sky_data</ span > < span class ="p "> [</ span > < span class ="n "> bp_name </ span > < span class ="p "> ]</ span >
255267
256268 < span class ="c1 "> # Add it to the dictionary.</ span >
257269 < span class ="n "> bp</ span > < span class ="o "> .</ span > < span class ="n "> name</ span > < span class ="o "> =</ span > < span class ="n "> bp_name</ span > < span class ="k "> if</ span > < span class ="n "> bp_name</ span > < span class ="o "> !=</ span > < span class ="s1 "> 'W149'</ span > < span class ="k "> else</ span > < span class ="s1 "> 'W146'</ span >
258270 < span class ="n "> bandpass_dict</ span > < span class ="p "> [</ span > < span class ="n "> bp</ span > < span class ="o "> .</ span > < span class ="n "> name</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="n "> bp</ span >
259271
260272 < span class ="k "> return</ span > < span class ="n "> bandpass_dict</ span > </ div >
261273
274+
275+ < span class ="k "> def</ span > < span class ="nf "> getBandpass</ span > < span class ="p "> (</ span > < span class ="n "> bandname</ span > < span class ="p "> ,</ span > < span class ="n "> AB_zeropoint</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> ,</ span > < span class ="n "> default_thin_trunc</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> kwargs</ span > < span class ="p "> ):</ span >
276+ < span class ="w "> </ span > < span class ="sd "> """Utility to get a single bandpass from the Roman ST bandpasses used.</ span >
277+
278+ < span class ="sd "> If you need to get more than one bandpass, use `getBandpasses` instead.</ span >
279+ < span class ="sd "> This function just provides a cleaner interface when only one bandpass</ span >
280+ < span class ="sd "> is needed.</ span >
281+
282+ < span class ="sd "> See also `getBandpasses`.</ span >
283+
284+ < span class ="sd "> Parameters:</ span >
285+ < span class ="sd "> bandname: Name of the bandpass to get.</ span >
286+ < span class ="sd "> AB_zeropoint: Should the routine set an AB zeropoint before returning the bandpass?</ span >
287+ < span class ="sd "> If False, then it is up to the user to set a zero point. [default:</ span >
288+ < span class ="sd "> True]</ span >
289+ < span class ="sd "> default_thin_trunc: Use the default thinning and truncation options? Users who wish to</ span >
290+ < span class ="sd "> use no thinning and truncation of bandpasses, or who want control over</ span >
291+ < span class ="sd "> the level of thinning and truncation, should have this be False.</ span >
292+ < span class ="sd "> [default: True]</ span >
293+ < span class ="sd "> **kwargs: Other kwargs are passed to either `Bandpass.thin` or</ span >
294+ < span class ="sd "> `Bandpass.truncate` as appropriate.</ span >
295+
296+ < span class ="sd "> @returns A Bandpass object for the specified band.</ span >
297+ < span class ="sd "> """</ span >
298+ < span class ="k "> return</ span > < span class ="n "> getBandpasses</ span > < span class ="p "> (</ span > < span class ="n "> AB_zeropoint</ span > < span class ="o "> =</ span > < span class ="n "> AB_zeropoint</ span > < span class ="p "> ,</ span > < span class ="n "> default_thin_trunc</ span > < span class ="o "> =</ span > < span class ="n "> default_thin_trunc</ span > < span class ="p "> ,</ span >
299+ < span class ="n "> include_all_bands</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> ,</ span > < span class ="n "> bandnames</ span > < span class ="o "> =</ span > < span class ="p "> [</ span > < span class ="n "> bandname</ span > < span class ="p "> ],</ span > < span class ="o "> **</ span > < span class ="n "> kwargs</ span > < span class ="p "> )[</ span > < span class ="n "> bandname</ span > < span class ="p "> ]</ span >
262300</ pre > </ div >
263301
264302 </ div >
0 commit comments