在读取某一些科研数据集的时候,采用netcdf的存储格式,其中往往会遇到以下的情况:

time             Size:       1x1Dimensions: timeDatatype:   doubleAttributes:units         = 'days since 2002-01-01 00:00:00 UTC'long_name     = 'Time'standard_name = 'Time'axis          = 'T'calendar      = 'gregorian'bounds        = 'time_bounds'

其中读取的时间time表示从2002年1月1日至目前所要读取文件时间为止累计的天数。本人目前有两种解决的思路:

方案一 直接采用matlab自带的函数读取

file = ('GRD-3_2022213-2022243_AOD1B_JPL.nc')
ncdisp(file)
time = ncread(file,'time')
dt = datetime((time)*24*3600, 'ConvertFrom', 'epochtime', 'Epoch', '2002-01-01')

得到的结果是


time =7532.5dt = datetime2022-08-16 12:00:00

方案二 利用文件名中包含的年积日转换成年月日

利用下面的函数将年积日转换成年月日

function [year,month,day] = wzq_yd2ymd(year,doy)
%% convert days in year to year-month-day
% modified from: https://blog.csdn.net/qq_41696018/article/details/119647098days_in_month = [31,28,31,30,31,30,31,31,30,31,30,31];if(mod(year,4)==0 && (mod(year,100)~=0 || mod(year,400)==0))days_in_month(2)=29;endid = doy;month = 0;day   = 0;for i = 1:12id = id - days_in_month(i);month = i;if(id>0)continueendday = id + days_in_month(i);breakend
end % 此处以示例数据 GRD-3_2022213-2022243_AOD1B_JPL.nc
[a1,b1,c1] = wzq_yd2ymd(2022,213)
[a2,b2,c2] = wzq_yd2ymd(2022,243)

得到的结果如下:

a1 =2022b1 =8c1 =1a2 =2022b2 =8c2 =31

与方案一得到的结果是一致的!

参考资料:

1.https://ww2.mathworks.cn/matlabcentral/answers/617198-convert-epoch-time-to-yyyymmddhhmmss2.作者:我是水怪的哥 https://www.bilibili.com/read/cv19156925?spm_id_from=333.999.0.0 出处:bilibili3.https://blog.csdn.net/weixin_45770896/article/details/111311360

matlab两种方法将NC文件中的gregorian日期转换成年月日ymd相关推荐

  1. cad添加自己线性_创建cad线型的两种方法(线型文件和linetype) - CAD自学网

    作图过程中,我们最常见的线型是实线.虚线.点划线.有的时候这些基本线型可能满足不了你的需求.CAD也有自带的特殊线型,比如-HW-,这种自带文字的线型.但你想要的确实-X-.那么这便涉及到新线型的建立 ...

  2. python删除空文件和文件夹_python 两种方法删除空文件夹

    第一种方法: import os def delete_gap_dir(dir): if os.path.isdir(dir): for d in os.listdir(dir): #print(&q ...

  3. 两种方法求解 正数数组中 两个数相减 的最大值

    一,问题描述 给定一个正数数组arr(即数组元素全是正数),找出该数组中,两个元素相减的最大值,其中被减数的下标不小于减数的下标. 即求出: maxValue = max{arr[j]-arr[i] ...

  4. oracle 0.5格式问题,两种方法解决Oracle的数值0.5只显示成.5问题

    Oracle对数值0.n转换成char类型的时候会自动忽略前面的0(原因好像是为了节省空间0.5保存到数据库为.5).例如: SQL> SELECT to_char(0.5) FROM DUAL ...

  5. java代码将excel文件中的内容列表转换成JS文件输出

    思路分析 我们想要把excel文件中的内容转为其他形式的文件输出,肯定需要分两步走: 1.把excel文件中的内容读出来: 2.将内容写到新的文件中. 举例 一张excel表中有一个表格: 我们需要将 ...

  6. php下载数组里的图片,php 读取txt文件中的内容,转换成数组,根据URL将图片下载到本地(curl爬取)...

    link.txt文件内容(注意地址可以无限多) https://youimg1.c-ctrip.com/target/100m1f000001gzojc0664_D_521_391.jpg https ...

  7. MATLAB笔记:打开数据文件的三种方法+读取数据文件的两种方法+保存数据文件的两种方法

    1.打开数据文件 1.1 直接打开文件 PATHNAME = 'C:\Users\s55\Desktop\dat'; FILENAME = '\data_1.dat'; str0=strcat(PAT ...

  8. 【Python】两种方法计算平均值、中值、众数、方差、标准差、百分位数

    目录 数据特征 数据集 均值(Mean) - 平均值 中值(Median) - 中点值,又称中位数 众数(Mode) - 最常见的值 方差 标准差(欧式距离) 百分位数 数据特征 特征探索主要是对数据 ...

  9. (采用两种方法)美国的体积测量系统,计量单位转换(C语言)

    在美国的体积测量系统中,1品脱等于2杯,1杯等于8盎司,1盎司等于2大汤勺,1大汤勺等于3茶勺.编写一个程序,提示用户输入杯数,并以品脱.盎司.汤勺.茶勺为单位显示等价容量.思考对于该程序,为何使用浮 ...

最新文章

  1. 后序遍历的非递归算法python_刷题系列 - Python用非递归实现二叉树后续遍历
  2. pythonfor循环语句1到7、不要4_【IT专家】关于Python中的for循环控制语句
  3. vue实现点击那个标题就显示哪个标题的细节
  4. 采用SIMULINK SimPowerSystems的光伏并网阵列仿真
  5. Python3.8 新特性:仅位置参数
  6. Linux虚拟内存管理(glibc)
  7. 什么是java的元数据_学习大数据,为什么要先学习Java?
  8. boost stacktrace堆栈打印
  9. 双十一期间快递员凌晨送件 将下班程序员误认成小偷
  10. ruhe anzjhuang mysql_Mysql配置安装过程
  11. appium+python自动化51-adb文件导入和导出(pull push)
  12. java反编译工具jd-gui
  13. 无法在PC上找到,android app 创建的文件 问题.
  14. 数据结构与算法 3:二叉树,遍历,创建,释放,拷贝,求高度,面试,线索树
  15. SSH实战 · 唯唯乐购项目(下)
  16. 创建Rss Feeds(一)
  17. HBase 教程(超详细)
  18. 有窗体的闭合导线计算程序(C#)
  19. linux mint 中文字体,Linux Mint字体设置
  20. 非IT,零经验,零基础怎么备考信息系统项目管理师/高项考试?

热门文章

  1. 深耳道微型无线蓝牙耳机
  2. 数据传输方式(零拷贝)
  3. 那些参加PLC培训的学员最后怎么样了?
  4. centos mate桌面_centos 7安装mate桌面
  5. iomanip头文件常用函数
  6. C++编程——函数模板
  7. 学会降低自己的预期并从0开始-纪念在鹤峰一中的岁月
  8. shmget物理内存_共享内存的常用函数详解shmget shmat
  9. 51单片机之数码管动态循环左移显示手机号
  10. SAP 平行帐(Parallel Accounting)