Kernel Nuller#
- class phise.KernelNuller(
- φ: ndarray[astropy.units.Quantity],
- σ: ndarray[astropy.units.Quantity],
- λ0: astropy.units.Quantity,
- output_order: ndarray[int] = None,
- input_attenuation: ndarray[float] = None,
- input_opd: ndarray[astropy.units.Quantity] = None,
- name: str = 'Unnamed Kernel-Nuller',
Bases:
objectReprésentation d’un kernel-nuller pour 4 télescopes.
Attributs principaux#
φ: tableau des 14 phases/OPD injectées (Quantity)
σ: tableau des 14 erreurs internes d’OPD (Quantity)
λ0: longueur d’onde de référence (Quantity)
output_order: permutation décrivant l’ordre des sorties
input_attenuation: atténuations appliquées aux entrées (taille 4)
input_opd: OPD différentiel sur chaque entrée (taille 4, Quantity)
Exemple#
>>> kn = KernelNuller(φ=..., σ=..., λ0=1*u.um) >>> nulls, darks, bright, total = kn.propagate_fields(ψ, 1*u.um)
- __init__(
- φ: ndarray[astropy.units.Quantity],
- σ: ndarray[astropy.units.Quantity],
- λ0: astropy.units.Quantity,
- output_order: ndarray[int] = None,
- input_attenuation: ndarray[float] = None,
- input_opd: ndarray[astropy.units.Quantity] = None,
- name: str = 'Unnamed Kernel-Nuller',
Initialise un KernelNuller.
Paramètres#
- φastropy.units.Quantity
Tableau (14,) des OPD appliqués (unités de longueur).
- σastropy.units.Quantity
Tableau (14,) des erreurs intrinsèques d’OPD.
- λ0astropy.units.Quantity
Longueur d’onde de référence à laquelle les matrices sont définies.
- output_orderarray-like, optionnel
Ordre des sorties (6 éléments) définissant les paires de sorties.
- input_attenuationarray-like de float, optionnel
Atténuations appliquées aux 4 entrées optiques.
- input_opdastropy.units.Quantity, optionnel
OPD relatifs appliqués aux 4 entrées (taille 4).
- namestr, optionnel
Nom descriptif de l’objet.
- property φ#
OPD/phase appliquée par élément du nuller.
Retourne un astropy Quantity de forme (14,) exprimé en unités de longueur (m par exemple).
- property σ#
Erreurs intrinsèques d’OPD du nuller.
Quantity shape (14,), même unité que φ.
- property λ0#
Longueur d’onde de référence du modèle.
Retourne un astropy Quantity (par ex. en m).
- property output_order#
Ordre des sorties du nuller.
Retourne un tableau d’entiers de taille 6 décrivant l’ordre des sorties et la structure des paires.
- property input_attenuation#
Atténuations appliquées aux entrées.
Tableau flottant de taille 4 (facteurs multiplicatifs).
- property input_opd#
OPD relatif appliqué sur chaque entrée.
Quantity shape (4,) en unité de longueur.
- property name#
Nom descriptif de l’instance.
- property parent_interferometer#
Interféromètre parent associé à ce kernel-nuller.
Propriété en lecture seule définie lors de l’association avec un objet Interferometer.
- propagate_fields(
- ψ: ndarray[complex],
- λ: astropy.units.Quantity,
Propager numériquement les champs à travers le kernel-nuller.
Cette méthode simule la propagation optique pour 4 entrées à une longueur d’onde donnée, en tenant compte des atténuations et des OPD d’entrée. Elle renvoie les champs électriques complexes des sorties null, dark et bright.
Paramètres#
- ψndarray de complex
Champs électriques entrants pour les 4 voies (shape (4,)).
- λastropy.units.Quantity
Longueur d’onde utilisée pour la propagation.
- returns:
(null_fields, dark_fields, bright_fields, total_bright) - null_fields : ndarray complex, shape (3,) - dark_fields : ndarray complex, shape (6,) - bright_fields : ndarray complex, shape (1,) ou scalar - total_bright : float
- rtype:
tuple
- plot_phase(
- λ: astropy.units.Quantity,
- ψ: ndarray | None = None,
- plot: bool = True,
Tracer les phases et amplitudes complexes en sortie du nuller.
Cette méthode calcule la réponse des sorties pour chacun des 4 signaux d’entrée isolés et trace la phase/amplitude des sorties null, dark et bright sur des diagrammes polaires.
Paramètres#
- λastropy.units.Quantity ou convertible
Longueur d’onde pour la simulation.
- ψarray-like, optionnel
Vecteur des amplitudes complexes d’entrée (par défaut [0.5,…]).
- plotbool
Si True, affiche la figure; si False, retourne les données.