python-3.x - 在 sunpy 教程中更改参数会引发错误 - 这是一个错误吗?
问题描述
这是天文学 SO 中这个问题的后续问题。
按照sunpy 中的这个示例(与上面链接帖子中的答案非常相似),我正在尝试访问和下载跨越几十年 X 射线通量 (XRS) 的时间序列数据集。参数tstart
和tend
定义要考虑的日期时间范围的边界。
使用 sunpy 3.0.1,以下代码片段成功运行:
import datetime
from sunpy import timeseries as ts
from sunpy.net import Fido
from sunpy.net import attrs as a
tstart = datetime.datetime(2020, 6, 21, 1) # "2020-06-21 01:00"
tend = datetime.datetime(2020, 6, 21, 23) # "2020-06-21 23:00"
result = Fido.search(a.Time(tstart, tend), a.Instrument("XRS"), a.goes.SatelliteNumber(16))
goes_16_files = Fido.fetch(result)
goes_16 = ts.TimeSeries(goes_16_files, concat=True)
goes_table = goes_16.to_table()
goes_table.write('goes_16.csv', format='csv')
上面的示例获得了几乎一整天(tstart - tend
约 1 天)的观察结果。但我想要跨越数年/数十年的完整数据集;我计划对所有 GOES 卫星(不仅仅是 16 号)重复上述程序。从wiki中,我发现 GOES-16 于 2016 年 11 月 19 日 23:42 开始运行,并且仍然处于活动状态(即从未退役)。用代码中的对应范围替换tstart
andtend
会抛出错误,而不是成功运行(如下图,使用与上面相同的导入):
tstart = datetime.datetime(2016, 11, 19, 23, 59, 59)
tend = datetime.datetime(2020, 6, 21, 23) #datetime.datetime.now() # "2020-06-21 23:00"
result = Fido.search(a.Time(tstart, tend), a.Instrument("XRS"), a.goes.SatelliteNumber(16))
goes_16_files = Fido.fetch(result)
goes_16 = ts.TimeSeries(goes_16_files, concat=True)
goes_table = goes_16.to_table()
goes_table.write('goes_16_re.csv', format='csv')
Files Downloaded: 7%|█▌ | 89/1227 [01:07<14:22, 1.32file/s]
Traceback (most recent call last):
File "/Users/T123/Desktop/testme123.py", line 11, in <module>
goes_table = goes_16.to_table()
AttributeError: 'list' object has no attribute 'to_table'
在上面的代码块中,唯一改变的是参数tstart
。
这是 sunpy 中的错误吗?还是我做错了什么?如果它是相关的(因为某些问题“似乎”是特定于平台的),我在 macOS BigSur 11.2.1 上运行 python 3.9。
PS:我把astropy
这个问题作为标签是因为 sunpy 的某些功能依赖于 astropy(并且因为没有sunpy
标签)。如果这个问题有更合适的标签,请随时编辑它们。
解决方案
如文档所述,ts.TimeSeries
返回一个列表,除非concatenate
参数是True
. 您的代码包含concat
可能不会被拾取的不同名称的参数。
推荐阅读
- javascript - React:如何从具有动态高度的子项中获取元素的参考高度?
- python - Kivy:自定义按钮不随 self.state 更改而更新
- react-native - 令人困惑的 React Native 语法
- ios - `user_version 的 SQLite 文档中的“偏移 60 处的整数”是什么意思?语用`
- google-sheets - 如何在谷歌表格中创建质量分数
- javascript - 使用钩子测试有状态的 React 组件时出现意外结果?(笑话)
- javascript - 如何在仅具有“子”数组的一个标识属性的数组中查找对象的 ID
- python - 索引错误;列表索引超出范围。列表有项目,0 超出范围
- c# - Pomelo 中的 UseMySql 抛出异常
- html - HTML/CSS 下拉菜单未覆盖或显示在块中