- #1
AdrianD
- 8
- 2
I am trying to compute the exposure time needed for an extended object (galaxy), in python.
I have found the following formulas:
Exposure time app # press the help button at the bottom of the calculator for the formulas used
Exposure time calc
Let's take for example the M33 galaxy. It has a surface mag of 23 mag/arcsec^2 and the dimension in arc minutes 73 x 45 or 4380 x 2700 arc seconds.
From the first link:
I have found the following formulas:
Exposure time app # press the help button at the bottom of the calculator for the formulas used
Exposure time calc
Let's take for example the M33 galaxy. It has a surface mag of 23 mag/arcsec^2 and the dimension in arc minutes 73 x 45 or 4380 x 2700 arc seconds.
From the first link:
- What I am having trouble is understanding how to choose the 'n' value, respectively the radius value? Should I choose an arbitrary value? Does the radius mean the sample of pixels from the 23 mag faint spiral arms?
- I don't understand how to calculate the solid angle Omega_i for M33 galaxy. It seems the solid angle is somehow related to the the 'n' value from the first link? The formulas seem to be equivalent
exposure time function:
def time(self):
# k1,k2 = flux/photon energy
# flux in W/m^2/nm
# photon energy in W*sec
# filter bandwidth in nm
# telescope aperture in m^2
# mag in mag/arcsec^2
# image scale in arc sec/pixel
k1 = util.flux(self.targetMagnitude, self.angle, self.typeOfBand, self.pressure, self.temperature)[0] / util.PhotonEnergy(self.typeOfBand)
k2 = util.flux(self.skyMagnitude, self.angle, self.typeOfBand, self.pressure, self.temperature)[0] / util.PhotonEnergy(self.typeOfBand)
radius = 10 # arc sec
pixelSurface = self.imageScale**2
npix= np.pi*(radius**2/pixelSurface)
self.targetElectronsSec = self.QE * k1 * self.filterBandwidth * self.effectiveAperture
self.skyElectronsSec = self.QE * k2 * self.filterBandwidth * self.effectiveAperture * self.imageScale
#solve the equation for T
A = self.targetElectronsSec**2
B = -self.SNR**2 * (self.targetElectronsSec + npix*self.skyElectronsSec + npix*self.darkCurrent)
C = -self.SNR**2 * npix * self.readNoise**2
T = (-B + np.sqrt(B**2 - 4 * A * C)) / (2 * A) #returns seconds
return {'time':T}