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.2.0-pp310-pypy310_pp73-win_amd64.whl (2.1 MB view details)

Uploaded PyPyWindows x86-64

ultrasound_rawdata_exchange-1.2.0-pp39-pypy39_pp73-win_amd64.whl (2.1 MB view details)

Uploaded PyPyWindows x86-64

ultrasound_rawdata_exchange-1.2.0-pp38-pypy38_pp73-win_amd64.whl (2.1 MB view details)

Uploaded PyPyWindows x86-64

ultrasound_rawdata_exchange-1.2.0-cp313-cp313-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.13Windows x86-64

ultrasound_rawdata_exchange-1.2.0-cp313-cp313-win32.whl (1.8 MB view details)

Uploaded CPython 3.13Windows x86

ultrasound_rawdata_exchange-1.2.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.2.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.2.0-cp312-cp312-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.12Windows x86-64

ultrasound_rawdata_exchange-1.2.0-cp312-cp312-win32.whl (1.8 MB view details)

Uploaded CPython 3.12Windows x86

ultrasound_rawdata_exchange-1.2.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.2.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.2.0-cp311-cp311-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.11Windows x86-64

ultrasound_rawdata_exchange-1.2.0-cp311-cp311-win32.whl (1.8 MB view details)

Uploaded CPython 3.11Windows x86

ultrasound_rawdata_exchange-1.2.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.2.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.2.0-cp310-cp310-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.10Windows x86-64

ultrasound_rawdata_exchange-1.2.0-cp310-cp310-win32.whl (1.8 MB view details)

Uploaded CPython 3.10Windows x86

ultrasound_rawdata_exchange-1.2.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.2.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.2.0-cp39-cp39-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.9Windows x86-64

ultrasound_rawdata_exchange-1.2.0-cp39-cp39-win32.whl (1.8 MB view details)

Uploaded CPython 3.9Windows x86

ultrasound_rawdata_exchange-1.2.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.2.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.2.0-cp38-cp38-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.8Windows x86-64

ultrasound_rawdata_exchange-1.2.0-cp38-cp38-win32.whl (1.8 MB view details)

Uploaded CPython 3.8Windows x86

ultrasound_rawdata_exchange-1.2.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.2.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.2.0-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 67c3e280604110b519f1c3053ec75169f3c92311051aced96b56b64170396f13
MD5 4d515139c4ac4e7d0cb8006d62768f63
BLAKE2b-256 2aee9bc1a9bd57bcf28c4d37b7452f4ed1c63638c90142d3ff711cfde9e3fe1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02b4347b98d67676231a0d7616d494f05dfa383d5bfc9aef9a851b8ca7873279
MD5 01738cb9ccb4c765457f73645950040e
BLAKE2b-256 58db1df37f05b0d4a5a835c952c6db43a3f5e1b63a763a0f51083e1ef62b3b5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 288825aaca93cb5117b340c037a49b459ce9ece689f3d33ec13ab405d381fb3b
MD5 9fb5d42c6e06d009e4128bba4aa809c4
BLAKE2b-256 2a8afe0cbfd457c3fe1bc6c248393f7f82f3c464e591487cf9dd9940620a79df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 cb84f415efc46e82d078757acc7b7bf4438907732d2e6755438507773946aa16
MD5 b72b3af9fa1c6e8232855b65e1f2d2b5
BLAKE2b-256 66c38e0d8543d62116dc281c7aa08817c363fe1acc7dbb35106bf1d8e82080cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4b8002518f8dfe5f243ef85a4c6fed4c4224ae0f3e85db4d122372e8636abd91
MD5 500dbfebe03aaab6e2c203f97eccfcc0
BLAKE2b-256 c3131c9c65eee0765c858b266b38e08727c9bde194c796e7c6f2fd88b245839a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 855b43f2da632a8180698d0d9ec78093d92ac6d60c109adc3ffbca31917ccb7e
MD5 b68280483d276c2448598a2f2677c32b
BLAKE2b-256 9c4e3644d8fcf21a8f0d6773497a4eb5a1aeeb2b294a7401faa36d4d98c544e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a95ac5ea8d6e17950154fbe38ffe303ef7ff98c2c64d97f06dbc3ca6b33fcb31
MD5 21a74d7f265654ffd03fdae38567e064
BLAKE2b-256 cd610aeb00f900c7c983a24980383f7764bde63b39e0f2e254a161c41bbf96b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7fcb8421802740ee345877ef4236837d2f0b1da02247e98a912bb0a4da00aaf9
MD5 421217787469f6b92eae37a2dae5b010
BLAKE2b-256 111c7f7dd879285d7ca1950339aa5e3d4d811f82f40ddef4ee148da9794e629e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fa804847b7047351347ad4e41acc46b0a5509a4719e73bfb8ac9d3bb4afbac77
MD5 df316b72cb496afcd56683e86518771a
BLAKE2b-256 24414a1eb2318b086515f1f650179702325cceb4718802c77f3589a42deccd9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 14f4ecfc61691a426d1ce495b2613c4849440fac0972b6692e22871a69c09e43
MD5 f3a55836d9b921e67f618248c81ee653
BLAKE2b-256 e62c47080f9d93c99c79948dbfd2454b8bee856609a78de9743bc6dea255aa0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c54d054a9604e8330f3e87918eb66add8f1fc37f7e84cf87f368e7e7e6d4c30e
MD5 5104ce174da4dedafd693e25204f2bd9
BLAKE2b-256 506351d016d912c01497c0e6c7676dd2b1959b0392de1f30a81c7fa0aa905a82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3ddda4c48bdf13c21d5ef55490057b50a1ea4f940d70935a58317389ee3d7994
MD5 c3f1b85d3b5fd6e58d7d5b5e2cb86abb
BLAKE2b-256 bce9eeb8673200648951456650f52cba7b33b1b12a7d5c3ce000a3975b505c24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 437e11e2d7d3b853d9595533638c751ebd0eb9087ae0fad65b6d065a40d84395
MD5 a307448cbef47984a9af6c2d6ce41f87
BLAKE2b-256 96cee8f077c6d9505c99dcd5ec0d8a88f69c94499137a32c4319f6cfe39a6c89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 7df45b8fa9bc1402161198c5d0c033729503cf453a943323f6133b8eb26d7ce9
MD5 162b4230e6525418e18b9cbaf6673f19
BLAKE2b-256 69d0ae04c5c06318a1bf6017d1a26fcdb3c8f19367a0763d6e37590db5054b15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ea774669203bc54c7d3fcde51d0afa48e837a53832c0ad62fbdd856555388f3f
MD5 2afa9212f9f2ffcf595dac3510c476f9
BLAKE2b-256 2e9ae01257dbb591c075ce9b0fd3f0c38d3ede8a86334c6cdad3df186360977f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 274c1736c14a1aca21cc09e045cfc21a4363045a05c1f9d2da5fed3bdd0c3b2c
MD5 af4e3e3dfbdc38ced7585bb5ced231d9
BLAKE2b-256 09fa96109113eda35e227641956ed3d3ae41a6f04496409cddd4ef76fce30b26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ee94b4c4f7a48ef32b9b1916a7d94aead06dc2f3d8c6d1e3f3e6410236e2bfc2
MD5 64ad3e38187433d73fe0ec3746858273
BLAKE2b-256 cb066ed3024464630ecdf382f22e80be35627d11b492c48f1f5805723340eca3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 889f8d327d0f1abeb4aabc17c7db1f837b2c996edde3644f3b5d8e0dac591a5b
MD5 3044f4c61755da62ee53985743609d7d
BLAKE2b-256 4978126005bd56516429e5db17844cd38d6baf0e5b6fb0245e38f67bd990131f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b92868adbedf6a9bd074a547344239662d4f0825c7067dcf114b2121f8168d13
MD5 1d8e6907bfcc679ebff81c4a65f7882f
BLAKE2b-256 8c1eb726f78ee4a7f988211717fabd95f3ed921887a588e93148159efa70721e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 da5d29e470eadf4c43aceb239be6a4dc26619907785242ba9ee5bfc9966e5c5f
MD5 52f6ef2cb38161fa019c79a3fde68fca
BLAKE2b-256 bfb154b730bb84d44fed68d7446ede0ddbf3322bcd69715410302bc09f936e10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e36c9012a4076c53243db6dfb6cc5d414c105e47484fc706b97affa72de09077
MD5 9941a46a2a499eff1fe2884bc15005d2
BLAKE2b-256 8035962eb00cd2cfe333a6e671b44a57ff0d68a98feb2a7f4d60490261698888

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 eb61722e368ab7f2aebb40d41987436d76c9220aaaa849978ec2bab6a28a64a9
MD5 aa83b81d679887fee34bd0873af9b777
BLAKE2b-256 d60a0d17083dbb0ef60f0f8ad6bfad648db539353fec2fbbd7a161dd1d28ed3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 22fc019d059bec7174ec4ad8a9dc33920a774e1056b533e4be9ced64f1a0f1f0
MD5 00e426deef063c8563a4ca6b25cb7fbd
BLAKE2b-256 670f46c7e32219d2ab8760347cb8955df558a6cbe2cb30114459b9cfc20a9cfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3eb53afe74d37a352f47f19de9b52390c8c982b5f4af74c205df4a21452e3ec5
MD5 8c2e7d83b527351ba7e2fe3798ea2a8c
BLAKE2b-256 a9c2fc92e727733ed0780b8a812f85c30f500e2a9f1126edf46c6174c465d0c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 be0bc752a1cb7d3223bb6c625d77746f8856d53f70ce9ab65e8e3857a3fa7d25
MD5 8ada350ab857f2c06b723aecbdc2f165
BLAKE2b-256 bd490fe6023051795bdb5e706ae5c8dd892fdfd75ff7715e054788480c7a7474

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 b10d87bcff0ff1cf46bde3bf71817166e28603d5f156ea1b498c85299be73f67
MD5 12f885dae43d5aba4da9c8f562b50bb2
BLAKE2b-256 5022cb64b987852ad4c32c3ed93a4a56f5aa1c05935945af8ce8f74d147a17d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 121631a0bd620a05d9addcd38d019551e7bda81ed9946df502f4e654240c129b
MD5 2de4fa5d0cb50fbb8a3b224d3173e7ee
BLAKE2b-256 28ec7b4197fb598797fb0225fb5c59730ea0706596d224d4dfef415eee906b46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_rawdata_exchange-1.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bc5e55a6f1870e3b247a1e68933da5dbcf5fdc46b2dde821a3087d10a8ea1364
MD5 b674cb797f8b0caca74ce188e8eb269f
BLAKE2b-256 36212210e6560ae45eb43ac794805b9cf1696eecea3e1d95c56234ed2f47a653

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