Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

import cdstoolbox as ct

variables = {
    'Near-Surface Air Temperature': '2m_temperature',
    'Eastward Near-Surface Wind': '10m_u_component_of_wind',
    'Northward Near-Surface Wind': '10m_v_component_of_wind',
    'Sea Level Pressure': 'mean_sea_level_pressure',
    'Surface Pressure': 'surface_pressure',
}

@ct.application(title="AWS Matching data acquisation", description="Download point data matching AWS location for TNB Project. Main purpose is to compare AWS observation with ERA5 and ERA5-Land. Data downloaded will be further processed in R.")
@ct.input.dropdown('variable', label='Variable', values=variables.keys())
@ct.output.download()
@ct.output.download()
def application(variable):    
    
    # Retrieve the hourly 2m temperature over Europe for the selected year
    data = ct.catalogue.retrieve(
        'reanalysis-era5-single-levels',
        {
            'variable': variables[variable],
            'product_type': 'reanalysis',
            'year': 1999,
            'month': 1,
            'day': 1,
            'time': [
                '00:00', '01:00', '02:00', '03:00', '04:00', '05:00', 
                '06:00', '07:00', '08:00', '09:00', '10:00', '11:00',
                '12:00', '13:00', '14:00', '15:00', '16:00', '17:00',
                '18:00', '19:00', '20:00', '21:00', '22:00', '23:00' 
            ],
            'grid': [3, 3],
            'area': [60., -11., 34., 35.], # retrieve data for Europe only
        }
    )
    
 
    test = ct.geo.spatial_average(data)

    print(test)
    test2 = ct.cdm.to_csv(test)
    
    
    #Create an empty list
    empty_list = []
    #
    temporary_list=test
    empty_list.append(temporary_list)
    empty_list.append(temporary_list-50)
    test3 = ct.cdm.to_csv(empty_list)
    print(test2)
    print(test3)
    
    return test2, test3

Yunus.


Edit 6 January 2022. After trying various methods based on the documentation and API. I gave up. This is my approach now.


Code Block
import cdstoolbox as ct

variables = {
    'Near-Surface Air Temperature': '2m_temperature',
    'Eastward Near-Surface Wind': '10m_u_component_of_wind',
    'Northward Near-Surface Wind': '10m_v_component_of_wind',
    'Sea Level Pressure': 'mean_sea_level_pressure',
    'Surface Pressure': 'surface_pressure',
}

Case = {
    'Case 1 1993':0,
    'Case 2 1994':1,
}

Case_Year = {
    'Case 1 1993':1993,
    'Case 2 1994':1994,
}


Case_Month = {
    'Case 1 1993':2,
    'Case 2 1994':5,
}

Case_Day = {
    'Case 1 1993':[21,27],
    'Case 2 1994':[20,27],
}



@ct.application(title="AWS Matching data acquisation", description="Download point data matching AWS location for TNB Project. Main purpose is to compare AWS observation with ERA5 and ERA5-Land. Data downloaded will be further processed in R.")
@ct.input.dropdown('variable', label='Variable', values=variables.keys())
@ct.input.dropdown('Case', label='Case Study', values=Case.keys())
@ct.output.figure()
@ct.output.download()
@ct.output.download()
@ct.output.download()
@ct.output.download()
@ct.output.download()
@ct.output.download()
@ct.output.download()
@ct.output.download()
@ct.output.download()
@ct.output.download()
@ct.output.download()
@ct.output.download()
@ct.output.download()
@ct.output.download()
@ct.output.download()
@ct.output.download()

def application(variable,Case):    
    
    # Retrieve the hourly 2m temperature over Europe for the selected year
    data = ct.catalogue.retrieve(
        'reanalysis-era5-single-levels',
        {
            'variable': variables[variable],
            'product_type': 'reanalysis',
            'year': Case_Year[Case],
            'month': Case_Month[Case],
            'day': Case_Day[Case],
            'time': [
                '00:00', '01:00', '02:00', '03:00', '04:00', '05:00', 
                '06:00', '07:00', '08:00', '09:00', '10:00', '11:00',
                '12:00', '13:00', '14:00', '15:00', '16:00', '17:00',
                '18:00', '19:00', '20:00', '21:00', '22:00', '23:00' 
            ],
            'grid': [3, 3],
            'area': [-70., 140.,-80. , 170.], # retrieve data for Europe only #NESW
        }
    )
    
    # Compute the daily mean temperature over Europe
    temperature_daily_mean = ct.cube.resample(data, freq='day', how='mean')
    fig = ct.map.plot(temperature_daily_mean)
    #Creating a simple figure is just to make sure the server side application is working. If a figure isn't plotted and a bunch of errors in the console page, give it up, something wrong with the server.
    data_point_01 = ct.geo.extract_point(data,lon=166.6211,lat=-73.5861)
    data_point_02 = ct.geo.extract_point(data,lon=162.9700,lat=-76.7150)
    data_point_03 = ct.geo.extract_point(data,lon=164.0922,lat=-74.6958)
    data_point_04 = ct.geo.extract_point(data,lon=145.8589,lat=-75.5361)
    data_point_05 = ct.geo.extract_point(data,lon=148.6556,lat=-71.6525)
    data_point_06 = ct.geo.extract_point(data,lon=164.1177,lat=-74.6944)
    data_point_07 = ct.geo.extract_point(data,lon=163.4306,lat=-74.1350)
    data_point_08 = ct.geo.extract_point(data,lon=161.7720,lat=-74.9506)
    data_point_09 = ct.geo.extract_point(data,lon=160.6456,lat=-74.6392)
    data_point_10 = ct.geo.extract_point(data,lon=159.1933,lat=-72.8292)
    data_point_11 = ct.geo.extract_point(data,lon=164.0331,lat=-74.7250)
    data_point_12 = ct.geo.extract_point(data,lon=169.6000,lat=-73.0500)
    data_point_13 = ct.geo.extract_point(data,lon=163.2333,lat=-74.8167)
    data_point_14 = ct.geo.extract_point(data,lon=158.5906,lat=-75.6166)
    data_point_15 = ct.geo.extract_point(data,lon=162.8956,lat=-74.1766)
    data_point_16 = ct.geo.extract_point(data,lon=164.2205,lat=-74.6159)
    #print(data_point_1)
    
    
    
    
    download_point_01=ct.cdm.to_csv(data=data_point_01)
    download_point_02=ct.cdm.to_csv(data=data_point_02)
    download_point_03=ct.cdm.to_csv(data=data_point_03)
    download_point_04=ct.cdm.to_csv(data=data_point_04)
    download_point_05=ct.cdm.to_csv(data=data_point_05)
    download_point_06=ct.cdm.to_csv(data=data_point_06)
    download_point_07=ct.cdm.to_csv(data=data_point_07)
    download_point_08=ct.cdm.to_csv(data=data_point_08)
    download_point_09=ct.cdm.to_csv(data=data_point_09)
    download_point_10=ct.cdm.to_csv(data=data_point_10)
    download_point_11=ct.cdm.to_csv(data=data_point_11)
    download_point_12=ct.cdm.to_csv(data=data_point_12)
    download_point_13=ct.cdm.to_csv(data=data_point_13)
    download_point_14=ct.cdm.to_csv(data=data_point_14)
    download_point_15=ct.cdm.to_csv(data=data_point_15)
    download_point_16=ct.cdm.to_csv(data=data_point_16)
    return fig,  download_point_01,  download_point_02,  download_point_03,  download_point_04,  download_point_05,  download_point_06,  download_point_07,  download_point_08,  download_point_09,  download_point_10,  download_point_11,  download_point_12,  download_point_13,  download_point_14,  download_point_15,  download_point_16#test2, test3