Skip to main content

Ultrasound Raw data eXchange file format C++ implementation and wrapping in Python and Matlab

Project description

URX

Description

The Ultrasound Raw data eXchange file format is a structure of data to store ultrasound acquisition.

You may use it with various languages (C++, Python and MATLAB).

Get more informations in the Wiki about class diagram.

Table of Contents

  • Common installation and usage in C++, MATLAB, Python.
  • Build it yourself for C++, MATLAB, Python with CMake.

Use it with C++

C++/CMake

C++ installer

There is no installer for C++ user. You need to build it yourself. If you don't need to read / write file, urx library is header-only.

Installed files

All CMake files will be installed in INSTALL_PATH/lib/cmake/Urx-XXXYYY/ with:

  • XXX: the version of the Urx library (i.e. 1.0.2),
  • YYY: empty if library has been built in shared mode, _static if library is static.

Configuration

First, you need to get Urx package with find_package. If package is not found, set Urx_DIR=INSTALL_PATH/lib/cmake/Urx-XXXYYY.

find_package(Urx REQUIRED)

You will have access to targets:

  • Urx::Urx: header-only library of the urx struct.
  • Urx::UrxUtils: library with helper to manipulate urx struct, including read / write in hdf5 file format.

Examples

add_executable(UrxTestIo ${SRCS_FILES})
target_link_libraries(
  UrxTestIo PRIVATE Urx::Urx Urx::UrxUtils ${HDF5_CXX_LIBRARIES})

Urx::UrxUtils is only needed if you use helpers. If you only need the urx file format, only Urx::Urx is needed.

HDF5_CXX_LIBRARIES is only needed if the library has been built with HDF5 support.

You may found a complete example of CMakeLists.txt in test/urx or in test/io folders.

C++ code

Installed files

All files will be installed in :

  • INSTALL_PATH/include/Urx-XXXYYY/ (headers),
  • INSTALL_PATH/lib (dynamic libraries for Linux and static libraries for all operating system),
  • INSTALL_PATH/bin (dynamic libraries for Windows and executables for all operating system).

Examples

All dynamic memory allocation should be stored in a shared_ptr.

#include <memory>

#include <urx/dataset.h>
#include <urx/probe.h>
#include <urx/utils/io/reader.h>
#include <urx/utils/io/writer.h>

auto dataset = std::make_shared<urx::Dataset>();

auto probe = std::make_shared<urx::Probe>();
probe->description = "Probe 1";
dataset->acquisition.probes.push_back(probe);

urx::utils::io::writer::saveToFile("file.urx", *dataset);

auto dataset_loaded = urx::utils::io::reader::loadFromFile("file.urx");

You may found an example for all C++ classes in file urx/utils/io/test/io.h in function generateFakeDataset.

Use it with MATLAB

MATLAB installer

Urx MATLAB homepage is hosted in MATLAB File Exchange but binaries are hosted in Github releases. Be sure to click on Show all 25 assets, download your toolbox (urx-X.Y.Z-linux-amd64.mltbx for Linux or urx-X.Y.Z-win-amd64.mltbx for Windows) then open the toolbox with MATLAB.

Requirements

MATLAB needs a C compiler to load the C library in Urx toolbox.

If you have an error like MATLAB:mex:NoCompilerFound_link_Win64 / No supported compiler was found / Output from preprocessor is:'cl' is not recognized as an internal or external command, operable program or batch file., run mex -setup c -v and mex -setup c++ -v.

Example of full error message
... Looking for compiler 'Intel Parallel Studio XE 2015 for C++ with Microsoft Visual Studio 2015' ...
... Looking for environment variable 'ICPP_COMPILER15' ...No.
Did not find installed compiler 'Intel Parallel Studio XE 2015 for C++ with Microsoft Visual Studio 2015'.
... Looking for compiler 'Intel Parallel Studio XE 2016 for C++ with Microsoft Visual Studio 2015' ...
... Looking for environment variable 'ICPP_COMPILER16' ...No.
Did not find installed compiler 'Intel Parallel Studio XE 2016 for C++ with Microsoft Visual Studio 2015'.
... Looking for compiler 'Intel Parallel Studio XE 2017 for C++ with Microsoft Visual Studio 2015' ...
... Looking for environment variable 'ICPP_COMPILER17' ...No.
Did not find installed compiler 'Intel Parallel Studio XE 2017 for C++ with Microsoft Visual Studio 2015'.
... Looking for compiler 'Intel Parallel Studio XE 2017 for C++ with Microsoft Visual Studio 2017' ...
... Looking for environment variable 'ICPP_COMPILER17' ...No.
Did not find installed compiler 'Intel Parallel Studio XE 2017 for C++ with Microsoft Visual Studio 2017'.
... Looking for compiler 'Intel Parallel Studio XE 2018 for C++ with Microsoft Visual Studio 2015' ...
... Looking for environment variable 'ICPP_COMPILER18' ...No.
Did not find installed compiler 'Intel Parallel Studio XE 2018 for C++ with Microsoft Visual Studio 2015'.
... Looking for compiler 'Intel Parallel Studio XE 2018 for C++ with Microsoft Visual Studio 2017' ...
... Looking for environment variable 'ICPP_COMPILER18' ...No.
Did not find installed compiler 'Intel Parallel Studio XE 2018 for C++ with Microsoft Visual Studio 2017'.
... Looking for compiler 'MinGW64 Compiler (C++)' ...
... Looking for environment variable 'MW_MINGW64_LOC' ...No.
Did not find installed compiler 'MinGW64 Compiler (C++)'.
... Looking for compiler 'MinGW64 Compiler with Windows 10 SDK or later (C++)' ...
... Looking for environment variable 'MW_MINGW64_LOC' ...No.
Did not find installed compiler 'MinGW64 Compiler with Windows 10 SDK or later (C++)'.
... Looking for compiler 'Microsoft Visual C++ 2013' ...
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 12.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 12.0 ...No.
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 12.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 12.0 ...No.
Did not find installed compiler 'Microsoft Visual C++ 2013'.
... Looking for compiler 'Microsoft Visual C++ 2015' ...
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VC7' 14.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VC7' 14.0 ...No.
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7' 14.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7' 14.0 ...No.
Did not find installed compiler 'Microsoft Visual C++ 2015'.
... Looking for compiler 'Microsoft Visual C++ 2017' ...
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 15.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 15.0 ...No.
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 15.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 15.0 ...No.
Did not find installed compiler 'Microsoft Visual C++ 2017'.
... Looking for compiler 'MinGW64 Compiler (C++)' ...
... Looking for environment variable 'MW_MINGW64_LOC' ...No.
Did not find installed compiler 'MinGW64 Compiler (C++)'.
Error using mex
No supported compiler was found. You can install the freely
available MinGW-w64 C/C++ compiler; see Install MinGW-w64
Compiler. For more options, visit
https://www.mathworks.com/support/compilers.

Use MinGW

If you want to use a free compiler, follow the next steps:

  • Download MinGW-w64 from https://www.mingw-w64.org/downloads. You may use LLVM-MinGW at Github https://github.com/mstorsjo/llvm-mingw/releases and get the latest release from the file llvm-mingw-YYYYMMDD-msvcrt-x86_64.zip.
  • Extract it and install it on c:\llvm-mingw-YYYYMMDD-msvcrt-x86_64 (path c:\llvm-mingw-YYYYMMDD-msvcrt-x86_64\bin must exist) or anywhere but don't use path with space inside.
  • In MATLAB, run:
setenv('MW_MINGW64_LOC', 'C:/llvm-mingw-YYYYMMDD-msvcrt-x86_64')
mex -setup c -v
mex -setup c++ -v

Check you have a message Found installed compiler 'MinGW64 Compiler (C++)'..

Installed files

All MATLAB files will be installed in C:\Users\CURRENT_USER\AppData\Roaming\MathWorks\MATLAB Add-Ons\Toolboxes\urx :

  • +urx (all MATLAB script),
  • include (C++ header, needed to get symbols in C++ library),
  • UrxMatlabBinding.dll (main C++ library).

Configuration

If you are using Urx from MATLAB toolbox, you just have to enable Unicode if you need it (feature('DefaultCharacterSet','UTF-8');).

If you want to enable logging, set URX_DEBUG environment variable to:

  • COUT to display message to the standard output or,
  • the filename where you want to store log messages.

If you built Urx from source, before using Urx in MATLAB, you first need to:

  • allow utf-8 caracters,
  • load the urx library.
addpath([pwd 'INSTALL_PATH/share/Urx-XXXYYY/matlab']);
feature('DefaultCharacterSet','UTF-8');
urx.LibBinding.getInstance([path to libUrxMatlabBinding.so], [path to INSTALL_PATH/include/Urx-XXXYYY/urx/matlab/bindings.h], {[path to INSTALL_PATH/include/Urx-XXXYYY]}, {});

⚠ When invoking urx.LibBinding.getInstance the first time, environment variable HDF5_DISABLE_VERSION_CHECK is set. MATLAB have it's own version of HDF5 library. Under Linux it will conflict with the one from Urx.

If you try to use urx.saveToFile(...) or urx.loadFromFile(...) without setting HDF5_DISABLE_VERSION_CHECK, MATLAB will crash with error: Headers are 1.8.23, library is 1.8.12.

Example of full error message
Warning! ***HDF5 library version mismatched error***
The HDF5 header files used to compile this application do not match
the version used by the HDF5 library to which this application is linked.
Data corruption or segmentation faults may occur if the application continues.
This can happen when an application was compiled by one version of HDF5 but
linked with a different version of static or shared HDF5 library.
You should recompile the application or check your shared library related
settings such as 'LD_LIBRARY_PATH'.
'HDF5_DISABLE_VERSION_CHECK' environment variable is set to 1, application will
continue at your own risk.
Headers are 1.8.23, library is 1.8.12
      SUMMARY OF THE HDF5 CONFIGURATION
      =================================
General Information:
-------------------
  	   HDF5 Version: 1.8.12
  	  Configured on: Mon May 10 15:29:10 EDT 2021
  	  Configured by: batserve@bat1062601glnxa64 at The MathWorks, Inc., Natick, MA 01760
  	 Configure mode: production
  	    Host system: x86_64-pc-linux-gnu
        Uname information: Linux bat1062601glnxa64 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 GNU/Linux
  	       Byte sex: little-endian
  	      Libraries: shared
       Installation point: /mathworks/devel/bat/B3p3/build/3p/install/7215999/glnxa64/hdf5-1.8
Compiling Options:
------------------
             Compilation Mode: production
                   C Compiler: /mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/gcc ( gcc (MW GCC 6.3.0-GLIBC2.12-gold) 6.3.0)
                       CFLAGS: -O2 -pipe -pthread -fdebug-prefix-map=/mathworks/devel/bat/B3p3/build= -fPIC 
                    H5_CFLAGS:   -ansi -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline -O -fomit-frame-pointer -finline-functions
                    AM_CFLAGS: 
                     CPPFLAGS: 
                  H5_CPPFLAGS: -D_POSIX_C_SOURCE=199506L   -DNDEBUG -UH5_DEBUG_API
                  AM_CPPFLAGS: -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_BSD_SOURCE 
             Shared C Library: yes
             Static C Library: no
Statically Linked Executables: no
                      LDFLAGS: -Wl,--as-needed -fuse-ld=gold -Wl,--disable-new-dtags -Wl,--hash-style=both -Wl,--version-script=/mathworks/devel/bat/B3p3/build/3p/sources/hdf5-1.8//hdf5_linux_exported_symbol.map
                   H5_LDFLAGS: 
                   AM_LDFLAGS: 
   	Extra libraries:  -lz -ldl -lm 
  	       Archiver: ar
  	 	 Ranlib: ranlib
        Debugged Packages: 
  	    API Tracing: no
Languages:
----------
                      Fortran: no
                          C++: no
Features:
---------
                Parallel HDF5: no
           High Level library: yes
                 Threadsafety: no
          Default API Mapping: v18
With Deprecated Public Symbols: yes
       I/O filters (external): deflate(zlib)
       I/O filters (internal): shuffle,fletcher32,nbit,scaleoffset
                          MPE: no
                   Direct VFD: no
                      dmalloc: no
Clear file buffers before write: yes
         Using memory checker: no
       Function Stack Tracing: no
                         GPFS: no
    Strict File Format Checks: no
 Optimization Instrumentation: no
     Large File Support (LFS): yes

Urx must use the same version (at least major / minor number) than the one from MATLAB (here 1.8).

Why is there a problem? Under Linux, the same symbol from two differents libraries are merged. So you can't know which one will be used. By setting HDF5_DISABLE_VERSION_CHECK to 1, you are disabling version check. Under Windows, the operating system keeps symbols from different libraries separate.

Examples

dataset = urx.Dataset();

probe1 = urx.Probe();
probe1.description = 'Probe 1';
dataset.acquisition.excitations = [excitation1];

urx.saveToFile('test.urx', dataset);

dataset2 = urx.loadFromFile('test.urx');

You may found a complete example in file test/matlab/+urx/+UnitTests/FileFromScratch.m.

Important note

Some field are optional or can be empty (see C++ UML diagram). If you want to unassign a value, don't use [] but use empty method of the class (i.e. urx.ElementGeometry.empty).

Use it with Python

Python wheel

Urx MATLAB homepage is hosted in Pypi. Binaries are hosted in Pypi and Github releases. Be sure to click on Show all 25 assets, download the wheel of your python version (i.e. ultrasound_rawdata_exchange-1.1.0-cp312-cp312-win32.whl) then run pip install ultrasound_rawdata_exchange-1.1.0-cp312-cp312-win32.whl.

Examples

import ultrasound_rawdata_exchange as urx;

dataset = urx.Dataset()

probe1 = urx.Probe()
probe1.description = 'Probe 1'
dataset.acquisition.excitations = [excitation1]

urx.saveToFile('test.urx', dataset)

dataset2 = urx.loadFromFile('test.urx')

You may found a basic example in folder test/python.

Build it with CMake

You can use CMake to build urx for C++ / MATLAB / Python user.

See .gitlab-ci.yml file for various examples.

Build for Windows

Requirements:

Under Windows, you need to explicitly set Visual Studio generator.

cmake.exe -S root_path -B CI -G "Visual Studio 17 2022" -A x64

Full example with git-bash console:

git clone https://github.com/moduleus/urx.git
cd urx
git clone https://github.com/microsoft/vcpkg.git
vcpkg/bootstrap-vcpkg.bat
git clone https://github.com/moduleus/vcpkg-registry.git
cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake -DBUILD_SHARED_LIBS=OFF -DVCPKG_TARGET_TRIPLET=x64-wsmep -DVCPKG_HOST_TRIPLET=x64-wsmep -DVCPKG_OVERLAY_TRIPLETS=vcpkg-registry/triplets -DWITH_PYTHON:BOOL=ON -DWITH_PYTHON_WHL:BOOL=ON -DWITH_HDF5:BOOL=ON -DWITH_MATLAB:BOOL=ON -DBUILD_TESTING:BOOL=OFF -DENABLE_PCH:BOOL=OFF -DCMAKE_INSTALL_PREFIX=install
cmake --build build --config Release --parallel 4

Build for Linux

cmake -S . -B CI

Full example:

git clone https://github.com/moduleus/urx.git
cd urx
git clone https://github.com/microsoft/vcpkg.git
vcpkg/bootstrap-vcpkg.sh
git clone https://github.com/moduleus/vcpkg-registry.git
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DVCPKG_TARGET_TRIPLET=x64-lsrp -DVCPKG_HOST_TRIPLET=x64-lsrp -DVCPKG_OVERLAY_TRIPLETS=vcpkg-registry/triplets -DWITH_PYTHON:BOOL=ON -DWITH_PYTHON_WHL:BOOL=ON -DWITH_HDF5:BOOL=ON -DWITH_MATLAB:BOOL=ON -DBUILD_TESTING:BOOL=OFF -DENABLE_PCH:BOOL=OFF -DCMAKE_INSTALL_PREFIX=install
cmake --build build --parallel 4

Common features

  • Install path

Set -DCMAKE_INSTALL_PREFIX= variable to define the installation path.

  • Debug or Release

If you use a single build type generator (like Makefile in Linux), you need to set CMAKE_BUILD_TYPE to Debug or Release.

  • Static or dynamic libraries

Set BUILD_SHARED_LIBS to OFF or ON.

Note that you should set BUILD_SHARED_LIBS to OFF if you want to build MATLAB or Python buiding.

Be sure to use a vcpkg triplet with the same shared / static link option. For example:

  • Windows and static: x64-wsmep
  • Windows and shared: x64-wdrep
  • Linux and static: x64-lsrp
  • Linux and shared: x64-ldr
  • Use external 3rd party with vcpkg

vcpkg is a package manager. You first need to clone it with git clone https://github.com/microsoft/vcpkg.git.

Also, clone vcpkg-registry with git clone https://github.com/moduleus/vcpkg-registry.git.

Then pass the arguments below. ⚠ If you use cmake-gui, be sure to set these variables BEFORE running configure once. Otherwise, you need to reset cache.

Windows:

-DCMAKE_TOOLCHAIN_FILE="vcpkg_path/scripts/buildsystems/vcpkg.cmake"
-DVCPKG_TARGET_TRIPLET=x64-wsmep -DVCPKG_HOST_TRIPLET=x64-wsmep
-DVCPKG_OVERLAY_TRIPLETS=vcpkg-registry/triplets"

Linux with static libraries (make sure that BUILD_SHARED_LIBS is set to OFF).

-DCMAKE_TOOLCHAIN_FILE="vcpkg_path/scripts/buildsystems/vcpkg.cmake"
-DVCPKG_TARGET_TRIPLET=x64-linux -DVCPKG_HOST_TRIPLET=x64-linux
-DVCPKG_OVERLAY_TRIPLETS=vcpkg-registry/triplets

We provide various triplet with following syntax:

  • w for Windows,
  • l for Linux,
  • d for Linux dynamic (will be static otherwise),
  • sm for Windows static with /MD option (will be dynamic otherwise). See VCPKG_CRT_LINKAGE,
  • e to pass environment variable for Windows. See VCPKG_ENV_PASSTHROUGH,
  • p to pass Python3_EXECUTABLE to vcpkg via VCPKG_Python3_EXECUTABLE environment variable.
  • Enable HDF5

This feature is needed to read / write urx structure to file.

Set WITH_HDF5 to OFF or ON.

  • Enable Python binding

Set WITH_PYTHON to OFF or ON.

You can also set WITH_PYTHON_WHL to ON if you want to generate wheel package without using pip wheel.

  • Enable MATLAB binding

Set WITH_MATLAB to OFF or ON.

You don't need to have MATLAB installed on your computer to build the MATLAB binding.

  • Build with Clang

You need to set lots of CMake variables and use CMake 3.29 if you want to use CMAKE_LINKER_TYPE variable.

-DCMAKE_C_COMPILER=/usr/bin/clang-17
-DCMAKE_CXX_COMPILER=/usr/bin/clang++-17
-DCMAKE_AR=/usr/bin/llvm-ar-17
-DCMAKE_AS=/usr/bin/llvm-as-17
-DCMAKE_RANLIB=/usr/bin/llvm-ranlib-17
-DCMAKE_LINKER_TYPE=LLD

You may found various command to build Urx in file .gitlab-ci.yml.

Build Python module with pip wheel

Using vcpkg

You may generate wheel archive by launching pip wheel . from the root directory of the project.

The setup.py file support the following options:

  • CMAKE_TOOLCHAIN_FILE to set vcpkg path (repository cloned if option is not given),
  • cmake_build_type to set CMAKE_BUILD_TYPE in CMake (Release by default),
  • vcpkg_triplet to set vcpkg triplet (guessed if omited),

You can also set CMake variable with -DVARIABLE=VALUE.

Example:

python.exe -m pip install .
--config-settings="--global-option=CMAKE_TOOLCHAIN_FILE=vcpkg_path/scripts/buildsystems/vcpkg.cmake"
--config-settings="--global-option=cmake_build_type=RelWithDebInfo"
--config-settings="--global-option=vcpkg_triplet=x64-wsmrep"
--config-settings="--global-option=-DBUILD_SHARED_LIBS=OFF"
--config-settings="--global-option=-DWITH_HDF5=ON"
-v

See build:windows-python and build:ubuntu-python in .gitlab-ci.yml file for real examples.

Without vcpkg

If you want to disable vcpkg and use you own 3rd party library (that you already built), you can set DISABLE_VCPKG to ON and set all XXX_DIR CMake variable (path of the CMake files of the 3rd party).

See CMake target UrxPythonWheel in python/CMakeLists.txt file for real example.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ultrasound_rawdata_exchange-1.1.0-pp310-pypy310_pp73-win_amd64.whl (1.9 MB view details)

Uploaded PyPyWindows x86-64

ultrasound_rawdata_exchange-1.1.0-pp39-pypy39_pp73-win_amd64.whl (1.9 MB view details)

Uploaded PyPyWindows x86-64

ultrasound_rawdata_exchange-1.1.0-pp38-pypy38_pp73-win_amd64.whl (1.9 MB view details)

Uploaded PyPyWindows x86-64

ultrasound_rawdata_exchange-1.1.0-cp313-cp313-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.13Windows x86-64

ultrasound_rawdata_exchange-1.1.0-cp313-cp313-win32.whl (1.6 MB view details)

Uploaded CPython 3.13Windows x86

ultrasound_rawdata_exchange-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

ultrasound_rawdata_exchange-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

ultrasound_rawdata_exchange-1.1.0-cp312-cp312-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.12Windows x86-64

ultrasound_rawdata_exchange-1.1.0-cp312-cp312-win32.whl (1.6 MB view details)

Uploaded CPython 3.12Windows x86

ultrasound_rawdata_exchange-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

ultrasound_rawdata_exchange-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

ultrasound_rawdata_exchange-1.1.0-cp311-cp311-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.11Windows x86-64

ultrasound_rawdata_exchange-1.1.0-cp311-cp311-win32.whl (1.6 MB view details)

Uploaded CPython 3.11Windows x86

ultrasound_rawdata_exchange-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

ultrasound_rawdata_exchange-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

ultrasound_rawdata_exchange-1.1.0-cp310-cp310-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.10Windows x86-64

ultrasound_rawdata_exchange-1.1.0-cp310-cp310-win32.whl (1.6 MB view details)

Uploaded CPython 3.10Windows x86

ultrasound_rawdata_exchange-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

ultrasound_rawdata_exchange-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

ultrasound_rawdata_exchange-1.1.0-cp39-cp39-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.9Windows x86-64

ultrasound_rawdata_exchange-1.1.0-cp39-cp39-win32.whl (1.6 MB view details)

Uploaded CPython 3.9Windows x86

ultrasound_rawdata_exchange-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

ultrasound_rawdata_exchange-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

ultrasound_rawdata_exchange-1.1.0-cp38-cp38-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.8Windows x86-64

ultrasound_rawdata_exchange-1.1.0-cp38-cp38-win32.whl (1.6 MB view details)

Uploaded CPython 3.8Windows x86

ultrasound_rawdata_exchange-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

ultrasound_rawdata_exchange-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 9ddc57175fdeea18c2d015973bac3bb9e63350bcdbddfb7a6ded2cb532a4ee2b
MD5 1026692e584e35f3162702f126709506
BLAKE2b-256 149950308b1dac0455164e823d81fe263933151967dcbb5b535503942fbf9ef8

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3668a53bf4bbaf26f5aabacc112d90d82e26d4134319edfe18be690fb23d45a5
MD5 f7d408dde8ccb1368da39985dc58203a
BLAKE2b-256 3529b6f571e5219776cd5657cc50f6f5f2278f1633625fb38919f6e258a60ffa

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 858dc902165d3ff1c26b788765201c2ccf5e6feb001654e147e69d701c9e2612
MD5 66adf3b351eae20c2ebff441d76f3322
BLAKE2b-256 3343468d68c3cf60d8e46688ca86f131564570f5374b0408e3511bddfa1ce7df

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 c9bd81377dd9388439430287bbab3b535c97334a6cbdab98bf1b4f9073d16a64
MD5 14c6e3526f21905884e0dfeaa594637e
BLAKE2b-256 01a173ad005fa45bd6f8f9c41aa3ba760c03bc805025429810e833aa20eed010

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 504788b1bcc5bbc7514833b9a7b8437d87bf09534c7fae0b8e9cafa0da44cd9d
MD5 0ac0c025e99f4b175b39839e372a4cb3
BLAKE2b-256 ed381f30f460d9eef3ad87b1788f60964f9fb10853a3f34a5c0c4056e59ccbbf

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp313-cp313-win32.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 bd601964445ff416406a8d3b1c89b791c4f09a0f964cc15a886e4ef7f4107a85
MD5 7c0fa57ecee20587015f916aa7f02713
BLAKE2b-256 30619e19ae7e06dc4b2b7c50ac3bd7e0551e1c087c69d840c026f4877d6970c1

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 758504c3fdb4e70d43565f0a89608adf6d253929a5bdc43be35d1f07719c8ca2
MD5 eb61724601de351b0b922afc932fa4c7
BLAKE2b-256 5e6bb499324d6e4cc5f1738109be66fa52fd6596a3c5e2e0145669379b284e01

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6b995b984396de14dbc970d82cb43cb95dd480c2c999e9c1a803318af8b7c9c2
MD5 66e68d6896dd84a132f07b93b49a972b
BLAKE2b-256 8fd744baaaa6c65d20303db43e4c7fe12a6f4420a0f4f2961e7f37e1e9ab4d3f

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1cf5a175ba65dbb554cde309972bf029131d9630f1476e78df69d501d3082fe7
MD5 3d46fa2567fe7c2940bc486fe083fc4a
BLAKE2b-256 20acccf6b52ed308e225bd7d6c4ed10948e4b91046bd2e1d16425c4d7065419f

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 eee188a7c7c2cdbf7707205bd7d316091e9e9b2005b92fe17c5a09cb9108c97c
MD5 5f6a5c3f4bf2d55a5afa8a70f606b8df
BLAKE2b-256 ed2fb05fc35adf1cf417340ed530f788d2914a8c7de053204bf38372a14d36cc

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cb029e01e28d422763d3cee7e58a97c6e814b43638821e6bcf84e11d3f835dbe
MD5 e91065965cc433d29d65f6c0174c6478
BLAKE2b-256 c6ba73a95b50b1820855c96a86e37e476d398b1818f51c33310ae5de34a810d2

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f7043f4352e19d498029e434620bd23a7620fb99fb43967405404f442f66a28
MD5 840e87ce9f7e48af2f45492ab002bc80
BLAKE2b-256 da5d3869d960cb78e62b3ff16213b0ce1f7a3787b63e11be79c59708dbf66e59

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6f404c8e8aa12c1c1e356c9331720826254d058f86c1bbeb70eb5e4609a99c3e
MD5 18cc43da25f54fb137a576b9b5729903
BLAKE2b-256 b1be67e150f174c8c95dab41f0831ace290f4ee8ac40865e05155ae4f0bce47e

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 ddb1168104518c39c2ae64df8d1215b451e5a01ca9ff96a8684bb0d49a88fea6
MD5 8a2ec6eb64a32079915fb491e53ce3a9
BLAKE2b-256 f55e8a3c6dad6cb2b5cae029d0ef468163fe557f02658712a1c1da802554ecdf

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 849c6adcd457fe321f286a0ca4680dbd35779116692447861bd6e2e42b93ff52
MD5 b7653f89f91d4e98a1d534edf46c11c5
BLAKE2b-256 12c0d2bba94ab7bfb25a293fea258d19253dc3c8dc36e3b85672b93b5a9ff14f

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5c034049e66ed90442629879a8917c4eac618e8c498876140cbececfa822a365
MD5 ba390bca15c479a2fee04d2e539b4219
BLAKE2b-256 7edc2d8a3b4e4d48408e8d2c4505eb64e391448ca109907b460ed3bfd8435137

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fe4bab3f965812ddbe9477a008f01987e146e525174064e8d9f68954cc7cde27
MD5 01c3a1a1393b25255feadcf08e2cdd06
BLAKE2b-256 657057dc9e692d5973321942622e24037aa276c56d3644ec1e5659b82eaabca6

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 79ced444a6a3d6223951ae0f64b3391327e03e141ec346beb294b4642c76de51
MD5 585e4d0aa60398d554ac3dd293179cc9
BLAKE2b-256 2ec86f1495aae547df8db5f78f454b3036b4d321823063741aae7bea8a380569

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 43feb81bd5a1f08ddaf020abcf6cc67dc2a00454735b575814fd4e61b5ad6695
MD5 64b85f7199aa68942d6947f9c6f40637
BLAKE2b-256 8bec55ad3ccddc1e954be96d99135170056aa28eb35e8fc1900081fbe1aa8b44

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 33f3a01000f855e36595dc872d755156addd570d4adf71577073e6527a3e1541
MD5 0b82e728cb07015a974187b8fdb932f7
BLAKE2b-256 2d0a6f45a2bf59cd0472ec1504a39ed6e87c706d8a92dfb80bdebee337e4bb35

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2d5d47c308c99a607fdb30013abda29ce5d65fe6681807ac0e0ef81b66477dd5
MD5 d85808ddf3d24899f208af44b70de950
BLAKE2b-256 a5e55091f46fc2a38f7c7204f8fb7051f505b7914d7ece227da01970facd690e

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp39-cp39-win32.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 4410c882fbcfdc9baa69b34e3870666e8d24ec3181e8adc5eb75a344686a92d1
MD5 86a215a5f70c41aa7e2be12538b68df0
BLAKE2b-256 384592f081cad457e339f6c3f83e2834a8f0098d2d05c257464554de239bad56

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 889edf303d31cea51b329d9b010f62aea997484c0777a97320fac71a44a74ff4
MD5 ad283d1ca528d2a22c7462d7cbbfa446
BLAKE2b-256 1bf6efb6c971e325ba706b06461a8d267083556a0428803ff7dd9c5c0b0da825

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7f5e6583425c91e731cd49faffad3a37e933c25ad81a655be70e5543d5807e62
MD5 4f75b7003b0ca75e20751c3842b7c212
BLAKE2b-256 105d13cd1e8c7c431b8db19a864c5eacc131537b14e0f3653e0044c8284bccb6

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 7deb8f42fa9c6dd88a61442b648c5a1cea16fc669387ca2f2abdc010f6f9663c
MD5 dbfbcc7f5b5edcdee4e4380388dc92dd
BLAKE2b-256 cc03e1869907846837705c6c3b9778eb12228c13fcfaca39d10a160fe308cdf9

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp38-cp38-win32.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 dc751d28435befb85d92da6bc2aac56316477d6a03e4cb1a2541a3aaddf3abc4
MD5 80c80b5bef2d30c07c88af78d0a02587
BLAKE2b-256 6dfa908d5a4538a06334289fda82ef6f9df64a106e81b31a6fb3ed6f895a7efb

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0b7c166c652d660f60dca4483f2dde5a4ef4ec2ad8f37c884f712703da8b775e
MD5 2661b9e345985d9995eaa01fa24271f5
BLAKE2b-256 ce7e5c6af19f6d7099f6aa66ea3b4bae099fad84179a48fe2be5c4063dcf06cb

See more details on using hashes here.

File details

Details for the file ultrasound_rawdata_exchange-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e700d6eac57ae799e5b358e2dd8a6b29328cb9cc67ea10c7c5a9c59a47f07820
MD5 32921ed23196b41095a4e956f72cf4c1
BLAKE2b-256 97b85e8a608bc398840ca543f55fa85c6cef2b2b3a3c750499501b51849ad552

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page