rubisco-sfa / ILAMB

Python software used in the International Land Model Benchmarking (ILAMB) project
BSD 3-Clause "New" or "Revised" License
46 stars 37 forks source link

What is the conventional way to deal with the unit difference between the benchmark data for the same variable? #56

Open XueliHuo opened 2 years ago

XueliHuo commented 2 years ago

Hi I encountered a problem. I am creating the netcdf file to contain the model data I have. When I compared the albedo from the model to the benchmark datasets from CERES and GEWEX.SRB, I found that the albedo units in the two different benchmark datasets are different. And the albedo unit from the model is consistent with CERES while not with GEWEX.SRB. So when I run ILAMB to compare the model albedo with the GEWEX.SRB, it raised the UnitConversionError.

My question is is there any conventional way to define the alternative units for the albedo from the model to be consistent with each of the benchmark dataset in the configuration file or by any other way instead of recreating the nc file that contains the albedo from the model with the consistent unit as the benchmark dataset?

Thanks

XueliHuo commented 2 years ago

Another question is how to deal with the situation with which for different variables the corresponding benchmark datasets have different time span. For example, for ET the benchmark dataset is 1984-2007 and for albedo the benchmark dataset is 2010-2018. And the model data is from 2010-2018. If I want to compare both ET and albedo, I can not achieve the goal by adding the --model_year in the configuration file. So any suggestion to deal with such a situation ?

I am not a python expert. I am wondering whether I could combine the pkl file generated when only comparing albedo and the pkl file generated when only comparing ET (in a similar way as the combining two netcdf files).

Thanks.

nocollier commented 2 years ago

I am so sorry that this issue fell off of my radar completely. Is this still an issue for you?

I am just now noticing that our CERES data has an albedo unit of W m-2 which I believe to be an error. Probably it was a copy-paste error but it is curious that ILAMB seems to run fine with that error. Albedo should unitless or 1.

If your model files simply provide the component radiations in consistent units, you should be fine.

The situation you describe for the ET comparison has 2 possible solutions:

  1. You can create a new dataset by editting the ET file and moving the times
  2. You can run with -model_year for just ET and then rerun (without cleaning) without the -model_year. The ET data will be cached and appear alongside your albedo comparison.