Dependencies | Version |
---|---|
SatPy | 0.20.1 |
Pyresample | 1.12.3 |
Trollimage | 1.11.0 |
Pykdtree | 1.3.1 |
Pydecorate | 0.2.1 |
The NWCSAF delivers two software packages that can output cloud, precipitation, instability and wind parameters useful in Nowcasting. The software can be run locally on data received via EUMETCast or via a direct readout station operating in L- and X-band. The software support Geostationary satellite data is called NWCSAF/geo and the other one for polar orbiting satellites is NWCSAF/PPS.
Both the NWCSAF/Geo and PPS software packages are installed and run at the EUMETSAT headquarters in Darmstadt and provides real-time services delivering some of the NWCSAF parametes in near-real time over EUMETCast.
Here we will show some examples on how you can read, project and display some of the parameters provided by the NWCSAF, using the Satpy library of the open source Pytroll suite of software tools. The focus will be on the cloud parameters.
First download some sample data for these examples. We have uploaded some data to Zenodo. For example: One example EUMETSAT PPS Cloud mask granule. Place the data somewhere on your computer where you can reach them.
We start by loading and working with the Cloud type and CTTH products as disseminated over EUMETCast.
from satpy import Scene
from satpy import find_files_and_readers
from datetime import datetime
DATA_DIR = "/home/a000680/data/ears-nwc/metopb"
myfiles = find_files_and_readers(base_dir=DATA_DIR,
start_time=datetime(2020, 3, 9, 8, 0),
end_time=datetime(2020, 3, 9, 8, 19),
reader='nwcsaf-pps_nc')
scene = Scene(filenames=myfiles)
scene.load(['ct'])
Now we have loaded and concatenated the ct field of the Cloudtype product granules in the time window given by the start and end times above
print(scene['ct'].data.shape)
print(scene['ct'].data.compute())
Also the geolocation has been unpacked. That is the the full resolution geolocation information has been recreated from the tie point grid by interpolating and extrapolating the longitudes and latitudes on the tie point grid. This is accomplished using the python-geotiepoints tool, but this is transparent to the user:
print(scene['ct'].area.lats.compute())
Now let’s visualise the cloudtype data using the Nowcasting SAF palette read from the file. We are using a pre-defined Satpy "composite" called cloudtype
. It takes the ct
data and apply the ct-palette
in the netCDF file.
For a little inside in Satpy the cloudtype
composite is defined the same way for all sensors in the yaml configuration file satpy/etc/composites/visir.yaml
like this:
cloudtype:
compositor: !!python/name:satpy.composites.PaletteCompositor
prerequisites:
- ct
- ct_pal
standard_name: cloudtype
Satpy comes with a wealth of pre-defined "composites", but can be enhanced easily for local purposes.
scene.load(['cloudtype'])
scene.show('cloudtype')