Ejemplo n.º 1
0
    def test_convert_date_time(self):

        self.assertEqual(f.conv_date_2_dekad(self.string_yyyymmdd), self.julian_dekad)
        self.assertEqual(f.conv_date_2_month(self.string_yyyymmdd), self.julian_month)

        self.assertEqual(f.conv_dekad_2_date(self.julian_dekad), self.string_yyyymmdd)
        self.assertEqual(f.conv_month_2_date(self.julian_month), self.string_yyyymmdd)

        self.assertEqual(f.conv_date_yyyydoy_2_yyyymmdd(self.string_yyyydoy),self.string_yyyymmdd)
        self.assertEqual(f.conv_date_yyyymmdd_2_doy(self.string_yyyymmdd), int(self.str_doy))

        self.assertEqual(f.conv_yyyy_mm_dkx_2_yyyymmdd(self.string_yyyy_mm_dkx), self.string_yyyymmdd)
        self.assertEqual(f.conv_yymmk_2_yyyymmdd(self.string_yymmk), self.string_yyyymmdd)
Ejemplo n.º 2
0
    def generate_parameters_10d30min():

        #   Look for all input files in input_dir, and sort them
        input_files = glob.glob(starting_files)
        dekad_list = []
        # Create unique list of all dekads (as 'Julian' number)
        for input_file in input_files:
            basename = os.path.basename(input_file)
            mydate = functions.get_date_from_path_filename(basename)
            mydate_yyyymmdd = str(mydate)[0:8]
            mydekad_nbr = functions.conv_date_2_dekad(mydate_yyyymmdd)
            if mydekad_nbr not in dekad_list:
                dekad_list.append(mydekad_nbr)

        dekad_list = sorted(dekad_list)

        # Compute the 'julian' dakad for the current day
        today = datetime.date.today()
        today_str = today.strftime('%Y%m%d')
        dekad_now = functions.conv_date_2_dekad(today_str)

        # Generate the list of 30 min time in a day
        timelist = [
            datetime.time(h, m).strftime("%H%M")
            for h, m in itertools.product(xrange(0, 24), xrange(0, 60, 30))
        ]

        for time in timelist:
            files_for_time = glob.glob(input_dir + os.path.sep + '*' + time +
                                       in_prod_ident)
            for dekad in dekad_list:
                # Exclude the current dekad
                if dekad != dekad_now:
                    file_list = []
                    my_dekad_str = functions.conv_dekad_2_date(dekad)
                    output_file = es_constants.processing_dir + output_subdir + os.path.sep + my_dekad_str + time + out_prod_ident

                    for myfile in files_for_time:
                        basename = os.path.basename(myfile)
                        mydate_yyyymmdd = functions.get_date_from_path_filename(
                            basename)
                        mydekad_nbr = functions.conv_date_2_dekad(
                            mydate_yyyymmdd[0:8])
                        if mydekad_nbr == dekad:
                            file_list.append(myfile)

                    yield (file_list, output_file)
    def generate_parameters_1d_to_10d(self):

        dekad_list = []

        # Create unique list of all dekads (as 'Julian' number)
        for input_file in self.input_files:
            basename = os.path.basename(input_file)
            mydate = functions.get_date_from_path_filename(basename)
            mydate_yyyymmdd = str(mydate)[0:8]
            mydekad_nbr = functions.conv_date_2_dekad(mydate_yyyymmdd)
            if mydekad_nbr not in dekad_list:
                dekad_list.append(mydekad_nbr)

        dekad_list = sorted(dekad_list)

        # Compute the 'julian' dakad for the current day
        today = datetime.date.today()
        today_str = today.strftime('%Y%m%d')
        dekad_now = functions.conv_date_2_dekad(today_str)

        for dekad in dekad_list:
            # Exclude the current dekad
            if dekad != dekad_now:
                file_list = []
                my_dekad_str = functions.conv_dekad_2_date(dekad)
                expected_days = functions.day_per_dekad(my_dekad_str)

                for input_file in self.input_files:

                    basename = os.path.basename(input_file)
                    mydate_yyyymmdd = functions.get_date_from_path_filename(
                        basename)
                    mydekad_nbr = functions.conv_date_2_dekad(
                        mydate_yyyymmdd[0:8])
                    if mydekad_nbr == dekad:
                        file_list.append(input_file)

                    output_file = es_constants.processing_dir + self.output_subdir_10d + os.path.sep + my_dekad_str + self.out_prod_ident_10d
                if len(file_list) >= expected_days - 1:
                    yield (file_list, output_file)
                else:
                    print('Too many missing filed for dekad {0}'.format(
                        my_dekad_str))
Ejemplo n.º 4
0
    def generate_parameters_10dcount():

        #   Look for all input files in input_dir, and sort them
        input_files = glob.glob(starting_files)
        dekad_list = []

        # Create unique list of all dekads (as 'Julian' number)
        for input_file in input_files:
            basename = os.path.basename(input_file)
            mydate = functions.get_date_from_path_filename(basename)
            mydate_yyyymmdd = str(mydate)[0:8]
            mydekad_nbr = functions.conv_date_2_dekad(mydate_yyyymmdd)
            if mydekad_nbr not in dekad_list:
                dekad_list.append(mydekad_nbr)

        dekad_list = sorted(dekad_list)

        # Compute the 'julian' dakad for the current day
        today = datetime.date.today()
        today_str = today.strftime('%Y%m%d')
        dekad_now = functions.conv_date_2_dekad(today_str)

        for dekad in dekad_list:
            # Exclude the current dekad
            if dekad != dekad_now:
                file_list = []
                my_dekad_str = functions.conv_dekad_2_date(dekad)
                for input_file in input_files:

                    basename = os.path.basename(input_file)
                    mydate_yyyymmdd = functions.get_date_from_path_filename(
                        basename)
                    mydekad_nbr = functions.conv_date_2_dekad(
                        mydate_yyyymmdd[0:8])
                    if mydekad_nbr == dekad:
                        file_list.append(input_file)

                    output_file = es_constants.processing_dir + output_subdir_10dcount + os.path.sep + my_dekad_str + out_prod_ident_10dcount

                yield (file_list, output_file)
Ejemplo n.º 5
0
    def test_convert_date_time(self):

        self.assertEqual(f.conv_date_2_dekad(self.string_yyyymmdd),
                         self.julian_dekad)
        self.assertEqual(f.conv_date_2_month(self.string_yyyymmdd),
                         self.julian_month)

        self.assertEqual(f.conv_dekad_2_date(self.julian_dekad),
                         self.string_yyyymmdd)
        self.assertEqual(f.conv_month_2_date(self.julian_month),
                         self.string_yyyymmdd)

        self.assertEqual(f.conv_date_yyyydoy_2_yyyymmdd(self.string_yyyydoy),
                         self.string_yyyymmdd)
        self.assertEqual(f.conv_date_yyyymmdd_2_doy(self.string_yyyymmdd),
                         int(self.str_doy))

        self.assertEqual(
            f.conv_yyyy_mm_dkx_2_yyyymmdd(self.string_yyyy_mm_dkx),
            self.string_yyyymmdd)
        self.assertEqual(f.conv_yymmk_2_yyyymmdd(self.string_yymmk),
                         self.string_yyyymmdd)
Ejemplo n.º 6
0
 def test_conv_dekad_2_date(self):
     self.assertEqual(functions.conv_dekad_2_date(self.julian_dekad),
                      self.string_yyyymmdd)