diff --git a/vegetationPhenology/VegetationPhenologyMain.py b/vegetationPhenology/VegetationPhenologyMain.py index 39983da1..6d92ce3a 100644 --- a/vegetationPhenology/VegetationPhenologyMain.py +++ b/vegetationPhenology/VegetationPhenologyMain.py @@ -28,6 +28,7 @@ from VegetationPhenologyAuxData import PhenoloyMeasCsv_geo from tool.algorithm.xml.CreateMetaDict import CreateMetaDict, CreateProductXml from tool.file.fileHandle import fileHandle +from tool.algorithm.algtools.ROIAlg import ROIAlg as roi import sys from tool.algorithm.transforml1a.transHandle import TransImgL1A from tool.csv.csvHandle import csvHandle @@ -47,7 +48,8 @@ logger = logging.getLogger("mylog") FILTER_SIZE = int(cf.get('filter_size')) MAX_TRAN_NUM = int(cf.get('max_tran__num_per_class')) file =fileHandle(DEBUG) -env_str = os.path.split(os.path.realpath(__file__))[0] +# env_str = os.path.split(os.path.realpath(__file__))[0] +env_str =os.path.dirname(os.path.abspath(sys.argv[0])) os.environ['PROJ_LIB'] = env_str class PhenologyMain: """ @@ -150,12 +152,13 @@ class PhenologyMain: for name in self.__processing_paras['name_list']: self.preprocess_single_tar(name, scopes_roi) - para_names_geo = [name + '_sim_ori'] + para_names_geo = [name + '_sim_ori', 'Covering'] self.__feature_name_list = para_names_geo p = pp() cutted_img_paths, scopes_roi = p.cut_geoimg(self.__workspace_preprocessing_path, para_names_geo, self.__processing_paras) - self.__preprocessed_paras.update({name + 'sim_ori': cutted_img_paths.get(name + '_sim_ori')}) + self.__preprocessed_paras.update({name + '_sim_ori': cutted_img_paths.get(name + '_sim_ori')}) + self.__preprocessed_paras.update({name + '_Covering': cutted_img_paths.get('Covering')}) logger.info('preprocess_handle success!') logger.info('progress bar: 10%') @@ -258,7 +261,7 @@ class PhenologyMain: sim_ori_path = self.__preprocessed_paras[sim_ori_key] hh_path = self.__preprocessed_paras[name + "_HH"] - hh_geo_path = os.path.join(self.__workspace_processing_path, 'hh_geo.tif') + hh_geo_path = os.path.join(self.__workspace_processing_path, name.split('-')[0] + '_geo.tif') paramter = self.__processing_paras[name + "paraMeter"] self.calInterpolation_bil_Wgs84_rc_sar_sigma(paramter, sim_ori_path, hh_path, hh_geo_path) @@ -343,7 +346,7 @@ class PhenologyMain: # 生成训练集 X_train_part, Y_train_part, optimal_feature = ml.gene_optimal_train_set(train_data_dic, feature_dir, 0.07, 0.85) name_list = ml.get_name_list(feature_dir) - if optimal_feature == []: + if len(optimal_feature) <= 0: logger.error('特征筛选结果为空,无可用特征作为训练集') continue # 生成测试集合 @@ -382,11 +385,19 @@ class PhenologyMain: roi_img = self.imageHandler.get_band_array(self.create_roi(in_tif_paths[0])) # 获取影像roi区域 cover_data_pro = cover_data * roi_img - cover_geo_path = os.path.join(self.__product_dic, os.path.basename(product_path).split('.tif')[0] + '-VP.tif') + cover_geo_path = os.path.join(self.__workspace_processing_path, os.path.basename(product_path).split('.tif')[0] + '-VPtemp.tif') self.imageHandler.write_img(cover_geo_path, proj_geo, geo_geo, cover_data_pro) - self.imageHandler.write_quick_view(cover_geo_path, color_img=True) - meta_xml_path = self.create_meta_file(cover_geo_path) + self.resampleImgs(name, cover_geo_path) + para_names = ['Covering'] + mask_dir = os.path.join(self.__workspace_processing_path, name + '\\') + bare_land_mask_path = roi().roi_process_VP(para_names, mask_dir, + self.__processing_paras, self.__preprocessed_paras, name) + product_path_pro = os.path.join(self.__product_dic, os.path.basename(product_path).split('.tif')[0] + '-VP.tif') + # 获取影像roi区域 + roi.cal_roi(product_path_pro, cover_geo_path, bare_land_mask_path, background_value=0) + self.imageHandler.write_quick_view(product_path_pro, color_img=True) + meta_xml_path = self.create_meta_file(product_path_pro) temp_folder = os.path.join(self.__workspace_path, EXE_NAME, 'Output') out_xml = os.path.join(temp_folder, os.path.basename(meta_xml_path)) @@ -511,6 +522,12 @@ class PhenologyMain: return product_geo_path + def resampleImgs(self, name, refer_img_path): + + cover_rampling_path = os.path.join(self.__workspace_processing_path, name + "_cover.tif") + pp.resampling_by_scale(self.__preprocessed_paras[name + "_Covering"], cover_rampling_path, refer_img_path) + self.__preprocessed_paras[name + "_Covering"] = cover_rampling_path + def create_roi(self, img_path): """ 计算ROI掩膜