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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.9Windows x86-64

pypoem-1.6.12-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.12-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pypoem-1.6.12-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.12-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 bff63640d6e515b4c0bdb8e926cf075d1123af2fab0e02f4e4af7b48340db293
MD5 920ff2341ff380d450ab48f62043ead3
BLAKE2b-256 a392e237269d3e875286bb5cf7fc7b70582eeab94050ab10c18dc179f4011c90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 21b2ba940f8ee60f2ff5ac46be3bd89ad917c2b7b413e30839b026fd7f02f653
MD5 d1120b5c2a3214ed9a6ae4e98d26f513
BLAKE2b-256 83683e9cc6bbd54cf5c235ca16b2d59ead49d47bc7e518fceedd4a648399eec7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.12-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.12-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8934f88616032242d6b4e6de3885bf6647b52cefe732e21856d6b7cfa8a33892
MD5 268f179f876d972e2c66a706bba1f2ec
BLAKE2b-256 22395bfd80e40143cb9b095dbdc71b4afeb9ab10290db773bdd12e28234ac3c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 00a9a7da8102601d6ebba89237cf2f5b6a9378862c1a8f79423c51bf71f750f7
MD5 4e37e2922693742b66b85f650c0749be
BLAKE2b-256 74065fb9d212f7147a97ffa524ca41ed600150b67e938924a8b8eee19496d419

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.12-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.12-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4c6876f223e0e2ce45641510698cc1ee258a091bb47146a5033590ad2fae1381
MD5 e7b62e6efc16bbe8de3f0ce31d7ab5e2
BLAKE2b-256 252583d4ed056854f6266af6ecc77b540199fccfc4120e505955740ae73799f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0b9459e0369d176723d0f34b274089e0ca7cd521f5126cce3da6b6b6eb0e0d46
MD5 f4de81eea1d5a8f68e5ce513204f787c
BLAKE2b-256 9e4aa32210e7881a1677ba4db4c87d8a350bd50d000af6cf7701772993ea5b04

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.12-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.12-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 eafe6da9bf170464e9f34c9415b34ceb53ab1fc32b1f651897212a2b507dcb8d
MD5 ba8bbc63c07821f5737e43cadbc71d38
BLAKE2b-256 e263da97df3544250f99808a298d63432ef2ec0390c961edcda3ebec2e2101db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 80754b8938a5628c98e230ea17f4f556730489d9b27d1102e48104ed4afd045b
MD5 7fdb34afbb013274df93f23fc78afdce
BLAKE2b-256 ffd6d26fc4d4aa7c703a5a84f4607c9374549c938ec97774cfd2015db3f4fe6f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.12-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.12-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b8a5097ea0cf49bd0efcf05fef6806e6ed279cbdcae1bc401929b925dc66363d
MD5 0f472ec5367058890698771387a091ae
BLAKE2b-256 17ce82986c90c2e1334da2eac3c9fff98e5630990f3517ce67fc58f4e4ae399e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 54d4328085d0613ef2bc4b286161bffad86c59a2c71e384788a9a24a411e2e82
MD5 1e9072ba01afec2d0fc25c99e9194e7a
BLAKE2b-256 c23bbf84c168babdd65ab8fa457b202de814cb7794bd924698b96e184457c1d1

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