GRACE滤波数据处理之DDK系列滤波

以CSR RL06无约束解为例,进行DDK1-8滤波数据处理,人为构造如下有关读取数据的控制文件:

Github上下载DDK滤波核函数:GitHub - strawpants/GRACE-filter: Contains software for filtering (destriping) GRACE Stokes coefficientsicon-default.png?t=N7T8https://github.com/strawpants/GRACE-filter

close all;clearvars -except;
addpath('E:\1A\24\Code\Tool\Function');
addpath('E:\1A\24\Code\Tool\Function\GRACE_functions');
fid=fopen('E:\1A\24\Code\txt\Contr_CSR.txt','r');
num_file= fscanf(fid,'%d',1);
dir_c20 = fscanf(fid,'%s',1);dir_degree_1= fscanf(fid,'%s',1);
dir_cs21= fscanf(fid,'%s',1);dir_cs22= fscanf(fid,'%s',1);
dir_in = fscanf(fid,'%s',1);dir_out= fscanf(fid,'%s',1);
FileNameTime02={'2002-04','2002-05','2002-08','2002-09','2002-10','2002-11','2002-12'};
FileNameTime03={'2003-01','2003-02','2003-03','2003-04','2003-05','2003-07','2003-08','2003-09','2003-10','2003-11','2003-12'};
FileNameTime04={'2004-01','2004-02','2004-03','2004-04','2004-05','2004-06','2004-07','2004-08','2004-09','2004-10','2004-11','2004-12'};
FileNameTime05={'2005-01','2005-02','2005-03','2005-04','2005-05','2005-06','2005-07','2005-08','2005-09','2005-10','2005-11','2005-12'};
FileNameTime06={'2006-01','2006-02','2006-03','2006-04','2006-05','2006-06','2006-07','2006-08','2006-09','2006-10','2006-11','2006-12'};
FileNameTime07={'2007-01','2007-02','2007-03','2007-04','2007-05','2007-06','2007-07','2007-08','2007-09','2007-10','2007-11','2007-12'};
FileNameTime08={'2008-01','2008-02','2008-03','2008-04','2008-05','2008-06','2008-07','2008-08','2008-09','2008-10','2008-11','2008-12'};
FileNameTime09={'2009-01','2009-02','2009-03','2009-04','2009-05','2009-06','2009-07','2009-08','2009-09','2009-10','2009-11','2009-12'};
FileNameTime=[FileNameTime02,FileNameTime03,FileNameTime04,FileNameTime05,FileNameTime06,FileNameTime07,FileNameTime08,FileNameTime09];FileNameTimeChar=char(FileNameTime);
int_year=zeros(num_file,1);int_month=zeros(num_file,1);%用于存储年和月
for i=1:num_fileint_year(i)=str2double(FileNameTimeChar(i,1:4));int_month(i)=str2double(FileNameTimeChar(i,6:7));
end
time=int_year+(int_month-0.5)/12;
% save E:\1A\24\Result\time.mat time int_year int_month FileNameTime
file_name=cell(num_file,1);
for i = 1:num_filefile_name{i} = fscanf(fid,'%s',1);
end
fclose(fid);
name=file_name{1,1}(1,30:32);%CSR用这个
lmax=60;
cs= zeros(num_file,lmax+1,lmax+1);
cs_sgi= zeros(num_file,lmax+1,lmax+1);
cs_res= zeros(num_file,lmax+1,lmax+1);
cs_mss= zeros(num_file,lmax+1,lmax+1);tic;
hwait=waitbar(0,'Waiting>>>>>>>>');  %加载等待对话框for ii=1:num_filestr=['Processing...',num2str(ii),'/',num2str(num_file),'    '];hwait=waitbar(ii/num_file,hwait,str,'Name','SSM');pathname=strcat(dir_in,file_name{ii,1});[cs(ii,:,:),cs_sgi(ii,:,:)] =gmt_readgfc(pathname);end
toccs_replace=cs;
[cs_replace] = gmt_replace_degree_1(dir_degree_1,cs_replace,int_year,int_month,num_file);
[cs_replace] = gmt_replace_C20(dir_c20,cs_replace,int_year,int_month,num_file);
[cs_replace] = gmt_replace_C30(cs_replace,int_year,int_month,num_file);cs_mean = mean(cs_replace(19:90,:,:)); %求2004年1月至2009年12月间的平均值for i=1:num_filecs_res(i,:,:)  = cs_replace(i,:,:)-cs_mean(1,:,:);%扣除平均值
end%%DDK滤波
type_filter = 'DDK3';
addpath('E:\1A\24\Code\Tool\ddk_filtercoef');
switch type_filtercase 'DDK1'path = 'Wbd_2-120.a_1d14p_4';case 'DDK2'path = 'Wbd_2-120.a_1d13p_4';case 'DDK3'path = 'Wbd_2-120.a_1d12p_4';case 'DDK4'path = 'Wbd_2-120.a_5d11p_4';case 'DDK5'path = 'Wbd_2-120.a_1d11p_4';case 'DDK6'path = 'Wbd_2-120.a_5d10p_4';case 'DDK7'path = 'Wbd_2-120.a_1d10p_4';case 'DDK8'path = 'Wbd_2-120.a_5d9p_4';
end
% 开始滤波
W = read_BIN(path);
for ii = 1:num_filesc = gmt_cs2sc(reshape(cs_res(ii,:,:),[lmax+1 lmax+1]));s = sc(:,1:lmax+1);s(:,end) = 0;s = fliplr(s);c = sc(:,61:end);[c_filt,s_filt] = filterSH(W,c,s);%此处有滤波函数s_filt = fliplr(s_filt);sc_filt = [s_filt(:,1:end-1),c_filt];cs_filt = gmt_sc2cs(sc_filt);cs_res(ii,:,:) = cs_filt;
endradius_filter=0;
for i=1:num_file
cs_tmp1(:,:) = cs_res(i,:,:);
cs_tmp2(:,:)=gmt_gc2mc(cs_tmp1);      %%球谐系数转换为质量系数 
cs_tmp3(:,:) = gmt_destriping(cs_tmp2,'NONE');%CHENP4M6 NONE  SWENSON 去相关滤波
cs_mss(i,:,:)=gmt_gaussian_filter(cs_tmp3,radius_filter);
end
% eval(['cs_mss' type_filter '=cs_mss;']);eval(['grid_' name '=gmt_cs2grid(cs_mss,0,1);']);
% save cs_mssDDK.mat cs_mssDDK1 cs_mssDDK2 cs_mssDDK3 cs_mssDDK4 ...
%     cs_mssDDK5 cs_mssDDK6 cs_mssDDK7 cs_mssDDK8 ii=1;
eval(['grid_1(:,:)=grid_' name '(:,:,ii);']);
ii=1;
eval(['grid_1(:,:)=grid_' name '(:,:,ii);']);
gmt_grid2map(grid_1*100,-30,30,1,0,'cm',[name   ' ' num2str(int_year(ii),'%02d') '-' num2str(int_month(ii),'%02d') ' ' type_filter],20)

参考文献:

1、Kusche J. Approximate decorrelation and non-isotropic smoothing of time-variable GRACE-type gravity field models[J]. Journal of Geodesy, 2007, 81(11): 733-749.

2、郭飞霄. 地表物质迁移的卫星大地测量反演理论与方法研究[D]. 战略支援部队信息工程大学, 2019. DOI:10.27188/d.cnki.gzjxu.2019.000012.

欢迎多多交流 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/318402.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tomact安装配置及使用(超详细)

文章目录 web相关知识概述web简介(了解)软件架构模式(掌握)BS:browser server 浏览器服务器CS:client server 客户端服务器 B/S和C/S通信模式特点(重要)web资源(理解)资源分类 URL请求路径(理解)作用介绍格式浏览器通过url访问服务器的过程 服务器(掌握)…

【Docker】如何注册Hub账号并上传镜像到Hub仓库

一、创建Hub账户 浏览器访问:hub.docker.com 点击【Sign up】注册账号 输入【邮箱】【用户名】【密码】 ps:用户名要有字母数字;订阅不用勾选 点击【Sign up】注册即可 点击【Sign in】登录账号 输入【邮箱】【密码】 点击【Continue】登录 二…

前端工程化Vue使用Node.js永久设置国内高速npm镜像源

前端工程化Vue使用Node.js永久设置国内高速npm镜像源 接续上篇错误收录,此篇通过简单配置永久设置国内高速npm镜像源方法 1.更换新版镜像 清空npm缓存 npm cache clean --force修改回原版镜像源或直接删除配置过的镜像源 npm config set registry https://registr…

SpringDI方式及Redis应用场景的分享

1、为什么Spring和IDEA 都不推荐使用 Autowired 注解 大家在使用IDEA开发的时候有没有注意到过一个提示,在字段上使用Spring的依赖注入注解Autowired后会出现如下警告Field injection is not recommended (字段注入是不被推荐的);但是使用Resource却不会…

如何用 Redis 实现延迟队列?

延迟队列是一种常见的消息队列模式,用于处理需要延迟执行的任务或消息。Redis 是一种快速、开源的键值对存储数据库,具有高性能、持久性和丰富的数据结构,因此很适合用于实现延迟队列。在这篇文章中,我们将详细讨论如何使用 Redis…

在虚拟环境中找到Qt Designer

Pyqt5中找到Qt Designer 安装Pyqt5和Qt Designer: pip install pyqt5-tools 假设Python的虚拟环境名为:d2l ,虚拟环境在d2l文件夹中 D:\Software\d2l\Lib\site-packages\qt5_applications\Qt\bin 双击Qt designer启动 Pyside2中找到Qt Designer 安装pyside2 …

【牛客网】排列计算

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 如果直接涂色来计算单点权重&#xff0c;2e5*2e5必然超时。 所以用差分进行优化。 3. 代码实现 #include<bits/stdc.h> using name…

面试经典算法题之双指针专题

力扣经典面试题之双指针 ( 每天更新, 每天一题 ) 文章目录 力扣经典面试题之双指针 ( 每天更新, 每天一题 )验证回文串收获 392. 判断子序列167. 两数之和 - 输入有序数组11.盛开多水的容器 验证回文串 思路 一: 筛选 双指针验证 class Solution { public:bool isPalindrome(s…

Flutter笔记:谈Material状态属性-为什么FlatButton等旧版按钮就废弃了

Flutter笔记 谈Material状态属性-为什么FlatButton等旧版按钮就废弃了 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this artic…

机器学习:深入解析SVM的核心概念【四、软间隔与正则化】

软间隔与正则化 问题一&#xff1a;优化目标函数是如何得到的&#xff1f;得到的过程是怎样的&#xff1f;问题二&#xff1a;拉格朗日乘子法计算详细过程问题三&#xff1a;KKT条件求解过程问题四&#xff1a;结构风险最小化&#xff08;SRM&#xff09;的原理 在前面的讨论中…

基于 Spring Boot 博客系统开发(五)

基于 Spring Boot 博客系统开发&#xff08;五&#xff09; 本系统是简易的个人博客系统开发&#xff0c;为了更加熟练地掌握 SprIng Boot 框架及相关技术的使用。&#x1f33f;&#x1f33f;&#x1f33f; 基于 Spring Boot 博客系统开发&#xff08;四&#xff09;&#x1f…

[机器学习系列]深入解析K-Means聚类算法:理论、实践与优化

目录 一、KMeans (一)Kmeans简介 (二)Kmeans作用和优点 (三)Kmeans局限和缺点 (四)Kmeans步骤 (五)如何选取最佳的K值的三种方法 (六)手肘法和目标函数的变化两种确定K值方法的区别 (七)如何选取第一次迭代的K个类中心------KMeans方法 (八)KMeans的常用参数介绍 二、…

LeetCode 139 —— 单词拆分

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 定义 d p [ i ] dp[i] dp[i] 表示 s [ 0 , i ] s[0, i] s[0,i] 是否可以被字典中出现的单词拼接&#xff0c;那么状态转移方程为&#xff1a; d p [ i ] t r u e &#xff0c;如果存在任意 j ∈ [ 0 , i − 1…

智慧光伏电站管理系统构建与功能分析

在全球光伏产业蓬勃发展背景下&#xff0c;我国光伏制造以及光伏发电规模均位于世界首位。但是由于集中式光伏电站投资大、建设周期长、占地面积大。出于土地成本考虑&#xff0c;电站通常地处偏远地区&#xff0c;给运维管理带来了诸多不便。随着互联网、云计算、大数据、人工…

Mac环境下ollama部署和体验

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 关于ollama ollama和LLM&#xff08;大型语言模型&#xff09;的关系&#xff0c;类似于docker和镜像&#xff0c;可以在ollama服务中管理和运行各种LLM&…

【算法基础实验】图论-最小生成树Prim的延迟实现

最小生成树-Prim的延迟实现 理论基础 树的基本性质 用一条边连接树中的任意两个顶点都会产生一个新的环&#xff1b; 从树中删去一条边将会得到两棵独立的树。 切分定理的定义 定义。图的一种切分是将图的所有顶点分为两个非空且不重叠的两个集合。横切边 是一条连接两个属…

python学习笔记B-16:序列结构之字典--字典的遍历与访问

下面是字典的访问和遍历方法&#xff1a; d {10:"hello",20:"python",30:"world"} print(d[10],"--",d[20],"--",d[30]) print(d.get(10)) print("以上两种访问方式的区别是&#xff0c;d[key]若键是空值&#xff0c…

c#创建新项目

确保已安装.NET Core SDK。&#xff08;visual studio installer中可安装&#xff09; cmd中先引用到文件夹目录下。 mkdir MyConsoleApp MyConsoleApp是项目文件夹的名字。 mkdir 是一个命令行工具&#xff0c;用于在文件系统中创建新的目录&#xff08;文件夹&#xff09;…

C 语言笔记:字符串处理函数

一、获取字符串长度函数 头文件&#xff1a;#include <string.h> 函数定义&#xff1a;size_t strlen(const char *s); 函数功能&#xff1a; 测字符指针 s 指向的字符串中字符的个数&#xff0c;不包括’\0’ 返回值&#xff1a;字符串中字符个数 #include <stdio.…

DRF版本组件源码分析

DRF版本组件源码分析 在restful规范中要去&#xff0c;后端的API中需要体现版本。 3.6.1 GET参数传递版本 from rest_framework.versioning import QueryParameterVersioning单视图应用 多视图应用 # settings.pyREST_FRAMEWORK {"VERSION_PARAM": "versi…