# Aufspalten der Parameter (Headerzeile) in Spalten my @Cruise_Zeile = split /\t/, $Cruise_Zeile_ges; for my $i (0 .. $#Cruise_Zeile){ print "$i $Cruise_Zeile[$i]\n"; } #suchen der wichtigen Parameter (Tiefe, Datum, Wert) my $D_spalte; for my $i (0 .. $#Cruise_Zeile) { $D_spalte = $i, last if $Cruise_Zeile[$i] =~ /Depth /; } $D_QV = $D_spalte + 1; # die Zeitspalte steht 2 Spalten vorher! $Z_spalte = $D_spalte - 2; # DATUM/ZEIT (Format 2009-01-21T11:00:00) # Suchen nach den Parametern for my $i ($D_QV .. $#Cruise_Zeile) { if ($Cruise_Zeile[$i] =~ /Temperature/) { $temp_index = $i; last; } } for my $i ($D_QV .. $#Cruise_Zeile) { if ($Cruise_Zeile[$i] =~ /Salinity/) { $sali_index = $i; last; } } # aus @aktzeile ein 2-dim Feld machen foreach my $zz (@stationsdaten) { my @hilf = split /\t/, $zz; push @aktzeile, [@hilf]; } # Zeitreihen fuer die einzelnen Parameter basteln # TEMPERATUR for my $l (0 .. $#stationsdaten) { # die Zeitreihe der Temperaturen befindet sich in push @zr_temp, $aktzeile[$l]->[$temp_index]; } # Schleife durch alle Parameter machen und die QVs setzen # aktzeile wird immer komplett mit reingegeben # ZEIT TIEFE WERT @QV_neu = sub_QC_temp($Z_spalte, $D_spalte, $temp_index); for my $l (0 .. $#stationsdaten) { $aktzeile[$l]->[$temp_index+1] = $QV_neu[$l] } # neue QVs setzen # wegschreiben der Zeilen, # vorher wurden die neuen QVs eingesetzt for my $i (0 .. $#stationsdaten - 1) { for my $l (0 .. $#Cruise_Zeile) { printf OUT_DATEI "%+s\t", $aktzeile[$i]->[$l]; } printf OUT_DATEI "%+s\n", $aktzeile[$#stationsdaten]->[$#Cruise_Zeile]; } close OUT_DATEI; ########## ende MAIN # EINLESEN DES REFERNZDATENSATZ und splitten nach Parameter # (er liegt in folgender Struktur vor:) #Param Tiefe Monat mean N Sigma Min Max # TEMP; 2; 01; 4.18; 4235; 1.45; 0.73; 7.07 # TEMP; 2; 02; 2.70; 4056; 1.29; 0.14; 5.35 # TEMP; 2; 03; 2.40; 5135; 1.30; 0.19; 5.22 open my $eingang, '<', $dest_dir.$filename or die "can't open $filename: $!\n"; my ($bla, @klimatol); while (<$eingang>) { $bla++ if /^\s/; push @klimatol, $_ if $bla; } close $eingang; print @klimatol, "\n"; my @datenz; foreach (@klimatol) { chomp; $_=~ s/ //g; my ($Param, $Tiefe, $Monat, $mean, $N, $sigma, $Min, $Max) = split /;/; push @datenz, join ';', $Param, $Tiefe, $Monat, $mean, $N, $sigma, $Min, $Max, "\n"; }