Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refact: Native Streams for random point clouds #793

Closed
18 tasks done
detlefarend opened this issue Aug 24, 2023 · 2 comments
Closed
18 tasks done

Refact: Native Streams for random point clouds #793

detlefarend opened this issue Aug 24, 2023 · 2 comments
Assignees
Labels
BF Basic Functions/Infrastructure quality Quality assurance refactoring Restructuring, renaming, simplification, understandability, ... v1.3.0 In scope of Release 1.3.0

Comments

@detlefarend
Copy link
Member

detlefarend commented Aug 24, 2023

Motivation
This kind of benchmark streams has a high relevance for ongoing and future research activities. Based on first experiences with static and dynamic point clouds I propose a more general approach:

Tasks

  • 1. New module bf.streams.streams.clouds.py
  • 2. New class StreamMLProClouds
    Basically like StreamMLProDynamicClouds3D, but with some extensions that make a re-implementation necessary:
    • New obligatory parameter p_dim : int
    • New optional parameter p_num_inst : int = 0
      A limitation of the number of instances shall be optional. 0 means: no limit.
    • New parameter p_radius : float/list (replaces p_variance)
      Maximum distance of a new instance from it's related cloud center. Please store this value for each cloud (see next parameter). Can be a single float or a list of values for each cloud. Default shall be 100.
    • Method _get_next(): ad-hoc generation of next instance
      • Step 1: Update all cloud centers
      • Step 2: Determine randomly the cloud id to be extended
      • Step 3: Generation of random instance for the cloud in Step 2
  • 3. Benchmark stream classes inherited from SreamMLProClouds
    • Class StreamMLProClouds2D4C1000Static
      2D, 4 clouds, static centroids, 1000 instances
    • Class StreamMLProClouds3D8C2000Static
      3D, 8 clouds, static centroids, 2000 instances
    • Class StreamMLProClouds2D4C5000Dynamic
    • Class StreamMLProClouds3D8C10000Dynamic
  • 4. Howtos for each Benchmark stream class
    Each howto shall demonstrate (and validate in dark mode) the origin data and the buffered data.
    • Workflow: t1 = Window, t2 = Custom/Empty (just to have an extra window that shows the buffered data...
  • 5. Extra howto with user inputs
    This howto shall use the root class StreamMLProClouds. The user shall input values for
    • number of instances (default 10000)
    • dimensionality (default 3)
    • number of clouds (default 8)
    • static or dynamic (default d)
    • step rate (default 20)
    • window buffer (default 500)
  • 6. Further hints
    • Numpy makes no sense here
    • Please use Python's buitin random generator
@detlefarend detlefarend added quality Quality assurance refactoring Restructuring, renaming, simplification, understandability, ... BF Basic Functions/Infrastructure next release labels Aug 24, 2023
@detlefarend detlefarend added this to the Sprint 2023/08 milestone Aug 24, 2023
@detlefarend
Copy link
Member Author

Hi @laxmikantbaheti @Syam47, here's a nice challenge for you both. Please plan the related work together and contact me in case of questions, ideas, improvements, ... Let's also describe this new benchmark functionality in our paper...

@laxmikantbaheti
Copy link
Contributor

Hi @Syam47 , the workflow was running infinitely most probably because of this pass in line 152 of clouds. Consider doing a raise StopIteration, if that's what is normally done to stop the stream.
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BF Basic Functions/Infrastructure quality Quality assurance refactoring Restructuring, renaming, simplification, understandability, ... v1.3.0 In scope of Release 1.3.0
Projects
None yet
Development

No branches or pull requests

3 participants