WCRP-CORDEX / data-request-table

Machine readable data request tables
MIT License
0 stars 0 forks source link

setup new webpage for searching the DR #31

Open larsbuntemeyer opened 4 months ago

larsbuntemeyer commented 4 months ago

We had one in the old data request, we should reimplement that here:

See als example from IMPETUS:

larsbuntemeyer commented 4 months ago

prototype code to create excel with one sheet per prio and a grouped overview:

import pandas as pd

cols = ['out_name', 'standard_name', 'long_name', 'cell_methods']

def human_readable(df):
    return df.groupby(cols)['frequency'].apply(list).to_frame()#.reset_index()

#df.groupby('priority').apply(human_readable, include_groups=False)
df = pd.read_csv("CORDEX-CMIP6/data-request.csv")
#human_readable(df)
sheets = {k: human_readable(v) for k, v in df.groupby('priority')}

with pd.ExcelWriter('data-request.xlsx') as writer:
    for k, v in sheets.items():
        v.to_excel(writer, sheet_name=k, index=True)
        nlevels = v.index.nlevels + len(v.columns)
        worksheet = writer.sheets[k]  # pull worksheet object
        for i in range(nlevels):
            worksheet.set_column(i, i, 40)
#        for idx, col in enumerate(v):  # loop through all columns
#            print(idx)
#            series = v[col]
#            max_len = max((
#                series.astype(str).map(len).max(),  # len of largest item
#                len(str(series.name))  # len of column name/header
#                )) + 1  # adding a little extra space
#            worksheet.set_column(idx, idx, max_len)  # set column width