Port Status
Current Scope
The Matlab ReadWrite reader matrix is implemented, and writer-style
format_* ports cover the Matlab Matlab/ReadWrite/write*.m helpers. The
remaining differences are intentional design choices or demand-driven MAT v7.3
coverage.
Public APIs use in-memory
bytesorstrrather than filename-based runtime parsing.Execution goes through
ATClient->AtRunnerBackend->at-runner.Read/write ports follow Matlab
ReadWritebehavior and binary/text layout fidelity where a direct port exists.Optional MAT support lives behind the
[mat]extra.
ReadWrite Readers
Matlab file |
Status |
Python entry points |
Notes |
|---|---|---|---|
|
done |
|
Fortran-aligned attenuation hooks, including |
|
done |
|
Dispatches by model to Kraken-family, Bellhop, Bellhop3D, or RAM parsers. |
|
done |
|
Env-tail parsers are the canonical Python API. |
|
done |
|
FIELD and FIELD3D driver parsing. |
|
done |
|
Includes a compatibility shorthand used by real fixtures. |
|
done |
|
Binary, ASCII, dispatcher, and supported MAT mappings. |
|
done |
|
Binary/ASCII 2D and 3D arrivals plus dispatcher. |
|
done |
|
ASCII time series and explicit MAT mapping. |
|
done |
|
RAM |
|
done |
|
Reflection coefficients and beam patterns. |
|
done |
|
2D and 3D boundary inputs. |
|
done |
|
SSPFIL grids. |
|
done |
|
Writes classic MAT format 5; requires |
Folded Reader Helpers
Some Matlab helpers are intentionally not separate top-level Python APIs because they are only meaningful while reading a larger file from an open handle:
readsxsy.m,readszrz.m,readr.m, andreadtheta.mare absorbed into Bellhop and Bellhop3D environment-tail parsing.readRcvrBearings.mis absorbed intoparse_field_flp3d.
ReadWrite Writers
Category |
Status |
Python entry points |
Notes |
|---|---|---|---|
Env core |
done |
|
Inline SSP and boundary formatting. |
Kraken-family tail |
done |
|
CMIN/CMAX, RMAX, source-depth and receiver-depth vectors. |
Bellhop / Bellhop3D |
done |
|
Full env file layout. |
Dispatch |
done |
|
Pairs with |
FIELD 2D / 3D |
done |
|
Inverse of the FIELD parsers. |
Minimal Scooter |
done |
|
Minimal |
Boundaries |
done |
|
2D bathymetry/altimetry and 3D grids. |
Vectors |
done |
|
Shared by env tails and FIELD drivers. |
SSPFIL |
done |
|
Interoperable with parsers; not byte-identical to Matlab formatting. |
RAM env |
done |
|
Fortran |
Writer Gaps
parse_read_env and format_parsed_env support the Kraken-family set,
BELLHOP, BELLHOP3D, and RAM. Matlab write_env.m also writes a
Bellhop-like tail for simplePE, but Matlab read_env.m does not treat
simplePE like BELLHOP for reading. at-py follows the read dispatch
set.
Serializers return text or bytes only. There is no API that mirrors Matlab
append mode for .env files.
MAT Support
load_mat_normalized supports the documented subset needed by Acoustics
Toolbox workflows: classic MAT files through SciPy, MATLAB v7.3/HDF5 through
h5py, cells/references, uint16 char arrays, logical datasets, and CSC sparse
data including complex values.
High-level MATLAB types such as table, timetable, datetime,
string arrays, and SciPy MatlabOpaque intentionally fail loudly unless a
real AT workflow requires support.
Known Differences
Bellhop and Bellhop3D env content uses env-tail parser names rather than a separate
read_bellshim.Parsers take in-memory content instead of Matlab filename or
loadflows.MAT files use separate entry points instead of magic detection in binary dispatchers.
read_fortran_vectoraccepts an additional shorthand used by fixtures in this repository.