Acoustic Odometry library
Project description
Acoustic Odometry
A standalone C++ library with dependencies managed by vcpkg accessible through Python using pybind11.
Example usage
Create a clean Python virtual environment
python -m venv venv
Activate it on Windows
.\venv\Scripts\activate
otherwise
source ./venv/bin/activate
Install this project
pip install git+https://github.com/AcousticOdometry/AO.git
or
pip install git+ssh://git@github.com/AcousticOdometry/AO.git
It will take a while to build as it will build the C++ dependencies as well,
but it will work. It is definitely not the most optimal way of installing a
package as we are installing as well the vcpkg package manager and building
from source dependencies that might as well be installed on the system. But
this allows a fast development environment where adding or removing C++
dependencies should be easy.
Test that the C++ code is working in the Python package
TODO
Setup
Install the requirements
Install vcpkg requirements with the
addition of cmake and Python. It could be summarized as:
- git
- Build tools (Visual
Studio
on Windows or
gccon Linux for example) - cmake
- Python. Make sure to have development tools installed (
python3.X-devon Linux, beingXyour version of Python).
If running on a clean linux environment (like a container or Windows Subsystem
for Linux) you will need to install some additional tools as it is stated in
vcpkg.
sudo apt-get install build-essential curl zip unzip tar pkg-config libssl-dev python3-dev
This library is additionally based on modern C++17 with some C++20 features.
Therefore it requires a C++ compiler that supports C++20. In linux, gcc
version 11 is recommended. Fortunately, several versions of gcc can co-live
together.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-11 g++-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 \
--slave /usr/bin/g++ g++ /usr/bin/g++-11
Git Large File System
Needed for the model files
CMake
Follow the official instructions.
The required cmake version is quite high, if you are using a Linux
distribution and installing cmake from the repositories take into account
that they might not be updated to the latest version. However there are options
to install the latest version of cmake from the command
line.
Make sure that when you run cmake --version the output is 3.21 or higher.
The reason for this is that we are using some of the 3.21 features to install
runtime dependencies (managed with vcpkg) together with our project so they
are available to Python when using its API.
Clone this repository with vcpkg
Cone this repository with vcpkg as a submodule and navigate into it.
git clone --recursive git@github.com:esdandreu/python-extension-cpp.git
cd python-extension-cpp
Bootstrap vcpkg in Windows. Make sure you have installed the
prerequisites.
.\vcpkg\bootstrap-vcpkg.bat
Or in Linux/MacOS. Make sure you have installed developer tools
./vcpkg/bootstrap-vcpkg.sh
Building
Build locally with CMake
Navigate to the root of the repository and create a build directory.
mkdir build
Configure cmake to use vcpkg.
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="$pwd/vcpkg/scripts/buildsystems/vcpkg.cmake"
Build the project.
cmake --build build
Build locally with Python
It is recommended to use a clean virtual environment.
scikit-build is required before running the installer, as it is the package
that takes care of the installation. The rest of dependencies will be installed
automatically.
pip install scikit-build
Install the repository. By adding [test] to our install command we can
install additionally the test dependencies.
pip install .[test]
Testing
Test the C++ library with Google Test
ctest --test-dir build/tests
Test the python extension
pytest
Development
We try to use the following style guide for pybind11
https://developer.lsst.io/pybind11/style.html
Mount Google Drive in Windows Subsystem for Linux
sudo mount -t drvfs G: /mnt/g
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file acoustic-odometry-0.0.7.tar.gz.
File metadata
- Download URL: acoustic-odometry-0.0.7.tar.gz
- Upload date:
- Size: 18.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04d94a93cf9f017f1aa641aaa6f85e577f478cd560824b57b943c83f4ce10d04
|
|
| MD5 |
dbc430a9f4a932d67622cb0802285292
|
|
| BLAKE2b-256 |
b075b4f516517f9a4472c577a8ad637a3a164258e6b194fd3240bf536bc534bd
|
File details
Details for the file acoustic_odometry-0.0.7-pp38-pypy38_pp73-win_amd64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-pp38-pypy38_pp73-win_amd64.whl
- Upload date:
- Size: 160.6 kB
- Tags: PyPy, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a92ab346b1fa7f3db74ed75521d652a63f851678ec11b8fef9ec76ee91791156
|
|
| MD5 |
77e8e4542fe06ee8a2d060b1508c8845
|
|
| BLAKE2b-256 |
d37d057f1a19f2be40b6753483e056b31d6b1c3f016e1374b36c5d166fbbe9ce
|
File details
Details for the file acoustic_odometry-0.0.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 182.1 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7dd567ec9291a95ba10b7b0f79bd44c0a4615234d8da6cf8b2aa4ebd689a9677
|
|
| MD5 |
13068729e78b965e0f8541e48e2caccf
|
|
| BLAKE2b-256 |
84f1a58b8737dd55fc456ad8cddae35a6339c7fe8966b9071e0aa5454eb960c7
|
File details
Details for the file acoustic_odometry-0.0.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
- Upload date:
- Size: 144.7 kB
- Tags: PyPy, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6db7ba3086d14420236554cd84d68e9eb96f2ec77babe3656045870c2341e633
|
|
| MD5 |
e08faf8121b1fd575b0a94f66154867e
|
|
| BLAKE2b-256 |
1feb61f6c85393d9ff6edd35b9375cc89208265e027131f1e8b54596b20b6e14
|
File details
Details for the file acoustic_odometry-0.0.7-pp37-pypy37_pp73-win_amd64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-pp37-pypy37_pp73-win_amd64.whl
- Upload date:
- Size: 160.6 kB
- Tags: PyPy, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da87cc14fd2bca4fa9fd87f564976f423cc5d64c08765ac5fa999b45d1d4c011
|
|
| MD5 |
58495d55f2206da54ad2232f6e599bfa
|
|
| BLAKE2b-256 |
3c51f33ae02a41c7365d35e9bc0282dbf1965cde80d1f4c2dc4daee00bae29d2
|
File details
Details for the file acoustic_odometry-0.0.7-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 182.1 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7e3ef5f2ef692fea642827c2a892dec1fa98c2236b8bf021f50bd4ca12a3b26
|
|
| MD5 |
4aa5ca7b5950b93b6ae2190e86cc16bd
|
|
| BLAKE2b-256 |
7d8caa1467681c13452013345f62a35b07a179d4b3e0796cbe10dd1eed266957
|
File details
Details for the file acoustic_odometry-0.0.7-pp37-pypy37_pp73-macosx_10_9_x86_64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
- Upload date:
- Size: 144.7 kB
- Tags: PyPy, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdb21d6cd49c37c70bc5190f173d4613c395f81f59e91a8c48dbfef11ee180e4
|
|
| MD5 |
e2e7547e1e41155a85ce448f2d842bcd
|
|
| BLAKE2b-256 |
3548e46856925a66b3828c3b13aea8a3b6026006e28fba79ed0020eb11ddb751
|
File details
Details for the file acoustic_odometry-0.0.7-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 161.4 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74d85bf06299d469fe63ad5abb42d7ec3a07e05f13e89514aecf068af14b06c4
|
|
| MD5 |
7ac1f766628841832a5b36db5145bc4c
|
|
| BLAKE2b-256 |
92fcdf680b1600d03927b7d76b23d78de3b5e97b958fdc1d3a7d19e1a6deb51b
|
File details
Details for the file acoustic_odometry-0.0.7-cp310-cp310-win32.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp310-cp310-win32.whl
- Upload date:
- Size: 141.1 kB
- Tags: CPython 3.10, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af1dfabc289ddc9cda27993ecdc1f774135335c87123c82af05864e341109d59
|
|
| MD5 |
363beef387c9755e00ee133f6196d92a
|
|
| BLAKE2b-256 |
6a2153b261943b5c1c9b4ba05ac0a7051e6d8b1912fe05bac09334ec0f978fed
|
File details
Details for the file acoustic_odometry-0.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 182.5 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad3bb2627feec76337c74847fd1b3da990a4beebdcafe21a962109d29cfb483f
|
|
| MD5 |
52dcb860c800b98c33cc8193f20789cf
|
|
| BLAKE2b-256 |
23c92804d30e11847eb9d3620bd92c1930139e16bb6d762f91608cd146efc298
|
File details
Details for the file acoustic_odometry-0.0.7-cp310-cp310-macosx_10_9_x86_64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 144.8 kB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7965bab80a251579e8a9f352aa8f72149fe072a25bb7ee12493b3b85ec6a9e62
|
|
| MD5 |
d173720b89ea9ef3f183b2f273f64f9e
|
|
| BLAKE2b-256 |
44b6853abed9242f430eb00238a6845142f052c97f9d0212ac67b266245bfccd
|
File details
Details for the file acoustic_odometry-0.0.7-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 161.4 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1025a75a913c99fd9e3c5a6961cc51f47d476ca5c251fc67e1824f88da62cb0f
|
|
| MD5 |
5c52830b6ff9ad3e15d593f46d890ee6
|
|
| BLAKE2b-256 |
5839fb9558486ee4c3c4c37220a09209985a48291aec8f0a4ef76adacce1f7d6
|
File details
Details for the file acoustic_odometry-0.0.7-cp39-cp39-win32.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp39-cp39-win32.whl
- Upload date:
- Size: 141.2 kB
- Tags: CPython 3.9, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
388d464133cb741df39fab5ed5b50251d2a74352c55c45bdf0e8102a8e5c4545
|
|
| MD5 |
5385589f865f725c7ed9a0da90f0ebdf
|
|
| BLAKE2b-256 |
c0a819a03713081dbcd0b338eb358865047a39a983b6abf808b482c32f614fb2
|
File details
Details for the file acoustic_odometry-0.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 182.6 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b06dfed264acb9b88bdd1335ea0bfff4482afbe4afa3252755b61e0ae27600c4
|
|
| MD5 |
a633ef5427ac6af782296e8ba258b6d6
|
|
| BLAKE2b-256 |
28b59786af1acd95ba00ed8044b2c03437d2bdffa7e83459bb7c9e5ccf77c0a3
|
File details
Details for the file acoustic_odometry-0.0.7-cp39-cp39-macosx_10_9_x86_64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp39-cp39-macosx_10_9_x86_64.whl
- Upload date:
- Size: 144.9 kB
- Tags: CPython 3.9, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad99e44a0b05f09b0ed97102e0a07d7d8d51333a9c43fa592603978e424e8e6b
|
|
| MD5 |
ba1c9ff59bcd4f46828fa491e3f1b30d
|
|
| BLAKE2b-256 |
38839fa4a3018fab973e593abc78c0ffe1f12b720b4b11b03a867c8f6f02e9f7
|
File details
Details for the file acoustic_odometry-0.0.7-cp38-cp38-win_amd64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 161.3 kB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a0fdae6cce80e88ce5cd97dd584e1388f250a0cdc7b5475195de91f582d78fd
|
|
| MD5 |
7bf51cba223efc0ea0c5b585c6f3a8d4
|
|
| BLAKE2b-256 |
a1a4ee8a9d3d14acea7178d8f7414968dbb63a4cab0d986591004db16223bc2f
|
File details
Details for the file acoustic_odometry-0.0.7-cp38-cp38-win32.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp38-cp38-win32.whl
- Upload date:
- Size: 141.0 kB
- Tags: CPython 3.8, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
247e5f9faaeff4b2c39cbf190ccbec3d78bf4ce04b83d5ab27e3e2e18f41ed58
|
|
| MD5 |
b20b459957c1667a9600d6947bf42932
|
|
| BLAKE2b-256 |
c25a863e5893e6d0b07713be729f1b148597069949018a0af1e58a264f00c067
|
File details
Details for the file acoustic_odometry-0.0.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 181.6 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6cf56ee785be3447590025c46474a1051d5d583ab84f9d4a17ef2f89df9e382a
|
|
| MD5 |
9ba3ddbb6fcdcae0e9146b3bed9c7b1d
|
|
| BLAKE2b-256 |
5225ee596bbc50ffa97209beaf6cab5e75b0b6322c49e7713d00b7e36d2275d0
|
File details
Details for the file acoustic_odometry-0.0.7-cp38-cp38-macosx_10_9_x86_64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp38-cp38-macosx_10_9_x86_64.whl
- Upload date:
- Size: 144.9 kB
- Tags: CPython 3.8, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
967fa2d4719d8928147e94cf668844e8cf88f303aabf6eb1cb3388dc4a21639e
|
|
| MD5 |
f1502f617ebda4b6575be299e7913c58
|
|
| BLAKE2b-256 |
2b0bec9324b3dfc709b3e8d82a4dc2b265b61ddebe38447df1da98b6ec87a39f
|
File details
Details for the file acoustic_odometry-0.0.7-cp37-cp37m-win_amd64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp37-cp37m-win_amd64.whl
- Upload date:
- Size: 161.9 kB
- Tags: CPython 3.7m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee5d8b74c662117c095ea42ca36c9ad931d7d7f9cfe0ed390afe1f9c65c65fc7
|
|
| MD5 |
2e29ca370fe237cc57a116d212a3870c
|
|
| BLAKE2b-256 |
628f2d5aa9c606360b536f4982980b53db6d7381a4a4a5ce256b21e78f89a2eb
|
File details
Details for the file acoustic_odometry-0.0.7-cp37-cp37m-win32.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp37-cp37m-win32.whl
- Upload date:
- Size: 142.6 kB
- Tags: CPython 3.7m, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec73fd6b01ca314bdb1a1b5fe7b21cf2d7dcb573b621b55b55c8c4a91ee62161
|
|
| MD5 |
fb6cdd084636ac05c21a91cd1a769329
|
|
| BLAKE2b-256 |
c4761d13452fb7ea17e1973f385c2a69f50f52f981f0c77617b6544a7351af65
|
File details
Details for the file acoustic_odometry-0.0.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 183.9 kB
- Tags: CPython 3.7m, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cce5779354f5b0463e4b0d0483aaea7e5ee655509204c47483f19ca061b3221
|
|
| MD5 |
c42a1040e548cafda04cc22ff33ff37d
|
|
| BLAKE2b-256 |
38d39c9a8b50d25df020f45e2c8592dadddc07c8dfd1cc6d5801e9fc39c8dcd2
|
File details
Details for the file acoustic_odometry-0.0.7-cp37-cp37m-macosx_10_9_x86_64.whl.
File metadata
- Download URL: acoustic_odometry-0.0.7-cp37-cp37m-macosx_10_9_x86_64.whl
- Upload date:
- Size: 143.8 kB
- Tags: CPython 3.7m, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a6bc4be9a2a952f531a986d796182bdf04e8e6fe0a1eb50c83aef6e7b38b329
|
|
| MD5 |
412b09301971fdc08602fd49332e7014
|
|
| BLAKE2b-256 |
3f518e9224ee7bef08c279b46a864d303b0ec45c69ad054ecea3319c63fa7629
|