更新后向和叶面积解压缩以及快视图
parent
7834ac894a
commit
b1d4c330f1
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<Root>
|
||||
<TaskID>CSAR_202107275419_0001-0</TaskID>
|
||||
<WorkSpace>D:\micro\WorkSpace\</WorkSpace>
|
||||
<WorkSpace>E:\Result_GF3\</WorkSpace>
|
||||
<AlgCompt>
|
||||
<DataTransModel>File</DataTransModel>
|
||||
<Artificial>ElementAlg</Artificial>
|
||||
|
@ -42,7 +42,7 @@
|
|||
<ParaType>File</ParaType>
|
||||
<DataType>tar.gz</DataType>
|
||||
<ParaSource>Cal</ParaSource>
|
||||
<ParaValue>E:\MicroWorkspace\GF3-Deformation\GF3-yuan\GF3_KSC_QPSI_036065_E116.4_N44.2_20230616_L1A_AHV_L10006792277.tar.gz</ParaValue>
|
||||
<ParaValue>E:\GF3Data\backscatter\GF3_KSC_QPSI_036065_E116.4_N44.2_20230616_L1A_AHV_L10006792277.tar.gz</ParaValue>
|
||||
<EnModification>True</EnModification>
|
||||
<EnMultipleChoice>False</EnMultipleChoice>
|
||||
<Control>File</Control>
|
||||
|
@ -55,9 +55,9 @@
|
|||
<ParaChsName>DEM数字高程影像</ParaChsName>
|
||||
<Description>30m分辨率DEM数字高程影像</Description>
|
||||
<ParaType>File</ParaType>
|
||||
<DataType>File</DataType>
|
||||
<DataType>zip</DataType>
|
||||
<ParaSource>Cal</ParaSource>
|
||||
<ParaValue>E:\MicroWorkspace\GF3-Deformation\yuan-gf3-dem</ParaValue>
|
||||
<ParaValue>E:\GF3Data\backscatter\ASTGTM2_N43E116_dem.zip</ParaValue>
|
||||
<EnModification>True</EnModification>
|
||||
<EnMultipleChoice>True</EnMultipleChoice>
|
||||
<Control>File</Control>
|
||||
|
@ -74,7 +74,7 @@
|
|||
<ParaType>File</ParaType>
|
||||
<DataType>tar.gz</DataType>
|
||||
<ParaSource>Cal</ParaSource>
|
||||
<ParaValue>D:\micro\WorkSpace\BackScattering\Output\GF3_KSC_QPSI_036065_E116.4_N44.2_20230616_L1A_AHV_L10006792277-cal.tar.gz</ParaValue>
|
||||
<ParaValue>E:\Result_GF3\BackScattering\Output\GF3_KSC_QPSI_036065_E116.4_N44.2_20230616_L1A_AHV_L10006792277-cal.tar.gz</ParaValue>
|
||||
<MaxValue>DEFAULT</MaxValue>
|
||||
<MinValue>DEFAULT</MinValue>
|
||||
<OptionValue>DEFAULT</OptionValue>
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
@Date :2021/8/14
|
||||
@Version :1.0.0
|
||||
"""
|
||||
import zipfile
|
||||
|
||||
# from re import I, T, X, match
|
||||
# from types import DynamicClassAttribute
|
||||
# from numpy.core.einsumfunc import _parse_possible_contraction
|
||||
|
@ -942,6 +944,21 @@ class DEMProcess(object):
|
|||
del in_ds, out_band, out_ds
|
||||
|
||||
@staticmethod
|
||||
def unzip_file(zip_file_path, out_path):
|
||||
# 获取压缩文件所在的目录
|
||||
out_path_merg = os.path.join(out_path, 'dem')
|
||||
os.mkdir(out_path_merg)
|
||||
|
||||
para_value_list = zip_file_path.split(";")
|
||||
for n in para_value_list:
|
||||
with zipfile.ZipFile(n, 'r') as zip_ref:
|
||||
# 解压到和压缩文件同名的文件夹中
|
||||
zip_ref.extractall(out_path_merg)
|
||||
|
||||
# 返回解压后文件夹的路径
|
||||
# unzipped_folder_path = os.path.join(out_path, os.path.splitext(os.path.basename(zip_file_path))[0])
|
||||
return out_path_merg
|
||||
@staticmethod
|
||||
def dem_clip(OutFilePath, DEMFilePath, SelectArea):
|
||||
'''
|
||||
根据选择范围裁剪DEM,并输出
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
"""
|
||||
import logging
|
||||
from tool.algorithm.algtools.logHandler import LogHandler
|
||||
from tool.algorithm.block.blockprocess import BlockProcess
|
||||
from tool.algorithm.xml.AlgXmlHandle import ManageAlgXML, CheckSource
|
||||
from tool.algorithm.xml.CreateMetaDict import CreateMetaDict, CreateProductXml, OrthoAzimuth
|
||||
from tool.algorithm.image.ImageHandle import ImageHandler
|
||||
|
@ -78,7 +79,7 @@ class ScatteringMain:
|
|||
self.__create_work_space()
|
||||
self.__task_id = self.__alg_xml_handler.get_task_id()
|
||||
self.__input_paras = self.__alg_xml_handler.get_input_paras()
|
||||
self.__in_processing_paras = self.__init_processing_paras(self.__input_paras)
|
||||
self.__in_processing_paras = self.__init_processing_paras(self.__input_paras, self.__workspace_preprocessing_path)
|
||||
SrcImageName = os.path.split(self.__input_paras["SLC"]['ParaValue'])[1].split('.tar.gz')[0]
|
||||
AlgorithmName = self.__alg_xml_handler.get_algorithm_name()
|
||||
TaskId = self.__alg_xml_handler.get_task_id()
|
||||
|
@ -92,7 +93,7 @@ class ScatteringMain:
|
|||
logger.info('progress bar: 30%')
|
||||
return True
|
||||
|
||||
def __init_processing_paras(self, names):
|
||||
def __init_processing_paras(self, names,out_path):
|
||||
"""
|
||||
:param names:字典列表,每个字典为一个输入产品的配置信息
|
||||
"""
|
||||
|
@ -119,6 +120,17 @@ class ScatteringMain:
|
|||
for path in paths:
|
||||
tar_gz_dic = self.__dec_tar_gz(path, self.__workspace_preprocessing_path)
|
||||
processing_paras.update(tar_gz_dic)
|
||||
elif para['DataType'] == 'zip':
|
||||
# temp_para = para['ParaValue'].split(".")[0]
|
||||
para_value_list = para['ParaValue'].split(";")
|
||||
if len(para_value_list) == 1:
|
||||
para_path = para['ParaValue']
|
||||
if para_path != 'empty' and para_path != '':
|
||||
file_path = BlockProcess.unzip_file(para_path, out_path)
|
||||
processing_paras.update({name: os.path.dirname(file_path)})
|
||||
else:
|
||||
file_path = DEMProcess.unzip_file(para['ParaValue'], out_path)
|
||||
processing_paras.update({name: file_path})
|
||||
elif para['DataType'] == 'tif' or para['DataType'] == 'tiff': # 新增修改dem数据为文件绝对路径
|
||||
if para['ParaValue'] != 'empty' and para['ParaValue'] != 'Empty' and para['ParaValue'] != '':
|
||||
para_path_list = para['ParaValue'].split(";")
|
||||
|
@ -294,6 +306,8 @@ class ScatteringMain:
|
|||
in_dem_path = self.__in_processing_paras['DEM']
|
||||
meta_file_path = self.__in_processing_paras['META'] # .meta文件路径
|
||||
out_dem_path = self.__workspace_preprocessing_path
|
||||
# unzipped_folder_path = DEMProcess.unzip_file(in_dem_path, self.__workspace_origin_path) # 解压DEM.zip
|
||||
|
||||
dem_merged_path=DEMProcess.dem_merged(in_dem_path, meta_file_path, out_dem_path) # 生成TestDEM\mergedDEM_VRT.tif
|
||||
|
||||
in_slc_path=None
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<Root>
|
||||
<TaskID>CSAR_202107275419_0001-0</TaskID>
|
||||
<WorkSpace>D:\micro\WorkSpace\</WorkSpace>
|
||||
<WorkSpace>E:\Result_GF3\</WorkSpace>
|
||||
<AlgCompt>
|
||||
<DataTransModel>File</DataTransModel>
|
||||
<Artificial>ElementAlg</Artificial>
|
||||
|
@ -53,7 +53,7 @@
|
|||
<ParaType>File</ParaType>
|
||||
<DataType>tar.gz</DataType>
|
||||
<ParaSource>Man</ParaSource>
|
||||
<ParaValue>E:\MicroWorkspace\Micro\neimenggu\GF3_MDJ_QPSI_031847_E116.4_N43.9_20220828_L1A_AHV_L10006708819-cal.tar.gz</ParaValue>
|
||||
<ParaValue>E:\GF3Data\leafindex\GF3_MDJ_QPSI_031847_E116.4_N43.9_20220828_L1A_AHV_L10006708819-cal.tar.gz</ParaValue>
|
||||
<EnModification>True</EnModification>
|
||||
<EnMultipleChoice>False</EnMultipleChoice>
|
||||
<Control>File</Control>
|
||||
|
@ -81,9 +81,9 @@
|
|||
<ParaChsName>土壤水分产品</ParaChsName>
|
||||
<Description>土壤水分产品</Description>
|
||||
<ParaType>File</ParaType>
|
||||
<DataType>tif</DataType>
|
||||
<DataType>zip</DataType>
|
||||
<ParaSource>Man</ParaSource>
|
||||
<ParaValue>E:\MicroWorkspace\Micro\neimenggu\soil_moisture.tif</ParaValue>
|
||||
<ParaValue>E:\GF3Data\leafindex\soil_moisture.zip</ParaValue>
|
||||
<EnModification>True</EnModification>
|
||||
<EnMultipleChoice>False</EnMultipleChoice>
|
||||
<Control>File</Control>
|
||||
|
@ -96,9 +96,9 @@
|
|||
<ParaChsName>叶面积指数实测数据</ParaChsName>
|
||||
<Description>叶面积指数实测数据</Description>
|
||||
<ParaType>File</ParaType>
|
||||
<DataType>csv</DataType>
|
||||
<DataType>zip</DataType>
|
||||
<ParaSource>Man</ParaSource>
|
||||
<ParaValue>D:\estar-proj\microproduct_depdence\process_lai\laiplus2.csv</ParaValue>
|
||||
<ParaValue>E:\GF3Data\leafindex\laiplus2.zip</ParaValue>
|
||||
<EnModification>True</EnModification>
|
||||
<EnMultipleChoice>False</EnMultipleChoice>
|
||||
<Control>File</Control>
|
||||
|
@ -111,9 +111,9 @@
|
|||
<ParaChsName>NDVI</ParaChsName>
|
||||
<Description>NDVI影像,坐标系要求:WGS84</Description>
|
||||
<ParaType>File</ParaType>
|
||||
<DataType>tif</DataType>
|
||||
<DataType>zip</DataType>
|
||||
<ParaSource>Cal</ParaSource>
|
||||
<ParaValue>E:\MicroWorkspace\Micro\neimenggu\L9NDVI.tif</ParaValue>
|
||||
<ParaValue>E:\GF3Data\leafindex\L9NDVI.zip</ParaValue>
|
||||
<EnModification>True</EnModification>
|
||||
<EnMultipleChoice>False</EnMultipleChoice>
|
||||
<Control>File</Control>
|
||||
|
@ -141,9 +141,9 @@
|
|||
<ParaChsName>地表覆盖度</ParaChsName>
|
||||
<Description>地表覆盖度数据,坐标系要求:WGS84</Description>
|
||||
<ParaType>File</ParaType>
|
||||
<DataType>tif</DataType>
|
||||
<DataType>zip</DataType>
|
||||
<ParaSource>Cal</ParaSource>
|
||||
<ParaValue>E:\MicroWorkspace\Micro\neimenggu\N50_40_2020LC030_geo.tif</ParaValue>
|
||||
<ParaValue>E:\GF3Data\leafindex\N50_40_2020LC030_geo.zip</ParaValue>
|
||||
<EnModification>True</EnModification>
|
||||
<EnMultipleChoice>False</EnMultipleChoice>
|
||||
<Control>File</Control>
|
||||
|
@ -235,7 +235,7 @@
|
|||
<ParaType>File</ParaType>
|
||||
<DataType>tar.gz</DataType>
|
||||
<ParaSource>Cal</ParaSource>
|
||||
<ParaValue>D:\micro\WorkSpace\LeafAreaIndex\Output\GF3_MDJ_QPSI_031847_E116.4_N43.9_20220828_L1A_AHV_L10006708819-cal-LAI.tar.gz</ParaValue>
|
||||
<ParaValue>E:\Result_GF3\LeafAreaIndex\Output\GF3_MDJ_QPSI_031847_E116.4_N43.9_20220828_L1A_AHV_L10006708819-cal-LAI.tar.gz</ParaValue>
|
||||
<MaxValue>DEFAULT</MaxValue>
|
||||
<MinValue>DEFAULT</MinValue>
|
||||
<OptionValue>DEFAULT</OptionValue>
|
||||
|
|
|
@ -118,7 +118,7 @@ class LeafIndexMain:
|
|||
self.__sar_tif_name = 'empty'
|
||||
else:
|
||||
raise ValueError("input Para 'Polarization' is not 'HV'、'HH'、'VV'or 'empty'!")
|
||||
self.__processing_paras = InitPara.init_processing_paras(self.__input_paras)
|
||||
self.__processing_paras = InitPara.init_processing_paras(self.__input_paras, self.__workspace_preprocessed_path)
|
||||
self.__processing_paras.update(self.get_tar_gz_inf(self.__processing_paras["sar_path0"]))
|
||||
logger.info('check_source success!')
|
||||
return True
|
||||
|
|
|
@ -8,6 +8,9 @@
|
|||
@Date:2021/9/6
|
||||
@Version:1.0.0
|
||||
"""
|
||||
import glob
|
||||
import zipfile
|
||||
|
||||
from osgeo import osr, gdal
|
||||
import numpy as np
|
||||
import os
|
||||
|
@ -58,6 +61,24 @@ class BlockProcess:
|
|||
pass
|
||||
return result_dir, result_name
|
||||
|
||||
@staticmethod
|
||||
def unzip_file(zip_file_path, out_path): # ):
|
||||
# 获取压缩文件所在的目录
|
||||
# extract_folder = os.path.dirname(zip_file_path)
|
||||
basename = os.path.splitext(os.path.basename(zip_file_path))[0]
|
||||
extract_folder = os.path.join(out_path, basename)
|
||||
|
||||
with zipfile.ZipFile(zip_file_path, 'r') as zip_ref:
|
||||
# 解压到和压缩文件同名的文件夹中
|
||||
zip_ref.extractall(extract_folder)
|
||||
|
||||
# 返回解压后文件夹的路径
|
||||
files = list(glob.glob(os.path.join(extract_folder, '*')))
|
||||
for file in files:
|
||||
if basename in os.path.basename(file):
|
||||
unzipped_folder_path = file
|
||||
return unzipped_folder_path
|
||||
|
||||
@staticmethod
|
||||
def get_same_img(img_dir, img_name):
|
||||
"""
|
||||
|
|
|
@ -608,7 +608,8 @@ class ImageHandler:
|
|||
t_data = self.get_data(tif_path)
|
||||
t_data = t_data.astype(float)
|
||||
t_data = np.sqrt(t_data[0] ** 2 + t_data[1] ** 2)
|
||||
|
||||
t_data[np.isnan(t_data)] = 0
|
||||
t_data[np.where(t_data == -9999)] = 0
|
||||
t_r = self.get_img_height(tif_path)
|
||||
t_c = self.get_img_width(tif_path)
|
||||
if t_r > 10000 or t_c > 10000:
|
||||
|
|
|
@ -20,6 +20,7 @@ import multiprocessing
|
|||
import ctypes
|
||||
logger = logging.getLogger("mylog")
|
||||
import glob
|
||||
from tool.algorithm.block.blockprocess import BlockProcess
|
||||
|
||||
class ManageAlgXML:
|
||||
"""
|
||||
|
@ -519,7 +520,7 @@ class InitPara:
|
|||
self._debug = debug
|
||||
|
||||
@staticmethod
|
||||
def init_processing_paras(input_paras):
|
||||
def init_processing_paras(input_paras,out_path):
|
||||
"""
|
||||
:param names:字典列表,每个字典为一个输入产品的配置信息
|
||||
"""
|
||||
|
@ -540,6 +541,18 @@ class InitPara:
|
|||
else:
|
||||
for n, para_value in zip(range(len(para_value_list)), para_value_list):
|
||||
processing_paras.update({name+str(n): para_value})
|
||||
elif para['DataType'] == 'zip':
|
||||
# temp_para = para['ParaValue'].split(".")[0]
|
||||
para_value_list = out_path.split(";")
|
||||
if len(para_value_list) == 1:
|
||||
para_path = para['ParaValue']
|
||||
if para_path != 'empty' and para_path != '':
|
||||
file_path = BlockProcess.unzip_file(para_path, out_path)
|
||||
processing_paras.update({name: file_path})
|
||||
else:
|
||||
for n, para_value_zip in zip(range(len(para_value_list)), para_value_list):
|
||||
file_path = BlockProcess.unzip_file(para_value_zip, out_path)
|
||||
processing_paras.update({name+str(n): file_path})
|
||||
elif para['DataType'] == 'tar.gz':
|
||||
paths = para['ParaValue'].split(';')
|
||||
for n, path in zip(range(len(paths)), paths):
|
||||
|
|
Loading…
Reference in New Issue