NVIDIA / earth2mip

Earth-2 Model Intercomparison Project (MIP) is a python framework that enables climate researchers and scientists to inter-compare AI models for weather and climate.

Home Page:https://nvidia.github.io/earth2mip/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸš€[FEA]: Improve deterministic inference UX

nbren12 opened this issue Β· comments

Is this a new feature, an improvement, or a change to existing functionality?

Improvement

How would you describe the priority of this feature request

Medium

Please provide a clear description of problem you would like to solve.

Basic deterministic inference with e2mip is rather difficult and non-intuitive for some users. I've seen multiple users give up on the tool because of it.

xarray does not support netCDF groups well, so it looks like the output data is empty when using xarray.open_dataset. The solution is to pass xarray.open_dataset(path, group="group").

Likewise, most users simply want to run a deterministic forecast with a few output fields. This is too difficult to do right now, and requires a configuration like this:

    config_dict = {
        "simulation_length": nt,
        "weather_event": {
            "properties": {
                "name": "Globe",
                "start_time": "2018-01-02 00:00:00",
                "initial_condition_source": "cds",
            },
            "domains": [
                {
                    "name": "global",
                    "type": "Window",
                    "diagnostics": [{"type": "raw", "channels": ["t2m", "z500"]}],
                }
            ],
        },
        "output_path": output_path,
        "weather_model": "this value is overrided",
        "output_frequency": 4,
    }

Perhaps we could a simple convenience function for deterministic forecasts:

def run_deterministic(time_loop, data_source,  length: datetime.timedelta, channels: list[str], output_path: str, frequency: datetime.timedelta):
    

Describe any alternatives you have considered

No response

Could just add these options to run_basic_inference.