|
|
seg-d links |
|
Accueil Journal de mission Course à pied Ski de randonnée Alpinisme Voile Ecrits Diaporamas Programmation Carnet des invités |
Accueil > Programmation > Seg-d links Création de liens pour lecture de fichiers seg-d. ButRéaliser des lectures de fichiers seg-d et écritures de fichiers .DAT en plusieurs répertoires différents. Usagesegd_links.pl fichier.xps (rev2|rev1) Fichier_de_sortie.DAT Par exemple segd_links.pl foo.x01 rev2 I000001fra9191.DAT
Téléchargementsegd_links.pl : Clic droit, "save as", sauvegarder ainsi la cible du lien en tant que segd_links.pl, rendre exécutable et placer dans le $path, typiquement sous /usr/local/bin, sur une machine de type xw84pt1. Licence: GPL. MéthodeLes E/S de type STG, c'est-à-dire sur disque, de Geocluster doivent être réalisées dans un seul répertoire. On peut contourner cette limitation en utilisant un répertoire de travail temporaire, dans lequel on inscrit des liens symboliques pointant vers les propres sources ou destinations de son choix. Prenons comme exemple un simple fichier foo.x01 de 4 records répartis sur 3 bandes que l'on doit habiller de géométrie en un fichier de sortie I123456fra9191.DAT. On peut ainsi voir dans les champs de bande et de record de ce fichier X; xw84pt1% awk '/^X/' foo.x01 | cut -c1-15 | uniq
X 2444 431
X 2448 770
X 2455 8306
X 2455 8317
Typiquement, ceci signifierait qu'on doive ainsi sucessivement lire par exemple; /nfs/data1/SEGD/tape2444/00000431.segd /nfs/data1/SEGD/tape2448/00000770.segd /nfs/data1/SEGD/tape2455/00008306.segd /nfs/data1/SEGD/tape2455/00008317.segd Comme dans l'exemple ci-haut; xw84pt1% segd_links.pl foo.x01 rev2 I000001fra9191.DAT
Ensuite de quoi, on a les liens; xw84pt1% ls -al /stage/links/foo/
total 56
drwxrwxr-x 2 geo1 geovect 4096 Sep 28 20:14 .
drwxrwxr-x 192 geo2 geovect 49152 Sep 28 20:12 ..
lrwxrwxrwx 1 geo1 geovect 25 Sep 28 20:14 I000001fra9191.DAT -> /stage/I000001fra9191.DAT
lrwxrwxrwx 1 geo1 geovect 38 Sep 28 20:14 P000001fra9191.DAT -> /nfs/data1/SEGD/tape2444/00000431.segd
lrwxrwxrwx 1 geo1 geovect 38 Sep 28 20:14 P000002fra9191.DAT -> /nfs/data1/SEGD/tape2448/00000770.segd
lrwxrwxrwx 1 geo1 geovect 38 Sep 28 20:14 P000003fra9191.DAT -> /nfs/data1/SEGD/tape2455/00008306.segd
lrwxrwxrwx 1 geo1 geovect 38 Sep 28 20:14 P000004fra9191.DAT -> /nfs/data1/SEGD/tape2455/00008317.segd
-rw-rw-r-- 1 geo1 geovect 62 Sep 28 20:14 segin.lsi
Tous ces fichiers sont des fichiers de travail temporaires. Sachant qu'on peut les recréer en ne lançant qu'une seule commande segd_links peu couteuse, aussi bien alors les supprimer et ne conserver que le seul fichier X, lequel résume tout. On aura remarqué le lien vers le fichier de sortie demandé I000001fra9191.DAT -> /stage/I000001fra9191.DAT Les liens vers les fichiers seg-d, au noms sous format Geocluster; P000001fra9191.DAT -> /nfs/data1/SEGD/tape2444/00000431.segd P000002fra9191.DAT -> /nfs/data1/SEGD/tape2448/00000770.segd P000003fra9191.DAT -> /nfs/data1/SEGD/tape2455/00008306.segd P000004fra9191.DAT -> /nfs/data1/SEGD/tape2455/00008317.segd Ainsi que la sélection, non pas sous le format X, mais bien libri si Geocluster; xw84pt1% cat /stage/links/foo/segin.lsi
* LIBRI SI 01 CREW(sau3370),P1-P4,F1-F4,STG2,
On remarquera que les noms de fichiers, ici P000001fra9191.DAT à P000041fra9191.DAT ne sont que les numéros de records séquentiels dans le fichier X. Ils ne signifient rien en tant que tel mais comme ce sont des fichiers temporaires, alors leur nom n'a guère d'importance. Ceci permet une libri si d'un seule ligne. Si le job Geocluster signale un problème sur le fichier, disons 4, alors il faut savoir que le fichier en cause est bien, selon notre table de liens, le ...etc/tape2455/00008317.segd. le job de lecture comprendra donc les lignes; ** GVRPA@ setenv gvr_stage /stage/links/foo et; * RDLIB SI 01 FILE=/stage/links/foo/segin.lsi Remarques
A faireEventuellement organiser la soumission de paramètres de site sous un fichier de configuration plus simple à éditer. Utiliser GetOpt() pour le passage d'arguments. |
|
|
Tous droits réservés © 2003-2006 Gaétan Martineau |