Pour commencer rapidement

Ici des exemples basic pour créer des structures de données PyCTOH (Track, Grid et TimeSeries) :

Lire un fichier GDR

Pour créer un objet Track à partir d’un fichier trace GDR il faut utiliser la fonction read_product qui appelle le constructor approprié au type de produit fourni par le CTOH.

track_obj=read_product(filename, product_kind=None, memory_optimization=True, decode_times=True, no_maskedarray=True)
Paramètres:
  • filename – Nom du fichier GDR.

  • product_kind – Type de produit. Les types de produit définis dans la bibliothèque PyCTOH. Ils sont disponibles via la fonction **idproduct()** (lien vers cette fonction). Egale à None par défaut, la fonction product_factory recherche automatiquement le type de produit en fonction du nom du fichier GDR.

  • memory_optimization – Optimisation de la mémoire. Egale à True par défaut, cette option permet de choisir, à la lecture du fichier netCDF, le type (numpy.dtype) le mieux approprié aux variables ayant des attributs “scale_factor” et/ou “add_offset”. Sinon ces variables sont toutes définies en type numpy.dtype(“float64”).

  • decode_times – Décodage de la variable time en un objet Datetime. Egale à True par défaut, cette option permet de convertir, à la lecture du fichier netCDF, la variable time de type “float64” en un type “datatime64[ms]”. Pour cela les attributs « units » et « calendar » de la variable time doit être défini suivant la convention-CF.

  • no_maskedarray – Pas d’objet numpy.ma.MaskedArray. Egale à True par défaut, cette option permet de convertir, à la lecture du fichier netCDF, les variables numpy.ma.MaskedArray de type “float” en varaibles numpy.ndarray de type “float”. La valeur numpy.nan est affectée à toutes les valeurs masquées (masked). Toutes les variables qui ne sont pas de type “float” restent numpy.ma.MaskedArray.

Exemples d’utilisation

Création d’un objet Track à partir d’un fichier GDR trace Jason-3 fourni par le CTOH. Dans ce cas le type de produit est automatiquement reconnu par le nom du fichier telque défini par le CTOH.

>>> from pyctoh.track import read_product
>>> filename = "test_data/JA3_GPS_2PfP031_009_20161211_051419_20161211_061031.nc"
>>> track_obj = read_product(filename)

Dans le cas où le nom du fichier n’est pas conforme au type de produit CTOH, le type peut être « forcé » avec l’option product_kind. La liste des types est fournie par la fonction get_producttype(). Ici, est choisi jason_f pour définir le fichier GDR comme produit de type jason GDR-F.

>>> from pyctoh.track import get_producttype
>>> get_producttype()
 ['topex_cash',
 'cryosat2_c',
 'cryosat2_d',
 'ers2_ctoh',
 'envisatv21_ctoh',
 'envisatv3_esa',
 'jason_d',
 'jason_e',
 'jason_f',
 'saral_t',
 'saral_f',
 'sentinel3_b003',
 'sentinel6_f']
>>> filename = "test_data/JA3_GPS_2PfP031_009_20161211_051419_20161211_061031.nc"
>>> track_obj = read_product(filename,product_kind='jason_f')

Plus de détailles sur l’objet Track.

Accès à la base de données

L’accès aux données de la base du CTOH se fait via la méthode query_product de la classe Catalogue. Cette méthode envoie une requête à la base de données et retourne un objet Track.

track_obj = Catalogue.query_product(product_name, track_num, cycle_num, memory_optimization=True, decode_times=True, no_maskedarray=True)
Paramètres:
  • product_name – Nom du produit défini dans la catalogue de la base de données. La liste des produits disponibles est fournie avec la méthode product_list() de la classe Catalogue.

  • track_num – Numéro de la trace. La liste des numéros de traces disponibles est fournie avec la méthode product_cycle_track() de la classe Catalogue.

  • cycle_num – Numéro du cycle. Idem que pour track_num.

Les autres options sont les mêmes que pour la fonction read_product

Exemples d’utilisation

Création d’un objet Track à partir d’une requête à la base de données CTOH. Ici le cas du produit Jason-3 GDR-F (ja3_a_cnes_f_sgdr) avec la trace numéro 200 et le cycle 150.

>>> # Import de la classe 'Catalogue'
>>> from pyctoh.db.catalogue import Catalogue
>>> # Selection du catalogue CTOH
>>> cat = Catalogue(os.environ["ALT_CATALOGUE"])
>>> # Requête trace 200 cycle 150 du produit 'ja3_a_cnes_f_sgdr'
>>> track_obj = cat.query_product('ja3_a_cnes_f_sgdr', 200, 150)