Files
water_content_retrieval/deglint.py
2025-01-06 10:18:08 +08:00

59 lines
3.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import argparse
from deglint_subtract_nir import deglint_subtract_nir
from deglint_oxygen_absorption_valley import deglint_oxygen_absorption_valley
from deglint_regression_slope import deglint_regression_slope
def main():
parser = argparse.ArgumentParser(description="此程序用于去除水域数据的耀斑暂时支持3种算法。")
# parser.add_argument("--global_arg", type=str, help="A global argument for all modes", required=True)
# 创建子命令解析器
subparsers = parser.add_subparsers(dest="algorithm", required=True, help="Choose a mode")
subnir = subparsers.add_parser("subnir", help="Mode 1 description")
subnir.add_argument('-i1', '--input', type=str, required=True, help='输入影像文件的路径')
subnir.add_argument('-i2', '--input_water_mask', type=str, required=True, help='输入水域掩膜文件的路径')
subnir.add_argument('-o', '--output', type=str, required=True, help='输出文件的路径')
subnir.add_argument('-s', '--start_wave', type=float, required=True, help='nir开始波段')
subnir.add_argument('-e', '--end_wave', type=float, required=True, help='nir结束波段')
subnir.set_defaults(func=deglint_subtract_nir)
regression_slope = subparsers.add_parser("regression_slope", help="Mode 2 description")
regression_slope.add_argument('-i1', '--input', type=str, required=True, help='输入影像文件的路径')
regression_slope.add_argument('-i2', '--input_water_mask', type=str, required=True, help='输入水域掩膜文件的路径')
regression_slope.add_argument('-o', '--output', type=str, required=True, help='输出文件的路径')
regression_slope.add_argument('-s', '--start_wave', type=float, required=True, help='nir开始波段')
regression_slope.add_argument('-e', '--end_wave', type=float, required=True, help='nir结束波段')
regression_slope.add_argument('-r', '--roi', type=str, required=True, help='输入roi文件的路径')
regression_slope.set_defaults(func=deglint_regression_slope)
oxygen_absorption = subparsers.add_parser("oxygen_absorption", help="Mode 3 description")
oxygen_absorption.add_argument('-i1', '--input', type=str, required=True, help='输入影像文件的路径')
oxygen_absorption.add_argument('-i2', '--input_water_mask', type=str, required=True, help='输入水域掩膜文件的路径')
oxygen_absorption.add_argument('-o', '--output', type=str, required=True, help='输出文件的路径')
oxygen_absorption.add_argument('-l', '--left_shoulder_wave', type=float, required=True, help='氧气吸收谷左肩波长')
oxygen_absorption.add_argument('-v', '--valley_wave', type=float, required=True, help='氧气吸收谷底波长')
oxygen_absorption.add_argument('-r', '--right_shoulder_wave', type=float, required=True, help='氧气吸收谷右肩波长')
oxygen_absorption.add_argument('-sw', '--shoulder_window', type=float, required=True, help='氧气吸收谷左右肩平均窗口,半径')
oxygen_absorption.add_argument('-vw', '--valley_window', type=float, required=True, help='氧气吸收谷底平均窗口,半径')
oxygen_absorption.set_defaults(func=deglint_oxygen_absorption_valley)
# 解析参数
args = parser.parse_args()
if args.algorithm == "subnir": # 处理文件D:\PycharmProjects\sun_glint\test_data\ref_deepWater_20230914_154510时730-750效果是最好的
args.func(args.input, args.input_water_mask, args.output, args.start_wave, args.end_wave)
elif args.algorithm == "regression_slope":
args.func(args.input, args.input_water_mask, args.output, args.start_wave, args.end_wave, args.roi)
elif args.algorithm == "oxygen_absorption":
args.func(args.input, args.input_water_mask, args.output, args.left_shoulder_wave, args.valley_wave, args.right_shoulder_wave,
args.shoulder_window, args.valley_window)
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
main()