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',
)[source]#

Bases: object

Repré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',
)[source]#

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,
) Tuple[ndarray, ndarray, ndarray, float][source]#

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,
) Any | None[source]#

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.

rebind_outputs(λ)[source]#

Correct the output order of the KernelNuller object. To do so, we successively obstruct two inputs and add a π/4 phase over one of the two remaining inputs. Doing so,

Parameters:
  • self (-)

  • λ (-)

Return type:

  • KernelNuller object