Geo::ReadGRIB::Place - Contains the value of a one or more data type at a given


Geo-ReadGRIB documentation Contained in the Geo-ReadGRIB distribution.

Index


Code Index:

NAME

Top

Geo::ReadGRIB::Place - Contains the value of a one or more data type at a given time and geographic location.

VERSION

Top

This documentation refers to Geo::ReadGRIB::Place version 1.0 as returned by a call to Geo::ReadGRIB::PlaceIterator::Current()

SYNOPSIS

Top

    use Geo::ReadGRIB;

    $w = new Geo::ReadGRIB "grib-file";
    $w->getFullCatalog;

    print $w->show,"\n";

    $plit = $w->extractLaLo(data_type, lat1, long1, lat2, long2, time);
    die $w->getError if $w->getError;

    # $plit is a Geo::ReadGRIB::PlaceIterator

    while ( $place = $plit->current() and $plit->next ) {

        # $place is a Geo::ReadGRIB::Place object

        $time       = $place->thisTime;
        $latitude   = $place->lat;
        $longitude  = $place->long;
        $data_types = $place->types; # an array ref of type names

        $data       = $place->data( data_type );

        # process data...
    }




DESCRIPTION

Top

Objects of this class are returned by the current() method of a PlaceIterator object which itself has been returned by the extractLaLo() or extract() methods of a Geo::ReadGRIB object. A place object has a unique latitude and longitude for one time and has data for one or more data types.

METHODS

Top

Objects of this class are read only and all parameters may be accessed by the following methods.

$object->new;
$object->thisTime;
$object->lat;
$object->long;
$object->types;
$object->data(type);

BUGS AND LIMITATIONS

Top

There are no known bugs in this module. Please report problems through

http://rt.cpan.org

or contact Frank Cox, <frank.l.cox@gmail.com> Patches are welcome.

AUTHOR

Top

Frank Cox, <frank.l.cox@gmail.com>

COPYRIGHT AND LICENSE

Top


Geo-ReadGRIB documentation Contained in the Geo-ReadGRIB distribution.

#
#===============================================================================
#
#         FILE:  Place.pm
#
#  DESCRIPTION:  creates Geo::ReadGRIB::Place objects
#
#        FILES:  ---
#         BUGS:  ---
#        NOTES:  ---
#       AUTHOR:  Frank Lyon Cox (Dr), <frank@pwizardry.com>
#      COMPANY:  Practial Wizardry
#      VERSION:  1.0
#      CREATED:  2/3/2009 10:42:57 PM Pacific Standard Time
#     REVISION:  ---
#===============================================================================

package Geo::ReadGRIB::Place;

use strict;
use warnings;

our $VERSION = 1.0;

#--------------------------------------------------------------------------
#  new( )
#--------------------------------------------------------------------------
sub new {
    my $class = shift;
    my $self = {};
    bless $self, $class;
    return $self;
}

#--------------------------------------------------------------------------
#  thisTime( )
#--------------------------------------------------------------------------
sub thisTime {
    my $self = shift;
    my $arg  = shift;
    $self->{time} = $arg if defined $arg;
    return $self->{time};
}

#--------------------------------------------------------------------------
#  lat( )
#--------------------------------------------------------------------------
sub lat {
    my $self = shift;
    my $arg  = shift;
    $self->{lat} = $arg if defined $arg;
    return $self->{lat};
}

#--------------------------------------------------------------------------
#  long( )
#--------------------------------------------------------------------------
sub long {
    my $self = shift;
    my $arg  = shift;
    $self->{long} = $arg if defined $arg;
    return $self->{long};
}

#--------------------------------------------------------------------------
#  types( )
#
#  returns an array ref of type names
#--------------------------------------------------------------------------
sub types {
    my $self = shift;
    my $arg  = shift;
    push @{$self->{types}}, $arg if defined $arg;
    return $self->{types};
}

#--------------------------------------------------------------------------
#  data( type_name )
#
#  takes a type_name and returns the associated data
#--------------------------------------------------------------------------
sub data {
    my $self = shift;
    my $type = shift;
    my $data = shift;

    $self->{data}->{$type} = $data if defined $data;

    if ( not defined $self->{data}->{$type} ) {
        warn "Place: Not a valid type: $type\n";
    }

    return $self->{data}->{$type};
}




1;