Introduction

Module Python pour l’intégration d’AtmoSwing dans le réseau Vigicrues.

github pypi docker python

Objectif

Le module a pour but la gestion du flux de la prévision par AtmoSwing. Il permet :

  • de télécharger les fichiers de sortie de modèles météo (p. ex. GFS),

  • de transformer de tels fichiers en un format netCDF générique,

  • d’exécuter les prévisions par AtmoSwing,

  • d’extraire les résultats en d’autres formats (p.ex. json),

  • et de diffuser ces fichiers par SFTP.

Installation

Pour utiliser le module atmoswing-vigicrues, il faut installer :

  • Python >= 3.7

  • AtmoSwing Forecaster (de préférence la version serveur)

  • Le module atmoswing-vigicrues (pip install atmoswing-vigicrues ou l’image docker docker pull atmoswing/atmoswing-vigicrues)

Utilisation

Le paquet est constitué de plusieurs modules qui peuvent être activés et configurés dans un fichier de configuration. Plusieurs flux de prévision peuvent être configurés sur un serveur / PC par la création de différents fichiers de configuration. Il n’y a pas de paramètres codés en dur dans le code. L’exécution d’un flux de prévision est effectuée par la commande :

python -m atmoswing_vigicrues --config-file="chemin/vers/fichier/config.yaml"

Les options de la ligne de commande sont :

  • --config-file ou -c: le chemin vers le fichier de configuration

  • --date ou -d : la date de prévision au format YYYYMMDDHH

  • --time-increment ou -i : incrément en heures pour l’émission de la prévision (par défaut 6h).

Le fichier de configuration définit :

  • Les propriétés de la prévision par AtmoSwing

  • Les pré-actions : les actions à effectuer préalablement à la prévision par AtmoSwing

  • Les post-actions : les actions à effectuer après la prévision par AtmoSwing

  • Les disséminations : les actions de transfert des résultats

Le flux de la prévision est le suivant :

  1. pré-actions

  2. prévision par AtmoSwing

  3. post-actions

  4. diffusion

La partie « Composants » de la documentation fournit le détail des paramètres de chaque action.

Exemple de fichier de configuration

Un exemple de fichier de configuration est présenté ci-dessous :

atmoswing:
  name: Forecast now
  with:
    atmoswing_path: 'C:\Program Files\AtmoSwing\atmoswing-forecaster.exe'
    batch_file: 'files/batch_file.xml'
    output_dir: 'D:\atmoswing\forecasts'
    target: 'now'
    proxy: ''
    proxy_user: ''

pre_actions:
  - name: Download GFS data (Z)
    uses: DownloadGfsData
    active: True
    with:
      output_dir: 'D:\atmoswing\gfs'
      lead_time_max: 168
      variables: ['hgt']
      levels: [500, 1000]
      domain: [-20, 30, 25, 65]
      resolution: 0.5
      max_attempts: 8
      proxies:
        http: ''
        https: ''

post_actions:
  - name: Export BdApBp
    uses: ExportBdApBp
    active: True
    with:
      output_dir: 'D:\atmoswing\exports\bdapbp'
      number_analogs: 10
      only_relevant_stations: True

  - name: Export PRV for Scores
    uses: ExportPrv
    enable: True
    with:
      output_dir: 'D:\atmoswing\exports\prv'
      frequencies: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.95]

disseminations:
  - name: Transfer FTP netcdf
    uses: TransferFtpOut
    active: True
    with:
      local_dir: 'D:\atmoswing\forecasts'
      extension: '.nc'
      hostname: '127.0.0.1'
      port: 21
      username: 'foo'
      password: 'pass'
      proxy_host: ''
      proxy_port: ''
      remote_dir: 'upload/netcdf'

  - name: Transfer SFTP prv
    uses: TransferSftpOut
    active: True
    with:
      local_dir: 'D:\atmoswing\exports'
      extension: '.json'
      hostname: '127.0.0.1'
      port: 4422
      username: 'foo'
      password: 'pass'
      proxy_host: ''
      proxy_port: ''
      remote_dir: 'upload/json'

  - name: Transfer SFTP prv
    uses: TransferSftpOut
    active: True
    with:
      local_dir: 'D:\atmoswing\exports'
      extension: '.csv'
      hostname: '127.0.0.1'
      port: 4422
      username: 'foo'
      password: 'pass'
      proxy_host: ''
      proxy_port: ''
      remote_dir: 'upload/prv'

La partie « Composants » de la documentation fournit le détail des paramètres de chaque action.

Structure

Le schéma ci-dessous présente la structure des classes principales du module.

Inheritance diagram of Controller, PreAction, TransferSftpIn, DownloadGfsData, TransformGfsData, TransformEcmwfData, PostAction, ExportBdApBp, ExportPrv, Dissemination, TransferSftpOut, TransferFtpOut