3.8.14. Leçon sur les calculs sur les gros fichiers¶
Certains calculs ne peuvent être effectué directement. Il convient alors de décomposer le calcul, puis de le finaliser. Voici un exemple de calcul d’une moyenne temporelle.
Fichier courses_bigfiles.py
#!/usr/bin/env python
# -*- coding: utf8 -*-
"""Calculs sur les gros fichiers"""
from vcmq import cdms2, Intervals, data_sample, StatAccum, cdtime, curve2, N
# Initialisations
# - ouverture du fichier et infos temporelles
f = cdms2.open(data_sample('mars3d.xt.xe.nc'))
ctimes = f['xe'].getTime().asComponentTime()
# - passage par un accumulateur de stats
sa = StatAccum(tmean=True)
# Boucle sur des intervals journaliers
for itv in Intervals((ctimes[0], ctimes[-1], 'cc'), 'day'): # -> ESSAYER 2 JOURS
# Lecture
print itv
tmp = f('xe', time=itv)
# Accumulation
sa += tmp
del tmp
# Finalisation
# - restitution
xem = sa.get_tmean()
print N.ma.allclose(xem.asma(),f('xe').mean(axis=0))
curve2(xem)
del sa
# - fermeture
f.close()