.. _api_metadata_ref: ====================== Gestion des métadonnes ====================== Les outils de gestion de la base de métadonnées permettent de créer une :ref:`base de métadonnées SQLite PyCTOH `, insérer des nouvelles traces et d'en supprimer. 1- Initialisation du catalogue ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ L'initialisation consiste à instancier la classe Catalogue en définissant le catalogue utilisé ``catalogue_filepath`` (fichier yaml du catalogue). Sur les serveurs du LEGOS (santo et boto) le catalogue est défini par la varaible d'environnement 'ALT_CATALOGUE'. .. code-block:: python >>> from pyctoh.db.catalogue import Catalogue >>> import os >>> catalogue_filepath = os.environ['ALT_CATALOGUE'] # >>> cat=Catalogue(filepath=catalogue_filepath) 2- Initialisation des métadonnées ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ L'initialisation consiste instancier la classe ``Metadata`` appelé par la méthode ``init_metadata`` de la classe ``Catalogue``. Celle-ci initialise un nouveau produit à partir d'une base modèle vierge. .. code-block:: python >>> prod_name="mis_a_supp_vers_sgdr" # Nom du nouveau produit >>> md=cat.init_metadata(prod_name) 3- Création ^^^^^^^^^^^ La création d'un produit consiste à définir ces caractéristiques dans les tables: mission, phase, product, gdrtype et param .. code-block:: python >>> cat.create_metadata("cs2_b_ice_d_gdr") 4- Insertion ^^^^^^^^^^^^ L'insertion consiste à renseigner le contenu des fichiers contenus dans la :ref:`SAF` dans les tables : files, cycle, track et zone_geo .. code-block:: python >>> cat.insert_metadata("cs2_b_ice_d_gdr") >>> cat.insert_metadata("cs2_b_ice_d_gdr",req_gdrtype='ctoh1') >>> cat.insert_metadata("cs2_b_ice_d_gdr",req_cycle_num=10) >>> cat.insert_metadata("cs2_b_ice_d_gdr",req_gdrtype='ctoh1',req_cycle_num=10, req_track_num=100) 5- Date update ^^^^^^^^^^^^^^ La mise à jour de la table date se fait après chaque insertion. Cette table contient l'étendu temporelle du produit : date, cycle et trace. .. code-block:: python >>> md.update_date_metadata("cs2_b_ice_d_gdr") 6- Suppression ^^^^^^^^^^^^^^ .. code-block:: python >>> md.remove_metadata("cs2_b_ice_d_gdr","ctoh2") # Supprime le contenu du gdrtype "ctoh2" >>> md.remove_metadata("cs2_b_ice_d_gdr", "sgdr", cycle_num=501) >>> md.remove_metadata("cs2_b_ice_d_gdr","sgdr", cycle_num=501, track_num=269)