virocon.utils module

Various functions that do not fit in an existing module.

virocon.utils.calculate_design_conditions(contour, steps: Optional[Union[list, int]] = None, swap_axis=False) Union[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]], numpy._typing._nested_sequence._NestedSequence[numpy._typing._array_like._SupportsArray[numpy.dtype[Any]]], bool, int, float, complex, str, bytes, numpy._typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]]][source]

Calculates design conditions (relevant points for structural analysis) for a contour.

For example, in a sea state contour, one is interested in the upper Hs part for a given Tz/Tp. And one often likes to have points that are evenly spaced in the Tz/Tp direction, e.g. one Hs-Tz design condition per 0.5 s of Tz.

Parameters
  • contour (Contour) – Environmental conntour object.

  • steps (list of floats or int, optional) – Either a list of design conditoin x-values or the number how many steps shall be used (then the x-values will be evenly spaced). Defaults to None.

  • swap_axis (bool, optional) – Wheter x and y shall be swapped. Defaults to False.

Returns

design conditions (points for structural analysis calculations).

Return type

npt.ArrayLike

virocon.utils.read_ec_benchmark_dataset(file_path=None)[source]

Reads an EC benchmark dataset.

Reads a text/csv file as it is used in the EC benchmark: https://github.com/ec-benchmark-organizers/ec-benchmark

Parameters

file_path (str) – Path to the dataset file. Defaults to the example dataset A.

Returns

dataset – The dataset stored in a pandas DataFrame. Use dataset.values to access the underlying numpy array.

Return type

pandas.DataFrame

virocon.utils.sort_points_to_form_continuous_line(x, y, search_for_optimal_start=False)[source]

Sorts contour points to form a a continous line / contour.

This function simply sorts 2 dimensional points. The points are given by x and y coordinates. This function is used to sort the coordinates of 2 dimensional contours.

Thanks to https://stackoverflow.com/a/37744549

Parameters
  • x (array_like) – x-coordinate of contour points.

  • y (array_like) – y-coordinate of contour points.

  • search_for_optimal_start (boolean, optional) – If True, the algorithm also searches for the ideal starting node, see the stackoverflow link for more info. Defaults to False.

Returns

sorted_points – The sorted points.

Return type

tuple of array_like floats