sidescanpy.io.hdf5.writer#

Write a SideScanSurvey to an HDF5 (.ss.h5) file.

File layout:

/                                ← root attrs: survey_name, source_format,
│                                              source_files_json,
│                                              sidescanpy_version
/frequencies/
    hz_<freq>/                   ← per SideScanFrequencyChannel
    ...
/aux_streams/
    navigation/                  ← always written (empty if unset)
    attitude/                    ← always written (empty if unset)
    dvl/                         ← always written (empty if unset)
    sensors/                     ← only if survey has at least one sensor
        <sensor_type>/

One encoding policy (_encoding_for) applies to every frequency data variable with ndim >= 2: gzip level 4 + shuffle, chunked along ping. float64 variables are stored as float32 except those in FLOAT64_KEEP (lat/lon need ~1e-7 deg precision). Aux records are stored uncompressed.

2026 rshomberg@uri.edu

Contents

FLOAT64_KEEP

float64 variables that must NOT be downcast to float32 on write (float32 gives only ~0.4 m at geographic coordinates).

write_survey

Write a SideScanSurvey to a .ss.h5 file.

sidescanpy.io.hdf5.writer.FLOAT64_KEEP#

float64 variables that must NOT be downcast to float32 on write (float32 gives only ~0.4 m at geographic coordinates).

sidescanpy.io.hdf5.writer.write_survey(survey, path, *, overwrite=False)#

Write a SideScanSurvey to a .ss.h5 file.

Parameters:
surveySideScanSurvey

The survey to serialize. All frequency channels and aux records must already pass their accessor’s validate().

pathPath or str

Destination file path. By convention, use the .ss.h5 extension.

overwritebool, default False

If False (default) and path exists, raise FileExistsError. If True, replace the existing file.

Raises:
FileExistsError

If path exists and overwrite is False.