#!/usr/bin/perl #-----------------------------pointset1---------------------- $points=$ARGV[0]; $cnt=0; open(PTS,"<$points"); while() { #X,Y,Z,Time,Amplitude ++$cnt; if(!/X/) { ($x,$y,$z,$ts,$a)=split ','; ($date,$time)=split ' ',$ts; $ts="$date $time"; ($h,$m,$s)=split ':', $time; ($d,$mon,$yr)=split '-', $date; $date="$d-$mon-$yr"; $t=($h*3600)+($m*60)+$s;#convert to seconds push(@ts,$t); push(@as,$a); push(@lines,$_); #$data[$cnt][0]=$t; #$data[$cnt][1]=$a; #$data[$cnt][2]=$_; #print STDERR "\n$_"; #print STDERR "Event #: $cnt\n"; #print STDERR "Seconds: $t\n"; #print STDERR "Amplitude: $a\n"; } } close(PTS); while (@ts != 0) { $t0=pop(@ts); $a0=pop(@as); $line0=pop(@lines); # sort by amplitude smallest to largest #@data=sort {$a->[1]<=>$b->[1];} @data; #($t0,$a0,$line0) = pop(@data); #print STDERR "T0=$t0\n"; #print STDERR "A0=$a0\n"; #print STDERR "$line0\n"; # sort by time difference smallest to largest #@data=sort {abs($t0-$data[$a][0])<=>abs($t0-$data[$b][0])} @data; $flag=0; for ($i=0;$i<@ts;$i++){ $test = abs($t0-$ts[$i]); #print "NEXT Time= $ts[$i]\n"; #print "NEXT Amp= $as[$i]\n"; #print "Time Difference= $test\n"; #if ($test < 0.3 && $a0 < $as[$i]){print "TIME: $test is less than 0.3\n"; #print "AMPLITUDE:$a0 is less than $as[$i]\n"} if( $test < 0.3 && $a0 < $as[$i]){$flag=1} #print "FLAG= $flag\n"; } if ($flag==0) {unshift(@keepers,$line0)}; #push(@keepers,$line0); } open(OUT,">out_file.txt"); print OUT "X,Y,Z,Time,Amplitude\n"; print OUT (@keepers); close (OUT); #### X,Y,Z,Time,Amplitude 2550,531,66,10-12-2007 07:03:08.069,2 2549,529,62,10-12-2007 07:03:08.151,1 2550,531,66,10-12-2007 07:03:09.069,1 2549,529,62,10-12-2007 07:03:09.151,2 #### X,Y,Z,Time,Amplitude 2550,531,66,10-12-2007 07:03:08.069,2 2550,531,66,10-12-2007 07:03:09.069,1 2549,529,62,10-12-2007 07:03:09.151,2