def __process(self, product_code):

        base_path = os.path.join(self.root, product_code.upper(), 'RAW')
        print os.path.join(self.root, product_code, 'RAW', '*')

        folders_years = glob.glob(os.path.join(base_path, '*'))

        print folders_years
        for folder_year in folders_years:
            folders_days = glob.glob(os.path.join(folder_year, '*'))
            # print folders_days
            for folder_day in folders_days:
                my_processing = copy.deepcopy(processing)
                my_processing[product_code][0]['source_path'] = None
                layers = glob.glob(os.path.join(folder_day, '*.hdf'))
                shutil.rmtree(folder_day + '/PROCESSED/')
                for l in layers:
                    try:
                        my_processing[product_code][0]['source_path'].append(l)
                    except AttributeError:
                        my_processing[product_code][0]['source_path'] = []
                        my_processing[product_code][0]['source_path'].append(l)

                for tmp_out in my_processing[product_code]:
                    tmp_out['output_path'] = folder_day + '/PROCESSED/'
                try:
                    for proc in my_processing[product_code]:
                        proc["source_path"] = proc["source_path"] if "source_path" in proc else result
                        result = processing_core.process_obj(proc)
                except Exception, e:
                    print '##################################################'
                    print e
                    print '##################################################'
                print 'Processing done.'
    def __process2(self, product_code):
        if self.products is not None and self.years is not None and self.countries is not None:
            for p in self.products:
                for y in self.years:
                    days = c.list_days(p, y)
                    for d in days:
                        my_processing = copy.deepcopy(processing)
                        my_processing[product_code][0]['source_path'] = None
                        for tmp_out in my_processing[product_code]:
                            tmp_out['output_path'] = None
                        if os.path.isdir(self.root + p + '/' + y + '/' + d['code'] + '/PROCESSED/'):
                            shutil.rmtree(self.root + p + '/' + y + '/' + d['code'] + '/PROCESSED/')
                        layers = c.list_layers_countries_subset(p, y, d['code'], self.countries)
                        for l in layers:
                            try:
                                my_processing[product_code][0]['source_path'].append(self.root +
                                                                                     p + '/' +
                                                                                     y + '/' +
                                                                                     d['code'] + '/' +
                                                                                     l['file_name'])
                            except AttributeError:
                                my_processing[product_code][0]['source_path'] = []
                                my_processing[product_code][0]['source_path'].append(self.root +
                                                                                     p + '/' +
                                                                                     y + '/' +
                                                                                     d['code'] + '/' +
                                                                                     l['file_name'])

                        for tmp_out in my_processing[product_code]:
                            tmp_out['output_path'] = self.root + p + '/' + y + '/' + d['code'] + '/PROCESSED/'
                        try:
                            for proc in my_processing[product_code]:
                                proc["source_path"] = proc["source_path"] if "source_path" in proc else result
                                result = processing_core.process_obj(proc)
                        except Exception, e:
                            print '##################################################'
                            print e
                            print '##################################################'
                        print 'Processing done.'