实现水体含量反演程序。

This commit is contained in:
tangchao0503
2025-01-06 10:18:08 +08:00
parent 7c1f83308d
commit 772663a03c
16 changed files with 1903 additions and 0 deletions

214
readme.txt Normal file
View File

@ -0,0 +1,214 @@
1、环境搭建注意事项
python版本3.13.1
gdal whl文件下载路径https://github.com/cgohlke/geospatial-wheels/releases
安装PyKrige时pip换成国内源否则会失败https://blog.csdn.net/weixin_50679163/article/details/122392249
2、命令行工具使用说明
2.1 数据要求
1输入原始影像是反射率数据
2无效像元对应的值必须为0data ignore value = 0
3输入影像必须为bsq
4实测数据的格式以tab分割的3列经度纬度含量
2.2 二级指令
水体处理分为8个步骤每步都是可调用的单独的程序但是由于某些步骤的实现方式不止一种所以引入了二级命令隔离参数。
使用二级指令的程序:水域掩膜、去耀斑、基于实测值进行模型修正、反演。
3、命令行程序文档
3.1 水域掩膜
1此程序用于提取水域区域输出的水域栅格和输入的影像具有相同的行列数。支持2种二级指令算法rasterize_shpndwi。
2rasterize_shp
-h, --help show this help message and exit
-i1, --img_path IMG_PATH
输入影像文件的路径
-i2, --shp_path SHP_PATH
输入shp文件的路径
-o, --water_mask_outpath WATER_MASK_OUTPATH
输出水体掩膜文件的路径
命令示例:
rasterize_shp -i1 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m -i2 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_cutarea.shp -o D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_water_mask
3ndwi
options:
-h, --help show this help message and exit
-i1, --img_path IMG_PATH
输入影像文件的路径
-i2, --ndwi_threshold NDWI_THRESHOLD
输入ndwi水体阈值大于此值的为水域
-o, --water_mask_outpath WATER_MASK_OUTPATH
输出水体掩膜文件的路径
命令示例:
ndwi -i1 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m -i2 0.4 -o D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_water_mask_ndwi
3.2 找耀斑严重区域
此程序通过大律法分割图像,提取耀斑最严重的区域,输出的栅格和输入的影像具有相同的行列数。
options:
-h, --help show this help message and exit
-i1, --input INPUT 输入影像文件的路径
-i2, --input_water_mask INPUT_WATER_MASK
输入水域掩膜文件的路径
-gw, --glint_wave GLINT_WAVE
用于提取耀斑严重区域的波段.
-o, --output OUTPUT 输出文件的路径
命令示例:
-i1 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_bsq -i2 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_water_mask -o D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_severe_glint
3.3 去耀斑
1此程序用于去除水域数据的耀斑暂时支持3种算法。支持3种二级命令算法subnir,regression_slope,oxygen_absorption
2subnir
options:
-h, --help show this help message and exit
-i1, --input INPUT 输入影像文件的路径
-i2, --input_water_mask INPUT_WATER_MASK
输入水域掩膜文件的路径
-o, --output OUTPUT 输出文件的路径
-s, --start_wave START_WAVE
nir开始波段
-e, --end_wave END_WAVE
nir结束波段
命令示例:
subnir -i1 D:\PycharmProjects\sun_glint\test_data\ref_deepWater_20230914_154510 -o D:\PycharmProjects\sun_glint\test_data\ref_deepWater_20230914_154510_nir_730-750 -s 730 -e 750
subnir -i1 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_bsq -i2 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_water_mask -o D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_nir_730-750 -s 730 -e 750
3regression_slope
options:
-h, --help show this help message and exit
-i1, --input INPUT 输入影像文件的路径
-i2, --input_water_mask INPUT_WATER_MASK
输入水域掩膜文件的路径
-o, --output OUTPUT 输出文件的路径
-s, --start_wave START_WAVE
nir开始波段
-e, --end_wave END_WAVE
nir结束波段
-r, --roi ROI 输入roi文件的路径
命令示例:
regression_slope -i1 D:\PycharmProjects\sun_glint\test_data\ref_deepWater_20230914_154510 -o D:\PycharmProjects\sun_glint\test_data\ref_deepWater_20230914_154510_slope -s 730 -e 750 -r D:\PycharmProjects\sun_glint\test_data\roi2.xml
regression_slope -i1 D:\PycharmProjects\sun_glint\test_data\ref_deepWater_20230914_154510_wgs84.dat -o D:\PycharmProjects\sun_glint\test_data\ref_deepWater_20230914_154510_slope -s 730 -e 750 -r D:\PycharmProjects\sun_glint\test_data\roi2_latlong.xml
regression_slope -i1 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_bsq -i2 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_water_mask -o D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_slope -s 730 -e 750 -r D:\PycharmProjects\0water_rlx\test_data\roi_glint.xml
4oxygen_absorption
options:
-h, --help show this help message and exit
-i1, --input INPUT 输入影像文件的路径
-i2, --input_water_mask INPUT_WATER_MASK
输入水域掩膜文件的路径
-o, --output OUTPUT 输出文件的路径
-l, --left_shoulder_wave LEFT_SHOULDER_WAVE
氧气吸收谷左肩波长
-v, --valley_wave VALLEY_WAVE
氧气吸收谷底波长
-r, --right_shoulder_wave RIGHT_SHOULDER_WAVE
氧气吸收谷右肩波长
-sw, --shoulder_window SHOULDER_WINDOW
氧气吸收谷左右肩平均窗口,半径
-vw, --valley_window VALLEY_WINDOW
氧气吸收谷底平均窗口,半径
命令示例:
oxygen_absorption -i1 D:\PycharmProjects\sun_glint\test_data\ref_deepWater_20230914_154510 -o D:\PycharmProjects\sun_glint\test_data\ref_deepWater_20230914_154510_oxygen -l 752.49 -v 762.49 -r 772.49 -sw 1 -vw 1
oxygen_absorption -i1 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_bsq -i2 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_water_mask -o D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_oxygen -l 752.49 -v 762.49 -r 772.49 -sw 1 -vw 1
3.4 基于实测值进行模型修正
1此程序用于通过实测数据修正模型参数。支持6种二级命令算法chl_a,nh3,mno4,tn,tp,tss。
26种二级命令算法的参数都一样
options:
-h, --help show this help message and exit
-i1, --img IMG 输入影像文件的路径
-i2, --water_mask WATER_MASK
输入水域掩膜文件的路径
-i3, --severe_glint SEVERE_GLINT
输入耀斑严重文件的路径
-i4, --measured_data MEASURED_DATA
输入实测含量数据的路径
-i5, --radius RADIUS 输入实测坐标半径
-o, --model_info_outpath MODEL_INFO_OUTPATH
输出模型信息文件的路径
命令示例:
chl_a -i1 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_bsq -i2 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_water_mask -i3 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_severe_glint -i4 D:\PycharmProjects\0water_rlx\test_data\content_retrieval\chl-a\Measured_point_pos_chl-a.txt -o D:\PycharmProjects\0water_rlx\test_data\content_retrieval\chl-a\chl-a.json
3.5 获取等间隔点坐标
此程序通过给定间隔输出坐标。
options:
-h, --help show this help message and exit
-i1, --water_mask WATER_MASK
输入水域掩膜文件的路径
-i2, --severe_glint SEVERE_GLINT
输入耀斑严重文件的路径
-i3, --interval INTERVAL
输入间隔,单位为米
-o, --output_csvpath OUTPUT_CSVPATH
输出csv文件的路径
命令示例:
-i1 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_water_mask -i2 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_severe_glint -i3 100 -o D:\PycharmProjects\0water_rlx\test_data\coor_interval.csv
3.6 基于5所得坐标获取光谱
此程序获取给定坐标的光谱曲线。
options:
-h, --help show this help message and exit
-i1, --imgpath IMGPATH
输入影像文件的路径
-i2, --coorpath COORPATH
输入坐标文件的路径
-o, --output_path OUTPUT_PATH
输出csv文件的路径
命令示例:
-i1 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m_bsq -i2 D:\PycharmProjects\0water_rlx\test_data\coor_interval.csv -o D:\PycharmProjects\0water_rlx\test_data\coor-spectral.csv
3.7 反演
1此程序使用修正后的模型进行反演。支持6种二级命令算法chl_a,nh3,mno4,tn,tp,tss。
26种二级命令算法的参数都一样
options:
-h, --help show this help message and exit
-i1, --model_info_path MODEL_INFO_PATH
输入模型信息文件的路径
-i2, --coor_spectral_path COOR_SPECTRAL_PATH
输入坐标-光谱文件的路径
-i3, --wave_radius WAVE_RADIUS
输入波长平均半径
-o, --outpath OUTPATH
输出文件的路径
命令示例:
chl_a -i1 D:\PycharmProjects\0water_rlx\test_data\content_retrieval\chl-a\chl-a.json -i2 D:\PycharmProjects\0water_rlx\test_data\coor-spectral.csv -o D:\PycharmProjects\0water_rlx\test_data\coor-spectral-retrieval.csv
3.8 插值
此程序基于反演结果进行插值。
options:
-h, --help show this help message and exit
-i1, --pos_content_path POS_CONTENT_PATH
输入含量文件的路径
-i2, --img_path IMG_PATH
输入影像文件的路径
-i3, --spatial_resolution SPATIAL_RESOLUTION
输出控件分辨率
-o, --outpath OUTPATH
输出文件的路径
命令示例:
-i1 D:\PycharmProjects\0water_rlx\test_data\coor-spectral-retrieval.csv -i2 D:\PycharmProjects\0water_rlx\test_data\ref_mosaic_1m -o D:\PycharmProjects\0water_rlx\test_data\content.tiff