Skip to content

Conversation

@znichollscr
Copy link
Collaborator

Just a demo script for now. @wolfiex should I turn this into a validation script (returns 0 if all good, 1 if not) and associated GitHub action or do you want to handle this validation another way?

@znichollscr
Copy link
Collaborator Author

znichollscr commented Aug 27, 2025

For reference, issues this is picking up with v0.10.0 of the mapper and DR v1.2.2

Details
$ python scripts/check-branded-variables.py

For 3hr.tslsi, branded_variable_name=tslsi_tpt-u-hxy-u but it should be tslsi_tpt-u-hxy-lsi given variableRootDD=tslsi, cell_methods='area: mean (over land and sea ice) time: point' and dimensions='longitude latitude time1'

For AERday.co, branded_variable_name=co_tavg-h2m-hxy-u but it should be co_tavg-u-hxy-u given variableRootDD=co, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERday.mmraerh2o, branded_variable_name=mmraerh2o_tavg-h2m-hxy-u but it should be mmraerh2o_tavg-u-hxy-u given variableRootDD=mmraerh2o, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERday.mmrbc, branded_variable_name=mmrbc_tavg-h2m-hxy-u but it should be mmrbc_tavg-u-hxy-u given variableRootDD=mmrbc, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERday.mmrdust, branded_variable_name=mmrdust_tavg-h2m-hxy-u but it should be mmrdust_tavg-u-hxy-u given variableRootDD=mmrdust, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERday.mmrnh4, branded_variable_name=mmrnh4_tavg-h2m-hxy-u but it should be mmrnh4_tavg-u-hxy-u given variableRootDD=mmrnh4, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERday.mmrno3, branded_variable_name=mmrno3_tavg-h2m-hxy-u but it should be mmrno3_tavg-u-hxy-u given variableRootDD=mmrno3, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERday.mmroa, branded_variable_name=mmroa_tavg-h2m-hxy-u but it should be mmroa_tavg-u-hxy-u given variableRootDD=mmroa, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERday.mmrso4, branded_variable_name=mmrso4_tavg-h2m-hxy-u but it should be mmrso4_tavg-u-hxy-u given variableRootDD=mmrso4, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERday.mmrsoa, branded_variable_name=mmrsoa_tavg-h2m-hxy-u but it should be mmrsoa_tavg-u-hxy-u given variableRootDD=mmrsoa, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERday.mmrss, branded_variable_name=mmrss_tavg-h2m-hxy-u but it should be mmrss_tavg-u-hxy-u given variableRootDD=mmrss, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERday.sfo3max, branded_variable_name=o3_tmax-h2m-hxy-u but it should be o3_tmax-u-hxy-u given variableRootDD=o3, cell_methods='area: mean time: maximum' and dimensions='longitude latitude time lowerModelLayer'

For AERday.sfpm1, branded_variable_name=sfpm1_tavg-h2m-hxy-u but it should be sfpm1_tavg-u-hxy-u given variableRootDD=sfpm1, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERday.sfpm10, branded_variable_name=sfpm10_tavg-h2m-hxy-u but it should be sfpm10_tavg-u-hxy-u given variableRootDD=sfpm10, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERday.sfpm25, branded_variable_name=sfpm25_tavg-h2m-hxy-u but it should be sfpm25_tavg-u-hxy-u given variableRootDD=sfpm25, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERday.so2, branded_variable_name=so2_tavg-h2m-hxy-u but it should be so2_tavg-u-hxy-u given variableRootDD=so2, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERfx.o3refClim, branded_variable_name=o3ref_tclm-al-hxy-u but it should be o3ref_ti-al-hxy-u given variableRootDD=o3ref, cell_methods='area: time: mean (monthly mean fixed annual cycle)' and dimensions='longitude latitude alevel timefxc'

For AERhr.sfno2, branded_variable_name=no2_tavg-h2m-hxy-u but it should be no2_tavg-u-hxy-u given variableRootDD=no2, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERhr.sfo3, branded_variable_name=o3_tavg-h2m-hxy-u but it should be o3_tavg-u-hxy-u given variableRootDD=o3, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERhr.sfpm1, branded_variable_name=sfpm1_tavg-h2m-hxy-u but it should be sfpm1_tavg-u-hxy-u given variableRootDD=sfpm1, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERhr.sfpm10, branded_variable_name=sfpm10_tavg-h2m-hxy-u but it should be sfpm10_tavg-u-hxy-u given variableRootDD=sfpm10, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For AERhr.sfpm25, branded_variable_name=sfpm25_tavg-h2m-hxy-u but it should be sfpm25_tavg-u-hxy-u given variableRootDD=sfpm25, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For CFsubhr.sci, branded_variable_name=sci_tavg-u-hxys-u but it should be sci_tpt-u-hxys-u given variableRootDD=sci, cell_methods='area: point time: point' and dimensions='site time1'

For E3hrPt.mmraerh2o, branded_variable_name=mmraerh2o_tpt-h2m-hxys-u but it should be mmraerh2o_tpt-u-hxys-u given variableRootDD=mmraerh2o, cell_methods='area: point time: point' and dimensions='site time1 lowerModelLayer'

For E3hrPt.mmrbc, branded_variable_name=mmrbc_tpt-h2m-hxys-u but it should be mmrbc_tpt-u-hxys-u given variableRootDD=mmrbc, cell_methods='area: point time: point' and dimensions='site time1 lowerModelLayer'

For E3hrPt.mmrdust, branded_variable_name=mmrdust_tpt-h2m-hxys-u but it should be mmrdust_tpt-u-hxys-u given variableRootDD=mmrdust, cell_methods='area: point time: point' and dimensions='site time1 lowerModelLayer'

For E3hrPt.mmrnh4, branded_variable_name=mmrnh4_tpt-h2m-hxys-u but it should be mmrnh4_tpt-u-hxys-u given variableRootDD=mmrnh4, cell_methods='area: point time: point' and dimensions='site time1 lowerModelLayer'

For E3hrPt.mmrno3, branded_variable_name=mmrno3_tpt-h2m-hxys-u but it should be mmrno3_tpt-u-hxys-u given variableRootDD=mmrno3, cell_methods='area: point time: point' and dimensions='site time1 lowerModelLayer'

For E3hrPt.mmroa, branded_variable_name=mmroa_tpt-h2m-hxys-u but it should be mmroa_tpt-u-hxys-u given variableRootDD=mmroa, cell_methods='area: point time: point' and dimensions='site time1 lowerModelLayer'

For E3hrPt.mmrso4, branded_variable_name=mmrso4_tpt-h2m-hxys-u but it should be mmrso4_tpt-u-hxys-u given variableRootDD=mmrso4, cell_methods='area: point time: point' and dimensions='site time1 lowerModelLayer'

For E3hrPt.mmrss, branded_variable_name=mmrss_tpt-h2m-hxys-u but it should be mmrss_tpt-u-hxys-u given variableRootDD=mmrss, cell_methods='area: point time: point' and dimensions='site time1 lowerModelLayer'

For E3hrPt.so2, branded_variable_name=so2_tavg-h2m-hxy-u but it should be so2_tpt-u-hxys-u given variableRootDD=so2, cell_methods='area: point time: point' and dimensions='site time1 lowerModelLayer'

For Eday.esn, branded_variable_name=esn_tavg-u-hxy-sn but it should be esn_tavg-u-hxy-lnd given variableRootDD=esn, cell_methods='area: mean where land time: mean' and dimensions='longitude latitude time'

For Eday.tsns, branded_variable_name=ts_tavg-u-hxy-sn but it should be ts_tavg-u-hxy-lnd given variableRootDD=ts, cell_methods='area: mean where land time: mean (weighted by snow area)' and dimensions='longitude latitude time'

For Emon.albc, branded_variable_name=albc_tavg-u-hxy-veg but it should be albc_tavg-u-hxy-lnd given variableRootDD=albc, cell_methods='area: mean where land time: mean' and dimensions='longitude latitude time'

For Emon.cnc, branded_variable_name=cnc_tavg-u-hxy-u but it should be cnc_tavg-u-hxy-lnd given variableRootDD=cnc, cell_methods='area: mean where land time: mean' and dimensions='longitude latitude time'

For Emon.co2s, branded_variable_name=co2_tavg-h2m-hxy-u but it should be co2_tavg-u-hxy-u given variableRootDD=co2, cell_methods='area: time: mean' and dimensions='longitude latitude time lowerModelLayer'

For LImon.snc, branded_variable_name=snc_tavg-u-hxy-lnd but it should be snc_tavg-u-hxy-u given variableRootDD=snc, cell_methods='area: time: mean' and dimensions='longitude latitude time'

For Oday.co3os, branded_variable_name=co3_tavg-d0m-hxy-sea but it should be co3_tavg-u-hxy-sea given variableRootDD=co3, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Oday.co3sataragos, branded_variable_name=co3satarag_tavg-d0m-hxy-sea but it should be co3satarag_tavg-u-hxy-sea given variableRootDD=co3satarag, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Oday.o2os, branded_variable_name=o2_tavg-d0m-hxy-sea but it should be o2_tavg-u-hxy-sea given variableRootDD=o2, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Oday.phos, branded_variable_name=ph_tavg-d0m-hxy-sea but it should be ph_tavg-u-hxy-sea given variableRootDD=ph, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Oday.phycos, branded_variable_name=phyc_tavg-d0m-hxy-sea but it should be phyc_tavg-u-hxy-sea given variableRootDD=phyc, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Oday.phydiatos, branded_variable_name=phydiat_tavg-d0m-hxy-sea but it should be phydiat_tavg-u-hxy-sea given variableRootDD=phydiat, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Oday.phydiazos, branded_variable_name=phydiaz_tavg-d0m-hxy-sea but it should be phydiaz_tavg-u-hxy-sea given variableRootDD=phydiaz, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Oday.phymiscos, branded_variable_name=phymisc_tavg-d0m-hxy-sea but it should be phymisc_tavg-u-hxy-sea given variableRootDD=phymisc, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Oday.phypico, branded_variable_name=phypico_tavg-d0m-hxy-sea but it should be phypico_tavg-u-hxy-sea given variableRootDD=phypico, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Oday.uos, branded_variable_name=uos_tavg-u-hxy-sea but it should be uos_tavg-d0m-hxy-sea given variableRootDD=uos, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time depth0m'

For Oday.vos, branded_variable_name=vos_tavg-u-hxy-sea but it should be vos_tavg-d0m-hxy-sea given variableRootDD=vos, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time depth0m'

For Omon.aragos, branded_variable_name=arag_tavg-d0m-hxy-sea but it should be arag_tavg-u-hxy-sea given variableRootDD=arag, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.baccos, branded_variable_name=bacc_tavg-d0m-hxy-sea but it should be bacc_tavg-u-hxy-sea given variableRootDD=bacc, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.calcos, branded_variable_name=calc_tavg-d0m-hxy-sea but it should be calc_tavg-u-hxy-sea given variableRootDD=calc, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.calcosSouth30, branded_variable_name=calc_tavg-d0m-hxy-sea but it should be calc_tavg-u-hxy-sea given variableRootDD=calc, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.chlcalcos, branded_variable_name=chlcalc_tavg-d0m-hxy-sea but it should be chlcalc_tavg-u-hxy-sea given variableRootDD=chlcalc, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.chldiatos, branded_variable_name=chldiat_tavg-d0m-hxy-sea but it should be chldiat_tavg-u-hxy-sea given variableRootDD=chldiat, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.chldiazos, branded_variable_name=chldiaz_tavg-d0m-hxy-sea but it should be chldiaz_tavg-u-hxy-sea given variableRootDD=chldiaz, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.chlmiscos, branded_variable_name=chlmisc_tavg-d0m-hxy-sea but it should be chlmisc_tavg-u-hxy-sea given variableRootDD=chlmisc, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.chlos, branded_variable_name=chl_tavg-d0m-hxy-sea but it should be chl_tavg-u-hxy-sea given variableRootDD=chl, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.chlosSouth30, branded_variable_name=chl_tavg-d0m-hxy-sea but it should be chl_tavg-u-hxy-sea given variableRootDD=chl, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.chlpicoos, branded_variable_name=chlpico_tavg-d0m-hxy-sea but it should be chlpico_tavg-u-hxy-sea given variableRootDD=chlpico, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.dfeos, branded_variable_name=dfe_tavg-d0m-hxy-sea but it should be dfe_tavg-u-hxy-sea given variableRootDD=dfe, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.dfeosSouth30, branded_variable_name=dfe_tavg-d0m-hxy-sea but it should be dfe_tavg-u-hxy-sea given variableRootDD=dfe, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.dissi13cos, branded_variable_name=dissi13c_tavg-d0m-hxy-sea but it should be dissi13c_tavg-u-hxy-sea given variableRootDD=dissi13c, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.dissi14cabioos, branded_variable_name=dissi14cabio_tavg-d0m-hxy-sea but it should be dissi14cabio_tavg-u-hxy-sea given variableRootDD=dissi14cabio, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.dissicos, branded_variable_name=dissic_tavg-d0m-hxy-sea but it should be dissic_tavg-u-hxy-sea given variableRootDD=dissic, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.dmsos, branded_variable_name=dmso_tavg-d0m-hxy-sea but it should be dmso_tavg-u-hxy-sea given variableRootDD=dmso, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.dmsosSouth30, branded_variable_name=dmso_tavg-d0m-hxy-sea but it should be dmso_tavg-u-hxy-sea given variableRootDD=dmso, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.dpco2, branded_variable_name=dpco2_tavg-u-hxy-sea but it should be dpco2_tavg-d0m-hxy-sea given variableRootDD=dpco2, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time depth0m'

For Omon.msftyrho, branded_variable_name=msfty_tavg-rho-hys-sea but it should be msfty_tavg-rho-hm-sea given variableRootDD=msfty, cell_methods='grid_longitude: sum where sea time: mean' and dimensions='rho basin time'

For Omon.msftyrhompa, branded_variable_name=msftypa_tavg-rho-hys-sea but it should be msftypa_tavg-rho-hm-sea given variableRootDD=msftypa, cell_methods='grid_longitude: sum where sea time: mean' and dimensions='rho basin time'

For Omon.msftyz, branded_variable_name=msfty_tavg-ol-hys-sea but it should be msfty_tavg-ol-ht-sea given variableRootDD=msfty, cell_methods='grid_longitude: sum where sea time: mean' and dimensions='gridlatitude olevel basin time'

For Omon.msftyzmpa, branded_variable_name=msftypa_tavg-ol-hys-sea but it should be msftypa_tavg-ol-ht-sea given variableRootDD=msftypa, cell_methods='grid_longitude: sum where sea time: mean' and dimensions='gridlatitude olevel basin time'

For Omon.nh4os, branded_variable_name=nh4_tavg-d0m-hxy-sea but it should be nh4_tavg-u-hxy-sea given variableRootDD=nh4, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.no3os, branded_variable_name=no3_tavg-d0m-hxy-sea but it should be no3_tavg-u-hxy-sea given variableRootDD=no3, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.no3osSouth30, branded_variable_name=no3_tavg-d0m-hxy-sea but it should be no3_tavg-u-hxy-sea given variableRootDD=no3, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.o2os, branded_variable_name=o2_tavg-d0m-hxy-sea but it should be o2_tavg-u-hxy-sea given variableRootDD=o2, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.phos, branded_variable_name=ph_tavg-d0m-hxy-sea but it should be ph_tavg-u-hxy-sea given variableRootDD=ph, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.phycalcos, branded_variable_name=phycalc_tavg-d0m-hxy-sea but it should be phycalc_tavg-u-hxy-sea given variableRootDD=phycalc, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.phycos, branded_variable_name=phyc_tavg-d0m-hxy-sea but it should be phyc_tavg-u-hxy-sea given variableRootDD=phyc, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.phycosSouth30, branded_variable_name=phyc_tavg-d0m-hxy-sea but it should be phyc_tavg-u-hxy-sea given variableRootDD=phyc, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.phydiatos, branded_variable_name=phydiatos_tavg-d0m-hxy-sea but it should be phydiatos_tavg-u-hxy-sea given variableRootDD=phydiatos, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.phydiazos, branded_variable_name=phydiazos_tavg-d0m-hxy-sea but it should be phydiazos_tavg-u-hxy-sea given variableRootDD=phydiazos, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.phymiscos, branded_variable_name=phymisc_tavg-d0m-hxy-sea but it should be phymisc_tavg-u-hxy-sea given variableRootDD=phymisc, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.phypicoos, branded_variable_name=phypico_tavg-d0m-hxy-sea but it should be phypico_tavg-u-hxy-sea given variableRootDD=phypico, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.sios, branded_variable_name=si_tavg-d0m-hxy-sea but it should be si_tavg-u-hxy-sea given variableRootDD=si, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For Omon.spco2, branded_variable_name=spco2_tavg-u-hxy-sea but it should be spco2_tavg-d0m-hxy-sea given variableRootDD=spco2, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time depth0m'

For Omon.spco2South30, branded_variable_name=spco2_tavg-u-hxy-sea but it should be spco2_tavg-d0m-hxy-sea given variableRootDD=spco2, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time depth0m'

For SIday.siitdconc, branded_variable_name=siitdconc_tavg-u-hxy-u but it should be siitdconc_tavg-u-hxy-si given variableRootDD=siitdconc, cell_methods='area: time: mean where sea_ice (mask=siconc)' and dimensions='longitude latitude iceband time'

For SImon.sidmassevapsubl, branded_variable_name=evspsbl_tavg-u-hxy-si but it should be evspsbl_tavg-u-hxy-sea given variableRootDD=evspsbl, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'

For SImon.siitdconc, branded_variable_name=siitdconc_tavg-u-hxy-u but it should be siitdconc_tavg-u-hxy-si given variableRootDD=siitdconc, cell_methods='area: time: mean where sea_ice (mask=siconc)' and dimensions='longitude latitude iceband time'

For SImon.sivol, branded_variable_name=sieqthick_tavg-u-hxy-u but it should be sieqthick_tavg-u-hxy-sea given variableRootDD=sieqthick, cell_methods='area: mean where sea time: mean' and dimensions='longitude latitude time'
            compound_name       component exp_value actual_value                                    cell_methods                               dimensions
0               3hr.tslsi      area_label       lsi            u  area: mean (over land and sea ice) time: point                 longitude latitude time1
1               AERday.co  vertical_label         u          h2m                                area: time: mean  longitude latitude time lowerModelLayer
2        AERday.mmraerh2o  vertical_label         u          h2m                                area: time: mean  longitude latitude time lowerModelLayer
3            AERday.mmrbc  vertical_label         u          h2m                                area: time: mean  longitude latitude time lowerModelLayer
4          AERday.mmrdust  vertical_label         u          h2m                                area: time: mean  longitude latitude time lowerModelLayer
..                    ...             ...       ...          ...                                             ...                                      ...
88      Omon.spco2South30  vertical_label       d0m            u                 area: mean where sea time: mean          longitude latitude time depth0m
89        SIday.siitdconc      area_label        si            u    area: time: mean where sea_ice (mask=siconc)          longitude latitude iceband time
90  SImon.sidmassevapsubl      area_label       sea           si                 area: mean where sea time: mean                  longitude latitude time
91        SImon.siitdconc      area_label        si            u    area: time: mean where sea_ice (mask=siconc)          longitude latitude iceband time
92            SImon.sivol      area_label       sea            u                 area: mean where sea time: mean                  longitude latitude time

[93 rows x 6 columns]

Issues for 91 compound names

component
vertical_label      75
area_label          10
horizontal_label     5
temporal_label       3
Name: count, dtype: int64

           component exp_value actual_value                                              cell_methods                               dimensions
34        area_label       lnd           sn                          area: mean where land time: mean                  longitude latitude time
35        area_label       lnd           sn  area: mean where land time: mean (weighted by snow area)                  longitude latitude time
37        area_label       lnd            u                          area: mean where land time: mean                  longitude latitude time
36        area_label       lnd          veg                          area: mean where land time: mean                  longitude latitude time
0         area_label       lsi            u            area: mean (over land and sea ice) time: point                 longitude latitude time1
90        area_label       sea           si                           area: mean where sea time: mean                  longitude latitude time
92        area_label       sea            u                           area: mean where sea time: mean                  longitude latitude time
89        area_label        si            u              area: time: mean where sea_ice (mask=siconc)          longitude latitude iceband time
39        area_label         u          lnd                                          area: time: mean                  longitude latitude time
70  horizontal_label        hm          hys                  grid_longitude: sum where sea time: mean                           rho basin time
72  horizontal_label        ht          hys                  grid_longitude: sum where sea time: mean           gridlatitude olevel basin time
33  horizontal_label      hxys          hxy                                   area: point time: point               site time1 lowerModelLayer
16    temporal_label        ti         tclm        area: time: mean (monthly mean fixed annual cycle)        longitude latitude alevel timefxc
22    temporal_label       tpt         tavg                                   area: point time: point                               site time1
31    temporal_label       tpt         tavg                                   area: point time: point               site time1 lowerModelLayer
49    vertical_label       d0m            u                           area: mean where sea time: mean          longitude latitude time depth0m
40    vertical_label         u          d0m                           area: mean where sea time: mean                  longitude latitude time
11    vertical_label         u          h2m                                  area: mean time: maximum  longitude latitude time lowerModelLayer
23    vertical_label         u          h2m                                   area: point time: point               site time1 lowerModelLayer
1     vertical_label         u          h2m                                          area: time: mean  longitude latitude time lowerModelLayer

20 different kinds of errors

                                         n_affected                                                                          affected_compounds
component        exp_value actual_value
area_label       lnd       sn                     1                                                                                  [Eday.esn]
                           sn                     1                                                                                 [Eday.tsns]
                           u                      1                                                                                  [Emon.cnc]
                           veg                    1                                                                                 [Emon.albc]
                 lsi       u                      1                                                                                 [3hr.tslsi]
                 sea       si                     1                                                                     [SImon.sidmassevapsubl]
                           u                      1                                                                               [SImon.sivol]
                 si        u                      2                                                          [SIday.siitdconc, SImon.siitdconc]
                 u         lnd                    1                                                                                 [LImon.snc]
horizontal_label hm        hys                    2                                                           [Omon.msftyrho, Omon.msftyrhompa]
                 ht        hys                    2                                                               [Omon.msftyz, Omon.msftyzmpa]
                 hxys      hxy                    1                                                                                [E3hrPt.so2]
temporal_label   ti        tclm                   1                                                                           [AERfx.o3refClim]
                 tpt       tavg                   1                                                                               [CFsubhr.sci]
                           tavg                   1                                                                                [E3hrPt.so2]
vertical_label   d0m       u                      5                             [Oday.uos, Oday.vos, Omon.dpco2, Omon.spco2, Omon.spco2South30]
                 u         d0m                   40              ['Oday.co3os', 'Oday.co3sataragos', 'Oday.o2os', 'Oday.phos', 'Oday.phycos'...
                           h2m                    1                                                                            [AERday.sfo3max]
                           h2m                    9  ['E3hrPt.mmraerh2o', 'E3hrPt.mmrbc', 'E3hrPt.mmrdust', 'E3hrPt.mmrnh4', 'E3hrPt.mmrno3'...
                           h2m                   20      ['AERday.co', 'AERday.mmraerh2o', 'AERday.mmrbc', 'AERday.mmrdust', 'AERday.mmrnh4'...
                                                                                                                              comment         component exp_value actual_value
34                                                                                    cell_methods should be 'area: mean where snow'?        area_label       lnd           sn
35                                                                                    cell_methods should be 'area: mean where snow'?        area_label       lnd           sn
37                                            Error applying branding algorithm, should be fixed with a simple re-run over the DR (?)        area_label       lnd            u
36                                                                              cell_methods should be 'area: mean where vegetation'?        area_label       lnd          veg
0                                                                               needs re-run of branding algorithm to fix known issue        area_label       lsi            u
90                                                                                 cell_methods should be 'area: mean where sea_ice'?        area_label       sea           si
92                                                                                 cell_methods should be 'area: mean where sea_ice'?        area_label       sea            u
89  unclear if branding algorithm needs an update (i.e. actual_value is correct, this should be unspecified because of the weird m...        area_label        si            u
39                                                               cell_methods should be 'area: mean where sea_ice' (same as day.snc)?        area_label         u          lnd
70                                                                                   Need to check branding algorithm logic with Karl  horizontal_label        hm          hys
72                                                                                   Need to check branding algorithm logic with Karl  horizontal_label        ht          hys
33                                                                                   Need to check branding algorithm logic with Karl  horizontal_label      hxys          hxy
16                   is dimension 'timefxc' a thing? If yes, need to update the branding algorithm. If no, need to fix the dimensions    temporal_label        ti         tclm
22                                            Error applying branding algorithm, should be fixed with a simple re-run over the DR (?)    temporal_label       tpt         tavg
31                                            Error applying branding algorithm, should be fixed with a simple re-run over the DR (?)    temporal_label       tpt         tavg
49                                            Error applying branding algorithm, should be fixed with a simple re-run over the DR (?)    vertical_label       d0m            u
40                                                                                             need to add depth0m to the dimensions?    vertical_label         u          d0m
11                              need to add height2m to the dimensions? Is 'lowerModelLayer' a dimension we should be able to handle?    vertical_label         u          h2m
23                              need to add height2m to the dimensions? Is 'lowerModelLayer' a dimension we should be able to handle?    vertical_label         u          h2m
1                               need to add height2m to the dimensions? Is 'lowerModelLayer' a dimension we should be able to handle?    vertical_label         u          h2m

Copy link
Member

@wolfiex wolfiex left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we move the requirements.txt to the scripts folder?

@znichollscr
Copy link
Collaborator Author

znichollscr commented Sep 11, 2025

Sure. Thoughts on the question raised here: #37 (comment) ?

I can do link, ID, file structure validation separately (as that can be used across all repos.

Branding validation as a separate script makes sense here with any other more specific (science based) checks.

I would probably also make sure the labels entries match the constructed id as part of it too.

@wolfiex
Copy link
Member

wolfiex commented Sep 12, 2025

If we are running it continuously, I would make it produce a pretty md report, and have a flag to create an issue outlining the problems it finds.

@znichollscr
Copy link
Collaborator Author

That's an option. Surely it's better to just run it as a validation step in CI so that we never merge anything with broken information in the first place (if you fail CI, don't merge).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants