Nicolas Brodu     
          
            V S F P L O T
Nicolas
Brodu
V S F P L O T

Visualisation de champs de vecteurs et scalaires 2D

Incluant :

  • La technique de Line Integral Convolution (LIC) sur les données.
  • Des flèches curvilignes suivant les lignes de champs.
  • Mode mixte: champs de scalaire avec en surimpression le champs de vecteurs.
  • Les données manquantes sont gérées et n'interfèrent pas avec les lignes de champs.
  • Génération de fichiers au format Scalable Vector Graphics (SVG), qui sont facilement éditable et convertibles tout en préservant la meilleure qualité possible pour une inclusion dans un article scientifique en PDF.
  • La palette de couleurs est conçue pour que les lignes de champs soient uniformément lisibles même imprimées en dégradés de gris.
champs de vecteurs
Exemple (fourni avec le programme) : carte des températures avec champs de vitesses dans un écoulement granulaire.
example legend
Légende des températures.

Téléchargement

Vsfplot version 1.1 est téléchargeable aux formats tar.gz et zip.

Les deux archives contiennent la même chose, incluant :

  • Le code source.
  • Un binaire linux/64 bits (statique, pas de dépendences externes).
  • Un exécutable windows 32 bits vsfplot.exe (également statique / pas besoin de DLLs).

La plateforme Linux/64 bits est la référence, depuis laquelle j’ai cross-compilé l’exécutable windows pour ceux qui utilisent ce système. Vsfplot est un logiciel libre, license LGPL v2.1 ou plus récente.

Usage

« vsfplot data.txt test » produit deux fichiers : « test.svg » and « test_legend.svg », dont des exemples sont affichés ci-dessus.

Les données doivent être spécifiées dans un fichier texte multicolonnes :
# Les commentaires commençant par # sont ignorés, ainsi que les lignes vides
# Les colonnes sont par défaut spécifiées dans cet ordre : x y vecteur_x vecteur_y scalaire
# Les valeurs x et y doivent être placées sur une grille régulière, possiblement avec des trous
0.05 0.25 0.0219881 0.0189318 0.953802
0.05 0.35 0.023919 0.0166145 1.04089
0.05 0.45 0.0241417 0.0153331 1.04686
...

You pouvez spécifier les colonnes à utiliser et leur ordre, ce qui est particulièrement utile dans le cas de fichiers avec de nombreuses colonnes. Vsfplot peut également afficher des cartes de valeurs (x, y, valeur), ou un mode mixte ou un champs de vecteur est affiché sur la carte des valeurs scalaires (x, y, vx, vy, valeur). Dans le mode 4 colonnes (x, y, vx, vy) les normes des vecteurs sont utilisées comme valeur scalaire. Cf l’aide ci-dessous.

Les fichiers résulats sont produits au format Scalable Vector Graphics (SVG). Vous pouvez facilement les convertir en format bitmap (PNG, JPEG...), vectoriel (PS, PDF...), les éditer (dont extraire l’image générée et changer les flèches, etc.) en utilisant l’excellent logiciel libre Inkscape. Les formats vectoriels sont particulièrement utiles pour produire des articles scientifiques PDF de qualité.

Aide complète (en anglais) :
vsfplot [--options args ...] data_file output_base_name

Options can be specified in any order:
  -d [ --data ] arg         The data file, which can also be specified as the 
                            first free parameter on the command line (no need 
                            for the --data option). This is a simple ascii 
                            multi-column file, see --using. Use the special 
                            name - for stdin.
  -o [ --output ] arg       The output files base name, which can also be 
                            specified as the second free parameter on the 
                            command line (no need for the --output option). Two
                            SVG files are generated, one is base_name.svg for 
                            the generated color map / vector field, and the 
                            other is base_name_legend.svg for the associated 
                            legend. The size of the generated image is set to 
                            the number of distinct X and Y values. If this does
                            not suit your needs you may easily rescale the SVG 
                            file in a SVG editor (tip: try Inkscape), or use 
                            the zoom factor (see below). If this is not enough 
                            you'll have to resample your data file before 
                            passing it to this program.
  -u [ --using ] arg        Specify which columns to use for plotting, default 
                            is 1:2:3 for a 3-column file, 1:2:3:4 for a 
                            fourth-column file, and 1:2:3:4:5 otherwise. The 
                            first value indicate which column holds the X 
                            coordinates, the second value the Y coordinates. 
                            The program assumes the X and Y data are regularly 
                            spaced, possibly with missing values. If only three
                            values are specified a scalar color map is built. 
                            If 4 values are specified a vector field is built 
                            using the third and fourth values as the vector 
                            coordinates at each X,Y position, and the color is 
                            set according to the vector norm. If a fifth value 
                            is given then it is used for building a scalar 
                            color map, while fields 3 and 4 are still used as 
                            vector coordinates for plotting the arrows on top 
                            of that map.
  -x [ --xrange ] arg       The range of the X values, specified as min:max. 
                            The default is to use the min and max in the file. 
                            Data values outside this range are ignored.
  -y [ --yrange ] arg       The range of the Y values, specified as min:max. 
                            The default is to use the min and max in the file. 
                            Data values outside this range are ignored.
  -r [ --scalar_range ] arg The range of the scalar data, specified as min:max.
                            The default is to use the min and max in the file, 
                            but you can specify a different range, for example 
                            to have comparable colors across different figures.
                            Values outside the range are clamped to the 
                            min/max.
  -a [ --arrows_range ] arg The range of the arrow lengths for the vector data,
                            specified as min:max. The default is to set the 
                            arrow of a median normed vector to half the grid 
                            size. Here min and max specify the norm below which
                            no arrow is displayed, and the norm above which the
                            arrow is clamped to the grid size, with the average
                            set to half the grid size. This option is mainly 
                            useful to have comparable arrow lengths across 
                            different figures
  -b [ --boundary_values ]  There is one pixel per value, regularly spaced. 
                            Default is to set each value at a pixel center. If 
                            this option is set, the data min and max correspond
                            to the left/low boundaries of the first and last 
                            pixels.
  -z [ --zoom ] arg         If set, each value in the data file is duplicated 
                            that many times along the X and Y directions. This 
                            effectively enlarges pixels. Only integer values 
                            are allowed, no interpolation is performed, see 
                            --output above.
  -c [ --config ] arg       If specified, add all parameters from this 
                            configuration file in addition to the command-line 
                            arguments. The file syntax is one option=value per 
                            line, # are comments and blank lines are ignored. 
                            In case of duplicated values, the command-line 
                            arguments take precedence.
  -s [ --silent ]           Do not display warning messages.
  -h [ --help ]             Display this help
.
Style:
      L O G I C I E L S 
V
S
F
P
L
O
T
V
S
F
P
L
O
T