Source code for radiospectra.net.sources.eovsa
from sunpy.net import attrs as a
from sunpy.net.dataretriever.client import GenericClient
from radiospectra.net.attrs import PolType
[docs]class EOVSAClient(GenericClient):
"""
Provides access to `Extended Owens Valley Solar Array <http://www.ovsa.njit.edu>`__ (EOVSA) data.
Examples
--------
>>> from radiospectra import net
>>> from sunpy.net import Fido, attrs as a
>>> query = Fido.search(a.Time('2020/10/05 00:00', '2020/10/06 00:00'),
... a.Instrument('EOVSA'), net.PolType.cross) #doctest: +REMOTE_DATA
>>> query #doctest: +REMOTE_DATA
<sunpy.net.fido_factory.UnifiedResponse object at ...>
Results from 1 Provider:
<BLANKLINE>
2 Results from the EOVSAClient:
Start Time End Time Provider Instrument PolType
----------------------- ----------------------- -------- ---------- -------
2020-10-05 00:00:00.000 2020-10-05 23:59:59.999 EOVSA EOVSA Cross
2020-10-06 00:00:00.000 2020-10-06 23:59:59.999 EOVSA EOVSA Cross
<BLANKLINE>
<BLANKLINE>
"""
baseurl = r"http://ovsa.njit.edu/fits/synoptic/%Y/%m/%d/" r"EOVSA_.*_%Y%m%d.fts"
pattern = r"{}/synoptic/{year:4d}/{month:2d}/{day:2d}/" r"EOVSA_{PolType:5l}_{year:4d}{month:2d}{day:2d}.fts"
pol_map = {"Total": "TPall", "Cross": "XPall", "TPall": "Total", "XPall": "Cross"}
[docs] @classmethod
def pre_search_hook(cls, *args, **kwargs):
baseurl, pattern, matchdict = super().pre_search_hook(*args, **kwargs)
pol_values = [cls.pol_map[p.capitalize()] for p in matchdict["PolType"]]
matchdict["PolType"] = pol_values
return baseurl, pattern, matchdict
[docs] def post_search_hook(self, exdict, matchdict):
original = super().post_search_hook(exdict, matchdict)
original["PolType"] = self.pol_map[original["PolType"]]
return original
[docs] @classmethod
def register_values(cls):
adict = {
a.Provider: [("EOVSA", "EOVSA")],
a.Instrument: [("EOVSA", "ExtendedOwens Valley Solar Array.")],
PolType: [("Total", "Total polarisation"), ("Cross", "Cross polarisation")],
}
return adict