Camera#
- class phise.Camera(
- e: astropy.units.Quantity | None = None,
- ideal: bool = False,
- name: str = 'Unnamed Camera',
Bases:
objectReprésentation d’une caméra virtuelle utilisée pour la détection de photons.
Cette classe encapsule des paramètres simples d’un capteur (temps d’exposition, nom, mode idéal) et fournit une méthode pour convertir des champs électriques complexes en nombre de photons détectés durant l’exposition.
- __init__(
- e: astropy.units.Quantity | None = None,
- ideal: bool = False,
- name: str = 'Unnamed Camera',
Initialise la caméra.
Paramètres#
- eOptional[astropy.units.Quantity]
Temps d’exposition. Doit être une quantité avec une unité de temps (par exemple
1 * u.s). SiNonela valeur par défaut1 sest utilisée lorsque possible.- idealbool
Si True, la caméra est considérée idéale et renverra la valeur entière attendue sans bruit (tronquée). Si False, un bruit de comptage (Poisson) est simulé.
- namestr
Nom lisible pour la caméra.
Exceptions#
- TypeError
Si
idealn’est pas un booléen ou sinamen’est pas une chaîne de caractères.- ValueError
Si la quantité
ene peut pas être convertie en unité de temps.
- property e: astropy.units.Quantity#
Temps d’exposition de la caméra en secondes.
Retourne une
astropy.units.Quantityexprimée en secondes. L’accesseur n’effectue pas de conversion supplémentaire ; la conversion est gérée dans le setter.
- property parent_interferometer: Interferometer#
Référence en lecture seule vers l’interféromètre parent.
Le setter est en lecture seule et l’attribut doit être configuré par l’objet parent (ex. une instance d’
Interferometer) si nécessaire.
- property ideal: bool#
Indique si la caméra est en mode idéal (sans bruit).
Retourne
Truelorsque le bruit de détection est désactivé. Le mode idéal est utile pour des tests déterministes.
- property name: str#
Nom lisible de la caméra.
Retourne une chaîne de caractères représentant le nom de l’objet.
- acquire_pixel(ψ: ndarray[complex]) int[source]#
Simule l’acquisition d’un pixel à partir de champs électriques.
La méthode calcule le nombre moyen de photons attendus comme la somme des puissances |ψ|^2 multipliée par le temps d’exposition
e. Puis elle simule la détection selon le mode :si
ideal: retourne la valeur entière tronquée de l’espérance (déterministe) ;sinon : pour des espérances raisonnables (<= 2e9) on tire d’une loi de Poisson ; pour des espérances très grandes on utilise une approximation gaussienne pour éviter des problèmes de performance.
Paramètres#
- ψnumpy.ndarray de nombres complexes
Tableau 1D (ou broadcastable) contenant les amplitudes complexes du champ électrique (unités : s**(-1/2)).
Retour#
- int
Nombre de photons détectés pendant l’exposition.
Remarques#
La méthode retourne un entier >= 0. Les détails numériques (seuil 2e9) sont choisis empiriquement pour basculer vers une approximation normale lorsque la loi de Poisson devient coûteuse.
Pour des usages reproductibles, régler le germe du générateur aléatoire avant d’appeler la méthode (par ex. via
np.random.seed(...)).