scopesim_targets.point_source.StarField#

class scopesim_targets.point_source.StarField(positions: Sequence[SkyCoord | tuple[float, float] | Mapping[str, float | Quantity]] | None = None, spectra: Sequence[SourceSpectrum | SpectralType | str] | None = None, brightnesses: Sequence[Any] | None = None, band: str | None = None)#

Bases: PointSourceTarget

Multiple Stars.

Todo

Add support for defining a common (field center) position to which the individual positions are interpreted als relative to.

Examples

>>> tgt = StarField(
...     positions=[(0, 0), (1, 1)],  # [arcsec] offset from center
...     spectra=["A0V", "G2V"],
...     brightnesses=[10, 15],  # [mag]
...     band="V",  # default for brightnesses
... )

For more examples, see also the YAML syntax.

__init__(positions: Sequence[SkyCoord | tuple[float, float] | Mapping[str, float | Quantity]] | None = None, spectra: Sequence[SourceSpectrum | SpectralType | str] | None = None, brightnesses: Sequence[Any] | None = None, band: str | None = None) None#

Methods

__init__([positions, spectra, brightnesses, ...])

redshift_spectrum(spectrum, position)

Doppler shift spectrum based on position z or v_rad.

resolve_position([parent_position])

Resolve target position or offset.

resolve_spectrum(spectrum[, brightness])

Create SpeXtrum instance from spectrum identifier.

source_spectra([start])

Create spectra dict for Source conversion.

to_source()

Convert to ScopeSim Source object.

to_table([local_frame])

Convert to table for Source conversion.

Attributes

brightness

Target brightness information.

brightnesses

offset

Target offset from parent.

position

Target position (center) as SkyCoord.

positions

spectra

spectrum

Target spectral information.

property brightness: Brightness#

Target brightness information.

property offset: dict#

Target offset from parent.

property position: SkyCoord#

Target position (center) as SkyCoord.

static redshift_spectrum(spectrum: Spextrum, position: SkyCoord) Spextrum#

Doppler shift spectrum based on position z or v_rad.

resolve_position(parent_position: SkyCoord | None = None)#

Resolve target position or offset.

This uses the following lookup order: 1. self.position set? -> use that 2. parent position present?

  1. self.offset set? -> resolve offset to parent position

  2. otherwise use parent position

  1. self.offset set, but no parent position present -> Error

  2. default to (0, 0)

Parameters:

parent_position (SkyCoord | None, optional) – Position of any parent target. If None (the default), self.offset must not be set.

Raises:

ValueError – Raised if self.offset set, but parent_position is None.

Returns:

position – Resolved position as SkyCoord object.

Return type:

SkyCoord

static resolve_spectrum(spectrum: SourceSpectrum | SpectralType | str, brightness: Brightness | None = None) SourceSpectrum#

Create SpeXtrum instance from spectrum identifier.

Can resolve a SpectralType instance (next-closest available template spectrum) or a string that is a valid entry in the SpeXtrum database.

Todo

Actually implement this “next-closest available template”, see #68.

Return type:

Spextrum

source_spectra(start: int = 0) dict[int, SourceSpectrum]#

Create spectra dict for Source conversion.

property spectrum: SourceSpectrum | SpectralType | str#

Target spectral information.

to_source() Source#

Convert to ScopeSim Source object.

to_table(local_frame=None) Table#

Convert to table for Source conversion.