Astro-Catalog

 view release on metacpan or  search on metacpan

lib/Astro/Catalog/Query/SuperCOSMOS.pm  view on Meta::CPAN

                    Error => $err ),
                'mag', 'I' );
        push @mags, $mag;

        # calculate colours UKST Bj - UKST R, UKST Bj - UKST I

        if ($star->get_magnitude( "BJ" ) != 99.999 &&
                $star->get_magnitude( "R2" ) != 99.999) {
            my $bj_minus_r2 = $star->get_magnitude( "BJ" ) -
                $star->get_magnitude( "R2" );
            $bj_minus_r2 =  sprintf("%.4f", $bj_minus_r2 );

            my $delta_bjmr = ( ( $star->get_errors( "BJ" ) )**2.0 +
                    ( $star->get_errors( "R2" ) )**2.0     )** (1/2);
            $delta_bjmr = sprintf("%.4f", $delta_bjmr );

            $cval = $bj_minus_r2;
            $err = $delta_bjmr;
        }
        else {
            $cval = 99.999;
            $err = 99.999;
        }
        $col = new Astro::FluxColor(
                upper => 'BJ',
                lower => "R2",
                quantity => new Number::Uncertainty(
                    Value => $cval,
                    Error => $err ) );
        push @cols, $col;

        if ($star->get_magnitude( "BJ" ) != 99.999 &&
                $star->get_magnitude( "I" ) != 99.999) {

            my $bj_minus_i = $star->get_magnitude( "BJ" ) -
                $star->get_magnitude( "I" );
            $bj_minus_i =  sprintf("%.4f", $bj_minus_i );

            my $delta_bjmi = ( ( $star->get_errors( "BJ" ) )**2.0 +
                    ( $star->get_errors( "I" ) )**2.0     )** (1/2);
            $delta_bjmi = sprintf("%.4f", $delta_bjmi );

            $cval = $bj_minus_i;
            $err = $delta_bjmi;

        }
        else {
            $cval = 99.999;
            $err = 99.999;
        }
        $col = new Astro::FluxColor(
                upper => 'BJ',
                lower => "I",
                quantity => new Number::Uncertainty(
                    Value => $cval,
                    Error => $err ) );
        push @cols, $col;

        # Push the data back into the star object, overwriting ther previous
        # values we got from the initial Skycat query. This isn't a great
        # solution, but it wasn't easy in version 3 syntax either, so I guess
        # your milage may vary.

        my $fluxes = new Astro::Fluxes( @mags, @cols );
        $star->fluxes( $fluxes, 1 );  # the 1 means overwrite the previous values

        # push it onto the stack
        $stars[$i] = $star if defined $star;
    }

    $catalog->allstars( @stars );

    # set the field centre
    my %allow = $self->_get_allowed_options();
    my %field;
    for my $key ("ra","dec","radius") {
        if (exists $allow{$key}) {
            $field{$key} = $self->query_options($key);
        }
    }
    $catalog->fieldcentre( %field );

    return $catalog;
}

=item B<_get_allowed_options>

This method declares which options can be configured by the user
of this service. Generated automatically by the skycat config
file and keyed to the requested catalog.

=cut

sub _get_allowed_options {
    my $self = shift;
    my $cat = $self->_selected_catalog();

    return %{ $CONFIG{$cat}->{allow} };
}

=item B<_get_default_options>

Get the default options that are relevant for the selected
catalog.

    %defaults = $q->_get_default_options();

=cut

sub _get_default_options {
    my $self = shift;

    # Global skycat defaults
    my %defaults = (
        # Target information
        ra => undef,
        dec => undef,
        id => undef,

        # Limits
        radmin => 0,



( run in 0.942 second using v1.01-cache-2.11-cpan-39bf76dae61 )