Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Group file per time interval

by roboticus (Chancellor)
on Feb 08, 2013 at 00:57 UTC ( #1017739=note: print w/ replies, xml ) Need Help??


in reply to Group file per time interval

raiten:

I'd convert the times to seconds, and then do something like this:

$ cat t.pl #!/usr/bin/perl use strict; use warnings; use Data::Dumper; ### Get a list of picture times, in seconds my @times; push @times, int 150*rand for 0 .. 30; ### Sort them @times = sort { $a<=>$b } @times; ### Group together the pix whose time is less than MAX_TIME_DIFF secon +ds ### apart my $MAX_TIME_DIFF=10; # Minimum time between photos my $MIN_GRP_SIZE=3; # Minimum "interesting" group size my @groups; my $cur_group = [ shift @times ]; while (@times) { if ($$cur_group[-1]+$MAX_TIME_DIFF >= $times[0]) { # small interval, add to current group push @$cur_group, shift @times; } else { # store last group (if interesting) and start # a new one. push @groups, $cur_group if @$cur_group >= $MIN_GRP_SIZE; $cur_group = [ shift @times ]; } } print Dumper(\@groups); $ perl t.pl $VAR1 = [ [ 32, 36, 39, 39, 40, 42, 48, 53, 55, 56, 57, 58, 59 ], [ 72, 73, 77, 82 ], [ 93, 103, 104, 105, 108, 111, 113, 113, 114, 116 ] ];

...roboticus

When your only tool is a hammer, all problems look like your thumb.


Comment on Re: Group file per time interval
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1017739]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (15)
As of 2015-07-28 18:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (258 votes), past polls