修改植被物候流程

dev
tian jiax 2023-11-15 15:56:19 +08:00
parent 4c743e6e19
commit e42eedea0c
1 changed files with 25 additions and 8 deletions

View File

@ -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掩膜