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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.9Windows x86-64

pypoem-1.6.11-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.11-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pypoem-1.6.11-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.11-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f9463299c98cecc7693750cd5a7d1c01a0ab5fe7d6d344e6cea7d7bd7e624797
MD5 2dda1c9a2158154e06bb7c590c5868ff
BLAKE2b-256 76e093937907584c9e351c17cf9b6742e0e8e5fa827e1612ac0550380f17a9c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eb1c18e3feb88d098ee318fc9e1504a14fbb4ad0dc907460e3663773f7ff7f6d
MD5 7ab3643f7fe19600753073f2c3fa7129
BLAKE2b-256 428e8faedc765f48a3b29c8d8d1b31dc88cd5b0351aa2018d0eb93320a4b6db1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.11-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.11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 31a5741c7b838a25d0b87c1c37897ed5e99d3e63439785a334fa729703a08ebf
MD5 5a4f884d3ee4765232e5e57eda580d92
BLAKE2b-256 e8288d2c01399e6220c0bc7ba8257bc99cc56ac6090736fe48cd64f7ee98e972

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 443fca691f84f9341a99c2bbdda7a12408ba7ef94b61412ee173bb6c7f1242aa
MD5 ea35f57ecbb7933f215b278073ce4536
BLAKE2b-256 e441fdd26a6e3095f0172a019ed4ac5afb9a25906657bb60a30f007c4d8217b6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.11-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.11-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 01e1861ad6eda31037bb6b181e6613e300be5a2c04487168e969f58ba8b883d1
MD5 0aff622d8d2c02a2c4db68f15ded64ab
BLAKE2b-256 174a4684e166b0645c4eb0b87539ac6bddda7a5d09e6d3e767120311b772d168

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 39018e3386fe109621b26fb369f0524eaf29f9fe8ee8f95dd2c91e4c2a5c7bb6
MD5 91796604a11682667f18c63820d02f11
BLAKE2b-256 ed3835272e52446ee65dfc4112a84f980b13f3968357a8dea5d90523605a9060

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.11-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.11-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fb3d94446325325125687121483c9ea0d5bb0b8b2b62c29c54476eca067383db
MD5 db8cf04d7ea24e0bf8196d73b3a293c8
BLAKE2b-256 91550fecc25d0a51b7a32ccdfdb262e10bcfcd6788bf905e180d3bd83926afa6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 79d2acafb1c290a1c4817a14ca6f95b1a5c463a95faf2b2ef599f29f99fc74d5
MD5 95daeb10310d8673536a3924d1f305ed
BLAKE2b-256 3a780230ff2c5ad82a8a9273824b890925f30717898f38bb1bfd88d20e1c78fa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypoem-1.6.11-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.11-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b4e7f8a07d9ff995d05d04df6e0a9797ea4f3cbaf0b16df20f39e97b52cebcc0
MD5 b57959d02b746eb37079daa3aeacb165
BLAKE2b-256 8513ab872f78db510d613211151e0125962313293570a57fc8bd45e1cb482532

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypoem-1.6.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7bd8d77aee2d182e5684efd5d37630b09cba9f9b71ce61b712bd3ce8951919e1
MD5 c764d5da5e0c2d09c8a0fe19b29faabb
BLAKE2b-256 7fb386fd488ad0f3354f05c878332730541a7328951108c1c8c8f2e89d8f7ba2

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