【发布时间】:2023-02-08 01:33:34
【问题描述】:
我正在使用来自 cdasws 的数据来绘制动态光谱。我正在按照此处找到的示例https://cdaweb.gsfc.nasa.gov/WebServices/REST/jupyter/CdasWsExample.html
这是我修改过的代码以获得 STEREO 的动态频谱。
from cdasws import CdasWs
from cdasws.datarepresentation import DataRepresentation
import matplotlib.pyplot as plt
cdas = CdasWs()
import numpy as np
datasets = cdas.get_datasets(observatoryGroup='STEREO')
for index, dataset in enumerate(datasets):
print(dataset['Id'], dataset['Label'])
variables = cdas.get_variables('STEREO_LEVEL2_SWAVES')
for variable_1 in variables:
print(variable_1['Name'], variable_1['LongDescription'])
data = cdas.get_data('STEREO_LEVEL2_SWAVES', ['avg_intens_ahead'],
'2020-07-11T02:00:00Z', '2020-07-11T03:00:00Z',
dataRepresentation = DataRepresentation.XARRAY)[1]
print(data)
plt.figure(figsize = (15,7))
# plt.ylim(100,1000)
plt.xticks(fontsize=18)
plt.yticks(fontsize=18)
plt.yscale('log')
sorted_data.transpose().plot()
plt.xlabel("Time",size=18)
plt.ylabel("Frequency (kHz)",size=18)
plt.show()
使用这段代码给出了一个看起来像这样的情节,
我的问题是,是否只针对特定频率绘制此频谱?例如,我只想绘制 636 kHz 的强度值,有什么办法可以做到吗?
非常感谢任何帮助,我不了解 xarray,我以前从未使用过它。
编辑 -
使用命令,
data_stereo.avg_intens_ahead.loc[:,625].plot()
虽然这很有用,但我需要的是;
对于动态频谱,如果我选择一个特定的频率,比如 600khz,它能显示这样的东西吗(我刚刚添加了白框来阐明我的意思)-
【问题讨论】:
-
您可以使用
data.sel(frequency=636)按标签选择数据。请参阅Indexing and selecting data 上的文档。一旦你只有你想要的数据,你就可以用.plot来绘制它。 -
@MichaelDelgado 感谢您的帮助!这是我使用的,
data_stereo.avg_intens_ahead.loc[:,625].plot(),它生成了一个图。我正在编辑我的原始帖子以显示我得到的情节,但这不是我需要的。我正在编辑我的原始帖子以澄清我的疑问
标签: python python-xarray