Programme de détermination des coordonnées de points de passage (

Points de passage.

Accueil

Journal de mission
Course à pied
Ski de randonnée
Alpinisme
Voile
Ecrits
Diaporamas

Programmation

Carnet des invités

Accueil > Programmation > Gérance des points de passage pour déroulage.

Programme de détermination des coordonnées de points de passage ("waypoints") pour déroulage des stations d'enregistrement sismique.

But

Gérer, par un programme unique, les points de passage à la fois pour les équipes de déroulage à l'enregistrement terrain et pour le planificateur de l'acquisition.

Résumé

A l'aide de l'exemple de deux lignes de récepteurs quelconques, disposées en un fichier R, j'explique comment formatter deux fichiers comprenant la position x,y des intertraces positionnés à des multiples de longueur de chapelets sur ces lignes. L'orientation de grille, le type de mission telle que 2D ou 3D n'entre pas en ligne de compte, mais que les premier et dernier points des lignes.

1 - Un exemple de déroulage à réaliser

Nous planifions, pour les fins de l'acquisition, positionner des stations d'enregistrements sur deux lignes de telle façon;

On remarque à l'écran la présence de 56 récepteurs, ce qui est confirmé par le fichier R associé, ici nommé "exemple.r01";

prompt$ awk '/^R/' exemple.r01 | wc -l
56

Même sans écran, on peut voir ces deux seules lignes;

prompt$ awk '/^R/' exemple.r01 | cut -c1-17 | sort -u
R5245
R5255

Et nous pouvons également remarquer que ces lignes 5245 et 5255 comportent respectivement;

prompt$ awk '/^R5245/' exemple.r01 | cut -c18-25 | tr -d '\012' | fold -w 64 ; echo ""
    1001    1002    1003    1004    1005    1006    1007    1008
    1009    1010    1011    1012    1013    1014    1015    1016
    1017    1018    1019    1020    1021    1022    1023    1024
    1025    1026    1027    1028    1029    1030    1031    1032
prompt$ awk '/^R5255/' exemple.r01 | cut -c18-25 | tr -d '\012' | fold -w 64 ; echo ""
    1021    1022    1023    1024    1025    1026    1027    1028
    1029    1030    1031    1032    1033    1034    1035    1036
    1037    1038    1039    1040    1041    1042    1043    1044

32 et 24 récepteurs s'étendant aussi respectivement de 1001 à 1032 et de 1021 à 1044.

Nous générons les points de passage ainsi;

prompt$ waypoints.pl exemple.r01

Ce qui génère deux fichiers dont le premier;

prompt$ cat exemple_cables.csv
Hnso_name,cable_line_and_num,modulo2,x,y
CAB0,C5245_0,1,681371.4,8006537.9
CAB0,C5245_0,2,681989.0,8005883.2
CAB1,C5245_1,1,681989.0,8005883.2
CAB1,C5245_1,2,682606.7,8005228.6
CAB0,C5245_2,1,682606.7,8005228.6
CAB0,C5245_2,2,683224.3,8004574.0
CAB0,C5255_0,1,682917.3,8006808.9
CAB0,C5255_0,2,682059.5,8006536.2
CAB1,C5255_1,1,682059.5,8006536.2
CAB1,C5255_1,2,681201.8,8006263.4

est un csv d'objets non-sismiques qu'il est possible, après avoir proprement défini les objets CAB0 et CAB1 sous Géoland, d'importer pour visuellement matérialiser les cables à dérouler. Par exemple, ayant défini ces objets et le format d'import;

On importe les objets non-sismiques sous l'option "Survey" de Geoland;

Et on obtient ensuite à l'écran, les cables pairs en orange et les impairs en bleu. Zoomons sur une partie de ces deux lignes. L'utilisateur habitué aura compris que les labels de l'image suivante sont rajoutés pour expliciter;

L'utilisateur expérimenté aura de suite noté une mauvaise optimisation sur la ligne 5245 puisqu'un déroulage inutile est ici demandé. Il serait sans doute ici intéressant de forcer un premier point de passage au 1000.5 (ou 1000.5 - N * 18) afin d'éviter tout déroulage inutile.

Les points de passage sont par défaut posés aux multiples de 18 traces en démarrant de 936.5, soit 936.5, 954.5, 972.5, 990.5, etc... S'il est nécessaire de composer avec de nouvelles contraintes, on éditera l'en-tête du programme. Supposons par exemple que, pour l'ensemble d'une grosse mission de plusieurs lignes récepteurs;

  • la longueur de chapelet ne soit pas de 18 mais de 12 traces
  • l'alignement des point de passage no 0 doive se faire non pas en 936.5, mais en 1000.5
  • le point de passage 0 pour ligne 5200 soit exigé en 995.5
  • le point de passage 0 pour ligne 5208 soit exigé en 993.5
  • on éditera l'en-tête du programme une fois pour la durée de la mission;

    my $CHAPLET_LENGTH = 18;             # (edit eventually) Number of traces per chaplet
    my $DEFAULT_WP0_i_POSITION =  936.5; # (edit eventually) Default i position of waypoint nb 0.
    my %wp0_i_position = (
    # Insert here the i position for WP nb 0 for a certain line IF the default one (as defined in
    # $DEFAULT_WP0_i_POSITION above) is not satisfying. This must be written in the form below;
          9998 => 936.5,
          9999 => 930.5
    );

    pour obtenir;

    my $CHAPLET_LENGTH = 12;             # (edit eventually) Number of traces per chaplet
    my $DEFAULT_WP0_i_POSITION =  1000.5; # (edit eventually) Default i position of waypoint nb 0.
    my %wp0_i_position = (
    # Insert here the i position for WP nb 0 for a certain line IF the default one (as defined in
    # $DEFAULT_WP0_i_POSITION above) is not satisfying. This must be written in the form below;
          5200 => 995.5,
          5208 => 993.5
    );

    Outre le fichier de suffixe _cables.csv, le programme donne un _waypoints.txt. Ce dernier contient à toutes fins pratiques la même information cependant présentée de façon à pouvoir la reformatter aisément en une feuille de travail imprimable sur papier pour les pilotes de cablières. Son en-tête, puis-je espérer, dispense de plus d'explications (disons que chaque ligne-fichier décrit un cable);

    prompt$ cat exemple_waypoints.txt
    H Lay out for exemple.r01
    H Spread used for each line;
    H Line : lo_trace hi_trace intertrace
    H 5245 :     1001     1032 50.000
    H 5255 :     1021     1044 50.003
    H Line,lowp,          x,          y,   lotr,       chaplet,  hitr,hiwp,          x,          y,
      5245,   3,   681371.4,  8006537.9,  991.0,    chaplet  0,1008.0,   4,   681989.0,  8005883.2
      5245,   4,   681989.0,  8005883.2, 1009.0,    chaplet  1,1026.0,   5,   682606.7,  8005228.6
      5245,   5,   682606.7,  8005228.6, 1027.0,    chaplet  2,1044.0,   6,   683224.3,  8004574.0
    H Line,lowp,          x,          y,   lotr,       chaplet,  hitr,hiwp,          x,          y,
      5255,   4,   682917.3,  8006808.9, 1009.0,    chaplet  0,1026.0,   5,   682059.5,  8006536.2
      5255,   5,   682059.5,  8006536.2, 1027.0,    chaplet  1,1044.0,   6,   681201.8,  8006263.4

    Ce programme fut utilisé avec succès pour deux missions shallow 3D en Tunisie, au printemps 2007. Evidemment, son réel intérêt réside dans la possibilité de manipuler aisément, non pas deux lignes simples, telles que dans l'exemple ci-haut, mais un grand nombre de données rapidement. Ainsi, pour un prospect de 82,688 récepteurs répartis sur 196 lignes tel que suit;

    Après exécution du programme, on importe ainsi les quelques 4279 sections de câbles nécessaires pour couvrir le prospect;

    Remarquez que les récepteurs ici cartographiés ne sont pas théoriques, mais bien réels.

    2 - Limitations

    La ligne récepteur doit être rectiligne. Le programme n'utilise en fait que les coordonnées des premier et dernier points de la ligne et joint ces points extrêmes par autant de câbles que nécessaire. Les lignes de type "snakes" ne sont par conséquent pas gérées.

    3 - Licence et téléchargement

    Le programme est publié sous la GPL.

    Pour télécharger, faire un clic droit sur le lien ci-dessous, sauvegarder, décompresser, et déplacer dans un répertoire de son choix. Le fichier R du présent exemple est donné à titre d'essai.

    waypoints-0.0.1.tar.gz

    Par exemple;

    prompt$ tar xvzf waypoints-0.0.1.tar.gz
    waypoints/
    waypoints/waypoints.pl
    waypoints/exemple.r01
    prompt$ mv waypoints/waypoints.pl $HOME/bin

    3 - Idées futures

    Paramétrer la position des point de passage 0 et longueur de chapelet en un fichier de configuration séparé de façon à mieux compartimenter et sécuriser le code.

    4 - Annexe

    Sur le terrain. Ci-après, câblière et, à poste de cette câblière, le pilote vérifiant les coordonnées sur son récepteur NR109 ainsi que celles, sur papier, qui lui furent acheminées par le département navigation.

     

    Haut de page

    Tous droits réservés © 2003-2006 Gaétan Martineau