Skip to main content

Performance pOlar Exchange forMat

Project description

POEM

Performance pOlar Exchange forMat

PyPI - Status PyPI - License

C++ PyPI - Python Version PyPI version

C++ library and Python bindings defining an exchange format for performance polar in marine engineering, wind assisted vessels performance prediction, weather routing optimisation, embedded control systems, training simulators.

Links

Introduction

  • what is a VPP
  • what is a digital twin
  • what is a performance polar
  • the different type of polars
  • how a polar is used

POEM in a nuttshel

  • why poem
  • what is poem
  • is poem for me

Python interface

The pypoem package that wraps poem is pypoem. It does not currently give acces to the whole C++ API but feature are progressively ported to Python.

Requirements

pypoem is tested with Python version >= 3.9.

Install from Pypi

pypoem is available on Pypi, so it can be installed as:

$ pip install pypoem

Install from sources

pypoem relies on scikit-build-core for the packaging. Source installation is realised by running the following command int the repository root directory:

$ pip install .

Basic usage

Here is a simple example of the creation of a MPPP Polar with one PolarTable and its writing to a netCDF file compliant with POEM file format thanks the of POEM library.

from pypoem import pypoem
import numpy as np

# Declaring three dimensions
STW = pypoem.make_dimension("STW", "kt", "Speed Through Water")
TWS = pypoem.make_dimension("TWS", "kt", "True Wind Speed")
TWA = pypoem.make_dimension("TWA", "deg", "True Wind Angle")

# Creating a DimensionSet
dimension_set = pypoem.make_dimension_set((STW, TWS, TWA))

# Creating a DImensionGrid and filling the dimensions with values
dimension_grid = pypoem.make_dimension_grid(dimension_set)
dimension_grid.set_values("STW", np.linspace(8, 20, 13))
dimension_grid.set_values("TWS", np.linspace(0, 40, 9))
dimension_grid.set_values("TWA", np.linspace(0, 180, 13))

# Creating a Polar of type MPPP (Motor only Power Prediction)
polar_MPPP = pypoem.make_polar("MPPP", pypoem.MPPP, dimension_grid)

# Creating a PolarTable from the MPPP Polar
BrakePower = polar_MPPP.create_polar_table_double("BrakePower", "kW", "Brake Power", 
                                                  pypoem.POEM_DOUBLE)

# Generating a dummy NDArray with ones and the same shape as the DimensionGrid
# Note that NDArrays must be arranged in a row major order with respect the DimensionSet
# of the DimensionGrid. If you think in terms of nested for loop with Dimensions, 
# the last Dimension (here TWA) is moving fastest (most inner loop).
brake_power_data = np.ones(dimension_grid.shape())

# Setting the BrakePower PolarTable with the array
BrakePower.set_values(brake_power_data)
assert(np.all(brake_power_data == BrakePower.array()))

# Writing to netCDF
pypoem.to_netcdf(polar_MPPP, "polar_basic.nc")
  • Reading a POEM file
  • More complex example

Work In Progress

Integrating the C++ library

Work In Progress

Requirements

Work In Progress

CMake

Work In Progress

Basic usage

Work In Progress

Current limitations

POEM has been primarily developed under Linux OS. Port to other platforms is expected to come in the future but is not a current top priority. Contributors for a Windows port are welcome :)

Latest standard is available at: https://dice-poem.readthedocs.io/en/latest/

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.

pypoem-1.6.8-cp313-cp313-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.13Windows x86-64

pypoem-1.6.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pypoem-1.6.8-cp312-cp312-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.12Windows x86-64

pypoem-1.6.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pypoem-1.6.8-cp311-cp311-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.11Windows x86-64

pypoem-1.6.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pypoem-1.6.8-cp310-cp310-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.10Windows x86-64

pypoem-1.6.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pypoem-1.6.8-cp39-cp39-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.9Windows x86-64

pypoem-1.6.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

Details for the file pypoem-1.6.8-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pypoem-1.6.8-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pypoem-1.6.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ab2b194dc3afccefa2fb52f8947f678533179434ba7dee27fadfa9513f7a1d72
MD5 2ea5b0ce63c248608bb444f66e2446cf
BLAKE2b-256 97646b15202710130fd9ac3d165da914aa496d759469e7b988ae67fe2acf59d0

See more details on using hashes here.

File details

Details for the file pypoem-1.6.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypoem-1.6.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 88211c392965004806b1cce8180c2c128acccde850124263f25ca7230167d12b
MD5 5e97e4ecd8a92dc57efe3a3903df786a
BLAKE2b-256 961638c677182849262d10f76d8c955e6ddd6fa6c5c04fab553734d77287b5b0

See more details on using hashes here.

File details

Details for the file pypoem-1.6.8-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pypoem-1.6.8-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pypoem-1.6.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 376dba479befba1a7d5bbcb1b0eec996c475c6b682ac92f6f52f466eaa7ef5e6
MD5 2b97c781c3e3becd92506e3c5f4abe02
BLAKE2b-256 0902b11276c969454db7e8e574a9674a0eca6eaa327cf25be8e26c434b09d7b6

See more details on using hashes here.

File details

Details for the file pypoem-1.6.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypoem-1.6.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 855332c9936fe436e4df2d14a2786c40c3ea45699e779664c3a052b3a272ffa7
MD5 dcabc61cfd5e64fa9c4d48f109d98d37
BLAKE2b-256 7cd4057f41755c67548eb7ef2ddccffdfa5da4485ab3fcb93be4c4ac4caa7209

See more details on using hashes here.

File details

Details for the file pypoem-1.6.8-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pypoem-1.6.8-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pypoem-1.6.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9b981c1fdcfcf4f08cd539ebdd041e9c03270e0ddcd975a07a2655044f37659d
MD5 25b1d9f6bc6b13e1f7c9f37a06e11563
BLAKE2b-256 14e4078ae27e80a552f33bd18cbb7804858f307e7dfa8e81880cf9c8a2ccf521

See more details on using hashes here.

File details

Details for the file pypoem-1.6.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypoem-1.6.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3a0bc07d348493de9311eafce6ba93825781b8727395ab50586cc00afa34c102
MD5 6e18a12646b7e928f35e6a234ba43732
BLAKE2b-256 3415b3025ae0fdcbf481379b623ddd20a5e844af02817b689fccad65eb9ed1ad

See more details on using hashes here.

File details

Details for the file pypoem-1.6.8-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pypoem-1.6.8-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pypoem-1.6.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 18c8681cbbfad26a3b4f6a9676ae4efcd8710d8fc74baff33e7aaad2cf12a9cc
MD5 982b5d915c2b050e3c1fde504435349a
BLAKE2b-256 8af335db7d5d98027203406ebf6cc7daba5ef96f10ed530cedbf797d6ec024f3

See more details on using hashes here.

File details

Details for the file pypoem-1.6.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypoem-1.6.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 56d0e1bea32f57cbe8613710fc0ce26f33bb7c938946396a41d2b80fdb0f352d
MD5 7f91c7e446f7c767a90ff039506fa05f
BLAKE2b-256 53ea6379d16d9a2b2245dbc905836ab5a89415abb61c0b9c5c94de5608489691

See more details on using hashes here.

File details

Details for the file pypoem-1.6.8-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pypoem-1.6.8-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pypoem-1.6.8-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b3080f7f53f0930497d76e460b78587a41a1ef9f2707b825cd39f2a9fa79b476
MD5 35ec9975aea0bd48f90c593d5fbb3958
BLAKE2b-256 7bb88fe7f4772a8eda2faa12eed49f5262e2eb2299db269e3334a2e24ee73627

See more details on using hashes here.

File details

Details for the file pypoem-1.6.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypoem-1.6.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 47297d61d3d43ff1e53a7ee4bb641ae404462616ba0398b80e9164bd12478aac
MD5 19cf8fdb2ef8a941baff25c31303f0ff
BLAKE2b-256 06d33cdeff2e5fe3437a59884923a3f42e6a6acc27287e9c0f8bb6902ab20a33

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