def find_slope_niter(): stream = 'rtcCentBuf' threshold = 1.0 for star_id in range(1,1+nstars): star = Star(star_id) ok = star.setup(self.Cam) if(ok): slope_niter = find_niter(stream,threshold) if(slope_niter[0] != -1): star.slope_iter = slope_niter[0] FITS.Write(slope_niter[1],self.Cam.rawdata_path + self.Cam.name+'_slopes_noscreen_led_%d.fits'%(star_id),writeMode='a') else: print 'Relax threshold'
def save(self, widget): star = Star(int(self.combobox_star.get_active_text())) star.pin_led = self.entry_pin_led.get_text() star.pin_pwm = self.entry_pin_pwm.get_text() star.pin_enable = self.entry_pin_enable.get_text() star.name = self.entry_name.get_text() star.sim = self.checkbutton_sim.get_active() star.exp_time = self.combobox_exp_time.get_active_text() star.bright = self.combobox_brightness.get_active_text() star.img_prefix = self.entry_image_prefix.get_text() print star.pin_led print star.pin_pwm print star.pin_enable print star.name print star.sim print star.exp_time print star.bright print star.img_prefix print "------------" print "saved"
def bgImage_exptime_calibration(self,star_id): ''' Determines, sets and save the bgImage for star_id. exptime is saved on the files name. INPUT star_id[int] ''' #2-3 bgImage & exptime iteration star = Star(star_id) star.setup(self.Cam) exptime = numpy.round(self.Cam.initexptime) self.c.Set('bgImage',None) self.c.Set(self.Cam.exptime,int(exptime)) bgImage = self.grab('rtcPxlBuf',self.niter) self.c.Set('bgImage',bgImage) self.bbbc.star_on(star_id) auxImage = self.grab('rtcCalPxlBuf',self.niter) self.bbbc.star_off(star_id) auxImageMax = auxImage.max() print 'auxImageMax: ', auxImageMax relativemax = 0.7 threshold = 0.05 while(numpy.absolute(auxImageMax/self.sat-relativemax)>threshold): # The while condition is set so that the maximum value found in the image # is around 60% of the saturation value print "exptime: ", print exptime print 'auxImageMax: ', print str(100*auxImageMax/self.sat)+'%' exptime = float(exptime)*(self.sat*float(relativemax))/auxImageMax if(exptime>=self.maxexptime): # Protection exptime = self.maxexptime auxImageMax = self.sat*relativemax self.c.Set(self.Cam.exptime,int(exptime)) elif(exptime<1.0): exptime = 1.0 auxImageMax = self.sat*relativemax self.c.Set(self.Cam.exptime,int(exptime)) else: self.c.Set('bgImage',None) self.c.Set(self.Cam.exptime,int(exptime)) bgImage = self.grab('rtcPxlBuf',self.niter) self.c.Set('bgImage',bgImage) self.bbbc.star_on(star_id) auxImage = self.grab('rtcCalPxlBuf',self.niter) self.bbbc.star_off(star_id) auxImageMax = numpy.amax(auxImage) print "Final exptime: ", print exptime print 'Final auxImageMax: ', print str(100*auxImageMax/self.sat)+'%' self.c.Set('bgImage',None) bgImage = self.grab('rtcPxlBuf',self.Cam.bg_iter) self.c.Set('bgImage',bgImage) self.bbbc.flush_all_leds() self.bbbc.star_on(star_id) auxImage = self.grab('rtcCalPxlBuf',self.niter) self.bbbc.star_off(star_id) self.c.Set('bgImage',bgImage) #Saving values found and removing previous values files = os.listdir(self.Cam.bg_path) files = [s for s in files if 'led_%d_'%(star_id) in s] if(files!=[]): for file_name in files: os.remove(self.Cam.bg_path + file_name) FITS.Write(bgImage,self.Cam.bg_path + self.Cam.name+'_bg_led_%d_exptime_%d.fits'%(star_id,int(exptime)),writeMode='w') FITS.Write(auxImage.reshape((self.Cam.pxly,self.Cam.pxlx)),self.Cam.bg_path + self.Cam.name+'_aux_led_%d_exptime_%d.fits'%(star_id,int(exptime)),writeMode='w')