Hi Dana.
I'm probably the guy your looking for here. I didn't write the
PDL::IO::HDF module as it originally appeared, but when the original
authors disappeared, I sort of took it over.
I do, however, have a bunch of experience with HDF4, some with hdf5 and
the various versions of hdfeos. I've done a lot of HDF work in C as well
(including a few bugfix submissions to HDF itself), so it shouldn't be
too hard to get us both on the same page.
I've never been 100% satisfied with the current PDL::IO::HDF modules,
but haven't really had a ton of time to rewrite everything as I would
like to (see the PDL::IO::GD for an example of how I would have liked it
to work out).
In any event, within the Perl world you can split any HDF interfacing
into two seperate tasks. The first is all of the support for the HDF
metadata. This is actually not too difficult, as Perl handles most of
the metadata types seamlessly.
The next task is dealing with the actual data itself, which Perl itself
isn't a great solution for. Using Perl arrays is just too slow, and the
only other alternative that is offered without an extension such as PDL
is to use binary blobs of data, which then cannot be manipulated easily
within the language. This is where PDL comes in. PDL allows easy and
fast manipulation of the data that comes in and out of HDF files, while
the rest of the language can easily handle the metadata functionality.
So for a way to move forward, I'd suggest taking a look at PDL::PP,
rather than PerlXS. Likely, you/we'll need both for a full interface,
but PDL::PP is much faster and easier to deal with. A popular way to
interface a C library to PDL is to write code that can analyze a header
file from the library and then autogenerate the requried PDL::PP or
PerlXS interface code to create native Perl subs for the library code.
That technique is not a magic bullet, but where it works, it really
works well and leaves an easily maintainable code base to work with.
However, I'd love your input as to what goals you have for a new HDF
interface to Perl, and then I'll be happy to assist and work along side
you to implement it.
Thanks,
Judd
On Fri, 2009-10-02 at 20:37 -0500, Dana Robinson wrote:
> Judd,
>
> Hi! My name is Dana Robinson and I'm with the HDF Group. I've been
> tasked with creating some HDF4 and 5 wrappers for Perl and I'd like to
> do this in the most 'Perlish' way that I can. My background is in
> other
> languages so it'll probably be a little while before I have something
> usable (though my C background might mean that I'll have an easier
> time
> of navigating XS). I've seen that there is limited HDF functionality
> in
> the PDL namespace so I thought I'd shoot you an email to see how you
> felt about coordinating our work with the existing library code. I'd
> also appreciate any advice you can give me about getting Perl to work
> with HDF since you've already done some work with it.
>
> Cheers,
>
> Dana Robinson
--
____________________________
Judd Taylor
Software Engineer
Orbital Systems, Ltd.
3807 Carbon Rd.
Irving, TX 75038-3415
[email protected]
(972) 915-3669 x127
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl