【积雪数据】GlobSnow-2 SWE数据的下载与提取(2_数据提取)

本文详细指导了如何使用Matlab提取GlobSnow-2SWE数据集中的雪水当量(SWE)数据,包括通过Panoply检查数据信息,以及在Matlab中编写代码读取、合并和保存经度、纬度和SWE数据。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

GlobSnow-2 SWE数据的下载与提取(2_数据提取)


前言

紧接上文的数据下载,本篇内容主要介绍利用Matlab来提取GlobSnow的SWE数据。
前文链接:【积雪数据】GlobSnow-2 SWE数据的下载与提取(1_数据下载)


提示:以下是本篇文章正文内容,下面案例可供参考

一、数据检查/查看数据信息

方法/软件

方法1:Panoply

Panoply是由美国NASA出品的一款可以用来打开与查看NetCDF、HDF、GRIB等多种格式文件的软件。
软件地址及网站页面:https://www.giss.nasa.gov/tools/panoply/
在这里插入图片描述
软件安装可以参看本篇文章: https://blog.csdn.net/ch206265/article/details/103516883

> 数据页面展示

在这里插入图片描述
可以清楚、便捷的查看NC文件及其变量的详细信息,双击变量名便可以进一步查看数据,如SWE_avg:
在这里插入图片描述
在这里插入图片描述

方法2:Matlab

直接使用Matlab的命令行进行NC文件信息的查阅。目前可以使用函数有ncinfo、ncdisp等,同样以1979年9月的数据作为展示:

> ncdisp

在这里插入图片描述

> ncinfo

需要先将数据信息保存到变量中,然后打开Info的详情页,双击字段即可查看详细信息。

Info = ncinfo('197909.nc');

在这里插入图片描述
提取数据之前先查看数据信息主要是为了获取以下信息:

  1. 文件中包含的变量名称:这里需要到的变量分别为纬度(lat)、经度(lon)和雪水当量数据(SWE_avg, SWE_max)
  2. 需要用到/处理的变量的数据结构:每个变量都是721 * 721的二维数组

二、数据提取(Matlab)

数据提取代码如下:
clc;
clear;
save_path = 'F:\Globsnow_2.0\result\'; %设置保存输出结果的路径

files = dir('*.nc'); %遍历所有的文件,并将其信息保存至files变量
Lat = ncread(files(1).name,'lat'); %读取第一个文件的纬度数据
Lon = ncread(files(1).name,'lon'); %读取第一个文件的经度数据

% 将所有nc文件合并为一个三维数组,方便数据的提取
for i = 1 : length(files)
    data_avg = ncread(files(i).name,'SWE_avg');
    data_max = ncread(files(i).name,'SWE_max');
    all_avg(:,:,i) = data_avg; %将每个月的SWE_avg依次保存至第三维
    all_max(:,:,i) = data_max; %同上
end

% 分别设置需要提取的行(j)与列(k)的范围,这里对所有网格进行了提取
for j = 1 : 721
    for k = 1 : 721
        result = [];
        grid_lat = Lat(j,k); %确定当前网格的纬度
        grid_lon = Lon(j,k); %确定当前网格的经度
        SWE_avg = all_avg(j,k,:);
        SWE_max = all_max(j,k,:);
        result = [SWE_avg,SWE_max];
        path = [save_path,'data_',num2str(grid_lat,'%.4f'),'_',num2str(grid_lon,'%.4f')]; %设置输出结果的文件名,这里以经纬度作为输出的文件名
        result = (squeeze(double(result)))'; % 对result进行转置,使其成为多行2列的一个二维数组
        dlmwrite( path ,result,'delimiter','\t','precision', '%.4f');
        %fprintf('Row %d,Cloumn %d is done!\n',j,k); %在屏幕中输出当前进度
    end
end
> 输出结果展示

在这里插入图片描述
每个文件内分别包含两列数据,分别为各月的SWE_avg和SWE_max
在这里插入图片描述


总结

简要介绍了如何用matlab提取雪水当量数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值