In [52]:
import snappy

class N1Metadata:
    SPH={}   
    MPH={}
    DSD={}
    Quality_ADS={}
    Scaling_Factor_GADS={}
    Tie_points_ADS={}
    def __init__(self,filename):
        import snappy
        self.filename=filename
        try:
            self.product=snappy.ProductIO.readProduct(filename)
        except IOError:
            print("Error opening file....")
            return 0
        metadata=self.product.getMetadataRoot()
        element=metadata.getElement('SPH')
        for i in element.getAttributes():
            self.SPH[i.getName()]=i.getDataElems()[0]
        element=metadata.getElement('MPH')
        for i in element.getAttributes():
            self.MPH[i.getName()]=i.getDataElems()[0]
        element=metadata.getElement('DSD')
        for i in element.getAttributes():
            self.DSD[i.getName()]=i.getDataElems()[0]        
        element=metadata.getElement('Quality_ADS')
        for i in element.getAttributes():
            self.Quality_ADS[i.getName()]=i.getDataElems()[0]
        element=metadata.getElement('Scaling_Factor_GADS')
        for i in element.getAttributes():
            self.Scaling_Factor_GADS[i.getName()]=i.getDataElems()[0]
        element=metadata.getElement('Tie_points_ADS')
        for i in element.getAttributes():
            self.Tie_points_ADS[i.getName()]=i.getDataElems()[0]
        
    def __repr__(self):
        from pprint import pprint,pformat
        from io import StringIO
        s = StringIO()
        pprint(self.SPH, s)
        m = StringIO()
        pprint(self.SPH, m)
        d = StringIO()
        pprint(self.DSD, d)
        Q = StringIO()
        pprint(self.Quality_ADS, Q)
        Sc = StringIO()
        pprint(self.Scaling_Factor_GADS, Sc)
        T = StringIO()
        pprint(self.Tie_points_ADS, T)
        return ('SPH:\n'+s.getvalue()+'\nMPH:\n'+m.getvalue()+'\nDSD:\n'+d.getvalue()
               +'\nQuality ADS:\n'+Q.getvalue()+'\nScaling Factor GADS:\n'+Sc.getvalue()+'\nTie points:\n'+T.getvalue())

In [53]:
a=N1Metadata('/eodata/Envisat/Meris/FRS/2002/05/17/MER_FRS_1PPEPA20020517_140027_000000982006_00053_01109_0979.N1')
print(a)


SPH:
{'BANDWIDTH': 9937,
 'BAND_WAVELEN': 412691,
 'COARSE_ERR_FLAG': 1,
 'COLUMN_SPACING': 260.0,
 'DATABASE_FLAG': 0,
 'ECMWF_TYPE': 1,
 'FIRST_FIRST_LAT': 435323,
 'FIRST_FIRST_LONG': -54751489,
 'FIRST_LAST_LAT': 2666206,
 'FIRST_LAST_LONG': -64982102,
 'FIRST_LINE_TIME': 49,
 'FIRST_MID_LAT': 1556865,
 'FIRST_MID_LONG': -59864142,
 'FORMAT_ERR_FLAG': 1,
 'FORMAT_ERR_THRESH': 0.0,
 'INST_FOV': 19159,
 'LAST_FIRST_LAT': -5390519,
 'LAST_FIRST_LONG': -56015554,
 'LAST_LAST_LAT': -3157878,
 'LAST_LAST_LONG': -66270449,
 'LAST_LINE_TIME': 49,
 'LAST_MID_LAT': -4291583,
 'LAST_MID_LONG': -61150470,
 'LINES_PER_TIE_PT': 64,
 'LINE_LENGTH': 4481,
 'LINE_TIME_INTERVAL': 43997,
 'NUM_BANDS': 15,
 'NUM_FORMAT_ERR': 88,
 'NUM_SLICES': 1,
 'NUM_TRANS_ERR': 11,
 'OFFSET_COMP': 1,
 'PROC_MODE': 0,
 'SAMPLES_PER_TIE_PT': 64,
 'SLICE_POSITION': 1,
 'SPH_DESCRIPTOR': 77,
 'STRIPLINE_CONTINUITY_INDICATOR': 0,
 'TRANS_ERR_FLAG': 1,
 'TRANS_ERR_THRESH': 0.0}

MPH:
{'BANDWIDTH': 9937,
 'BAND_WAVELEN': 412691,
 'COARSE_ERR_FLAG': 1,
 'COLUMN_SPACING': 260.0,
 'DATABASE_FLAG': 0,
 'ECMWF_TYPE': 1,
 'FIRST_FIRST_LAT': 435323,
 'FIRST_FIRST_LONG': -54751489,
 'FIRST_LAST_LAT': 2666206,
 'FIRST_LAST_LONG': -64982102,
 'FIRST_LINE_TIME': 49,
 'FIRST_MID_LAT': 1556865,
 'FIRST_MID_LONG': -59864142,
 'FORMAT_ERR_FLAG': 1,
 'FORMAT_ERR_THRESH': 0.0,
 'INST_FOV': 19159,
 'LAST_FIRST_LAT': -5390519,
 'LAST_FIRST_LONG': -56015554,
 'LAST_LAST_LAT': -3157878,
 'LAST_LAST_LONG': -66270449,
 'LAST_LINE_TIME': 49,
 'LAST_MID_LAT': -4291583,
 'LAST_MID_LONG': -61150470,
 'LINES_PER_TIE_PT': 64,
 'LINE_LENGTH': 4481,
 'LINE_TIME_INTERVAL': 43997,
 'NUM_BANDS': 15,
 'NUM_FORMAT_ERR': 88,
 'NUM_SLICES': 1,
 'NUM_TRANS_ERR': 11,
 'OFFSET_COMP': 1,
 'PROC_MODE': 0,
 'SAMPLES_PER_TIE_PT': 64,
 'SLICE_POSITION': 1,
 'SPH_DESCRIPTOR': 77,
 'STRIPLINE_CONTINUITY_INDICATOR': 0,
 'TRANS_ERR_FLAG': 1,
 'TRANS_ERR_THRESH': 0.0}

DSD:
{}

Quality ADS:
{}

Scaling Factor GADS:
{'gain_set': 9,
 'samp_rate': 43997,
 'sf_alt': 1.0,
 'sf_atm_pres': 0.10000000149011612,
 'sf_merr_wind': 0.10000000149011612,
 'sf_ozone': 0.009999999776482582,
 'sf_rad': 0.009474839083850384,
 'sf_rel_hum': 0.10000000149011612,
 'sf_rough': 1.0,
 'sf_zon_wind': 0.10000000149011612,
 'sun_spec_flux': 1678.1357421875}

Tie points:
{}


In [ ]: