dballe types¶
Measured variables¶
A measured variable is represented by a dballe.Var
object, which
contains a value (int, float, or str) annotated with information in a
dballe.Varinfo
object.
dballe.Varinfo
objects are catalogued in dballe.Vartable
tables, which associate WMO B variable codes (like B12101
) to name,
descriptions, measurement units, significant digits, and so on.
dballe.Var
, dballe.Varinfo
, and dballe.Vartable
come
via wreport, and dballe.txt contents (see Local B table codes) can be accessed
with the shortcut functions dballe.varinfo()
and dballe.var()
.
-
class
dballe.
Var
¶ Var holds a measured value, which can be integer, float or string, and a
Varinfo
with all available information (description, unit, precision, …) related to it.Var objects can be created from a
Varinfo
object, and an optional value. Omitting the value creates an unset variable.Examples:
table = wreport.Vartable.get_bufr(master_table_version_number=24) v = wreport.Var(table["B12101"], 32.5) # v.info returns detailed informations about the variable in a Varinfo object. print("%s: %s %s %s" % (v.code, str(v), v.info.unit, v.info.desc))
Constructor: Var(varinfo: Union[wreport.Varinfo, wreport.Var], value: Union[str, int, float] = None)
-
code
¶ variable code
-
enq
() → Union[str, float, int]¶ get the value of the variable, as int, float or str according the variable definition
-
enqa
(code: str) → Optional[wreport.Var]¶ get the variable for the attribute with the given code, or None if not found
-
enqc
() → str¶ get the value of the variable, as a str
-
enqd
() → float¶ get the value of the variable, as a float
-
enqi
() → int¶ get the value of the variable, as an int
-
format
(default: str=) → str¶ return a string with the formatted value of the variable
-
get
(default: Any=None) → Union[str, float, long, Any]¶ get the value of the variable. If the variable is unset,
default
is returned
-
get_attrs
() → List[wreport.Var]¶ get the attributes of this variable
-
info
¶ Varinfo for this variable
-
isset
¶ true if the value is set
-
seta
(var: wreport.Var)¶ set an attribute in the variable
-
unseta
(code: str)¶ unset the given attribute from the variable
-
-
class
dballe.
Varinfo
¶ Varinfo object holds all possible information about a variable, such as its measurement unit, description and number of significant digits.
Varinfo objects cannot be instantiated directly, and are created by querying
Vartable
objects.-
bit_len
¶ number of bits used to encode the value in BUFR
-
bit_ref
¶ reference value added after scaling, for BUFR decoding
-
code
¶ variable code
-
desc
¶ description
-
len
¶ number of significant digits
-
scale
¶ scale of the value as a power of 10
-
type
¶ return a string describing the type of the variable (string, binary, integer, decimal)
-
unit
¶ measurement unit
-
-
class
dballe.
Vartable
¶ Collection of Varinfo objects indexed by WMO BUFR/CREX table B code.
A Vartable is instantiated by one of the
get_bufr()
,get_crex()
,load_bufr()
,load_crex()
class methods:table = wreport.Vartable.get_bufr(master_table_version_number=23) print(table["B12101"].desc)
-
get_bufr
(basename: str=None, originating_centre: int=0, originating_subcentre: int=0, master_table_number: int=0, master_table_version_number: int=None, master_table_version_number_local: int=0) → wreport.Vartable¶ Look up a table B file using the information given, then load BUFR information from it.
You need to provide either basename or master_table_version_number.
- Parameters
basename – load the table with the given name in
/usr/share/wreport/
originating_centre – originating centre for the table data
originating_subcentre – originating subcentre for the table data
master_table_number – master table number for the table data
master_table_version_number – master table version number for the table data
master_table_version_number_local – local master table version number for the table data
-
get_crex
(basename: str=None, edition_number=2, originating_centre: int=0, originating_subcentre: int=0, master_table_number: int=0, master_table_version_number: int=None, master_table_version_number_bufr: int=None, master_table_version_number_local: int=0) → wreport.Vartable¶ Look up a table B file using the information given, then load CREX information from it.
You need to provide either basename or master_table_version_number or master_table_version_number_bufr.
- Parameters
basename – load the table with the given name in
/usr/share/wreport/
edition_number – edition number for the table data
originating_centre – originating centre for the table data
originating_subcentre – originating subcentre for the table data
master_table_number – master table number for the table data
master_table_version_number – master table version number for the table data
master_table_version_number_bufr – BUFR master table version number for the table data
master_table_version_number_local – local master table version number for the table data
-
load_bufr
(pathname: str) → wreport.Vartable¶ Load BUFR information from a Table B file and return it as a wreport.Vartable.
- Parameters
pathname – pathname of the file to load
-
load_crex
(pathname: str) → wreport.Vartable¶ Load CREX information from a Table B file and return it as a wreport.Vartable.
- Parameters
pathname – pathname of the file to load
-
pathname
¶ name of the table
-
-
dballe.
varinfo
(str) → dballe.Varinfo¶ Query the DB-All.e variable table returning a Varinfo
-
dballe.
var
(code, val: Any=None) → dballe.Var¶ Query the DB-All.e variable table returning a Var, optionally initialized with a value
Variable metadata¶
dballe.Level
, dballe.Trange
, dballe.Station
, and
dballe.DBStation
, together with python’s datetime.datetime
class,
can be used to describe the DB-All.e metadata for measured variables, as
shortcuts for groups of closely related values.
The difference between dballe.Station
and dballe.DBStation
is
that the DB
version also contains the database ID as ana_id
.
DB-All.e also provides dballe.describe_level()
and dballe.describe_trange()
to turn level and timerange information into a string describing them.
-
class
dballe.
Level
¶ Level or layer.
Constructor: Level(ltype1: int=None, l1: int=None, ltype2: int=None, l2: int=None)
-
describe
()¶ Return a string description for this level
-
l1
¶ value of the level or of the first layer
-
l2
¶ value of the second layer
-
ltype1
¶ type of the level or of the first layer
-
ltype2
¶ type of the second layer
-
-
class
dballe.
Trange
¶ Time range.
Constructor: Trange(pind: int=None, p1: int=None, p2: int=None)
-
describe
()¶ Return a string description for this time range
-
p1
¶ Time range P1 indicator
-
p2
¶ Time range P2 indicator
-
pind
¶ Time range type indicator
-
-
class
dballe.
Station
¶ Station information.
Constructor: Station(report: str, lat: float, lon: float, ident: str=None)
-
ident
¶ mobile station identifier
-
lat
¶ station latitude
-
lon
¶ station longitude
-
report
¶ report for this station
-
-
class
dballe.
DBStation
¶ Station information with database ID.
Constructor: Station(report: str, id: int, lat: float, lon: float, ident: str=None)
-
id
¶ database ID for this station
-
ident
¶ mobile station identifier
-
lat
¶ station latitude
-
lon
¶ station longitude
-
report
¶ report for this station
-
-
dballe.
describe_level
(ltype1: int, l1: int=None, ltype2: int=None, l2: int=None) → str¶ Return a string description for a level
-
dballe.
describe_trange
(pind: int, p1: int=None, p2: int=None) → str¶ Return a string description for a time range
Variables and their metadata¶
dballe.Data
finally provides a way to group together one or more
variables and their metadata.
-
class
dballe.
Data
¶ key-value representation of a value with its associated metadata.
This is used when inserting values in a database, and can be indexed and assigned using insert parameters: see Parameters used when inserting values for a list.
Indexing by variable code also works. Assignment can take None, int, str, float, or a wreport.Var object. Assigning a wreport.Var object with a different varcode performs automatic unit conversion if possible.
See Convert values from one B code to another for an example.