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
目录
相关文章
|
2月前
|
数据处理 Python
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
23 1
|
3月前
|
Shell
date $(date --date="2 days" +"%m%d")$(date +"%H%M")然后再输入date时间没变啊
date $(date --date="2 days" +"%m%d")$(date +"%H%M")然后再输入date时间没变啊
|
4月前
|
JavaScript 前端开发
QML中的Date将时间戳和指定格式时间互转
QML中的Date将时间戳和指定格式时间互转
98 0
|
6月前
|
关系型数据库 MySQL
mysql查询结果时间戳转成日期格式——date、DATE_FORMAT和FROM_UNIXTIME的使用
mysql查询结果时间戳转成日期格式——date、DATE_FORMAT和FROM_UNIXTIME的使用
106 0
|
7月前
|
SQL HIVE
Hive中日期处理函数的使用(date_format、date_add、date_sub、next_day)
Hive中日期处理函数的使用(date_format、date_add、date_sub、next_day)
1567 3
PosgreSql日期和时间戳相互转换
PosgreSql日期和时间戳相互转换
|
7月前
DATE_FORMAT函数使用
DATE_FORMAT函数使用
277 0
|
安全
Date转换
Date转换
89 0
Date转换
|
索引
ENVI_IDL:如何对文件名的日期进行格式化输出?
ENVI_IDL:如何对文件名的日期进行格式化输出?
127 0
dateTime怎么根据日期(年月日)查找数据
dateTime怎么根据日期(年月日)查找数据
158 0
dateTime怎么根据日期(年月日)查找数据