@@ -100,6 +100,52 @@ def create_space_telescope(group_size, sample_rate=10.0 * u.Hz, pixel_per_proces
100
100
site = SpaceSite ("L2" )
101
101
return Telescope ("test" , focalplane = fp , site = site )
102
102
103
+ def create_boresight_telescope (group_size , sample_rate = 10.0 * u .Hz ):
104
+ """Create a fake telescope with one boresight detector per process."""
105
+ nullquat = np .array ([0 , 0 , 0 , 1 ], dtype = np .float64 )
106
+ n_det = group_size
107
+ det_names = [f"d{ x :03d} " for x in range (n_det )]
108
+ pol_ang = np .array ([(2 * np .pi * x / n_det ) for x in range (n_det )])
109
+
110
+ det_table = QTable (
111
+ [
112
+ Column (name = "name" , data = det_names ),
113
+ Column (name = "quat" , data = [nullquat for x in range (n_det )]),
114
+ Column (name = "pol_leakage" , length = n_det , unit = None ),
115
+ Column (name = "psi_pol" , data = pol_ang , unit = u .rad ),
116
+ Column (name = "fwhm" , length = n_det , unit = u .arcmin ),
117
+ Column (name = "psd_fmin" , length = n_det , unit = u .Hz ),
118
+ Column (name = "psd_fknee" , length = n_det , unit = u .Hz ),
119
+ Column (name = "psd_alpha" , length = n_det , unit = None ),
120
+ Column (name = "psd_net" , length = n_det , unit = (u .K * np .sqrt (1.0 * u .second ))),
121
+ Column (name = "bandcenter" , length = n_det , unit = u .GHz ),
122
+ Column (name = "bandwidth" , length = n_det , unit = u .GHz ),
123
+ Column (
124
+ name = "pixel" , data = [0 for x in range (n_det )]
125
+ ),
126
+ ]
127
+ )
128
+
129
+ fwhm = 5.0 * u .arcmin
130
+
131
+ for idet in range (len (det_table )):
132
+ det_table [idet ]["pol_leakage" ] = 0.0
133
+ det_table [idet ]["fwhm" ] = fwhm
134
+ det_table [idet ]["bandcenter" ] = 150.0 * u .GHz
135
+ det_table [idet ]["bandwidth" ] = 20.0 * u .GHz
136
+ det_table [idet ]["psd_fmin" ] = 1.0e-5 * u .Hz
137
+ det_table [idet ]["psd_fknee" ] = 0.05 * u .Hz
138
+ det_table [idet ]["psd_alpha" ] = 1.0
139
+ det_table [idet ]["psd_net" ] = 100 * (u .K * np .sqrt (1.0 * u .second ))
140
+
141
+ fp = Focalplane (
142
+ detector_data = det_table ,
143
+ sample_rate = sample_rate ,
144
+ field_of_view = 1.1 * (2 * fwhm ),
145
+ )
146
+
147
+ site = SpaceSite ("L2" )
148
+ return Telescope ("test" , focalplane = fp , site = site )
103
149
104
150
def create_ground_telescope (
105
151
group_size , sample_rate = 10.0 * u .Hz , pixel_per_process = 1 , fknee = None
0 commit comments