How do I read IASI GDS L1C in Python? I'm trying to read IASI GDS Level 1C data (all spectral samples) in the EUMETSAT EPS Native Format, as documented in the Generic Product Format Specification (PDF, 738 KB, 72 pages) and the IASI Level 1 Product Format Specification (PDF, 2.5 MB, 60 pages).  EUMETSAT supports a reading routine in IDL.

The IASI Level 1 Product Guide (PDF, 5.8 MB, 110 pages), section 5.1, notes that 


  The products can be read using standard HDF libraries


but trying to open a test file with

h5py.File('IASI_xxx_1C_M02_20110528114454Z_20110528132653Z_N_O_20110528132912Z.nat', 'r')

results in

OSError: Unable to open file (Unable to find a valid file signature),

and neither the Generic Product Format Specification nor the IASI Product Format Specification mention HDF, which would be odd if the format was HDF-compatible.
The Basic ENVISAT Atmospheric Toolbox (BEAT) contains a component called the Common Data Access toolbox (CODA; also available on github).  BEAT and CODA are written in C and have bindings for Python (as well as Matlab, IDL, and a few other languages).  Among the long list of supported products is IASI L1C.  Apparently, BEAT is going to be replaced by HARP (github page), but HARP reportedly does not yet support IASI L1C.  BEAT, CODA, and HARP are all available under the GPL.

Although the BEAT website reports Python bindings are only available for Python 2.7, I have successfully used CODA with Python 3.5 (I did not try BEAT as I do not currently need the higher-level functionality it offers).