.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "HDF 3pm" .TH HDF 3pm "2023-06-17" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PDL::IO::HDF \- A PDL interface to the HDF4 library. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use PDL; \& use PDL::IO::HDF; \& \& # Open file \*(Aqfoo.hdf\*(Aq with all hdf interface: \& my $HDF = PDL::IO::HDF\->new("foo.hdf"); \& \& # You can call functions from either the SD or VS interfaces: \& $HDF\->{SD}\->SDget("Foo_data"); \& $HDF\->{VS}\->VSgetnames(); \& \& # To close the file: \& $HDF\->close(); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This library provides functions to manipulate \s-1HDF\s0 files with the \&\s-1SD, VS,\s0 and V \s-1HDF\s0 interfaces. .PP For more information on \s-1HDF,\s0 see http://hdf.ncsa.uiuc.edu/ .PP The 'new' function of this package uses the 'new' functions for the individual \s-1HDF\s0 interfaces. This allows you to use all of the interfaces at one time (if you don't mind the extended syntax). .PP Actually using the \s-1HDF\s0 files comes down to using one of the particular interfaces, for that see the docs on those modules. .SH "CONSTANTS" .IX Header "CONSTANTS" These constants are now implemented using the perl 'use constant' pragma. .PP Previously, they were just scalars that were changeable (which is a no-no). .PP See \fBconstant\fR\|(1) for more info on how to use these in your code. .SS "Access Modes" .IX Subsection "Access Modes" .IP "\s-1DFACC_READ\s0" 8 .IX Item "DFACC_READ" Open the file in read-only mode. .IP "\s-1DFACC_WRITE\s0" 8 .IX Item "DFACC_WRITE" Open the file in write-only mode. .IP "\s-1DFACC_CREATE\s0" 8 .IX Item "DFACC_CREATE" Clobber the file (create it if it doesn't exist, and then open with \s-1RW\s0 mode). .IP "\s-1DFACC_ALL\s0" 8 .IX Item "DFACC_ALL" Open the file in read-write mode. .IP "\s-1DFACC_RDONLY\s0" 8 .IX Item "DFACC_RDONLY" Same as \s-1DFACC_READ\s0 .IP "\s-1DFACC_RDWR\s0" 8 .IX Item "DFACC_RDWR" Open the file in read-write mode. .SS "\s-1VS\s0 Interface Interlacing Modes" .IX Subsection "VS Interface Interlacing Modes" .IP "\s-1FULL_INTERLACE\s0" 8 .IX Item "FULL_INTERLACE" .PD 0 .IP "\s-1NO_INTERLACE\s0" 8 .IX Item "NO_INTERLACE" .PD .SS "\s-1HDF4\s0 Data Type Codes:" .IX Subsection "HDF4 Data Type Codes:" .IP "\s-1DFNT_UCHAR\s0" 8 .IX Item "DFNT_UCHAR" \&\s-1HDF\s0's unsigned char ~= \s-1PDL\s0's byte .IP "\s-1DFNT_CHAR\s0" 8 .IX Item "DFNT_CHAR" \&\s-1HDF\s0's char ~= \s-1PDL\s0's byte .IP "\s-1DFNT_FLOAT32\s0" 8 .IX Item "DFNT_FLOAT32" \&\s-1HDF\s0's 32\-bit float ~= \s-1PDL\s0's float .IP "\s-1DFNT_FLOAT64\s0" 8 .IX Item "DFNT_FLOAT64" \&\s-1HDF\s0's 64\-bit float ~= \s-1PDL\s0's double .IP "\s-1DFNT_INT8\s0" 8 .IX Item "DFNT_INT8" \&\s-1HDF\s0's 8\-bit integer ~= \s-1PDL\s0's byte .IP "\s-1DFNT_UINT8\s0" 8 .IX Item "DFNT_UINT8" \&\s-1HDF\s0's 8\-bit unsigned integer ~= \s-1PDL\s0's byte .IP "\s-1DFNT_INT16\s0" 8 .IX Item "DFNT_INT16" \&\s-1HDF\s0's 16\-bit integer ~= \s-1PDL\s0's short .IP "\s-1DFNT_UINT16\s0" 8 .IX Item "DFNT_UINT16" \&\s-1HDF\s0's 16\-bit unsigned integer ~= \s-1PDL\s0's ushort .IP "\s-1DFNT_INT32\s0" 8 .IX Item "DFNT_INT32" \&\s-1HDF\s0's 32\-bit integer ~= \s-1PDL\s0's long .IP "\s-1DFNT_INT64\s0" 8 .IX Item "DFNT_INT64" \&\s-1HDF\s0's 32\-bit integer ~= \s-1PDL\s0's long .SS "Misc. \s-1HDF\s0 Library Constants:" .IX Subsection "Misc. HDF Library Constants:" .IP "\s-1MAX_NC_NAME\s0" 8 .IX Item "MAX_NC_NAME" This is the max name length for \s-1SDS\s0 variables, attribtues, and just about anything else. .IP "\s-1MAX_VAR_DIMS\s0" 8 .IX Item "MAX_VAR_DIMS" This is the max number of dims a \s-1HDF\s0 variable can have. .IP "\s-1VNAMELENMAX\s0" 8 .IX Item "VNAMELENMAX" Max length of V interface names. .SH "CURRENT AUTHOR & MAINTAINER" .IX Header "CURRENT AUTHOR & MAINTAINER" Judd Taylor, Orbital Systems, Ltd. judd dot t at orbitalsystems dot com .SH "PREVIOUS AUTHORS" .IX Header "PREVIOUS AUTHORS" Patrick Leilde patrick.leilde@ifremer.fr contribs of Olivier Archer olivier.archer@ifremer.fr .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBperl\fR\|(1), \s-1\fBPDL\s0\fR\|(1), \s-1\fBPDL::IO::HDF::SD\s0\fR\|(1), \s-1\fBPDL::IO::HDF::VS\s0\fR\|(1), \fBconstant\fR\|(1).