IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 29740


Ignore:
Timestamp:
Nov 10, 2010, 9:58:39 AM (15 years ago)
Author:
rhenders
Message:

removed some redundant code from rate plotting method; implemented auto-interval for rate plots

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/czartool/Plotter.pm

    r29727 r29740  
    5555}
    5656
     57
     58###########################################################################
     59#
     60# Figures out a suitable interval for rate plots
     61# Could use some kind of function here, but instead we want to choose meaningful intervals
     62#
     63###########################################################################
     64sub getSuitableInterval {
     65    my ($self, $begin, $end, $interval) = @_;
     66
     67    $begin = $self->{_czarDb}->getFullDate($begin);
     68    $end = $self->{_czarDb}->getFullDate($end);
     69
     70    my $timeDiff = $self->{_czarDb}->diffTimes($end, $begin);
     71
     72    if ($self->{_czarDb}->isBefore($timeDiff, "00:00:01")) {return 0;}
     73    elsif ($self->{_czarDb}->isBefore($timeDiff, "03:00:00")) {${$interval} = "15 MINUTE";}
     74    elsif ($self->{_czarDb}->isBefore($timeDiff, "10:00:00")) {${$interval} = "30 MINUTE";}
     75    elsif ($self->{_czarDb}->isBefore($timeDiff, "24:00:00")) {${$interval} = "1 HOUR";} # under 1 day
     76    elsif ($self->{_czarDb}->isBefore($timeDiff, "36:00:00")) {${$interval} = "2 HOUR";} # under 1.5 days
     77    elsif ($self->{_czarDb}->isBefore($timeDiff, "48:00:00")) {${$interval} = "3 HOUR";} # under 2 days
     78    elsif ($self->{_czarDb}->isBefore($timeDiff, "72:00:00")) {${$interval} = "4 HOUR";} # under 3 days
     79    elsif ($self->{_czarDb}->isBefore($timeDiff, "96:00:00")) {${$interval} = "5 HOUR";} # under 4 days
     80    elsif ($self->{_czarDb}->isBefore($timeDiff, "144:00:00")) {${$interval} = "6 HOUR";} # under 6 days
     81    elsif ($self->{_czarDb}->isBefore($timeDiff, "168:00:00")) {${$interval} = "12 HOUR";} # under week
     82    elsif ($self->{_czarDb}->isBefore($timeDiff, "672:00:00")) {${$interval} = "1 DAY";} # under 2 week
     83    elsif ($self->{_czarDb}->isBefore($timeDiff, "2016:00:00")) {${$interval} = "1 WEEK";} # under 3 month
     84    else {${$interval} = "1 MONTH";}
     85
     86    return 1;
     87}
     88
    5789###########################################################################
    5890#
     
    6395    my ($self, $label, $selectedStage, $beginTime, $endTime, $interval, $isLog) = @_;
    6496
    65     my $minX = 999999999;     
    66     my $maxX = -9999999999;
    67     my $timeDiff = -1;
    68 
     97    # stages
    6998    my $stages = undef;                 
    70 
    7199    if (!$selectedStage) {
    72100        $stages = \@allStages;
    73101        $selectedStage = 'all_stages';
    74102    }
    75     else {$stages = ["$selectedStage"]};       
    76 
    77     $self->{_czarDb}->getTimeMinMaxDiff($label, "chip", $beginTime, $endTime, \$minX, \$maxX, \$timeDiff);
    78 
    79     my $divX;
    80     my $timeFormat;
    81     $self->getTimeSpacing($timeDiff, \$divX, \$timeFormat);
    82 
     103    else {$stages = ["$selectedStage"]};
     104
     105    # interval
     106    if (!$interval && !$self->getSuitableInterval($beginTime, $endTime, \$interval)) {return 0;}
     107
     108    # set up files
    83109    my %gnuplotFiles;
    84110    my $stage = undef;
     
    94120        "set term $self->{_outputFormat};" .
    95121        "set title \"'$label', '$selectedStage' during '$beginTime' to '$endTime'\";" .
    96         #"set xdata time;" .
    97         "set timefmt \"$self->{_dateFormat}\";" .
    98        "set format x \"$timeFormat\";" .
    99         "set xtics \"$minX\", $divX, \"$maxX\";" .
    100 #        "set xrange [\"$minX\":\"$maxX\"];" .
    101122        "set boxwidth;" .
    102123        "set xtic rotate by -90 scale 0;" .
     
    133154    # now delete temp dat files
    134155    foreach my $stage (keys %gnuplotFiles) {unlink($gnuplotFiles{$stage});}
     156
     157    return 1;
    135158}
    136159
Note: See TracChangeset for help on using the changeset viewer.