Initial commit
This commit is contained in:
parent
db366e2e1a
commit
a19da39da8
54
esbo_etc/classes/sensor/ASensor.py
Normal file
54
esbo_etc/classes/sensor/ASensor.py
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
from ..IRadiant import IRadiant
|
||||||
|
import astropy.units as u
|
||||||
|
from abc import abstractmethod
|
||||||
|
|
||||||
|
|
||||||
|
class Sensor:
|
||||||
|
"""
|
||||||
|
Abstract super class for sensor models
|
||||||
|
"""
|
||||||
|
def __init__(self, parent: IRadiant):
|
||||||
|
"""
|
||||||
|
Initialize a new sensor
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
parent : IRadiant
|
||||||
|
The parent element of the optical component from which the electromagnetic radiation is received
|
||||||
|
"""
|
||||||
|
self._parent = parent
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
@u.quantity_input(exp_time="time")
|
||||||
|
def getSNR(self, exp_time: u.Quantity):
|
||||||
|
"""
|
||||||
|
Calculate the signal to noise ratio (SNR) for the given exposure time.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
exp_time : time-Quantity
|
||||||
|
The exposure time to calculate the SNR for.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
snr : float
|
||||||
|
The calculated SNR
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def getExpTime(self, snr: float):
|
||||||
|
"""
|
||||||
|
Calculate the necessary exposure time in order to achieve the given SNR.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
snr : float
|
||||||
|
The SNR for which the necessary exposure time shall be calculated.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
exp_time : Quantity
|
||||||
|
The necessary exposure time in seconds.
|
||||||
|
"""
|
||||||
|
pass
|
Loading…
x
Reference in New Issue
Block a user