import os.path

from nansat import Nansat

class AsterImage(Nansat):
    '''
    Read parameters from RADARSAT2 file    
    '''
    
    def __init__(self, fileName, logLevel=10):
        '''
        Read attributes from file name
        RS2_20110430_145008_0008_F1_HHHV_SGF_130933_4554_5368385
        Set values to the dictionary data
        '''
        #init nansat object (open GDAL dataset, get mapper, etc) add new
        #functions
        Nansat.__init__(self, str(fileName), mapperName='aster_l1a', logLevel=logLevel)

        #set values to the attribute data where it is availabe fro ImagesCatalog
        self.set_metadata('name',         "'%s'" % self.name)
        self.set_metadata('path',         "'%s'"   % self.path)
        self.set_metadata('sensor',       "'aster'")
        self.set_metadata('sensstart',    "'%s'" % self.get_time()[0].strftime('%Y-%m-%d %H:%M:%S.%f'))
        self.set_metadata('border',   self.get_border_postgis())

    def process_web(self, opts=None):
        '''
        NRT Processing of Radarsat includes:
            Visualisation of small quick look
            Visualisation of large quick look
            Generating map
        Input:
        ------
        opts: dictionary with processing options
        '''
        status = 1
        oBaseFileName = self.get_metadata('name').strip('"').strip("'")
        # 1. Generate small quicklook
        quicklookName = opts['mapDir'] + '/' + oBaseFileName + '_.jpg'
        if not os.path.exists(quicklookName):
            self.logger.info('quicklook: %s' % quicklookName)
            self.resize(width=300)
            self.write_figure(quicklookName, clim=[0, 50], cmapName='gray')
            self.resize()
            status = 0
            
        # 2. Generate map
        mapName = opts['mapDir'] + oBaseFileName + '_.png'
        if not os.path.exists(mapName):
            self.logger.info('map: %s' % quicklookName)
            self.write_map(mapName, lonBorder=3, latBorder=3, resolution='h')
            status = 0

        return status
