source: trunk/soft/ObsData/ourplugins/cr_sond_o3.pl @ 235

Last change on this file since 235 was 235, checked in by nanardon, 18 years ago
  • add level var to plugin
  • Property svn:keywords set to Id
File size: 3.5 KB
Line 
1#!/usr/bin/perl -c
2
3# $Id$
4
5use strict;
6
7sub {
8    my ($rda, $plugintype, $datafile, $datatype) = @_;
9
10    my %var;
11    if ($rda->{plugvalue}{$plugintype}) {
12        if (ref $rda->{plugvalue}{$plugintype} ne 'HASH') {
13            return(0);
14        } else {
15            %var = %{$rda->{plugvalue}{$plugintype}};
16        }
17    } else {
18        my $archive = $rda->archive() or return($rda->{plugvalue}{$plugintype} = 0);
19
20        my ($index) = grep { /\.de1$/i } $archive->ls();
21
22        $index or return($rda->{plugvalue}{$plugintype} = 0);
23       
24        my $filename = $archive->extract($index) or return($rda->{plugvalue}{$plugintype} = 0);
25
26        my $resopen= open(my $h, $filename);
27
28        unlink($filename);
29
30        if(!$resopen) {
31            return($rda->{plugvalue}{$plugintype} = 0);
32        }
33
34        %var = (); # ensure it is empty
35        my $count_want_values = 6;
36        while(my $line = <$h>) {
37            chomp($line);
38            if($line =~ /Flight date = (\d\d)-(\d\d)-\d\d(\d\d)/) {
39                $var{year} = $3;
40                $var{month} = $2;
41                $var{day} = $1;
42            } elsif ($line =~ /Launch time = (\d\d):(\d\d):\d\d/) {
43                $var{minute} = $2;
44                $var{hour} = $1;
45            } elsif($line =~ /Flight number = OH(\d{3})/) {
46                $var{vol} = $1;
47            }
48            if (scalar(keys %var) == $count_want_values) { # to avoid to read the whole file !!
49                last;
50            }
51        }
52
53        close($h);
54        if (scalar(keys %var) != $count_want_values) { #
55            return($rda->{plugvalue}{$plugintype} = 0);
56        }
57       
58        $rda->{plugvalue}{$plugintype} = { %var };
59    }
60
61    my $destfilename;
62    for ($datafile) {
63        /\.le1$/i and do { 
64            $destfilename = sprintf(
65                'cco%s%s%s%s%s.com',
66                $var{year}, $var{month}, $var{day},
67                $var{hour}, $var{minute},
68            );
69            $var{level} = 'niveau2';
70        };
71       
72        /\.DE1$/i and do {
73            $destfilename = sprintf(
74                'cco%s%s%s%s%s.param',
75                $var{year}, $var{month}, $var{day},
76                $var{hour}, $var{minute},
77            );
78            $var{level} = 'niveau2';
79        };
80
81        /\.log$/i and do {
82            $destfilename = sprintf(
83                'cco%s%s%s%s%s.preval',
84                $var{year}, $var{month}, $var{day},
85                $var{hour}, $var{minute},
86            );
87            $var{level} = 'niveau1';
88        };
89       
90        /\.cal$/i and do {
91            $destfilename = sprintf(
92                'cco%s%s%s%s%s.cal',
93                $var{year}, $var{month}, $var{day},
94                $var{hour}, $var{minute},
95            );
96            $var{level} = 'niveau1';
97        };
98       
99        /\.raw$/i and do {
100            $destfilename = sprintf(
101                'cco%s%s%s.raw',
102                $var{year}, $var{month}, $var{day},
103            );
104            $var{level} = 'niveau0';
105        };
106       
107        /(...)\.dat$/i and do{
108            $destfilename = sprintf(
109                'cco%s%s%s_%s.dat',
110                $var{year}, $var{month}, $var{day},
111                uc($1),
112            );
113            $var{level} = 'niveau0';
114        };
115       
116        /\.mes$/i and do {
117            $destfilename = sprintf(
118                'cco%s%s%s.vol%s',
119                $var{year}, $var{month}, $var{day},
120                $var{vol},
121            );
122            $var{level} = 'cr_vol_voemel';
123        };
124
125    }
126   
127    $destfilename or return(0);
128
129    return (1, 'filename', $destfilename, %var);
130}
Note: See TracBrowser for help on using the repository browser.