IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 13925


Ignore:
Timestamp:
Jun 20, 2007, 12:43:07 PM (19 years ago)
Author:
Paul Price
Message:

Adding code to parse fringe amplitudes and errors.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/PS-IPP-Config/lib/PS/IPP/Metadata/Stats.pm

    r11728 r13925  
    11# Copyright (c) 2006  Paul Price, Joshua Hoblitt
    22#
    3 # $Id: Stats.pm,v 1.13 2007-02-09 03:55:22 price Exp $
     3# $Id: Stats.pm,v 1.14 2007-06-20 22:43:07 price Exp $
    44
    55package PS::IPP::Metadata::Stats;
     
    2424
    2525use base qw( Class::Accessor::Fast );
    26 __PACKAGE__->mk_accessors( qw( bg_mean bg_stdev bg_mean_stdev constants variables bg_data bg_stdev_data ) );
     26__PACKAGE__->mk_accessors( qw( bg_mean bg_stdev bg_mean_stdev fringe fringe_err
     27                               constants variables bg_data bg_stdev_data ) );
    2728
    2829#$::RD_TRACE = 1;
     
    3839                 bg_stdev => undef, # Standard deviation of the mean backgrounds
    3940                 bg_mean_stdev => undef, # Mean of the standard deviation of the backgrounds
     41                 fringe => [],  # Fringe amplitudes
     42                 fringe_err => [], # Fringe amplitude errors
    4043                 constants => $constants, # Array of values that should be constant through the FPA
    4144                 variables => $variables, # Array of values that may be variable through the FPA
    4245                 bg_data => [], # Array of background values
    43                  bg_stdev_data => [],# Array of background standard deviations
     46                 bg_stdev_data => [], # Array of background standard deviations
     47                 fringe_data => [], # Fringe amplitudes each component
     48                 fringe_err_data => [], # Fringe errors for each component
    4449                 data => {}        # The data
    4550                 };
     
    128133    } else {
    129134        $self->bg_stdev(undef);
     135    }
     136
     137    # Get fringe measurements
     138    if (scalar @{$self->{fringe_data}} > 0) {
     139        foreach my $array (@{$self->{fringe_data}}) {
     140            my $stats = Statistics::Descriptive::Sparse->new(); # Statistics calculator
     141            $stats->add_data(@$array);
     142            push @{$self->{fringe}}, $stats->mean();
     143        }
     144    }
     145    if (scalar @{$self->{fringe_err_data}} > 0) {
     146        foreach my $array (@{$self->{fringe_err_data}}) {
     147            my @variances;
     148            foreach my $value (@$array) {
     149                push @variances, $value**2;
     150            }
     151            my $stats = Statistics::Descriptive::Sparse->new(); # Statistics calculator
     152            $stats->add_data(@variances);
     153            push @{$self->{fringe_err}}, sqrt($stats->mean());
     154        }
    130155    }
    131156
     
    207232                push @{$self->{bg_data}}, $entry->{value};
    208233            }
     234        } elsif ($entry->{name} =~ /^FRINGE/) {
     235            my ($num) = $entry->{name} =~ /_(\d+)$/; # Component number
     236            if ($entry->{name} =~ /_ERR_/) {
     237                my $arrayRef = ${$self->{fringe_err_data}}[$num];
     238                unless (defined $arrayRef) {
     239                    my @array;
     240                    $arrayRef = \@array;
     241                    ${$self->{fringe_err_data}}[$num] = $arrayRef;
     242                }
     243                push @$arrayRef, $entry->{value};
     244            } else {
     245                my $arrayRef = ${$self->{fringe_data}}[$num];
     246                unless (defined $arrayRef) {
     247                    my @array;
     248                    $arrayRef = \@array;
     249                    ${$self->{fringe_data}}[$num] = $arrayRef;
     250                }
     251                push @$arrayRef, $entry->{value};
     252            }
    209253        } else {
    210254            $self->_check_values($entry);
Note: See TracChangeset for help on using the changeset viewer.