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)
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))
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)
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)
def test_conv_dekad_2_date(self): self.assertEqual(functions.conv_dekad_2_date(self.julian_dekad), self.string_yyyymmdd)