Hi, Paul, This looks like a linking error. The t_linear constructor makes use of an identity matrix generator, which is (was?) exported into the loading module as part of PDL::MatrixOps (used to be part of the whole “use PDL” sequence). That occurs on or around line 2796 of transform.pd, and again a few lines later (line 2811 in my copy). It’s possible that with recent cleanup of the various libraries and export lists, “identity” is no longer being exported into the PDL::Transform::Linear package on load. A good way to fix that would be to make sure that PDL::Transform::Linear explicitly uses PDL::MatrixOps and explicitly asks for identity() to be exported.
Cheers, Craig > On Oct 18, 2022, at 9:09 PM, Paul Goodall <paul.thomas.good...@gmail.com> > wrote: > > Hi Ingo, > > With or without the curly braces - it's the same for me. Also - the error > happens before the map stage, during the call to 't_linear'. > > I will write a simple Bilinear Interpolation myself, I would have just > preferred to use the in-built capability in 'PDL::Transform'. > > --- > pdl> use PDL::Transform; > > > > pdl> $im = rfits "m51.fits" > > > Reading IMAGE data... > BITPIX = -32 size = 262144 pixels > Reading 1048576 bytes > BSCALE = 1 && BZERO = 0 > > pdl> $tr = t_linear({rot=>30}); > > > Undefined subroutine &PDL::Transform::Linear::identity called at transform.pd > line 2729. > > pdl> $tr = t_linear(rot=>30); > > > Undefined subroutine &PDL::Transform::Linear::identity called at transform.pd > line 2729. > --- > > cheers, > > Paul > > >> On 18 Oct 2022, at 10:05 am, Ingo Schmid <ingo...@gmx.at >> <mailto:ingo...@gmx.at>> wrote: >> >> Dear Paul, >> >> first, I think you do not need the curly { } around rot. >> >> Second, map needs $tr and $im. You can call it $tr->map($im) or >> $im->map($tr), as far as I know. >> >> With these changes, it works for me. >> >> use PDL; >> #use PDL::IO::; >> use PDL::Transform; >> use PDL::Graphics::Gnuplot; >> >> $im = rfits('/data/ingo/git/PDL/pdl-code/m51.fits'); >> $tr = t_linear({rot=>30}); >> print $Tr; >> $im1 = $tr->map($im); >> gplot {out=>'i1.png',term=>'png',},with=>'image',$im; >> gplot {out=>'i2.png',term=>'png',},with=>'image',$im1; >> >> >> >> >> Ingo >> >> On 10/18/22 07:52, Paul Goodall wrote: >>> Hi perldl peeps, >>> >>> I'm trying to do something that should be really simple, but it seems I'm >>> falling over at the first hurdle. >>> I've replicated the error in it's simplest form from the example given in >>> the docs as follows, and I've highlighted the offending line. >>> >>> ---- >>> use PDL <https://metacpan.org/pod/PDL::Transform>; >>> use PDL::IO::Image <https://metacpan.org/pod/PDL::Transform>; >>> use PDL::Transform <https://metacpan.org/pod/PDL::Transform>; >>> $im = rfits('m51.fits'); >>> $tr = t_linear({rot=>30}); >>> $im1 = $tr->map($tr); >>> --- >>> And I'm hit with this one: >>> >>> > Undefined subroutine &PDL::Transform::Linear::identity called at >>> > transform.pd line 2729. >>> >>> I'm using PDL v2.080 on Ubuntu 20.04 (focal). >>> >>> This feels like it's something that has been solved a million times, but I >>> can't seem to find the solution. Am I looking at the wrong Docs or doing >>> something obviously silly? >>> >>> cheers, >>> >>> Paul >>> >>> >>> >>> _______________________________________________ >>> pdl-general mailing list >>> pdl-general@lists.sourceforge.net <mailto:pdl-general@lists.sourceforge.net> >>> https://lists.sourceforge.net/lists/listinfo/pdl-general >>> <https://lists.sourceforge.net/lists/listinfo/pdl-general> >> _______________________________________________ >> pdl-general mailing list >> pdl-general@lists.sourceforge.net <mailto:pdl-general@lists.sourceforge.net> >> https://lists.sourceforge.net/lists/listinfo/pdl-general > > _______________________________________________ > pdl-general mailing list > pdl-general@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/pdl-general
_______________________________________________ pdl-general mailing list pdl-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pdl-general