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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.9Windows x86-64

pypoem-1.6.10-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.10-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pypoem-1.6.10-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.10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 39f7f13d339839b76aa747ea8bc90fdfe01aca586b79a81d18bae46e228fb5c1
MD5 ebc7de536147a6dbece516c3c84b932f
BLAKE2b-256 e2d82b0eeb682417dd8ee9151aaa6c2424ae96c0aa1053ba70c7d3b09bd3239f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 49c5fceeb7bc7979055a40f4adfcc83f1737a0c1c88b4f440310aa13915356d6
MD5 3bba8fb99f54a1d6aa557d464c2bfbdc
BLAKE2b-256 7e242ecd9c7db05d4824047f3148677ed41f675f9a924ded57c41fd409988a29

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.10-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.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5bec66f0a7cbe20d25bca4b952deadd6d38086e28fc783f1670fbd5e554a82e9
MD5 f720447ed818bbde030432231f27f966
BLAKE2b-256 77baea55d35f3a3d3afccf3a030898d37db9bab1ceffaf17d5b2dba42f1acd06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c95343c4532fcf5ace2ed659195010beb78ca7dffc743dee355d172e022815b8
MD5 c07f985edbc348ce538b35038f23bdb2
BLAKE2b-256 26d1a196cabe1fbad31d5952e3484b3b567c82e63a64b08c8eed6298fc68b614

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.10-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.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3f965a33d609b1b7ade05872c40be1e8a72c64fe083cb6f19625b1040863ab1d
MD5 d5bc1ffc994013d1c250318232a8b0a0
BLAKE2b-256 1c791523abaa281a635c3f5e725e42b85580718497a7080de6e5b41c7215ba18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 04f3db70fb1071cf202867737a02df18de9f6d51948e7cc10181521655000708
MD5 570e4ffc7ad7bf2a50bd160d6ae37f5b
BLAKE2b-256 fea1c8d78834d18ee0accf0f9d02fd30c93af08c51ca9740fd63738807bf64f2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.10-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.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 36a089ca02c10126d711a09cbcd28e4c3114d00d5ccb7622c4674fdf6dc192d7
MD5 704de3ec80344c6bb1e88e81bbb96130
BLAKE2b-256 3e5ac2b1f7ba097f098db57584f7a866d3d37de36e89da18da48a24d1d0a9b23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4d051f09aa656effc888895b40128dfd4f0dbfcf79716c481e8b10bbc6f80af2
MD5 3feab9294b95644d709f3ac384021bd3
BLAKE2b-256 f1642ba582e6f5e364807ff9176aebd4ffb731b66d61cf33da9928509fcbb359

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.10-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.10-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a3092e6b90ea0b3e8f40ca2b7c28b47876c38a0ae69ab1eeb0dd8d07005995bf
MD5 7538bc16a00a317b951c2b32e7f08c09
BLAKE2b-256 a1d73ba818fabf7d13e8b361bbaefdc39ca3e494b5cf6bcd3c402d133f6fe2b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b3246e46059d538c09523788890f3e1ebe9dfdc89bc8dce97e65c32b26d3c3c6
MD5 6d65dd83963a31ed58184f172b2c7ab3
BLAKE2b-256 4d85728771581b970457b4ede4a22fedf0114d45fbc35fc057d06c49a59926d7

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