vax
is a set of routines for converting between NumPy floating point and complex
scalars/arrays and VAX-format single- and double-precision floats.
vax
is a product of the PDS Ring-Moon Systems Node.
The vax
module is available via the rms-vax
package on PyPI and can be installed with:
pip install rms-vax
The vax
module provides two functions for converting from VAX-format floats:
from_vax32
:
Interpret a series of bytes or NumPy array as one or more VAX single-precision floats
and convert them to a NumPy float or complex scalar or array.from_vax64
:
Interpret a series of bytes NumPy array as one or more VAX double-precision floats and
convert them to a NumPy float or complex scalar or array.and two functions for converting to VAX-format floats::
to_vax32
:
Convert a NumPy float or complex scalar or array to a NumPy array containing the
binary representation of VAX single-precision floats. Such an array can not be
used for arithmetic operations since it is not in IEEE 754 format.to_vax32_bytes
:
Convert a NumPy float or complex scalar or array to a Python bytes
object containing
the binary representation of VAX single-precision floats.Note that there are no functions to convert a NumPy array to VAX double-precision format.
Details of each function are available in the module documentation.
Basic operation is as follows:
import vax
b = vax.to_vax32([1., 2., 3.])
print(f'b = {b!r}')
ba = vax.to_vax32_bytes([1., 2., 3.])
print(f'ba = {ba!r}')
v = vax.from_vax32(b)
print(f'v = {v!r}')
va = vax.from_vax32(ba)
print(f'va = {va!r}')
yields:
b = array([2.3138e-41, 2.3318e-41, 2.3407e-41], dtype=float32)
ba = b'\x80@\x00\x00\x00A\x00\x00@A\x00\x00'
v = array([1., 2., 3.], dtype=float32)
va = array([1., 2., 3.], dtype=float32)
As NASA data products stored as VAX-format floats are often provided in JPL's VICAR file
format, you may also be interested in the rms-vicar
package
(documentation).
Information on contributing to this package can be found in the Contributing Guide.
This code is licensed under the Apache License v2.0.