# gammaUtils **Repository Path**: iam002/gamma-utils ## Basic Information - **Project Name**: gammaUtils - **Description**: Gamma 调用脚本和数据读取m函数 - **Primary Language**: Matlab - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-24 - **Last Updated**: 2025-06-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Gamma 几何校正 > 以 LT1 / GF3 数据处理为例。根据目前的处理结果,推荐使用**GF3**数据来跑通流程。 --- ### 目录结构说明 [pipe01_simsar](pipe01_simsar) 目录下包含 5 个脚本: - [p00_global_params.sh](pipe01_simsar/p00_global_params.sh) 此脚本不执行 GAMMA 程序, 只定义输入数据路径等全局变量,以供其他脚本使用。 - [p01_sar_multilook.sh](pipe01_simsar/p01_sar_multilook.sh) 此脚本负责读取 SAR 数据并进行多视处理,使用到 GAMMA 的程序包括:`par_LT1_SLC`,`par_GF3_SLC`,`multi_look` - [p02_dem_resamp.sh](pipe01_simsar/p02_dem_resamp.sh) 此脚本负责读取 DEM 数据并进行重采样(推荐重采样到解决多视SAR影像的分辨率),使用到 GAMMA 的程序包括:`dem_import`,`dem_trans` - [p03_gen_simsar.sh](pipe01_simsar/p03_gen_simsar.sh) 此脚本负责生成地理编码表、地理/雷达坐标系下的叠掩阴影掩膜、地理/雷达坐标下的模拟SAR影像,使用到 GAMMA 的程序包括:`gc_map2`,`geocode` - [p04_refine_lkt.sh](pipe01_simsar/p04_refine_lkt.sh) 此脚本负责精化地理编码查找表。使用到的 GAMMA 的程序包括:`create_diff_par`、`init_offsetm`、`offset_pwrm`、`offset_fitm`、`gc_map_fine` [pip02_gengtc](pip02_gengtc) 目录包含 2 个脚本: - [p00_global_params.sh](pip02_gengtc/p00_global_params.sh) 此脚本不执行 GAMMA 程序, 只定义输入数据路径等全局变量,以供其他脚本使用. - [p01_gen_gtc.sh](pip02_gengtc/p01_gen_gtc.sh) 生成 SAR DOM 影像, 可以手动设置 DEM 影像切片(不用整个SAR场景), 同时可使用拟合模型来精化地理编码查找表. 生成的 DOM 为 gtc 后缀的二进制文件,在 Matlab 中运行 `gtc2tiff_demo.m` 将二进制文件转换为 uint8 的 geotiff 文件. **脚本复用性设计** 处理流程需要的数据文件路径(以及部分程序参数)建议都放置到 [p00_global_params.sh](pipe01_simsar/p00_global_params.sh),和具体调用的 GAMMA 可执行程序的脚本分开,以提高代码的复用率和可维护性。 当我们需要处理其他数据时,我们只需拷贝 [p00_global_params.sh](pipe01_simsar/p00_global_params.sh) 到一个新的文件,不妨设为 [p00_GF3_178100.sh](pipe01_simsar/p00_GF3_178100.sh)。在这个新的文件上进行参数修改后,再将其(文件路径)作为其他脚本运行时的输入参数,如: ```bash ./p01_sar_multilook.sh p00_GF3_178100.sh ./p02_dem_resamp.sh p00_GF3_178100.sh ./p03_gen_simsar.sh p00_GF3_178100.sh ./p04_refine_lkt.sh p00_GF3_178100.sh ``` > **Tips :** p01 到 p04 脚本如果后面没有参数,则默认执行 [p00_global_params.sh](pipe01_simsar/p00_global_params.sh)。注意 p01 到 p04 需要按照顺序执行(因为需要上一次脚本的运行结果)。 ### 文件命名约定 在 [p00_global_params.sh](pipe01_simsar/p00_global_params.sh) 中定义 `in_output_folder` 和 `in_produce_name` 变量,所有脚本的输出文件存放路径约定为: ```bash $in_output_folder/$in_output_folder".extName" ``` 其中,`extName` 是针对不同输出类型的唯一文件扩展名 | 扩展名 | 说明 | 数据类型 | | ------ | ---- | -------- | | mli | 多视影像数据 | single | | mli_par | 多视影像的雷达参数 | txt | | dem | DEM数据 | single | | dem_par | DEM参数 | txt | | lkt | 地理坐标系下的地理编码表 | fcomplex | | ls_eqa | 地理坐标系下的叠掩和阴影掩膜 | uint8 | | ls_rdc | 雷达坐标系下的叠掩和阴影掩膜 | uint8 | | simusar_eqa | 地理坐标系下的模拟SAR影像 | single | | simusar_rdc | 雷达坐标系下的模拟SAR影像 | single | | diff_par | 配准参数文件 | txt | | ccp | 辅助数据,配准分块相关系数 | - | | offs | 辅助数据,配准分块偏移量 | - | | offsets | 是 ccp 和 offs 的文本格式 | txt | | fine_lkt | 地理坐标系下的精化地理编码表 | fcomplex | | gtc | 地理坐标系下的地形矫正SAR图像 | single | [+gamma](+gamma) 提供读取各个 GAMMA 输出二进制文件的 m 函数,具体使用详见 [demo_gamma.m.m](demo_gamma.m) > **Tip :** Gamma 的二进制数据存储均是**大端存储**,行优先存储。 ### TODO - [x] 使用陆探数据,GAMMA 地理编码与自己实现的地理编码结果偏差较大(方位向高达 800 个像素的偏差) 😓 > 使用高分3号的数据进行测试,地理编码存在较小的偏差(大概在4个像素左右),因此推荐使用高分三号的数据来跑通流程 - [x] 使用 GAMMA 进行地理编码表的精化 - [ ] 脚本目前尚未对 GAMMA 程序运行失败做特别处理,日志记录不了错误信息,可能不利于调试 - [ ] 支持处理更多卫星影像数据 ### 可视化一览 ![](img/dem.jpg) ![](img/mli.jpg) ![](img/lkt.jpg) ![](img/ls.jpg) ![](img/simsar.jpg) ![](img/gtc_old.jpg) ![](img/gtc_fine.jpg) ![](img/DOMSAR.png)