为什么我在 Himawari-8 标准数据上使用 satpy 失败?
Why do I using satpy on Himawari-8 standard data failed?
当我使用 satpy 读取 Himawari-8 标准数据时,终端总是说“提供了 'filenames' 但它是空的。”
Himawari-8有16个观测波段,每10分钟拍摄一张全盘图片,所以一个观测结果文件夹包含16个文件夹(一个文件夹为一个波段),每个波段分为10个零件所以在一个乐队文件夹中它有 10 个文件。
Himawari-8标准数据格式为.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 code,写的python版本是3.9.7,电脑上安装了anaconda和satpy
抱歉,我是 Python 和 Himawari-8 标准数据的新手,如果有任何遗漏请提醒我。
感谢您对我的任何回复或推荐。
该错误消息表示您正在将一个空列表传递给 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')
这意味着获取目录D:\ftp_h8_hsd_25Jul\
中所有以.dat
结尾的文件的列表。这是笔记本作者Windows机器上的一个目录(文件夹)。如果您的本地计算机上没有这些数据文件,那么您需要从某个地方下载它们。如果您有这些文件,则需要更改代码的 D:\ftp_h8_hsd_25Jul\*.dat
部分以匹配您的下载位置。例如,如果您在 linux 上并使用浏览器下载文件,它们可能位于 /home/<username>/Downloads/*.dat
.
我不清楚你想做什么或你的出发点是什么,所以我不确定我能提供更多帮助。 Whosebug 并不是最广泛使用的 Satpy 问题支持论坛。如果您想聊更多,我建议加入 Pytroll slack(参见 http://pytroll.github.io/#getting-in-touch),我们很乐意提供帮助。
当我使用 satpy 读取 Himawari-8 标准数据时,终端总是说“提供了 'filenames' 但它是空的。”
Himawari-8有16个观测波段,每10分钟拍摄一张全盘图片,所以一个观测结果文件夹包含16个文件夹(一个文件夹为一个波段),每个波段分为10个零件所以在一个乐队文件夹中它有 10 个文件。
Himawari-8标准数据格式为.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 code,写的python版本是3.9.7,电脑上安装了anaconda和satpy
抱歉,我是 Python 和 Himawari-8 标准数据的新手,如果有任何遗漏请提醒我。 感谢您对我的任何回复或推荐。
该错误消息表示您正在将一个空列表传递给 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')
这意味着获取目录D:\ftp_h8_hsd_25Jul\
中所有以.dat
结尾的文件的列表。这是笔记本作者Windows机器上的一个目录(文件夹)。如果您的本地计算机上没有这些数据文件,那么您需要从某个地方下载它们。如果您有这些文件,则需要更改代码的 D:\ftp_h8_hsd_25Jul\*.dat
部分以匹配您的下载位置。例如,如果您在 linux 上并使用浏览器下载文件,它们可能位于 /home/<username>/Downloads/*.dat
.
我不清楚你想做什么或你的出发点是什么,所以我不确定我能提供更多帮助。 Whosebug 并不是最广泛使用的 Satpy 问题支持论坛。如果您想聊更多,我建议加入 Pytroll slack(参见 http://pytroll.github.io/#getting-in-touch),我们很乐意提供帮助。