Добавить новую переменную к объекту данных на панели инструментов cds
Я хотел бы вычислить ежедневную климатологию и стандартное отклонение переменной (в данном случае давление на двух уровнях).
Я могу это сделать, но в настоящее время не могу создать ни одного объекта данных, который можно загрузить как netcdf.
Мой код в настоящее время выводит объект данных
Я могу заставить функцию возвращать один из этих объектов, но в идеале я хотел бы объединить их и вернуть один объект данных (загруженный как netcdf), который содержит обе переменные.
import cdstoolbox as ct
@ct.application(title='Retrieve Data')
@ct.output.download()
def retrieve_sample_data():
data = ct.catalogue.retrieve(
'reanalysis-era5-pressure-levels',
{
'product_type': 'reanalysis',
'pressure_level': [
'1','2',
],
'year': [ '1979', '1980', '1981'
],
'month': [
'01','02','12',
],
'day': [
'01', '02', '03',
'04', '05', '06',
],
'time': [
'00:00',
],
"grid": [1, 1],
"area":[90,-180,60,180],
}
)
climatology = ct.climate.climatology_mean(data,frequency='dayofyear')
std_deviation = ct.climate.climatology_std(data,frequency='dayofyear')
area_ave_c = ct.geo.spatial_average(climatology)
area_ave_s = ct.geo.spatial_average(std_deviation)
return (area_ave_s, area_ave_c)
В настоящее время в строке возврата возникает ошибка, но я хотел бы загрузить оба объекта данных и дважды запустить код для их последовательного вывода - это расточительно (поскольку он получает все данные дважды).
1 ответ
Оказывается, можно вернуть два объекта из
retrieve_sample_data()
функция, и вы загружаете их, просто вызывая
ct.output.download()
дважды в преамбуле перед функцией. Итак, мой код теперь гласит:
import cdstoolbox as ct
@ct.application(title='Retrieve Data')
@ct.output.download()
@ct.output.download()
def retrieve_sample_data():
etc etc