Skip to content

Package Design Discussions #15

@emptymalei

Description

@emptymalei

I am thinking about the high level design of this package and came up with this:

flowchart LR

subgraph "Models"

subgraph "Physics"


subgraph "Analytical"

harmonic_oscillator["Harmonic Oscillators"]

models_physics_more["..."]

end

subgraph "Numerical"

three_body["Three Body Problem"]

models_physics_numerical_more["..."]

end

end

subgraph "Statistics"

poison_process["Poison Process"]

models_statistics_more["..."]

end


end


subgraph "Combining Data (May not be important/urgent)"

adding["+ values in multiple datasets:\nmodel_1 + model_2"]

multiplying["* values in multiple datasets:\nmodel_1 * model_2"]

end


subgraph "Config"

config_for_model["Yaml config of model"]

pre_configged_models["Pre-configged models and \ngenerate dataset from config"]


end
Loading

I don't think we need to code everything by ourselves. We just need a few some representative examples.

Models

We create pandas dataframes (maybe series for 1d data?) as the output.

Physics (Analytical)

Physics models with analytical solutions are the easiest to build. We might just include some initial value problems and for that, we have three key components:

  • definition of the system
  • initial condition
  • solution

Physics (Numerical)

There might be models we want to build but they have no analytical solutions. We could simply apply scipy to solve some simple cases, for now.

Statistics

These are usually some iterative or repetitive processes. Sample or iterate to generate a series.

Combining Data

I ran into many situations that I need to combine different models to make the data useful. For example, I need to combine a harmonic oscillator and some Gaussian noise to test how my model reacts to noise.

Config

Starting from the first model #8 , we made it easy to create models using configs. This will be our core design principles.

In the end, we will create different sets of configs, be it yaml or json, to define datasets. Then we can easily rebuild and release datasets.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions