Vous regardez une version antérieure (v. /display/EDDSDLTEL/Trucs+et+scripts+Python) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 14) afficher la version suivante »


Trucs


Truc 1 : Lire le temps d'un fichier netcdf

Pour lire le temps d'un fichier netcdf, il faut d'abord ouvrir le fichier :

fichier_netcdf = netCDF4.Dataset(filename)

où filename représente le chemin vers le fichier netcdf.


Par la suite, nous avons besoin de lire trois choses :

  • L'axe temporel :

nctime = fichier_netcdf.variables['time'][:] # get values

  • Les unités du temps :

    t_unit = fichier_netcdf.variables['time'].units

  • Le calendrier :

t_cal  = fichier_netcdfvariables['time'].calendar


Il est maintenant possible de transformer l'axe temporel en une série d'objet de type cftime :

tvalue = netCDF4.num2date(nctime,units = t_unit,calendar = t_cal)

Le résultat sera une série d'objet d'objet de type cftime du genre :

cftime.DatetimeProlepticGregorian(2016, 9, 1, 13, 30, 0, 0), cftime.DatetimeProlepticGregorian(2016, 9, 2, 13, 30, 0, 0), ......

Truc 2 : Garder seulement la date dans l'axe temporel

Advenant le fait que votre fichier netcdf contient des moyennes quotidiennes, l'heure associée à chaque pas de temps peut parfois ne pas être importante ou ne pas toujours faire du sens. Il est possible de s'en séparer si la seule chose que vous désirez est la date et non pas l'heure.

Il faut modifier la ligne suivante du truc 1 afin que le résultat de num2date consiste en le format natif de date python de type datetime.

tvalue = netCDF4.num2date(nctime,units = t_unit,calendar = t_cal)

doit devenir

tvalue = netCDF4.num2date(nctime,units = t_unit,calendar = t_cal,only_use_cftime_datetimes=False,only_use_python_datetimes=True)


Par la suite, nous pouvons utiliser la fonction date() pour ne garder que la date :

tvalue_date = [i.date() for i in tvalue]


Le résulat ressemblera à :

[datetime.date(2016, 9, 1), datetime.date(2016, 9, 2), datetime.date(2016, 9, 3), datetime.date(2016, 9, 4), ............]



Scripts

Create a 2-D temperature plot from an RPN file

Script: 2-D_temperature_plot_from_RPN.py3

Script : Créer un météogramme

  • Aucune étiquette