1919import pyproj
2020import xarray as xr
2121
22-
2322# TODO(converters): Write methods for converting Proj.4 projection definitions
2423# into CF grid mapping attributes. Currently this has been implemented for
2524# the stereographic projection.
@@ -330,17 +329,22 @@ def convert_output_to_xarray_dataset(
330329 precip_var = dataset .attrs ["precip_var" ]
331330 metadata = dataset [precip_var ].attrs
332331
333- last_timestamp = (
332+ forecast_reference_time = (
334333 dataset ["time" ][- 1 ].values .astype ("datetime64[us]" ).astype (datetime )
335334 )
336335 time_metadata = dataset ["time" ].attrs
337336 time_encoding = dataset ["time" ].encoding
338337 timestep_seconds = dataset ["time" ].attrs ["stepsize" ]
339338 dataset = dataset .drop_vars ([precip_var ]).drop_dims (["time" ])
339+ if "velocity_x" in dataset :
340+ dataset = dataset .drop_vars (["velocity_x" ])
341+ if "velocity_y" in dataset :
342+ dataset = dataset .drop_vars (["velocity_y" ])
340343 if isinstance (timesteps , int ):
341344 timesteps = list (range (1 , timesteps + 1 ))
342345 next_timestamps = [
343- last_timestamp + timedelta (seconds = timestep_seconds * i ) for i in timesteps
346+ forecast_reference_time + timedelta (seconds = timestep_seconds * i )
347+ for i in timesteps
344348 ]
345349 dataset = dataset .assign_coords (
346350 {"time" : (["time" ], next_timestamps , time_metadata , time_encoding )}
@@ -364,4 +368,15 @@ def convert_output_to_xarray_dataset(
364368 else :
365369 dataset [precip_var ] = (["time" , "y" , "x" ], output , metadata )
366370
371+ dataset = dataset .assign_coords (
372+ {
373+ "forecast_reference_time" : (
374+ [],
375+ forecast_reference_time ,
376+ {"long_name" : "forecast reference time" },
377+ time_encoding ,
378+ )
379+ }
380+ )
381+
367382 return dataset
0 commit comments