Python versione Bignami - Il modulo DB-All.e

import dballe
import dballe.volnd

# Si connette al database
db = dballe.DB(dsn, user, password)

# Imposta una query
query = dballe.Record()
query["var"] = "B12001"
query["rep_memo"] = "synop"
query.setlevel(dballe.Level(105, 2, 0, 0))
query.settimerange(dballe.Timerange(0, 0, 0))

# Legge i risultati in una matrice (anagrafica x datetime)
vars = dballe.volnd.read(db.query(query), (
    dballe.volnd.AnaIndex(),
    dballe.volnd.DateTimeIndex()))

# Legge i valori della variabile "B12001"
data = vars["B12001"]
# Data is now a 2-dimensional Masked Array with the data

# Le informazioni sul significato degli indici delle varie dimensioni delle
# matrici risultanti si possono trovare in data.dims, che contiene una lista
# di informazioni per dimensione.
print "Ana dimension is", len(data.dims[0]), "items long"
print "Datetime dimension is", len(data.dims[1]), "items long"
print "First 10 stations along the Ana dimension:", data.dims[0][:10]
print "First 10 datetimes along the DateTime dimension:", data.dims[1][:10]

print "The average of all values is:" numpy.average(data.vals)

print "Average over time per every station:"
for idx, station in enumerate(data.dims[0]):
    print station, numpy.average(data.vals[idx,:])

print "Average per every sampled time:"
for idx, dtime in enumerate(data.dims[1]):
    print dtime, numpy.average(data.vals[:idx])

dballe.volnd

db = dballe.DB(dsn, user, password)
res = dballe.volnd.read(db.query(query), (Dimensione1, Dimensione2...))

Carica in res un volume di dati con le dimensioni date, scelto dalla query data.

Le dimensioni possibili sono:

dballe.rconvert

import dballe.rconvert

dballe.rconvert.volnd_save_to_r(vars, filename)

dballe.dbacsv

import dballe
import dballe.dbacsv

# Si connette al database
db = dballe.DB(dsn, user, password)

# Imposta una query
query = dballe.Record()
query["var"] = "B12001"
query["rep_memo"] = "synop"
query.setlevel(dballe.Level(105, 2, 0, 0))
query.settimerange(dballe.Timerange(0, 0, 0))

dballe.dbacsv.export(db, query, open("dati.csv", "w"))

dballe.DB

Gli oggetti Dballe.DB sono il punto principale di accesso al database.

Metodi:

for rec in db.query(query):
    print rec.get("lat"), rec.get("lon")

Dballe.Record

rec = dballe.Record()
rec["lat"]=12.345
rec["lon"]=45.678
for idx, val in enumerate(db.query(rec)):
    print "Il risultato", idx+1, "e':"
    for nome, valore in val.iteritems():
        print " ", nome, valore

Metodi: