在Matlab中使用中科院测地所冯伟老师的工具包
打开控制文件
读取文件数
读取高斯平滑半径
读取去条带方法
检查所选方法(NONE,SWENSON,CHAMBERS2007,CHAMBERS2012,CHENP3M6,CHENP4M6,DUAN)
读取GIA选项
检查GIA选项(GIA_notRemoved,GIA_Removed_Geru)
读取文件类型
检查文件类型(GRACE,ICGEM)
读取输出文件类型
SH_MAT + 最大阶数 + 输出文件名
GRID_MATA + 最大阶数 + 输出文件名 + 空间分辨率(1,0.25)
读取c20、c21s21、c22s22、一阶项、输入路径、输出路径
检查文件和路径
建立file_name的cell数组
for循环读取所有文件
关闭控制文件
lmax设置为最大阶数
设置矩阵
cs 文件数,最大阶数+1,最大阶数+1
cs_sgi 文件数,最大阶数+1,最大阶数+1
int_year 文件数,1
int_mouth 文件数,1
time 文件数,1
cs_res 文件数,最大阶数+1,最大阶数+1
cs.destrip 文件数,最大阶数+1,最大阶数+1
cs_mss 文件数,最大阶数+1,最大阶数+1
cs.fltr 文件数,最大阶数+1,最大阶数+1
若输出类型为GRID_MAT时
设置矩阵grid_data_grace:1° 180,360,文件数 0.25° 721,1440,文件数
读取GRACE数据
读取GRACE格式和ICGEM格式均使用gmt_readgsm函数
分别用
gmt_readgfc(dir_in,file_name{ii},lmax,'ICGEM')
gmt_readgsm(dir_in,file_name{ii},lmax,'GRACE')
读取文件
得到cs矩阵 cs误差矩阵 年 月 时间(小数形式)
读取和替换C20和Degree_1
将cs矩阵复制到cs_replace
分别运行gmt_replace_degree_1、gmt_replace_C20、gmt_replace_C21_S21_C22_S22、gmt_replace_C21_S21_C22_S22
读取文件
得到替换后的cs矩阵和标签
移除平均值
计算每一文件的平均值cs_mean
构建cs_res矩阵,用cs_replace减去cs_mean
去条带
循环1到num_file
将cs_res赋值给cs_tmp
gmt_gc2mc将大地水准面系数(gc)转换为质量系数(mc),等效水高(单位m)
进行去条带gmt_destriping得到cs_mss
移除GIA效应
用gmt_readpgr读取文件GIA_n100_mass_0km.txt,得到格网文件 grid_pgr
gmt_grid2cs将格网文件转化为cs类型
循环
将cs_mss赋值给cs_tmp
cs_tmp减去cs_pgr乘以时间减去时间平均值
再赋值给cs_mss
高斯平滑
使用gmt_gaussian_filter进行高斯平滑,得到cs_fltr
文件输出
将年、月从数字转换为字符串
保存SH系数
创建格网
利用gmt_cs2grid对不同分辨率进行处理,并创建grid_tmp
保存