1

当我使用 satpy 读取 Himawari-8 标准数据时,终端总是说“'filenames' is provided but is empty。”

Himawari-8 有 16 个观测波段,每 10 分钟拍摄一张全盘照片,因此一个观测结果文件夹包含 16 个文件夹(一个文件夹为一个波段),每个波段分为 10 个部分,因此在一个波段中文件夹它有10个文件。
Himawari-8 标准数据的格式为 .dat,数据命名为 .dat HS_aaa_yyyymmdd_hhnn_Bbb_cccc_Rjj_Skkll.DAT

H08: Himawari-8
yyyy: Observation start time(year)
mm: Observation start time(month)
dd: Observation start time(day)
hh: Observation start time(hour)
nn: Observation start time(min.)
bb: Band number (01 – 16)
cccc: Observation area and number, FLDK: Full Disk
jj: Spatial resolution 
kk: segment number (01 – 10)
ll: total number of segments (01 – 10)

例如HS_H08_20210518_1100_B01_FLDK_R10_S0110.DAT

这些是来自 vscode 的所有消息:

(my_satpy_env) E:\HK\Python>python Process_SatHima_Imagery.py
Traceback (most recent call last):
  File "E:\HK\Python\Process_SatHima_Imagery.py", line 18, in <module>
    scn = Scene(filenames=files,  reader='ahi_hsd',filter_parameters={'start_time': datetime(2021,5,25,2,00), 'end_time': datetime(2021,5,25,2,10)})
  File "C:\Users\RSFBioL\anaconda3\envs\my_satpy_env\lib\site-packages\satpy\scene.py", line 108, in __init__
    self._readers = self._create_reader_instances(filenames=filenames,
  File "C:\Users\RSFBioL\anaconda3\envs\my_satpy_env\lib\site-packages\satpy\scene.py", line 157, in _create_reader_instances
    return load_readers(filenames=filenames,
  File "C:\Users\RSFBioL\anaconda3\envs\my_satpy_env\lib\site-packages\satpy\readers\__init__.py", line 546, in load_readers
    raise ValueError("'filenames' was provided but is empty.")
ValueError: 'filenames' was provided but is empty.

我使用来自 Github 的代码,他上传了代码“ https://github.com/gSasikala/ftp-himawari8-hsd/blob/main/examples/Processing_Satellite_Imagery.ipynb

我使用编辑器 vs 代码编写,python 版本是 3.9.7,我已经在我的电脑上安装了 anaconda 和 satpy。

抱歉,我是 Python 和 Himawari-8 标准数据的新手,如果有什么遗漏的,请提醒我。感谢您对我的任何回复或建议。

4

1 回答 1

1

错误消息意味着您将一个空列表传递给Scene对象。所以在这行代码中(你可以在错误回溯中看到):

scn = Scene(filenames=files,  reader='ahi_hsd',filter_parameters={'start_time': datetime(2021,5,25,2,00), 'end_time': datetime(2021,5,25,2,10)})

您的files变量是一个空列表 ( [])。Satpy 无法加载任何内容,因为它没有得到任何文件。您链接到的笔记本files使用以下代码行创建变量:

files = glob.glob(r'D:\ftp_h8_hsd_25Jul\*.dat')

.dat这意味着获取以目录结尾的所有文件的列表D:\ftp_h8_hsd_25Jul\。这是笔记本的 Windows 机器作者上的一个目录(文件夹)。如果您的本地计算机上没有这些数据文件,那么您需要从某个地方下载它们。如果您有文件,则需要更改D:\ftp_h8_hsd_25Jul\*.dat代码部分以匹配您的下载位置。例如,如果您在 linux 上并使用浏览器下载文件,它们可能位于/home/<username>/Downloads/*.dat.

我不清楚您要做什么或您的出发点是什么,所以我不确定我能提供更多帮助。Stackoverflow 并不是 Satpy 问题使用最广泛的支持论坛。如果你想聊更多,我建议加入 Pytroll slack(参见http://pytroll.github.io/#getting-in-touch),我们很乐意提供帮助。

于 2022-01-14T03:47:29.757 回答