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.9-cp313-cp313-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.13Windows x86-64

pypoem-1.6.9-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.9-cp312-cp312-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.12Windows x86-64

pypoem-1.6.9-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.9-cp311-cp311-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.11Windows x86-64

pypoem-1.6.9-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.9-cp310-cp310-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.10Windows x86-64

pypoem-1.6.9-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.9-cp39-cp39-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.9Windows x86-64

pypoem-1.6.9-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.9-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pypoem-1.6.9-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.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 49625937c1b5f5ce9d461daf35562c83bb243a2aaa0672384ec214e9b06264e8
MD5 b6ce76762feef3bcaf718b8ecaf09fbe
BLAKE2b-256 2794b3a34a67662b32720a6d8e4d966a89e61a08b740d388229936fc352adb5f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 31e2dcce755b0dec382d226fd0bf40b2e78e2d6b2f469a94f5d64e77e1168a73
MD5 8c7bba2635ed93a1969de0cd41f9b831
BLAKE2b-256 11475fa93a47ded009d0e854620c7799fbbd6144dead7061fc431cd507b9765c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.9-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.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0c5406b2446044f5e74a5754e7cd08f84460948418182cabc47d4d2a024093eb
MD5 0318fa700efe9006672aa6843dabcc04
BLAKE2b-256 62c6c89aaab710241782fa1e771e3b1f4f7a2e011d80bfd8eae8a33092f347f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bbb1b4e65661970bbf3c0081d2859f5b644559c69779fdf6376a5b1134d9272e
MD5 3812981a1ff5513a148a938ff2eb7381
BLAKE2b-256 01af32c2aa3dfd97b64b8f53fe2ff49efaee929963dcad70550e6a1d9d09afb7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.9-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.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 88d11922fe75d6f9adda8278510851d0cb71508539289845b9fd19688584fb27
MD5 1469c259b29b0a0f650c5b375d47259f
BLAKE2b-256 3f7723dffe0dfefe814f16fd71811b84fdc295aef3db7e56247acf65b1feb868

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 61c9b5972e4f7b5d292b296bc2a3bfa015ff5511874fe78b5d0b9ab98897c3ec
MD5 aa6480c11387b20724488f8c2cadd830
BLAKE2b-256 f1326cedbc97a05f0c2fc112c2ab0a5730227e89f49e9590e32af30d341b1f83

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.9-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.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7f9112ac5612f164fbde161c28fa4164f74a3a281aab3b1c3ac525dee9a83fe3
MD5 8537290d122014a9c2e89e7905022636
BLAKE2b-256 f2d5a1efadd8cd816dad9d5af80619bc9b1abb5625edf53d8aa01c0d3f225292

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 182503b980ca14bc33938177f13e5517a54b15d1d3c2a9f536afd09557277a65
MD5 ef6c4e77d015f9c63aad6b216f481baa
BLAKE2b-256 e14420bcc005fbd56c1969374da5d3c36819ebb5463672c7d94fa45889ad7d12

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.9-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.9-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0026996c62ffe2d5bc21ffeb78ea0a933363d03852ede5389c92e83a34e194f4
MD5 c5093a2e749a4096104e82e226334b98
BLAKE2b-256 b2da513a1a65a3f1a723b528c18d93bd5b9884a38a1148ae4c164bdf8f804710

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d9e97ca87f180d1a9afc12d25ab5cd783638d4e6df6220f57badfbe02c735dc7
MD5 c5e18ae4d3a53c8d875d7cc869a1551d
BLAKE2b-256 f94995db71b0f951cc95eabcc933e335a9d7c6c8a999a2222f61aab533ece744

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