首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对循环和动画的TDSCatalog列表排序

对循环和动画的TDSCatalog列表排序
EN

Stack Overflow用户
提问于 2021-11-11 05:14:01
回答 2查看 37关注 0票数 0

我正在使用虹吸制作动画雷达环路,我发现虹吸没有按时间/文件顺序提取数据。(示例如下)。

代码语言:javascript
复制
from siphon.cdmr         import Dataset
from siphon.radarserver  import get_radarserver_datasets, RadarServer
from siphon.catalog      import TDSCatalog
from datetime            import datetime

radar_station = "TWX"

ds  = get_radarserver_datasets('http://thredds.ucar.edu/thredds/')
url = ds['NEXRAD Level III Radar from IDD'].follow().catalog_url
rs  = RadarServer(url)

query = rs.query()

query.stations(radar_station).time_range(datetime(2021,11,10,22,0,0),
                                         datetime(2021,11,10,23,0,0)).variables('N0Q')

rs.validate_query(query)

catalog = rs.get_catalog(query)

list(catalog.datasets.values())

收益率...

代码语言:javascript
复制
[Level3_TWX_N0Q_20211110_2233.nids,
 Level3_TWX_N0Q_20211110_2202.nids,
 Level3_TWX_N0Q_20211110_2255.nids,
 Level3_TWX_N0Q_20211110_2300.nids,
 Level3_TWX_N0Q_20211110_2241.nids,
 Level3_TWX_N0Q_20211110_2223.nids,
 Level3_TWX_N0Q_20211110_2212.nids,
 Level3_TWX_N0Q_20211110_2245.nids,
 Level3_TWX_N0Q_20211110_2216.nids,
 Level3_TWX_N0Q_20211110_2240.nids,
 Level3_TWX_N0Q_20211110_2258.nids,
 Level3_TWX_N0Q_20211110_2226.nids,
 Level3_TWX_N0Q_20211110_2250.nids,
 Level3_TWX_N0Q_20211110_2232.nids,
 Level3_TWX_N0Q_20211110_2248.nids,
 Level3_TWX_N0Q_20211110_2207.nids,
 Level3_TWX_N0Q_20211110_2236.nids,
 Level3_TWX_N0Q_20211110_2238.nids,
 Level3_TWX_N0Q_20211110_2209.nids,
 Level3_TWX_N0Q_20211110_2211.nids,
 Level3_TWX_N0Q_20211110_2246.nids,
 Level3_TWX_N0Q_20211110_2228.nids,
 Level3_TWX_N0Q_20211110_2252.nids,
 Level3_TWX_N0Q_20211110_2219.nids,
 Level3_TWX_N0Q_20211110_2230.nids,
 Level3_TWX_N0Q_20211110_2256.nids,
 Level3_TWX_N0Q_20211110_2205.nids,
 Level3_TWX_N0Q_20211110_2218.nids,
 Level3_TWX_N0Q_20211110_2253.nids,
 Level3_TWX_N0Q_20211110_2200.nids,
 Level3_TWX_N0Q_20211110_2204.nids,
 Level3_TWX_N0Q_20211110_2235.nids,
 Level3_TWX_N0Q_20211110_2243.nids,
 Level3_TWX_N0Q_20211110_2221.nids,
 Level3_TWX_N0Q_20211110_2214.nids,
 Level3_TWX_N0Q_20211110_2225.nids]

将.sort()添加到列表末尾会产生以下错误:

代码语言:javascript
复制
TypeError: '<' not supported between instances of 'Dataset' and 'Dataset'

有没有办法对生成的TDS目录进行排序,以便馈送到matplotlib.animation.FuncAnimation等资源中?

干杯-谢谢,

帐单

EN

回答 2

Stack Overflow用户

发布于 2021-11-11 17:51:28

您可以改用catalog.datasets中的数据集名称列表来成功排序。

代码语言:javascript
复制
...

for file in sorted(catalog.datasets):
    ds = catalog.datasets[file].remote_access()

...
票数 0
EN

Stack Overflow用户

发布于 2021-11-11 18:24:18

这里的解决方案不是对数据集列表中的值进行排序,而是对名称(键)进行排序:

代码语言:javascript
复制
datasets = list(catalog.datasets)
datasets.sort()

或者更简单:

代码语言:javascript
复制
datasets = sorted(catalog.datasets)

遍历排序顺序的规范方法是:

代码语言:javascript
复制
for name in sorted(catalog.datasets):
    ds = catalog.datasets[name]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69923496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档