#!/usr/bin/env python3
# example of packing and using memory files
import pywgrib2_s
import numpy
in_file='a.grb'
inv='@mem:0'
print("demonstrate read and write from memory files")
# use memory file 0 to store inventory
err=pywgrib2_s.mk_inv(in_file,inv)
print("mk_inv: err=",err)
# get a grib message, store in memory file 1
nmatch=pywgrib2_s.inq(in_file,var='WEASD', time0=2020013118, grib='@mem:1')
if nmatch != 1:
print('inq: nmatch=', nmatch)
quit()
# save grib message in grib_buffer
grib_buffer=pywgrib2_s.get_bytes_mem(1)
# write grib_buffer to file
file=open('a_packing_ori.grb','wb')
file.write(grib_buffer)
file.close()
# copy grib_buffer to memory file 2
err = pywgrib2_s.set_mem(2, grib_buffer)
size0 = pywgrib2_s.mem_size(2)
print("membuffer 2: err, size=", err, size0)
# use memory file 2 as template, change to jpeg2000 compression
a=pywgrib2_s.write('a_packing_jpeg.grb','@mem:2',1,packing='j')
print('write jpeg :',a)
print("done")