satpy.readers.fci_l1c_nc module

Interface to MTG-FCI L1c NetCDF files.

This module defines the FCIL1cNCFileHandler file handler, to be used for reading Meteosat Third Generation (MTG) Flexible Combined Imager (FCI) Level-1c data. FCI will fly on the MTG Imager (MTG-I) series of satellites, scheduled to be launched in 2022 by the earliest. For more information about FCI, see EUMETSAT.

For simulated test data to be used with this reader, see test data release. For the Product User Guide (PUG) of the FCI L1c data, see PUG.


This reader currently supports Full Disk High Spectral Resolution Imagery (FDHSI) files. Support for High Spatial Resolution Fast Imagery (HRFI) files will be implemented when corresponding test datasets will be available.

Geolocation is based on information from the data files. It uses:

  • From the shape of the data variable data/<channel>/measured/effective_radiance, start and end line columns of current swath.

  • From the data variable data/<channel>/measured/x, the x-coordinates for the grid, in radians (azimuth angle positive towards West).

  • From the data variable data/<channel>/measured/y, the y-coordinates for the grid, in radians (elevation angle positive towards North).

  • From the attribute semi_major_axis on the data variable data/mtg_geos_projection, the Earth equatorial radius

  • From the attribute inverse_flattening on the same data variable, the (inverse) flattening of the ellipsoid

  • From the attribute perspective_point_height on the same data variable, the geostationary altitude in the normalised geostationary projection

  • From the attribute longitude_of_projection_origin on the same data variable, the longitude of the projection origin

  • From the attribute sweep_angle_axis on the same, the sweep angle axis, see

From the pixel centre angles in radians and the geostationary altitude, the extremities of the lower left and upper right corners are calculated in units of arc length in m. This extent along with the number of columns and rows, the sweep angle axis, and a dictionary with equatorial radius, polar radius, geostationary altitude, and longitude of projection origin, are passed on to pyresample.geometry.AreaDefinition, which then uses proj4 for the actual geolocation calculations.

The reading routine supports channel data in counts, radiances, and (depending on channel) brightness temperatures or reflectances. The brightness temperature and reflectance calculation is based on the formulas indicated in PUG. Radiance datasets are returned in units of radiance per unit wavenumber (mW m-2 sr-1 (cm-1)-1). Radiances can be converted to units of radiance per unit wavelength (W m-2 um-1 sr-1) by multiplying with the radiance_unit_conversion_coefficient dataset attribute.

For each channel, it also supports a number of auxiliary datasets, such as the pixel quality, the index map and the related geometric and acquisition parameters: time, subsatellite latitude, subsatellite longitude, platform altitude, subsolar latitude, subsolar longitude, earth-sun distance, sun-satellite distance, swath number, and swath direction.

All auxiliary data can be obtained by prepending the channel name such as "vis_04_pixel_quality".


The API for the direct reading of pixel quality is temporary and likely to change. Currently, for each channel, the pixel quality is available by <chan>_pixel_quality. In the future, they will likely all be called pixel_quality and disambiguated by a to-be-decided property in the DataID.


For reading compressed data, a decompression library is needed. Either install the FCIDECOMP library (see PUG), or the hdf5plugin package with:

pip install hdf5plugin


conda install hdf5plugin -c conda-forge

If you use hdf5plugin, make sure to add the line import hdf5plugin at the top of your script.

class satpy.readers.fci_l1c_nc.FCIL1cNCFileHandler(filename, filename_info, filetype_info)[source]

Bases: NetCDF4FileHandler

Class implementing the MTG FCI L1c Filehandler.

This class implements the Meteosat Third Generation (MTG) Flexible Combined Imager (FCI) Level-1c NetCDF reader. It is designed to be used through the Scene class using the load method with the reader "fci_l1c_nc".

Initialize file handler.


Calculate area extent for a dataset.

calibrate(data, key)[source]

Calibrate data.

calibrate_counts_to_physical_quantity(data, key)[source]

Calibrate counts to radiances, brightness temperatures, or reflectances.

calibrate_counts_to_rad(data, key)[source]

Calibrate counts to radiances.

calibrate_rad_to_bt(radiance, key)[source]

IR channel calibration.

calibrate_rad_to_refl(radiance, key)[source]

VIS channel calibration.

property end_time

Get end time.


Calculate on-fly area definition for a dataset in geos-projection.

static get_channel_measured_group_path(channel)[source]

Get the channel’s measured group path.

get_dataset(key, info=None)[source]

Load a dataset.


Get the vertical position and size information of the chunk (aka segment) for both 1km and 2km grids.

This is used in the GEOVariableSegmentYAMLReader to compute optimal chunk sizes for missing chunks.

property orbital_param

Compute the orbital parameters for the current chunk.

property start_time

Get start time.