Добавить новую переменную к объекту данных на панели инструментов 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
Другие вопросы по тегам