ENVI_IDL: 如何批量将Year-Days文件名转换为Year-Month-Day文件名?

简介: ENVI_IDL: 如何批量将Year-Days文件名转换为Year-Month-Day文件名?

01 问题的提出

这里遇到一个问题:

对于下方的文件名,

如何将其中的例如2020042(表示2020年的第42天) 、2022003(表示2022年的第3天)等转换为年月日的格式。


02 思路解决

如果不想细看,这里给出三个关键函数:

julday函数:


Result = JULDAY(Month, Day, Year, Hour, Minute, Second [, /MODIFIED])


caldat函数:


CALDAT, Julian, Month [, Day [, Year [, Hour [, Minute [, Second]]]]] [, /MODIFIED]


file_move函数:


FILE_MOVE, SourcePath, DestPath [, /ALLOW_SAME] [, /NOEXPAND_PATH] [, /OVERWRITE] [, /REQUIRE_DIRECTORY] [, /VERBOSE]


具体使用可以查看文档,这里不再详细说明。


给出转换代码,这里仅提供思路。

pro days2_specific_date
  ; 该程序用于解决如何将Year-Days ==> Year-Month-Day
  ; 定义文件路径目录和文件名前缀
  dir = 'path/to/files/'  ; 所有文件放置的目录路径
  prefix = 'MYD04_3K.A'  ; 所有文件名称的公共部分
  ; 获取文件列表
  files = file_search(dir + prefix + '*.tif*', count=n_files)
  ; 遍历每个文件并处理文件名
  for i=0, n_files-1 do begin
    ; 获取文件名
    full_path = files[i]
    filename = file_basename(full_path)
    ; 提取年份和儒略日信息
    year = strmid(filename, 10, 4)
    day_of_year = strmid(filename, 15, 3)
    ; 将儒略日转换为日期格式
    date = julday(year, 1, 1) + day_of_year - 1
    CALDAT, date, year, month, day
    ; 生成新的文件名
    new_filename = prefix + string(year, FORMAT='(I4.4)') + $
      string(month, FORMAT='(I2.2)') + $
      string(day, FORMAT='(I2.2)') + $
      '.tif'
    ; 重命名文件
    file_move, full_path, dir + new_filename
  endfor
end
目录
相关文章
|
6月前
|
存储 算法 安全
JWT深度解析:现代Web身份验证的通行证为什么现在都是JWT为什么要restful-优雅草卓伊凡
JWT深度解析:现代Web身份验证的通行证为什么现在都是JWT为什么要restful-优雅草卓伊凡
355 41
JWT深度解析:现代Web身份验证的通行证为什么现在都是JWT为什么要restful-优雅草卓伊凡
|
应用服务中间件 uml
【UML】软件工程中常用图:类图、部署图、时序图、状态图
【UML】软件工程中常用图:类图、部署图、时序图、状态图
2990 1
|
开发框架 网络协议 Java
RPC调用和HTTP调用的区别你知道吗
RPC调用和HTTP调用的区别你知道吗
406 1
|
人工智能 自然语言处理
重要的事情说两遍!Prompt复读机,显著提高LLM推理能力
【10月更文挑战第30天】本文介绍了一种名为“问题重读”(Question Re-reading)的提示策略,旨在提高大型语言模型(LLMs)的推理能力。该策略受人类学习和问题解决过程的启发,通过重新审视输入提示中的问题信息,使LLMs能够提取更深层次的见解、识别复杂模式,并建立更细致的联系。实验结果显示,问题重读策略在多个推理任务上显著提升了模型性能。
267 2
|
开发工具 git 开发者
关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)
本文通过具体操作和截图,详细讲解了如何在Git中解决分支冲突问题,包括如何识别冲突、手动解决冲突代码、提交合并后的代码,以及推送到远程分支。
3278 3
关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)
|
缓存 前端开发 JavaScript
微前端集成优化:让所有子应用体积更小,加载更快!
【8月更文挑战第17天】微前端集成优化:让所有子应用体积更小,加载更快!
394 1
微前端集成优化:让所有子应用体积更小,加载更快!
|
存储 JavaScript API
深入理解RESTful API设计
【10月更文挑战第6天】深入理解RESTful API设计
|
监控 安全 Java
Java中的AOP编程实践与应用场景
Java中的AOP编程实践与应用场景
|
API Python
[AIGC] 使用Python刷LeetCode:常用API及技巧指南
[AIGC] 使用Python刷LeetCode:常用API及技巧指南
632 0