Skip to content

PCRGlob model does not like forcings generated with eWatercycle package #4

@sverhoeven

Description

@sverhoeven

I ran

    import pandas as pd
    import ewatercycle.analysis
    import ewatercycle.forcing
    import ewatercycle.models
    import ewatercycle.observation.grdc
    import ewatercycle.parameter_sets

    parameter_set = ewatercycle.parameter_sets.get_parameter_set('pcrglobwb_example_case')

    forcing = ewatercycle.forcing.generate(
        target_model='pcrglobwb',
        dataset='ERA5',
        start_time='1992-01-01T00:00:00Z',
        end_time='1992-12-31T00:00:00Z',
        shape='Meuse/Meuse.shp',
        model_specific_options=dict(
            start_time_climatology='1991-01-01T00:00:00Z',
            end_time_climatology='1991-12-31T00:00:00Z',
        )
    )

    model = ewatercycle.models.PCRGlobWB(version="setters", parameter_set=parameter_set, forcing=forcing)

    cfg_file, cfg_dir = model.setup(max_spinups_in_years=1)

    model.initialize(cfg_file)

    observations_df, station_info = ewatercycle.observation.grdc.get_grdc_data(
        station_id=6421500,
        start_time=model.start_time_as_isostr,
        end_time=model.end_time_as_isostr,
    )
    station_lon = station_info['grdc_longitude_in_arc_degree']
    station_lat = station_info['grdc_latitude_in_arc_degree']

    simulated_discharge = []
    timestamps = []
    while (model.time < model.end_time):
        model.update()
        discharge = model.get_value_at_coords('discharge', lat=[station_lat], lon=[station_lon])
        simulated_discharge.append(discharge)
        timestamps.append(model.time_as_datetime)

But on call to model.update() it raised following exception

_InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
	status = StatusCode.UNKNOWN
	details = "Exception calling application: 'precipitation'"
	debug_error_string = "{"created":"@1626168569.168831104","description":"Error received from peer ipv6:[::1]:44483","file":"src/core/lib/surface/call.cc","file_line":1066,"grpc_message":"Exception calling application: 'precipitation'","grpc_status":2}"

The log file showed:

2021-07-13 09:25:21,960 bmiPcrglobwb INFO Shape of maps is (13, 17)
2021-07-13 09:25:21,960 bmiPcrglobwb INFO PCRGlobWB Initialized
2021-07-13 09:29:29,133 pcrglobwb INFO Reading forcings for time 1992-01-01
2021-07-13 09:29:29,167 grpc._server ERROR Exception calling application: 'precipitation'
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/grpc/_server.py", line 435, in _call_behavior
    response_or_iterator = behavior(argument, context)
  File "/usr/local/lib/python2.7/dist-packages/grpc4bmi/bmi_grpc_server.py", line 31, in update
    self.bmi_model_.update()
  File "/opt/PCR-GLOBWB_model/model/bmiPcrglobwb.py", line 211, in update
    self.model.read_forcings()
  File "/opt/PCR-GLOBWB_model/model/pcrglobwb.py", line 439, in read_forcings
    self.meteo.read_forcings(self._modelTime)
  File "/opt/PCR-GLOBWB_model/model/meteo.py", line 388, in read_forcings
    LatitudeLongitude = True)
  File "/opt/PCR-GLOBWB_model/model/virtualOS.py", line 365, in netcdf2PCRobjClone
    cropData = f.variables[varName][int(idx),:,:]       # still original data
KeyError: 'precipitation'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions