matlab读取逐日的1km分辨率中国大陆地区的土壤水数据,并汇总至逐月分辨率

1.前言

ESSD一篇文章介绍了逐日的土壤水数据:

ESSD - A 1 km daily soil moisture dataset over China using in situ measurement and machine learning

图片来源:Li et al., 2022, ESSD

中国大陆地区的土壤水的数据下载地址:

国家青藏高原科学数据中心

该数据集提供了中国范围1km高质量的土壤湿度数据集-SMCI1.0(Soil Moisture of China by in situ data, version 1.0),SMCI1.0是包含2000-2022年、日尺度、以10厘米为间隔10层深度(10-100cm)的高时空分辨率土壤湿度,数据单位为0.001m³/m³,缺失值为-999,投影为WGS1984。该数据集是以中国气象局提供的1,648个站点观测10层土壤湿度作为基准,使用ERA5_Land气象强迫数据、叶面积指数(LAI)、土地覆盖类型(Landtypes)、地形(DEM)和土壤特性(Soil properties)作为协变量,通过机器学习方式获得。本研究进行了两组实验以验证SMCI1.0的精度,时间尺度上:ubRMSE为0.041-0.052,R为0.883-0.919;空间尺度上:ubRMSE为0.045-0.051,R为0.866-0.893。 由于SMCI1.0是基于实地观测的土壤湿度,它可以作为现有基于模型和卫星数据集的有效补充。该数据产品可用于各种水文、气象、生态分析和建模,尤其在需要高质量、高分辨率土壤湿度的应用上至关重要。有关数据集的引用及详细描述,请阅读说明文档。为便于使用,本研究提供了两种不同分辨率的版本:30 秒(~1km)和0.1度(~9km)。

针对于数据说明中关于单位的问题,chatgpt是这样解释的:

可以使用Filezilla下载,本专栏以9 km逐日分辨率的土壤水数据为例,介绍如何使用matlab批量读取并合并成月分辨率。

2.数据读取

在Matlab中,批量读取数据:

%% uni-stuttgart.de
% Chistrong Wen
% 2024-10-30
address = '/Volumes/Expansion/All_data/SWOT/';
GFA = dir(fullfile(address,'*nc'));
k=length(GFA);
ncdisp([address,GFA(11).name])
lon = ncread([address,GFA(1).name],'lon');
lat = ncread([address,GFA(1).name],'lat');
[lon,lat] = meshgrid(lon,lat);

in      = [365,365,366,365,365,365,366,365,365,365,366];
mm_ping = [31,28,31,30,31,30,31,31,30,31,30,31];
mm_run  = [31,29,31,30,31,30,31,31,30,31,30,31];

for i = 1:k
    B = ncread(GFA(i).name,'SMCI');
    for j = 1:in(i)
        AA(:,:,j) = double(B(:,:,j)');
    end
    SMCI_soil_dd(i).rg = AA;
    %% 
    data = AA;
    monthly_avg = zeros(360,630,12);
    start_idx = 1;
    for month = 1:12
        if(in(i)==366)
            days = mm_run(month);
        else
            days = mm_ping(month);
        end  
        monthly_data = data(:,:,start_idx:start_idx + days - 1);
        monthly_avg(:,:,month) = mean(monthly_data,3);
        start_idx = start_idx + days;
    end
    SMCI_soil_mm(i).rg = monthly_avg;
    disp(i)
end
total_smci = cat(3,SMCI_soil_mm(:).rg);

for i = 2010:2020
    for j = 1:12
      tt(i,j) = time_transfer([i,j,15],1);
    end
end
tt1 = tt(2010:end,:)';
tt2 = tt1(:)';
O.lon = lon;
O.lat = lat;
O.rg  = total_smci;
O.tt  = tt2;

area_ind_csr=inpolygon(O.lon,O.lat,nc_bound(:,1),nc_bound(:,2));
area_scale=cal_grid_region(O);
for ii=1:size(O.rg,3)
    soil_smci_rg(ii)=nansum(nansum((O.rg(:,:,ii).*area_ind_csr.*area_scale))/nansum(nansum(area_ind_csr.*area_scale)));
    soil_smci_tt(ii)=O.tt(ii);
    disp(ii)
end
plot(soil_smci_tt,soil_smci_rg-mean(soil_smci_rg))

代码要点:

(1)批量读取

address = '/Volumes/Expansion/All_data/SWOT/';

GFA = dir(fullfile(address,'*nc'));

k=length(GFA);

(2)天数据合并成月数据

in      = [365,365,366,365,365,365,366,365,365,365,366];

mm_ping = [31,28,31,30,31,30,31,31,30,31,30,31];

mm_run  = [31,29,31,30,31,30,31,31,30,31,30,31];

for i = 1:k

    B = ncread(GFA(i).name,'SMCI');

    for j = 1:in(i)

        AA(:,:,j) = double(B(:,:,j)');

    end

    SMCI_soil_dd(i).rg = AA;

    %%

    data = AA;

    monthly_avg = zeros(360,630,12);

    start_idx = 1;

    for month = 1:12

        if(in(i)==366)

            days = mm_run(month);

        else

            days = mm_ping(month);

        end

        monthly_data = data(:,:,start_idx:start_idx + days - 1);

        monthly_avg(:,:,month) = mean(monthly_data,3);

        start_idx = start_idx + days;

    end

    SMCI_soil_mm(i).rg = monthly_avg;

    disp(i)

end

(3)结构体数据整合

total_smci = cat(3,SMCI_soil_mm(:).rg);

3.结果

(1)空间分辨率

(2)时间序列

参考资料:

LI, Qingliang, et al. A 1 km daily soil moisture dataset over China using in situ measurement and machine learning. Earth System Science Data, 2022, 14. Jg., Nr. 12, S. 5267-5286.

❤️欢迎点赞收藏❤️

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

哈工大《理论力学》第九版课后答案解析及笔记PDF

第九版序 哈工大《理论力学》初版于1961年,先后再版8次,曾获得首届国家优秀教材奖和国家级教学成果奖。本书第8版为“十二五”普通高等教育本科国家级规划教材,并于2021年被国家教材委员会评为首届全国教材建设奖全国优秀教材一等奖。 本书…

MindShare PCIE 3.0 笔记-第三四章

MindShare 官网,地址如下: MindShare Charpter 3: Configuration 概述 主要介绍 PCIe 驱动对 PCIE 设备中 function 的 Config Header 的访问. 1. 总线、设备与功能定义 每一个 PCIE function 都是独一无二的,通过设备号与总线号区分。 2. PCIe 总线…

Windows和Linux等保加固测评(2)

本文以等保2.0为标准,三级等保要求,centos7.6.1810系统为例进行演示。 关于加密 /etc/shadow文件格式和/etc/passwd类似,由若干字段组成,字段之间用“:”隔开 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 ice:$6$5NA…

Redis的删除策略以及内存淘汰机制

在日常开发中,我们使用 Redis 存储 key 时通常会设置一个过期时间,但是 Redis 是怎么删除过期的 key,而且 Redis 是单线程的,删除 key 会不会造成阻塞。要搞清楚这些,就要了解 Redis 的过期策略和内存淘汰机制。 Redi…

h5小游戏5--杀死国王(附源码)

源代码如下 1.游戏基本操作 用空格键攻击,kill the king。 css样式源码 charset "UTF-8";font-face {font-family: "AddLGBitmap09";src: url("https://assets.codepen.io/217233/AddLGBitmap09.woff2") format("woff2"…

CentOS下安装ElasticSearch7.9.2(无坑版)

准备目录 搞一个自己喜欢的目录 mkdir /usr/local/app切换到该目录 cd /usr/local/app下载 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-linux-x86_64.tar.gz选择其他版本 点击进入官网 https://www.elastic.co/guide/en/elasticsea…

Seven 9.20.01 | 趣味个人锻炼挑战,每天7分钟,坚持7个月

这是一款趣味个人锻炼挑战应用,基于《纽约时报杂志》报道的7分钟科学锻炼文章。无需锻炼设备,每天只需几分钟时间,趣味成就和奖励不断鼓励你。只需一张椅子、墙壁和自身的体重,7分钟锻炼基于科学研究,可在较短的时间内…

传智杯 第六届-复赛-A

题目描述: 小红拿到了一个字符串,她准备把这个字符串劈成两部分,使得第一部分的长度恰好是第二部分的两倍。你能帮帮她吗? 输入描述: 一个仅由小写字母组成的字符串,长度不超过10^5。 输出描述: 如果无解&#xff0c…

RFID技术实现产线全自动管理

产线自动化管理是现代制造企业提升竞争力的关键,它通过减少人工干预、提高生产效率、降低成本和增强库存管理的准确性,帮助企业实现精益生产。自动化管理系统能够实时监控生产过程,快速响应市场变化,提高产品的质量和交付速度。在…

CentOS 7 下升级 OpenSSL

升级openssh,下载:https://download.csdn.net/download/weimeilayer/89935114 上传到服务器,然后执行命令 rpm -Uvh *.rpm --nodeps --force安装依赖 yum -y install gcc perl make zlib-devel perl-CPAN下载安装包:https://github.com/ope…

C# 结构型设计模式----装饰器模式

1、简介 简要说明就是动态地给一个对象添加一些额外的职责。适用于需要扩展一个类的功能,或给一个类添加多个变化的情况。 装饰器,顾名思义就是在原有基础上添加一些功能。 装饰器模式中各个角色有: 抽象构件(Component&#x…

.NET内网实战:通过白名单文件反序列化漏洞绕过UAC

01阅读须知 此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,对内网和后渗透感兴趣的朋友们可以订阅该电子报刊,解锁更多的报刊内容。 02基本介绍 03原理分析 在渗透测试和红…

基于echarts、php、Mysql开发的数据可视化大屏

大屏效果展示 管理员进入数据可视化页面将看到数据可视化大屏。大屏内容包括两个条形图,用于统计当前网站所有用户的MBTI 16型人格分布;玫瑰图,用于展示当前网站用户MBTI四个维度,八个字母的占比;折线图,用…

jenkins ssh 免密报错Host key verification failed.

jenkins 发布项目,ssh连接远程服务器时报错:Host key verification failed. 解决: 原因是生成的sshkey不是用的jenkins用户,所以切换用户到:jenkins重新生成sshkey su jenkins ssh-keygen -t rsa ssh-copy-id -i ~/…

一款专业获取 iOS 设备的 UDID 工具|一键获取iPhone iPad设备的 UDID

什么是UDID? UDID,是iOS设备的一个唯一识别码,每台iOS设备都有一个独一无二的编码,这个编码,我们称之为识别码,也叫做UDID( Unique Device Identifier) 扫描后系统提示输入密码&am…

封装ES高亮Yxh-Es

拉取代码 git拉取 yxh-elasticsearch: es基本封装工具 使用场景 我们拿游览器举例,我将我要搜索的内容输入到输入框进行搜索,游览器就会根据对应的内容查出文章中出现过的关键字,并加上样式,让我们看的更清晰。 我们以就是使用全文…

布谷语音源码服务器搭建环境及配置流程

布谷语音源码部署环境安装要求(只有在相同的环境下才更容易避免一些不必要的麻烦):●安装Center OS 7.9,我们自己的服务器使用的是7.9建议相同系统,非强制●安装宝塔环境(强烈推荐使用)●安装软…

百度SEO中的关键词密度与内容优化研究【百度SEO专家】

大家好,我是百度SEO专家(林汉文),在百度SEO优化中,关键词密度和关键词内容的优化对提升页面排名至关重要。关键词的合理布局与内容的质量是确保网页在百度搜索结果中脱颖而出的关键因素。下面我们将从关键词密度和关键…

RDKit|分子数据的聚类分析

分子数据的聚类分析 聚类分析是一种无监督学习技术,用于根据分子特征将分子分组成若干簇。每个簇中的分子在特征空间中应当相似,而不同簇之间的分子差异则较大。在化学信息学和药物设计中,聚类分析常用于化合物库的分组、潜在药物靶点的发现以及分子多样性分析。 1 聚类分…

k8s环境下rabbitmq安装社区插件:rabbitmq_delayed_message_exchange

怎么在k8s环境下的rabbitmq安装社区版插件:rabbitmq_delayed_message_exchange 在你的rabbit-value.yaml中加入以下行,然后使用helm重新安装(最好把pvc也删了重新安装(如果你的密码变化了的话) 减少出错概率) ## par…