import os, os.path
import glob
from datetime import datetime, timedelta
from nansat import Nansat



class LandsatImage(Nansat):
    '''Extension of Nansat for simple reading of metadata from Landsat3,4,5,6,7'''
    
    def __init__(self, fileName, mapperName='landsat', logLevel=30):
        '''Create Landsat image object 
        
        Read attributes from file name
        LE7 211 003 2010 188 EDC00.tar.gz
        Set values to the metadata

        Parameters:
        ----------
            fileName: string
                Name of the input file for Nansat
            rawFileName: string
                Name of the original file (before unzipping
        
        Modifies:
        ---------
            Add name, path, sensor, enstart, border to the metadata
        '''
        #init nansat object (open GDAL dataset, get mapper, etc)
        Nansat.__init__(self, fileName, mapperName=mapperName, logLevel=logLevel)

        #get values from file name
        rawDirName = os.path.dirname(fileName)
        rawFileName = os.path.basename(fileName)
        year = int(rawFileName[9:13])
        doy = int(rawFileName[13:16])
        sensstart = datetime(year, 1, 1) + timedelta(doy - 1)
        #set values to the attribute data where it is availabe for CommonImagesCatalog
        self.set_metadata('name',      "'%s'" % self.name);
        self.set_metadata('path',      "'%s'"   % self.path);
        self.set_metadata('sensor',    "'landsat'")            
        self.set_metadata('sensstart', "'%s 0:0:0'" % sensstart.strftime('%Y-%m-%d')); 
        self.set_metadata('border',   self.get_border_postgis())
