hdfimport(1)

πŸ“¦
version 4.3.1 Β· 2 versions
  • 4.3.1 Β· debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute (latest)
  • 4.3.1 Β· ubuntu stonking
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute

πŸ’… hdfimport β€” bestie, let's get this data INTO an HDF file πŸ’…

okay so welcome to hdfimport(1), the section 1 manual page you're literally about to become obsessed with. this is the glow-up guide for shoving ASCII or binary data into HDF. no cap. ✨


🌸 NAME 🌸

hdfimport β€” imports ASCII or binary data into HDF


πŸŽ€ SYNOPSIS πŸŽ€

hdfimport <infile> [ [-t[ype] output-type | -n] [ <infile> [-t[ype]
          output-type | -n] ...  ] ] -o[utfile] outfile [-r[aster]
          [ras_opts ...]] [-f[loat]]

like, look at her. she's giving main character energy. 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

so what does hdfimport actually DO? she converts floating point data into HDF Scientific Data Set (SDS) format and/or 8-bit Raster Image Set (RIS8) format, and she stores the results in an HDF file. and the image data? it can be scaled about a mean value. iconic behavior honestly. πŸ’–


✨ OPTIONS ✨

  • infile(s) β€” the name of the input file(s). they hold a single two-dimensional or three-dimensional floating point array, in either ASCII text, native floating point, native integer or HDF SDS format. if you're feeding in an HDF file, it has to contain an SDS. that SDS only needs a dimension record and the data β€” but if it also has maximum and minimum values and/or scales for each axis, bestie, those get used too. πŸ’… and if your input format is ASCII text or native floating point or native integer, go peek at "Notes" below for how it has to be organized.
  • -t[ype] output-type β€” optionally used for every input ASCII file to specify the data type of the data-set to be written. if you don't specify it, the default data type is 32-bit floating point. output-type can be any of these: FP32 (default), FP64, INT32, INT16, INT8. heads up: it can only be used with ASCII files. πŸ™ˆ
  • -n β€” only use this one if your binary input file contains 64-bit floating point data AND you want to override the default behaviour (which is, btw, to write it to a 32-bit floating point data-set) so it gets written to a 64-bit floating point data-set instead. periodt.
  • -t[ype] output-type β€” data from one or more input files are stored as one or more data sets and/or images in one HDF output file, outfile. (yes she shows up twice in the list, she's that girl. πŸ’€)
  • -r[aster] β€” store output as a raster image set in the output file.
  • -f[loat] β€” store output as a scientific data set in the output file. this is the default if the -r option is not specified.
  • [ras_opts ...] β€” the raster options, and she has a whole little family:
    • -e[xpand] horiz vert [depth] β€” expand float data via pixel replication to produce the image(s). horiz and vert give the horizontal and vertical resolution of the image(s) to be produced; and optionally, depth gives the number of images or depth planes (for 3D input data). 🌈
    • -i[nterp] horiz vert [depth] β€” apply bilinear, or trilinear, interpolation to the float data to produce the image(s). horiz, vert, and depth must be greater than or equal to the dimensions of the original dataset. and if max and min are supplied in the input file, this option clips values that are greater than max or less then min, setting them to the max and min, respectively. (that "less then" is verbatim, bestie, don't come for me 😭)
    • -p[alfile] palfile β€” store the palette with the image. get the palette from palfile; which may be an HDF file containing a palette, or a file containing a raw palette. 🎨
    • -m[ean] mean β€” if a floating point mean value is given, the image will be scaled about the mean. the new extremes (newmax and newmin), as given by:
newmax = mean + max(abs(max-mean), abs(mean-min))
newmin = mean - max(abs(max-mean), abs(mean-min))

will be equidistant from the mean value. if no mean value is given, then the mean will be:

0.5 * (max + min)

πŸ“ Notes (the important lore) πŸ“

if the input file format is ASCII text or native floating point or native integer (32-bit, 16-bit, 8-bit), it must have the following input fields:

format
nplanes
nrows
cols
max_value
min_value
[plane1 plane2 plane3 ...]
row1 row2 row3 ...
col1 col2 col3 ...
data1 data2 data3 ...

where:

  • format: β€” format designator ("TEXT", "FP32", "FP64", "IN32", "IN16", "IN08").
  • nplanes, nrows, ncols: β€” dimensions are specified in the order slowest changing dimension first. ncols is dimension of the fastest changing dimension. (horizontal axis or X-axis in a 3D scale) nrows corresponds to dimension of the vertical axis or Y-axis in a 3D scale. nplanes corresponds to the slowest changing dimension i.e. dimension of the depth axis or the Z-axis in a 3D scale ("1" for 2D input).
  • max_value: β€” maximum data value.
  • min_value: β€” minimum data value.
  • plane1, plane2, plane3, ...: β€” scales for depth axis.
  • row1, row2, row3, ...: β€” scales for the vertical axis.
  • col1, col2, col3, ...: β€” scales for the horizontal axis.
  • data1, data2, data3, ...: β€” the data ordered by rows, left to right and top to bottom; then optionally, ordered by planes, front to back. πŸ“

for FP32 and FP64 input format, format, nplanes, nrows, ncols, and nplanes are native integers; where format is the integer representation of the appropriate 4-character string (0x46503332 for "FP32" and 0x46503634 for "FP64"). the remaining input fields are composed of native 32-bit floating point values for FP32 input format, or native 64-bit floating point values for FP64 input format. πŸ’œ

for IN32, IN16 and IN08 input format, format, nplanes, nrows, ncols, and nplanes are native integers; where format is the integer representation of the appropriate 4-character string. the remaining input fields are composed of native 32-bit integer values for IN32 input format, or native 16-bit integer values for IN16 input format or native 8-bit integer values for IN08 input format.


πŸ”₯ EXAMPLES πŸ”₯

convert floating point data in "f1.txt" to SDS format, and store it as an SDS in HDF file "o1":

hdfimport f1.txt -o o1

convert floating point data in "f2.hdf" to 8-bit raster format, and store it as an RIS8 in HDF file "o2":

hdfimport f2.hdf -o o2 -r

convert floating point data in "f3.bin" to 8-bit raster format and SDS format, and store both the RIS8 and the SDS in HDF file "o3":

hdfimport f3.bin -o o3 -r -f

convert floating point data in "f4" to a 500x600 raster image, and store the RIS8 in HDF file "o4". also store a palette from "palfile" with the image:

hdfimport f4 -o o4 -r -e 500 600 -p palfile

convert floating point data in "f5" to 200 planes of 500x600 raster images, and store the RIS8 in HDF file "o5". also scale the image data so that it is centered about a mean value of 10.0:

hdfimport f5 -o o5 -r -i 500 600 200 -m 10.0

ok that's the whole page bestie, you ate that. go forth and convert. πŸ‘‘

and that's a wrap on this lil hdfimport(1) moment β€” dated 28 May 2016, slaying in section 1 of the manual. mwah, take care of her πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from