.. _astroquery.svo_fps:
**********************************************************
SVO Filter Profile Service Queries (`astroquery.svo_fps`)
**********************************************************
Getting started
===============
This is a python interface for querying the Spanish Virtual Observatory's
Filter Profile Service (`SVO FPS `_).
It allows retrieval of filter data (index, transmission data, filter list, etc.)
from the service as astropy tables.
Get index list of all Filters
-----------------------------
The filter index (the properties of all available filters in a wavelength
range) can be listed with
:meth:`~astroquery.svo_fps.SvoFpsClass.get_filter_index`:
.. doctest-remote-data::
>>> from astropy import units as u
>>> from astroquery.svo_fps import SvoFps
>>> index = SvoFps.get_filter_index(12_000*u.angstrom, 12_100*u.angstrom)
>>> index.info
name dtype unit
-------------------- ------- ---------------
FilterProfileService object
filterID object
WavelengthUnit object
WavelengthUCD object
PhotSystem object
DetectorType object
Band object
Instrument object
Facility object
ProfileReference object
CalibrationReference object
Description object
Comments object
WavelengthRef float64 AA
WavelengthMean float64 AA
WavelengthEff float64 AA
WavelengthMin float64 AA
WavelengthMax float64 AA
WidthEff float64 AA
WavelengthCen float64 AA
WavelengthPivot float64 AA
WavelengthPeak float64 AA
WavelengthPhot float64 AA
FWHM float64 AA
Fsun float64 erg / (A s cm2)
PhotCalID object
MagSys object
ZeroPoint float64 Jy
ZeroPointUnit object
Mag0 float64
ZeroPointType object
AsinhSoft float64
TrasmissionCurve object
If the wavelength range contains too many entries then a ``TimeoutError`` will
occur. A smaller wavelength range might succeed, but if a large range really is
required then you can use the ``timeout`` argument to allow for a longer
response time.
Get list of Filters under a specified Facilty and Instrument
------------------------------------------------------------
Similarly, `~astroquery.svo_fps.SvoFpsClass.get_filter_list` retrieves a list of all
Filters for an arbitrary combination of Facility & Instrument (the Facility
must be specified, but the Instrument is optional). The data table returned
is of the same form as that from `~astroquery.svo_fps.SvoFpsClass.get_filter_index`:
.. doctest-remote-data::
>>> filter_list = SvoFps.get_filter_list(facility='Keck', instrument='NIRC2')
>>> filter_list.info
name dtype unit
-------------------- ------- ---------------
FilterProfileService object
filterID object
WavelengthUnit object
WavelengthUCD object
PhotSystem object
DetectorType object
Band object
Instrument object
Facility object
ProfileReference object
CalibrationReference object
Description object
Comments object
WavelengthRef float64 AA
WavelengthMean float64 AA
WavelengthEff float64 AA
WavelengthMin float64 AA
WavelengthMax float64 AA
WidthEff float64 AA
WavelengthCen float64 AA
WavelengthPivot float64 AA
WavelengthPeak float64 AA
WavelengthPhot float64 AA
FWHM float64 AA
Fsun float64 erg / (A s cm2)
PhotCalID object
MagSys object
ZeroPoint float64 Jy
ZeroPointUnit object
Mag0 float64
ZeroPointType object
AsinhSoft float64
TrasmissionCurve object
Get transmission data for a specific Filter
-------------------------------------------
If you know the ``filterID`` of the filter (which you can determine with
`~astroquery.svo_fps.SvoFpsClass.get_filter_list` or
`~astroquery.svo_fps.SvoFpsClass.get_filter_index`), you can retrieve the
transmission curve data using
`~astroquery.svo_fps.SvoFpsClass.get_transmission_data`:
.. doctest-remote-data::
>>> data = SvoFps.get_transmission_data('2MASS/2MASS.H')
>>> print(data)
Wavelength Transmission
AA
---------- ------------
12890.0 0.0
13150.0 0.0
13410.0 0.0
13680.0 0.0
13970.0 0.0
14180.0 0.0
14400.0 0.0005
14620.0 0.0027999999
14780.0 0.0081000002
14860.0 0.0286999997
... ...
18030.0 0.1076999977
18100.0 0.0706999972
18130.0 0.0051000002
18180.0 0.0199999996
18280.0 0.0004
18350.0 0.0
18500.0 0.0001
18710.0 0.0
18930.0 0.0
19140.0 0.0
Length = 58 rows
These are the data needed to plot the transmission curve for filter:
.. doctest-skip::
>>> import matplotlib.pyplot as plt
>>> plt.plot(data['Wavelength'], data['Transmission'])
>>> plt.xlabel('Wavelength (Angstroms)')
>>> plt.ylabel('Transmission Fraction')
>>> plt.title('Filter Curve for 2MASS/2MASS.H')
>>> plt.show()
.. figure:: images/filter_curve.png
:scale: 100%
:alt: Transmission Curve for 2MASS/2MASS.H
The 2MASS H-band transmission curve
Troubleshooting
===============
If you are repeatedly getting failed queries, or bad/out-of-date results, try clearing your cache:
.. code-block:: python
>>> from astroquery.svo_fps import SvoFps
>>> SvoFps.clear_cache()
If this function is unavailable, upgrade your version of astroquery.
The ``clear_cache`` function was introduced in version 0.4.7.dev8479.
Reference/API
=============
.. automodapi:: astroquery.svo_fps
:no-inheritance-diagram: