Working with messagesΒΆ

These are exmples of Python code that reads messages and adds their content to a database.

# Fully expanded iteration
importer = dballe.Importer("BUFR")
with db.transaction() as tr:
    with dballe.File(pathname) as f:
        for binmsg in f:
            for msg in importer.from_binary(binmsg):
                tr.import_messages(msg)

# All subsets of a BUFR at the same time
importer = dballe.Importer("BUFR")
with db.transaction() as tr:
    with dballe.File(pathname) as f:
        for binmsg in f:
            tr.import_messages(importer.from_binary(binmsg))

# Iterate all decoded messages with dballe.Importer.from_file
importer = dballe.Importer("BUFR")
with db.transaction() as tr:
    with dballe.File(pathname) as f:
        self.db.import_messages(importer.from_file(fp))

# Transaction.import_messages() supports importing only some variables
importer = dballe.Importer("BUFR")
with db.transaction() as tr:
   with dballe.File(pathname) as f:
       tr.import_messages(importer.from_file(f), varlist="B11001,B11002")

This is an example Python code that queries a database and exports the results as BUFR messages.

exporter = dballe.Exporter("BUFR")
with open("test.bufr", "wb") as out:
    with db.transaction() as tr:
        for cur in tr.query_messages({...}):
            binmsg = exporter.to_binary(cur.message)
            out.write(binmsg)