Source code for radiospectra.spectrogram.sources.callisto

import astropy.units as u
from astropy.coordinates.earth import EarthLocation

from radiospectra.spectrogram.spectrogrambase import GenericSpectrogram

__all__ = ["CALISTOSpectrogram"]


[docs] class CALISTOSpectrogram(GenericSpectrogram): """ CALISTO Spectrogram from the e-CALISTO network. Examples -------- >>> import radiospectra.net >>> from sunpy.net import Fido, attrs as a >>> from radiospectra.spectrogram import Spectrogram >>> from radiospectra.net import attrs as ra >>> query = Fido.search(a.Time('2019/10/05 23:00', '2019/10/06 00:59'), #doctest: +REMOTE_DATA ... a.Instrument('eCALLISTO'), ra.Observatory('ALASKA')) #doctest: +REMOTE_DATA >>> downloaded = Fido.fetch(query[0][0]) #doctest: +REMOTE_DATA >>> spec = Spectrogram(downloaded[0]) #doctest: +REMOTE_DATA >>> spec #doctest: +REMOTE_DATA <CALISTOSpectrogram ALASKA, E-CALLISTO, E-CALLISTO 215000.0 kHz - 418937.98828125 kHz, 2019-10-05T23:00:00.757 to 2019-10-05T23:15:00.000> >>> spec.plot() #doctest: +REMOTE_DATA <matplotlib.collections.QuadMesh object at ...> """ def __init__(self, data, meta, **kwargs): super().__init__(meta=meta, data=data, **kwargs) @property def observatory_location(self): lat = self.meta["fits_meta"]["OBS_LAT"] * u.deg * 1.0 if self.meta["fits_meta"]["OBS_LAC"] == "N" else -1.0 lon = self.meta["fits_meta"]["OBS_LON"] * u.deg * 1.0 if self.meta["fits_meta"]["OBS_LOC"] == "E" else -1.0 height = self.meta["fits_meta"]["OBS_ALT"] * u.m return EarthLocation(lat=lat, lon=lon, height=height)
[docs] @classmethod def is_datasource_for(cls, data, meta, **kwargs): return meta["instrument"] == "e-CALLISTO" or meta["detector"] == "e-CALLISTO"