File: seviri_example.rst

package info (click to toggle)
pyspectral 0.13.5%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 5,180 kB
  • sloc: python: 6,035; makefile: 123
file content (45 lines) | stat: -rw-r--r-- 2,070 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Example with SEVIRI data
------------------------

Let us try calculate the 3.9 micron reflectance for Meteosat-10:

.. doctest::

  >>> sunz = 80.
  >>> tb3 = 290.0
  >>> tb4 = 282.0
  >>> from pyspectral.near_infrared_reflectance import Calculator
  >>> refl39 = Calculator('Meteosat-10', 'seviri', 'IR3.9')
  >>> print('{refl:4.3f}'.format(refl=refl39.reflectance_from_tbs(sunz, tb3, tb4)[0]))
  0.555

You can also provide the in-band solar flux from outside when calculating the
reflectance, saving a few milliseconds per call::

  >>> from pyspectral.solar import (SolarIrradianceSpectrum, TOTAL_IRRADIANCE_SPECTRUM_2000ASTM)
  >>> solar_irr = SolarIrradianceSpectrum(TOTAL_IRRADIANCE_SPECTRUM_2000ASTM, dlambda=0.0005)
  >>> from pyspectral.rsr_reader import RelativeSpectralResponse
  >>> seviri = RelativeSpectralResponse('Meteosat-10', 'seviri')
  >>> sflux = solar_irr.inband_solarflux(seviri.rsr['IR3.9'])
  >>> refl39 = Calculator('Meteosat-10', 'seviri', 'IR3.9', solar_flux=sflux)
  >>> print('{refl:4.3f}'.format(refl=refl39.reflectance_from_tbs(sunz, tb3, tb4)[0]))
  0.555

By default the data are masked outside the default Sun zenith-angle (SZA) correction limit (85.0 degrees).
The masking can be adjusted via `masking_limit` keyword argument to `Calculator`, and turned of by
defining `Calculator(..., masking_limit=None)`. The SZA limit can be adjusted via `sunz_threshold` keyword argument:
`Calculator(..., sunz_threshold=88.0)`.

Integration with SatPy
^^^^^^^^^^^^^^^^^^^^^^
The SatPy_ package integrates PySpectral_ so that it is very easy with only a
very few lines of code to make RGB images with the 3.9 reflectance as one of
the bands. Head to the `PyTroll gallery`_ pages for examples. SatPy_ for instance
has a  *snow* RGB using the 0.8 micron, the 1.6 micron and the 3.9 micron
reflectance derived using PySpectral_.


.. _PySpectral: http://github.com/pytroll/pyspectral
.. _SatPy: http://www.github.com/pytroll/satpy
.. _PyOrbital: http://www.github.com/pytroll/pyorbital
.. _`PyTroll gallery`: http://pytroll.github.io/gallery.html