代码更新

dev
tian jiax 2024-10-30 11:19:00 +08:00
parent e27e358610
commit 1ad2118d2b
7 changed files with 73 additions and 26 deletions

View File

@ -38,7 +38,7 @@
<ParaType>File</ParaType> <ParaType>File</ParaType>
<DataType>tar.gz</DataType> <DataType>tar.gz</DataType>
<ParaSource>Man</ParaSource> <ParaSource>Man</ParaSource>
<ParaValue>F:\MicroWorkspace\S_SAR\AHV\HJ2E_MYC_QPS_001752_E118.0_N37.7_20230204_SLC_AHV_L10000010458-Ortho.tar.gz</ParaValue> <ParaValue>F:\xibei_LandCover\S-SAR-西北实验\1116\HJ2E_KSC_QPS_006084_E86.2_N44.4_20231116_SLC_AHV_L10000132474-Ortho.tar.gz</ParaValue>
<EnModification>True</EnModification> <EnModification>True</EnModification>
<EnMultipleChoice>False</EnMultipleChoice> <EnMultipleChoice>False</EnMultipleChoice>
<Control>File</Control> <Control>File</Control>
@ -51,9 +51,9 @@
<ParaChsName>标记数据</ParaChsName> <ParaChsName>标记数据</ParaChsName>
<Description>标记的样本数据</Description> <Description>标记的样本数据</Description>
<ParaType>File</ParaType> <ParaType>File</ParaType>
<DataType>zip</DataType> <DataType>csv</DataType>
<ParaSource>Man</ParaSource> <ParaSource>Man</ParaSource>
<ParaValue>F:\al_zhongji\S-SAR-data\landCover\SSAR_landcover_landaCoverSample.zip</ParaValue> <ParaValue>F:\xibei_LandCover\landCoverSamples.csv</ParaValue>
<EnModification>True</EnModification> <EnModification>True</EnModification>
<EnMultipleChoice>True</EnMultipleChoice> <EnMultipleChoice>True</EnMultipleChoice>
<Control>UploadInput</Control> <Control>UploadInput</Control>
@ -86,7 +86,7 @@
<ParaType>Value</ParaType> <ParaType>Value</ParaType>
<DataType>string</DataType> <DataType>string</DataType>
<ParaSource>Man</ParaSource> <ParaSource>Man</ParaSource>
<ParaValue>0,1,2</ParaValue> <ParaValue>0,1,2,3,4,5,6,7,8,9</ParaValue>
<EnModification>True</EnModification> <EnModification>True</EnModification>
<EnMultipleChoice>True</EnMultipleChoice> <EnMultipleChoice>True</EnMultipleChoice>
<Control>UploadInput</Control> <Control>UploadInput</Control>
@ -103,7 +103,7 @@
<ParaType>File</ParaType> <ParaType>File</ParaType>
<DataType>tar.gz</DataType> <DataType>tar.gz</DataType>
<ParaSource>Man</ParaSource> <ParaSource>Man</ParaSource>
<ParaValue>D:\micro\SWork\LandCover\Output\HJ2E_MYC_QPS_001752_E118.0_N37.7_20230204_SLC_AHV_L10000010458-Ortho-LANDCLASS.tar.gz</ParaValue> <ParaValue>D:\micro\SWork\LandCover\Output\HJ2E_KSC_QPS_006084_E86.2_N44.4_20231116_SLC_AHV_L10000132474-Ortho-LANDCLASS.tar.gz</ParaValue>
</Parameter> </Parameter>
</Outputs> </Outputs>
</AlgCompt> </AlgCompt>

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<Root> <Root>
<TaskID>CSAR_202107275419_0001-0</TaskID> <TaskID>CSAR_202107275419_0001-0</TaskID>
<WorkSpace>D:\613NET\ComputingNode\ftproot\Production\PL_20240507155658_0002\</WorkSpace> <WorkSpace>D:\micro\SWork\</WorkSpace>
<AlgCompt> <AlgCompt>
<DataTransModel>File</DataTransModel> <DataTransModel>File</DataTransModel>
<Artificial>ElementAlg</Artificial> <Artificial>ElementAlg</Artificial>
@ -53,7 +53,7 @@
<ParaType>File</ParaType> <ParaType>File</ParaType>
<DataType>tar.gz</DataType> <DataType>tar.gz</DataType>
<ParaSource>Man</ParaSource> <ParaSource>Man</ParaSource>
<ParaValue>F:\MicroWorkspace\S_SAR\AHV\HJ2E_MYC_QPS_001752_E118.0_N37.7_20230204_SLC_AHV_L10000010458-cal.tar.gz</ParaValue> <ParaValue>F:\MicroWorkspace\20240814tw\HJ2E_KRN_QPS_008852_E110.6_N20.1_20240515_SLC_AHV_L10000208028-cal.tar.gz</ParaValue>
<EnModification>True</EnModification> <EnModification>True</EnModification>
<EnMultipleChoice>False</EnMultipleChoice> <EnMultipleChoice>False</EnMultipleChoice>
<Control>File</Control> <Control>File</Control>
@ -81,9 +81,9 @@
<ParaChsName>土壤水分产品</ParaChsName> <ParaChsName>土壤水分产品</ParaChsName>
<Description>土壤水分产品</Description> <Description>土壤水分产品</Description>
<ParaType>File</ParaType> <ParaType>File</ParaType>
<DataType>zip</DataType> <DataType>tif</DataType>
<ParaSource>Man</ParaSource> <ParaSource>Man</ParaSource>
<ParaValue>F:\al_zhongji\S-SAR-data\leafAreaIndex\SSAR_leafAreaIndex_SMC.zip</ParaValue> <ParaValue>F:\Tian-GF3-Wenchang\GF3_MYC_QPSI_040611_E110.6_N20.0_20240427_L1A_AHV_L10006928143-cal-SMC.tif</ParaValue>
<EnModification>True</EnModification> <EnModification>True</EnModification>
<EnMultipleChoice>False</EnMultipleChoice> <EnMultipleChoice>False</EnMultipleChoice>
<Control>File</Control> <Control>File</Control>
@ -96,9 +96,9 @@
<ParaChsName>叶面积指数实测数据</ParaChsName> <ParaChsName>叶面积指数实测数据</ParaChsName>
<Description>叶面积指数实测数据</Description> <Description>叶面积指数实测数据</Description>
<ParaType>File</ParaType> <ParaType>File</ParaType>
<DataType>zip</DataType> <DataType>csv</DataType>
<ParaSource>Man</ParaSource> <ParaSource>Man</ParaSource>
<ParaValue>F:\al_zhongji\S-SAR-data\leafAreaIndex\SSAR_leafAreaIndex_LAI.zip</ParaValue> <ParaValue>F:\Tian-GF3-Wenchang\LAI\LAi.csv</ParaValue>
<EnModification>True</EnModification> <EnModification>True</EnModification>
<EnMultipleChoice>False</EnMultipleChoice> <EnMultipleChoice>False</EnMultipleChoice>
<Control>File</Control> <Control>File</Control>
@ -111,9 +111,9 @@
<ParaChsName>NDVI</ParaChsName> <ParaChsName>NDVI</ParaChsName>
<Description>NDVI影像坐标系要求WGS84</Description> <Description>NDVI影像坐标系要求WGS84</Description>
<ParaType>File</ParaType> <ParaType>File</ParaType>
<DataType>zip</DataType> <DataType>tif</DataType>
<ParaSource>Cal</ParaSource> <ParaSource>Cal</ParaSource>
<ParaValue>F:\al_zhongji\S-SAR-data\leafAreaIndex\SSAR_leafAreaIndex_NDVI.zip</ParaValue> <ParaValue>F:\Tian-GF3-Wenchang\NDVI\S2_NDVImed_SMC_GF3.tif</ParaValue>
<EnModification>True</EnModification> <EnModification>True</EnModification>
<EnMultipleChoice>False</EnMultipleChoice> <EnMultipleChoice>False</EnMultipleChoice>
<Control>File</Control> <Control>File</Control>
@ -128,7 +128,7 @@
<ParaType>Value</ParaType> <ParaType>Value</ParaType>
<DataType>string</DataType> <DataType>string</DataType>
<ParaSource>Man</ParaSource> <ParaSource>Man</ParaSource>
<ParaValue>0;1</ParaValue> <ParaValue>-1;1</ParaValue>
<EnModification>True</EnModification> <EnModification>True</EnModification>
<EnMultipleChoice>False</EnMultipleChoice> <EnMultipleChoice>False</EnMultipleChoice>
<Control>UploadInput</Control> <Control>UploadInput</Control>
@ -141,9 +141,9 @@
<ParaChsName>地表覆盖度</ParaChsName> <ParaChsName>地表覆盖度</ParaChsName>
<Description>地表覆盖度数据坐标系要求WGS84</Description> <Description>地表覆盖度数据坐标系要求WGS84</Description>
<ParaType>File</ParaType> <ParaType>File</ParaType>
<DataType>zip</DataType> <DataType>tif</DataType>
<ParaSource>Cal</ParaSource> <ParaSource>Cal</ParaSource>
<ParaValue>F:\al_zhongji\S-SAR-data\leafAreaIndex\SSAR_leafAreaIndex_LandCover.zip</ParaValue> <ParaValue>F:\Tian-GF3-Wenchang\landCover_Glob30.tif</ParaValue>
<EnModification>True</EnModification> <EnModification>True</EnModification>
<EnMultipleChoice>False</EnMultipleChoice> <EnMultipleChoice>False</EnMultipleChoice>
<Control>File</Control> <Control>File</Control>
@ -158,7 +158,7 @@
<ParaType>Value</ParaType> <ParaType>Value</ParaType>
<DataType>string</DataType> <DataType>string</DataType>
<ParaSource>Man</ParaSource> <ParaSource>Man</ParaSource>
<ParaValue>empty</ParaValue> <ParaValue>10;20;30;40;50;70;90</ParaValue>
<EnModification>True</EnModification> <EnModification>True</EnModification>
<EnMultipleChoice>False</EnMultipleChoice> <EnMultipleChoice>False</EnMultipleChoice>
<Control>UploadInput</Control> <Control>UploadInput</Control>
@ -235,7 +235,7 @@
<ParaType>File</ParaType> <ParaType>File</ParaType>
<DataType>tar.gz</DataType> <DataType>tar.gz</DataType>
<ParaSource>Cal</ParaSource> <ParaSource>Cal</ParaSource>
<ParaValue>D:\613NET\ComputingNode\ftproot\Production\PL_20240507155658_0002\LeafAreaIndex\Output\HJ2E_MYC_QPS_001752_E118.0_N37.7_20230204_SLC_AHV_L10000010458-cal-LAI.tar.gz</ParaValue> <ParaValue>D:\micro\SWork\LeafAreaIndex\Output\HJ2E_KRN_QPS_008852_E110.6_N20.1_20240515_SLC_AHV_L10000208028-cal-LAI.tar.gz</ParaValue>
<MaxValue>DEFAULT</MaxValue> <MaxValue>DEFAULT</MaxValue>
<MinValue>DEFAULT</MinValue> <MinValue>DEFAULT</MinValue>
<OptionValue>DEFAULT</OptionValue> <OptionValue>DEFAULT</OptionValue>

BIN
tool.rar

Binary file not shown.

View File

@ -11,9 +11,13 @@
[修改序列] [修改日期] [修改者] [修改内容] [修改序列] [修改日期] [修改者] [修改内容]
1 2022-6-29 石海军 1.兼容GF3元文件和正射校正元文件提取信息 1 2022-6-29 石海军 1.兼容GF3元文件和正射校正元文件提取信息
""" """
import json
import logging import logging
from xml.etree.ElementTree import ElementTree from xml.etree.ElementTree import ElementTree
import math import math
import xmltodict
logger = logging.getLogger("mylog") logger = logging.getLogger("mylog")
class GF3L1AMetaData: class GF3L1AMetaData:
@ -27,6 +31,18 @@ class GF3L1AMetaData:
QualifyValue = float(root.find('imageinfo').find('QualifyValue').find(polarization).text) QualifyValue = float(root.find('imageinfo').find('QualifyValue').find(polarization).text)
return QualifyValue return QualifyValue
@staticmethod
def get_SubQualifyValue(meta_file_path, polarization, pol_id):
try:
with open(meta_file_path, 'r', encoding='utf-8') as fp:
HeaderFile_dom_str = fp.read()
HeaderFile_dom = xmltodict.parse(HeaderFile_dom_str) # 将XML转成json文本
HeaderFile_dom_json = json.loads(json.dumps(HeaderFile_dom))
QualifyValue = float(HeaderFile_dom_json['product']['imageinfo']['QualifyValue'][pol_id][polarization])
return QualifyValue
except Exception as e:
raise('get QualifyValue failed')
@staticmethod @staticmethod
def get_Kdb(meta_file_path, polarization): def get_Kdb(meta_file_path, polarization):
@ -89,6 +105,15 @@ class MetaDataHandler:
logger.info('GF3L1AMetaData.get_QualifyValue() success!') logger.info('GF3L1AMetaData.get_QualifyValue() success!')
return QualifyValue return QualifyValue
def get_SubQualifyValue(meta_file_path, polarization, pol_id):
try:
QualifyValue = OrthoMetaData.get_QualifyValue(meta_file_path, polarization)
except Exception:
logger.warning('OrthoMetaData.get_QualifyValue() error!')
QualifyValue = GF3L1AMetaData.get_SubQualifyValue(meta_file_path, polarization, pol_id)
logger.info('GF3L1AMetaData.get_QualifyValue() success!')
return QualifyValue
@staticmethod @staticmethod
def get_Kdb(meta_file_path, polarization): def get_Kdb(meta_file_path, polarization):
try: try:

View File

@ -280,8 +280,8 @@ class BlockProcess:
block_y = int(np.ceil(image.shape[0] / out_size)) # todo 修改分块 block_y = int(np.ceil(image.shape[0] / out_size)) # todo 修改分块
for i in range(block_y): for i in range(block_y):
for j in range(block_x): for j in range(block_x):
start_x = image.shape[1] - out_size if (j == block_x - 1) else j * out_size start_x = image.shape[1] - out_size if (j == block_x - 1 and block_x != 1) else j * out_size
start_y = image.shape[0] - out_size if (i == block_x - 1) else i * out_size start_y = image.shape[0] - out_size if (i == block_y - 1 and block_y != 1) else i * out_size
end_x = image.shape[1] if (j + 1) * out_size > image.shape[1] else (j + 1) * out_size end_x = image.shape[1] if (j + 1) * out_size > image.shape[1] else (j + 1) * out_size
end_y = image.shape[0] if (i + 1) * out_size > image.shape[0] else (i + 1) * out_size end_y = image.shape[0] if (i + 1) * out_size > image.shape[0] else (i + 1) * out_size

View File

@ -7,6 +7,8 @@
@Version 1.0.0 @Version 1.0.0
""" """
import os import os
from xml.etree.ElementTree import ElementTree
from PIL import Image from PIL import Image
from osgeo import gdal from osgeo import gdal
from osgeo import osr from osgeo import osr
@ -758,6 +760,19 @@ class ImageHandler:
return quick_view_path return quick_view_path
@staticmethod
def get_inc_angle(inc_xml, rows, cols, out_path):
tree = ElementTree()
tree.parse(inc_xml) # 影像头文件
root = tree.getroot()
values = root.findall('incidenceValue')
angle_value = [value.text for value in values]
angle_value = np.array(angle_value)
inc_angle = np.tile(angle_value, (rows, 1))
ImageHandler.write_img(out_path, '', [0.0, 1.0, 0.0, 0.0, 0.0, 1.0], inc_angle)
pass
if __name__ == '__main__': if __name__ == '__main__':
fn = r"C:\Users\sxwcc\Downloads\HJ2E_MYC_QPS_001752_E118.0_N37.7_20230204_SLC_AHV_L10000010458-cal-SMC\HJ2E_MYC_QPS_001752_E118.0_N37.7_20230204_SLC_AHV_L10000010458-cal-SMC.tif" fn = r"C:\Users\sxwcc\Downloads\HJ2E_MYC_QPS_001752_E118.0_N37.7_20230204_SLC_AHV_L10000010458-cal-SMC\HJ2E_MYC_QPS_001752_E118.0_N37.7_20230204_SLC_AHV_L10000010458-cal-SMC.tif"

View File

@ -1,6 +1,8 @@
from xml.etree.ElementTree import ElementTree from xml.etree.ElementTree import ElementTree
import os import os
import numpy as np
class DictXml: class DictXml:
def __init__(self, xml_path): def __init__(self, xml_path):
@ -39,18 +41,23 @@ class DictXml:
if bottomRight is None: if bottomRight is None:
raise Exception("get bottomRight failed") raise Exception("get bottomRight failed")
lons = [float(topLeft.find("longitude").text), float(topRight.find("longitude").text), float(bottomLeft.find("longitude").text), float(bottomRight.find("longitude").text)]
lats = [float(topLeft.find("latitude").text), float(topRight.find("latitude").text), float(bottomLeft.find("latitude").text), float(bottomRight.find("latitude").text)]
lon_min = np.min(lons)
lon_max = np.max(lons)
lat_min = np.min(lats)
lat_max = np.max(lats)
point_upleft = [float(topLeft.find("longitude").text), float(topLeft.find("latitude").text)] point_upleft = [float(topLeft.find("longitude").text), float(topLeft.find("latitude").text)]
point_upright = [float(topRight.find("longitude").text), float(topRight.find("latitude").text)] point_upright = [float(topRight.find("longitude").text), float(topRight.find("latitude").text)]
point_downleft = [float(bottomLeft.find("longitude").text), float(bottomLeft.find("latitude").text)] point_downleft = [float(bottomLeft.find("longitude").text), float(bottomLeft.find("latitude").text)]
point_downright = [float(bottomRight.find("longitude").text), float(bottomRight.find("latitude").text)] point_downright = [float(bottomRight.find("longitude").text), float(bottomRight.find("latitude").text)]
scopes = [point_upleft, point_upright, point_downleft, point_downright] scopes = [point_upleft, point_upright, point_downleft, point_downright]
point_upleft_buf = [float(topLeft.find("longitude").text) - 0.6, float(topLeft.find("latitude").text) + 0.6] point_upleft_buf = [lon_min - 0.6, lat_max + 0.6]
point_upright_buf = [float(topRight.find("longitude").text) + 0.6, float(topRight.find("latitude").text) + 0.6] point_upright_buf = [lon_max + 0.6, lat_max + 0.6]
point_downleft_buf = [float(bottomLeft.find("longitude").text) - 0.6, point_downleft_buf = [lon_min - 0.6, lat_min - 0.6]
float(bottomLeft.find("latitude").text) - 0.6] point_downright_buf = [lon_max + 0.6, lat_min - 0.6]
point_downright_buf = [float(bottomRight.find("longitude").text) + 0.6,
float(bottomRight.find("latitude").text) - 0.6]
scopes_buf = ([point_upleft_buf, point_upright_buf, point_downleft_buf, point_downright_buf], ) scopes_buf = ([point_upleft_buf, point_upright_buf, point_downleft_buf, point_downright_buf], )
return scopes, scopes_buf return scopes, scopes_buf