#!/usr/bin/env python3

# this version uses wgrib2 to regrid the files, see 
#   https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/new_grid.html
# for more details

import pywgrib2_s

in_file='a.grb'
in_file_ordered='a_order.grb'
in_file_reject='a_missing.grb'
out='a_regrid_1x1.grb'

err=pywgrib2_s.wgrib2([in_file,'-new_grid_order',in_file_ordered,in_file_reject,'-inv','/dev/null'])
print("put file in order for -new_grid err=", err)

# call wgrib2 to regrid the file
err = pywgrib2_s.wgrib2( [in_file_ordered, '-rewind_init', in_file_ordered, '-new_grid_winds', 'earth', 
  '-set_grib_type' , 'c3', '-new_grid', 'latlon', '0:360:1.0', '-90:181:1.0',  out, '-inv', '/dev/null' ] )
print("regrid err=", err)

# close the output file in order to flush buffers, Only needed
# if want to read the program before buffers are flushed.

err = pywgrib2_s.close(out)
print("close output file err=", err)