Hi,

I've been chasing a new problem that appears to be somewhat sinister, but
could be relatively straight forward ... I'm turning my wheels.

Here's my code:

1   my $nc   = PDL::NetCDF->new( $ncfile );
2   my $lon0 = $nc->getatt( 'seasonde_Origin_Longitude',
sprintf('seasonde_Header_%s',uc($self->{station_site})) );
3   my $lat0 = $nc->getatt( 'seasonde_Origin_Latitude' ,
sprintf('seasonde_Header_%s',uc($self->{station_site})) );
4   my $drng = $nc->getatt( 'seasonde_Range_Resolution',
sprintf('seasonde_Header_%s',uc($self->{station_site})) );
5   my $rngN = $nc->getatt( 'seasonde_Range_Limit',
sprintf('seasonde_Header_%s',uc($self->{station_site})) ) * $drng;
6   my $dtheta = $nc->getatt( 'seasonde_Angular_Resolution',
sprintf('seasonde_Header_%s',uc($self->{station_site})) );
7   #my $thetas_degrees = zeroes(360/$dtheta)->xlinvals(0,(360-$dtheta));
8   my $thetas_degrees = zeroes(360/5)->xlinvals(0,355);
9   my $thetas = HFR::degrees2radians( $thetas_degrees );
10  #my $rngs = zeroes($rngN/$drng)->xlinvals($drng,$rngN);
11  my $rngs = zeroes(141237/3138.6)->xlinvals(3138.6,141237);
12  my @rngdims = $rngs->dims;
13  my @thetadims = $thetas->dims;
14  for (my $l1=0;$l1<$rngdims[0];$l1++) {
15    for (my $l2=0;$l2<$thetadims[0];$l2++) {
16      $lonG = $lonG->append( ($rngs($l1)*cos($thetas($l2)))+$lon0 );
17      $latG = $latG->append( ($rngs($l1)*sin($thetas($l2)))+$lat0 );
18    }
19  }

Here's the error message when lines 7 and 10 are uncommented and lines 8
and 11 are commented.

$ncfile = '
http://opendap-qcif.arcs.org.au/thredds/dodsC/IMOS/ACORN/radial/CRVT/2011/09/01/IMOS_ACORN_RV_20110901T000000Z_CRVT_FV00_radial.nc
'

HFR::degrees2radians is very straightforward as the name implies

The error message that I get is:

Must have at least two elements in dimension for xlinvals at
/opt/local/lib/perl5/site_perl/5.12.4/darwin-thread-multi-2level/PDL/Basic.pm
line 245
 PDL::xlinvals('PDL=SCALAR(0x7fb13b7f4bb8)', 'PDL=SCALAR(0x7fb13b7f4b40)',
'PDL=SCALAR(0x7fb13b7f4b70)') called at
/opt/local/lib/perl5/site_perl/5.12.4/HFR/ACORN.pm line 368

This implies that xlinvals is not getting the right input.  So when I 'foce
feed' xlinvals (as I've tested the code out on the PDL command line and it
works fine) it works fine too.  I'm stumped ... any thoughts?  Could there
be some conflict with PDL operators and Perl operators?

Here are the modules I've loaded into this package:
use 5.006;
use strict;
use warnings;
use Data::Dumper;
use Date::Parse;
use DateTime;
use Date::Calc qw ( :all );
use HFR;
use PDL;
use PDL::NiceSlice;
use PDL::Math;
use PDL::Char;
use PDL::NetCDF;
use PDL::Constants qw( PI );

Cheers,
Dan
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to