FANDOM


Cet article présente l'organigramme de METRo. Vous pouvez aussi vous référer au schéma des entrées/sorties comme complément à la compréhension du code source de METRo.

Cet article vise les développeurs de METRo. Vous n'avez pas besoin de le comprendre si vous ne voulez qu'installer et utiliser METRo.

Organigramme Edit

  • Vert: code en python;
  • Cyan: code en fortran;
  • Rouge: code en C;
  • Orange: données dans le format XML.
Metro 3 schema couleur fr resize

Image pleine résolution.

ModulesEdit

Le code fortran est le modèle physique de METRo. Ce code se trouve dans le répertoire model.

Tout les fichiers de code python se trouvent dans les sous-répertoires du répertoire nommé frontend. Tout les modules de METRo, sauf pour le modèle physique, sont codés dans ce langage.

ConfigurationEdit

Le module de configuration est dans le fichier metro_config.py et contient toutes les méthodes dont METRo a besoin pour accéder aux configurations tout au long de sont éxecution. Il peut être appelé par n'importe quel autre module de METRo.

Le fichier metro_config.py contient également l'ordre dans lesquels les modules de METRo sont appelés. Consulter le dictionnaire à la valeur INIT_MODULE_EXECUTION_SEQUENCE dans ce fichier pour visualiser l'ordre par défaut. Il n'y a qu'à écrire un module et à l'ajouter à cette liste pour qu'il soit executé.

Lecture des entréesEdit

PrétraitementEdit

ModèleEdit

Le modèle physique de METRo est codé en fortran. Il correspond à la partie centrale de l'organigramme, cette partie contenant les blocs rouge et cyan. Le modèle est appelé par le module python nommé metro_model.py, par la méthode nommée macadam.Do_Metro(...).

Les constantes physiques utilisées par METRo sont des les fichiers metro_constant.py et constPhys.f.


Classe enveloppante CEdit

Macadam est le nom du projet contenant la classe enveloppant du code fortran. Le fichier C est unique et est nommé macadam.c. Les méthodes fortran sont appelées à partir de ce fichier dans un ordre déterminé. Il y a un peu de logique dans ce fichier mais uniquement pour déterminer quelle méthode fortran il faut invoquer, non pour faire des calculs.

Pour chaque liste ou tableau qu'il faut récupérer du code C, une fonction doit être implémentée dans le fichier macadam.h et écrite dans le fichier macadam.i (voir ci-dessous). La fonction retourne simplement la structure contenant les données. Voir le code pour un exemple.

Les types de données qui peuvent être récupérés du code fortran dans le code python sont dans le fichier macadam.i. À moins que vous soyez extrêmement certain de ce que vous faites, ne modifier pas les fonctions déjà présentes dans ce fichier puisque c'est l'enveloppe SWIG de METRo. Les tableaux sont aussi supportés et sont simplement appelés en ajoutant le mot Struct après le type de données (un tableau de double donnerait doubleStruct).


Les types de données suivants sont supportés:

  • char;
  • double;
  • float;
  • long;
  • short;
  • int;

Post-traitementEdit

Écriture de la sortieEdit

Convention de codageEdit

La convention de codage suivante a été suivie dans le code python de METRo et dans une partie du code fortran et C. Autant que possible, tout le code de METRo devrait la respecter.t.

  1. Tous les modules python de METRo ont un nom débutant par la chaîne de caractères metro_;
  2. Les modules de prétraitement débute avec la chaîne de caractères metro_preprocess_"
  3. Les modules de post-traitement débute avec la chaîne de caractères metro_postprocess_"
  4. La notation hongroise est utilisée dans METRo. Elle a la signification suivante:
Lettre(s) Type de variable
n entier
f float
d double
t tuple
p pointeur
l liste
wf prévision météo (object)
c classe
st structure
na numarray (obsolète)
np numpy



Descriptions
Station | Observation | Prévision atmosphérique | Prévision routière
Spécifications
Schéma des entrées et sorties | Format | Date | QA/QC des observations | Condition de la route | Type de station | Fuseau horaire | Type de couche | Latitude et longitude
Exemples
Station | Observation | Prévision atmosphérique | Prévision routière | Visualisation graphique


Logo ec
Cette page fait partie de la documentation du logiciel METRo. Retour à la table des matières.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.