process-improve 1.75.2__tar.gz → 1.82.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {process_improve-1.75.2 → process_improve-1.82.0}/PKG-INFO +9 -6
- {process_improve-1.75.2 → process_improve-1.82.0}/README.md +2 -2
- {process_improve-1.75.2 → process_improve-1.82.0}/pyproject.toml +7 -4
- {process_improve-1.75.2 → process_improve-1.82.0}/pyproject.toml.orig +17 -4
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/_extras.py +1 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/_linalg.py +9 -2
- process_improve-1.82.0/src/process_improve/_remote_data.py +147 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/batch/__init__.py +38 -1
- process_improve-1.82.0/src/process_improve/batch/_batch_monitor.py +301 -0
- process_improve-1.82.0/src/process_improve/batch/_batch_pca.py +598 -0
- process_improve-1.82.0/src/process_improve/batch/_batch_plots.py +421 -0
- process_improve-1.82.0/src/process_improve/batch/_batch_pls.py +789 -0
- process_improve-1.82.0/src/process_improve/batch/_common.py +46 -0
- process_improve-1.82.0/src/process_improve/batch/_online.py +243 -0
- process_improve-1.82.0/src/process_improve/batch/control.py +1317 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/batch/data_input.py +79 -21
- process_improve-1.82.0/src/process_improve/batch/datasets.py +376 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/batch/features.py +5 -4
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/batch/preprocessing.py +25 -3
- process_improve-1.82.0/src/process_improve/chemistry/__init__.py +57 -0
- process_improve-1.82.0/src/process_improve/chemistry/preprocessing.py +718 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/config.py +1 -1
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/analysis.py +8 -3
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/datasets.py +3 -39
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/designs_optimal.py +19 -2
- process_improve-1.82.0/src/process_improve/interactions.py +381 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/__init__.py +10 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_adaptive.py +2 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_diagnostics.py +151 -15
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_limits.py +5 -1
- process_improve-1.82.0/src/process_improve/multivariate/_null.py +571 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_pca.py +347 -60
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_pls.py +235 -14
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_preprocessing.py +188 -3
- process_improve-1.82.0/src/process_improve/multivariate/_projection.py +281 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_tpls.py +16 -6
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/methods.py +12 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/plots.py +68 -9
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/regression/_robust_regression.py +38 -23
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/regression/tools.py +2 -2
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/sensory/__init__.py +10 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/sensory/analysis.py +149 -25
- process_improve-1.82.0/src/process_improve/sensory/diagnostics.py +367 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/sensory/mam.py +26 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/sensory/recipes.py +14 -12
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/sensory/tools.py +16 -8
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/sensory/validation.py +4 -3
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/simulation/batch.py +17 -7
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/simulation/recipes.py +64 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/simulation/tools.py +229 -1
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/visualization/raincloud.py +2 -2
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/_random.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/batch/alignment_helpers.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/batch/plotting.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/batch/tools.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/bivariate/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/bivariate/_elbow_peak.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/bivariate/methods.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/bivariate/tools.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/batch/batch-fake-data.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/batch/details.txt +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/batch/dryer.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/batch/nylon.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/experiments/boilingpot.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/experiments/golf.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/experiments/pollutant.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/experiments/solar.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/experiments/test_doe1.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/monitoring/batch-yield-and-purity.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/monitoring/rubber-colour.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/LDPE/C.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/LDPE/Hotellings_T2_A3.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/LDPE/Hotellings_T2_A6.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/LDPE/LDPE.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/LDPE/P.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/LDPE/R.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/LDPE/T.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/LDPE/U.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/LDPE/W.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/LDPE/Yhat_A6.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/cheddar-cheese.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/dtu-pectin/NOTICE +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/dtu-pectin/extraction1.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/dtu-pectin/extraction2.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/dtu-pectin/extraction3.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/dtu-pectin/ftir1.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/dtu-pectin/ftir2.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/dtu-pectin/ftir3.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/kamyr.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/solvents.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/tablet-spectra.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/tpls-pyphi/SOURCE +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/tpls-pyphi/formulas_Group1.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/tpls-pyphi/formulas_Group2.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/tpls-pyphi/formulas_Group3.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/tpls-pyphi/formulas_Group4.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/tpls-pyphi/formulas_Group5.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/tpls-pyphi/process_conditions.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/tpls-pyphi/properties_Group1.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/tpls-pyphi/properties_Group2.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/tpls-pyphi/properties_Group3.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/tpls-pyphi/properties_Group4.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/tpls-pyphi/properties_Group5.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/datasets/multivariate/tpls-pyphi/quality_indicators.csv +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_analyses/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_analyses/_shared.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_analyses/box_cox.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_analyses/curvature.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_analyses/diagnostics.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_analyses/lack_of_fit.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_analyses/lenth.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_analyses/model_selection.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_analyses/ols_extractors.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_analyses/prediction.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_desirability.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_lm.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_moment_aberration.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_tools/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_tools/analyze_experiment.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_tools/augment_design.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_tools/create_factorial_design.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_tools/doe_knowledge.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_tools/evaluate_design.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_tools/fit_linear_model.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_tools/generate_design.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_tools/optimize_responses.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_tools/recommend_strategy.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_tools/trade_off_table.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/_tools/visualize_doe.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/augment.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/designs.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/designs_factorial.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/designs_mixture.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/designs_omars.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/designs_omars_ilp.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/designs_response_surface.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/designs_screening.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/designs_utils.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/evaluate.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/factor.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/knowledge/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/knowledge/api.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/knowledge/data/concepts.yaml +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/knowledge/data/decision_rules.yaml +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/knowledge/data/design_types.yaml +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/knowledge/data/diagnostics.yaml +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/knowledge/engine.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/knowledge/models.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/models.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/omars.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/omars_trade_off.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/optimal.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/optimization.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/simulations.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/strategy/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/strategy/budget.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/strategy/domain_templates.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/strategy/engine.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/strategy/models.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/structures.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/tools.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/trade_off.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/visualization/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/visualization/api.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/visualization/plots/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/visualization/plots/cube_plot.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/visualization/plots/design_quality.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/visualization/plots/diagnostics.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/visualization/plots/effects.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/visualization/plots/optimization_plots.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/visualization/plots/registry.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/visualization/plots/significance.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/visualization/plots/square_plot.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/experiments/visualization/plots/surfaces.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/mcp_server.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/monitoring/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/monitoring/control_charts.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/monitoring/metrics.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/monitoring/tools.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_base.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_common.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_mbpca.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_mbpls.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_nipals.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_opls.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_pca_pls.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/_resampling.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/multivariate/tools.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/py.typed +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/recipes.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/regression/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/regression/methods.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/sensory/designed.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/sensory/ingest.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/sensory/panel.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/simulation/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/simulation/context.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/simulation/model.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/tool_safety.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/tool_spec.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/univariate/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/univariate/metrics.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/univariate/tools.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/visualization/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/visualization/adapters/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/visualization/adapters/base.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/visualization/adapters/echarts_adapter.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/visualization/adapters/plotly_adapter.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/visualization/charts/__init__.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/visualization/charts/boxplot.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/visualization/colors.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/visualization/spec.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/visualization/themes.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/visualization/tools.py +0 -0
- {process_improve-1.75.2 → process_improve-1.82.0}/src/process_improve/visualization/types.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: process-improve
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.82.0
|
|
4
4
|
Summary: Designed Experiments; Latent Variables (PCA, PLS, multivariate methods with missing data); Process Monitoring; Batch data analysis.
|
|
5
5
|
Keywords: Designed Experiments,Latent Variables,PCA,PLS,Multivariate Data Analysis,Batch data analysis
|
|
6
6
|
Author: Kevin Dunn
|
|
@@ -28,6 +28,7 @@ Requires-Dist: matplotlib>=3.10.8 ; extra == 'all'
|
|
|
28
28
|
Requires-Dist: mcp>=2.0 ; extra == 'all'
|
|
29
29
|
Requires-Dist: numba>=0.63.1 ; extra == 'all'
|
|
30
30
|
Requires-Dist: openpyxl>=3.1.5 ; extra == 'all'
|
|
31
|
+
Requires-Dist: osqp>=1.0 ; extra == 'all'
|
|
31
32
|
Requires-Dist: plotly>=6.5.2 ; extra == 'all'
|
|
32
33
|
Requires-Dist: pulp>=2.8 ; extra == 'all'
|
|
33
34
|
Requires-Dist: pydoe3>=1.0 ; extra == 'all'
|
|
@@ -36,6 +37,7 @@ Requires-Dist: scikit-image>=0.25.2 ; extra == 'all'
|
|
|
36
37
|
Requires-Dist: seaborn>=0.13.2 ; extra == 'all'
|
|
37
38
|
Requires-Dist: openpyxl>=3.1.5 ; extra == 'batch'
|
|
38
39
|
Requires-Dist: scikit-image>=0.25.2 ; extra == 'batch'
|
|
40
|
+
Requires-Dist: osqp>=1.0 ; extra == 'control'
|
|
39
41
|
Requires-Dist: coverage>=7.13.1 ; extra == 'dev'
|
|
40
42
|
Requires-Dist: hypothesis>=6.100 ; extra == 'dev'
|
|
41
43
|
Requires-Dist: matplotlib-stubs>=0.3.11 ; extra == 'dev'
|
|
@@ -63,11 +65,12 @@ Requires-Dist: plotly>=6.5.2 ; extra == 'plotting'
|
|
|
63
65
|
Requires-Dist: ridgeplot>=0.5.0 ; extra == 'plotting'
|
|
64
66
|
Requires-Dist: seaborn>=0.13.2 ; extra == 'plotting'
|
|
65
67
|
Requires-Python: >=3.10
|
|
66
|
-
Project-URL: Homepage, https://github.com/kgdunn/
|
|
67
|
-
Project-URL: Repository, https://github.com/kgdunn/
|
|
68
|
-
Project-URL: Issues, https://github.com/kgdunn/
|
|
68
|
+
Project-URL: Homepage, https://github.com/kgdunn/process-improve
|
|
69
|
+
Project-URL: Repository, https://github.com/kgdunn/process-improve
|
|
70
|
+
Project-URL: Issues, https://github.com/kgdunn/process-improve/issues
|
|
69
71
|
Provides-Extra: all
|
|
70
72
|
Provides-Extra: batch
|
|
73
|
+
Provides-Extra: control
|
|
71
74
|
Provides-Extra: dev
|
|
72
75
|
Provides-Extra: expt
|
|
73
76
|
Provides-Extra: fast
|
|
@@ -268,8 +271,8 @@ result.y_hat # point predictions
|
|
|
268
271
|
result.spe # squared prediction error
|
|
269
272
|
result.hotellings_t2 # Hotelling's T² for new observations
|
|
270
273
|
|
|
271
|
-
# Cross-validated component selection
|
|
272
|
-
cv_select = PLS.select_n_components(
|
|
274
|
+
# Cross-validated component selection: raw blocks in, each fold scales itself
|
|
275
|
+
cv_select = PLS.select_n_components(X, Y, max_components=6)
|
|
273
276
|
print(cv_select.n_components) # recommended number of components
|
|
274
277
|
print(cv_select.rmsecv) # RMSECV per component count
|
|
275
278
|
|
|
@@ -190,8 +190,8 @@ result.y_hat # point predictions
|
|
|
190
190
|
result.spe # squared prediction error
|
|
191
191
|
result.hotellings_t2 # Hotelling's T² for new observations
|
|
192
192
|
|
|
193
|
-
# Cross-validated component selection
|
|
194
|
-
cv_select = PLS.select_n_components(
|
|
193
|
+
# Cross-validated component selection: raw blocks in, each fold scales itself
|
|
194
|
+
cv_select = PLS.select_n_components(X, Y, max_components=6)
|
|
195
195
|
print(cv_select.n_components) # recommended number of components
|
|
196
196
|
print(cv_select.rmsecv) # RMSECV per component count
|
|
197
197
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "process-improve"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.82.0"
|
|
4
4
|
description = "Designed Experiments; Latent Variables (PCA, PLS, multivariate methods with missing data); Process Monitoring; Batch data analysis."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "MIT"
|
|
@@ -55,11 +55,13 @@ batch = [
|
|
|
55
55
|
mcp = ["mcp>=2.0"]
|
|
56
56
|
fast = ["numba>=0.63.1"]
|
|
57
57
|
ilp = ["pulp>=2.8"]
|
|
58
|
+
control = ["osqp>=1.0"]
|
|
58
59
|
all = [
|
|
59
60
|
"matplotlib>=3.10.8",
|
|
60
61
|
"mcp>=2.0",
|
|
61
62
|
"numba>=0.63.1",
|
|
62
63
|
"openpyxl>=3.1.5",
|
|
64
|
+
"osqp>=1.0",
|
|
63
65
|
"plotly>=6.5.2",
|
|
64
66
|
"pulp>=2.8",
|
|
65
67
|
"pyDOE3>=1.0",
|
|
@@ -92,9 +94,9 @@ dev = [
|
|
|
92
94
|
process-improve-mcp = "process_improve.mcp_server:main"
|
|
93
95
|
|
|
94
96
|
[project.urls]
|
|
95
|
-
Homepage = "https://github.com/kgdunn/
|
|
96
|
-
Repository = "https://github.com/kgdunn/
|
|
97
|
-
Issues = "https://github.com/kgdunn/
|
|
97
|
+
Homepage = "https://github.com/kgdunn/process-improve"
|
|
98
|
+
Repository = "https://github.com/kgdunn/process-improve"
|
|
99
|
+
Issues = "https://github.com/kgdunn/process-improve/issues"
|
|
98
100
|
|
|
99
101
|
[build-system]
|
|
100
102
|
requires = ["uv_build>=0.7.2,<0.13"]
|
|
@@ -128,6 +130,7 @@ override-dependencies = [
|
|
|
128
130
|
"plotly>=6.5.2",
|
|
129
131
|
"numba>=0.63.1",
|
|
130
132
|
]
|
|
133
|
+
constraint-dependencies = ["scipy!=1.18.1"]
|
|
131
134
|
|
|
132
135
|
[tool.mypy]
|
|
133
136
|
ignore_missing_imports = true
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "process-improve"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.82.0"
|
|
4
4
|
description = 'Designed Experiments; Latent Variables (PCA, PLS, multivariate methods with missing data); Process Monitoring; Batch data analysis.'
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "MIT"
|
|
@@ -81,6 +81,10 @@ fast = ["numba>=0.63.1"]
|
|
|
81
81
|
# CBC solver in its wheels, so no system package is required.
|
|
82
82
|
ilp = ["pulp>=2.8"]
|
|
83
83
|
|
|
84
|
+
# Mid-course correction QP solver (batch.control). osqp ships prebuilt wheels
|
|
85
|
+
# for every platform CI tests, so no system package is required.
|
|
86
|
+
control = ["osqp>=1.0"]
|
|
87
|
+
|
|
84
88
|
# NOTE: ``pyoptex`` (coordinate-exchange I-/A-optimal and split-plot designs in
|
|
85
89
|
# ``experiments.designs_optimal``) is intentionally *not* a declared extra. Its
|
|
86
90
|
# latest release (1.2.1) pins ``plotly~=5.24`` (i.e. < 6), which conflicts with
|
|
@@ -96,6 +100,7 @@ all = [
|
|
|
96
100
|
"mcp>=2.0",
|
|
97
101
|
"numba>=0.63.1",
|
|
98
102
|
"openpyxl>=3.1.5",
|
|
103
|
+
"osqp>=1.0",
|
|
99
104
|
"plotly>=6.5.2",
|
|
100
105
|
"pulp>=2.8",
|
|
101
106
|
"pyDOE3>=1.0",
|
|
@@ -129,9 +134,9 @@ dev = [
|
|
|
129
134
|
process-improve-mcp = "process_improve.mcp_server:main"
|
|
130
135
|
|
|
131
136
|
[project.urls]
|
|
132
|
-
Homepage = "https://github.com/kgdunn/
|
|
133
|
-
Repository = "https://github.com/kgdunn/
|
|
134
|
-
Issues = "https://github.com/kgdunn/
|
|
137
|
+
Homepage = "https://github.com/kgdunn/process-improve"
|
|
138
|
+
Repository = "https://github.com/kgdunn/process-improve"
|
|
139
|
+
Issues = "https://github.com/kgdunn/process-improve/issues"
|
|
135
140
|
|
|
136
141
|
|
|
137
142
|
[build-system]
|
|
@@ -178,6 +183,14 @@ override-dependencies = [
|
|
|
178
183
|
"plotly>=6.5.2",
|
|
179
184
|
"numba>=0.63.1",
|
|
180
185
|
]
|
|
186
|
+
# scipy 1.18.1 was published without CPython 3.13 wheels (cp312 only), and CI
|
|
187
|
+
# re-resolves on a stale lockfile whenever this file changes, so a fresh
|
|
188
|
+
# resolution on Python 3.13 picks it and fails to install. Exclude that one
|
|
189
|
+
# release; drop this constraint once scipy uploads cp313 wheels for it or
|
|
190
|
+
# publishes a newer release.
|
|
191
|
+
constraint-dependencies = [
|
|
192
|
+
"scipy!=1.18.1",
|
|
193
|
+
]
|
|
181
194
|
|
|
182
195
|
|
|
183
196
|
[tool.mypy]
|
|
@@ -10,6 +10,7 @@ optional dependencies behind extras::
|
|
|
10
10
|
pip install 'process-improve[mcp]' # mcp
|
|
11
11
|
pip install 'process-improve[fast]' # numba (JIT)
|
|
12
12
|
pip install 'process-improve[ilp]' # pulp (OMARS design generator)
|
|
13
|
+
pip install 'process-improve[control]' # osqp (mid-course correction QP)
|
|
13
14
|
pip install 'process-improve[all]' # everything above
|
|
14
15
|
|
|
15
16
|
Modules that need an optional dependency import it inside a
|
|
@@ -70,7 +70,14 @@ def safe_inverse(
|
|
|
70
70
|
if is_singular(a, cond_limit=cond_limit):
|
|
71
71
|
raise np.linalg.LinAlgError(
|
|
72
72
|
f"{what} is singular or ill-conditioned (condition number exceeds "
|
|
73
|
-
f"{cond_limit:.2e}); cannot invert reliably.
|
|
74
|
-
"
|
|
73
|
+
f"{cond_limit:.2e}); cannot invert reliably. Likely causes, in the "
|
|
74
|
+
"order worth checking: exactly or near-exactly collinear columns "
|
|
75
|
+
"(a duplicated variable, a column that is a sum of others, a "
|
|
76
|
+
"one-hot set that includes every level); a constant or all-missing "
|
|
77
|
+
"column; a component count that has exhausted the variance left in "
|
|
78
|
+
"the deflated block; or values spanning so many orders of magnitude "
|
|
79
|
+
"that the cross-product loses precision (centre and scale first). "
|
|
80
|
+
"Reduce the number of components/terms or remove the offending "
|
|
81
|
+
"columns."
|
|
75
82
|
)
|
|
76
83
|
return np.linalg.inv(a)
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# (c) Kevin Dunn, 2010-2026. MIT License. Based on own private work over the years.
|
|
2
|
+
"""Bounded download of the sample datasets that are not bundled with the package.
|
|
3
|
+
|
|
4
|
+
The remote sample datasets (the `openmv.net <https://openmv.net>`_ files behind
|
|
5
|
+
:mod:`process_improve.experiments.datasets` and
|
|
6
|
+
:mod:`process_improve.batch.datasets`) are fetched on demand. Every fetch goes
|
|
7
|
+
through :func:`fetch_remote_bytes`, so one place enforces the contract:
|
|
8
|
+
|
|
9
|
+
- the URL is a fixed ``https`` location chosen by the library, or a ``file://``
|
|
10
|
+
path a caller passes explicitly to read a local copy; it is never free text
|
|
11
|
+
from an untrusted source;
|
|
12
|
+
- the download is bounded by ``settings.dataset_fetch_timeout`` (30 s by
|
|
13
|
+
default; ``PROCESS_IMPROVE_DATASET_FETCH_TIMEOUT`` overrides it), so a
|
|
14
|
+
black-holing host raises instead of hanging the caller indefinitely (#508);
|
|
15
|
+
- network failures, timeouts and parse failures surface as one clear
|
|
16
|
+
``RuntimeError`` naming the URL, rather than a lower-level error.
|
|
17
|
+
|
|
18
|
+
The content is trusted only as far as the remote host is.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
from __future__ import annotations
|
|
22
|
+
|
|
23
|
+
import io
|
|
24
|
+
import urllib.request
|
|
25
|
+
import zipfile
|
|
26
|
+
|
|
27
|
+
import pandas as pd
|
|
28
|
+
|
|
29
|
+
from process_improve._extras import require_extra
|
|
30
|
+
from process_improve.config import settings
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _download_error(url: str, exc: Exception) -> RuntimeError:
|
|
34
|
+
"""Return the one ``RuntimeError`` every failure mode maps onto."""
|
|
35
|
+
return RuntimeError(
|
|
36
|
+
f"Could not download the sample dataset from {url!r}: {exc}. "
|
|
37
|
+
"Check your network connection; this dataset is fetched from a remote host."
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def fetch_remote_bytes(url: str, timeout: float | None = None) -> bytes:
|
|
42
|
+
"""Download ``url`` and return the raw payload.
|
|
43
|
+
|
|
44
|
+
Parameters
|
|
45
|
+
----------
|
|
46
|
+
url : str
|
|
47
|
+
The fixed ``https`` URL of the file to fetch, or a ``file://`` URL
|
|
48
|
+
for a local copy.
|
|
49
|
+
timeout : float, optional
|
|
50
|
+
Seconds to wait before giving up. Defaults to
|
|
51
|
+
``settings.dataset_fetch_timeout``.
|
|
52
|
+
|
|
53
|
+
Returns
|
|
54
|
+
-------
|
|
55
|
+
bytes
|
|
56
|
+
The downloaded content.
|
|
57
|
+
|
|
58
|
+
Raises
|
|
59
|
+
------
|
|
60
|
+
RuntimeError
|
|
61
|
+
On any network failure or timeout (``TimeoutError`` and
|
|
62
|
+
``urllib.error.URLError`` are both ``OSError`` subclasses), with the
|
|
63
|
+
URL in the message.
|
|
64
|
+
"""
|
|
65
|
+
if timeout is None:
|
|
66
|
+
timeout = settings.dataset_fetch_timeout
|
|
67
|
+
try:
|
|
68
|
+
with urllib.request.urlopen(url, timeout=timeout) as response: # noqa: S310 - fixed https or file URLs
|
|
69
|
+
return response.read()
|
|
70
|
+
except OSError as exc:
|
|
71
|
+
raise _download_error(url, exc) from exc
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def read_remote_csv(url: str, timeout: float | None = None) -> pd.DataFrame:
|
|
75
|
+
"""Fetch a CSV file with :func:`fetch_remote_bytes` and parse it.
|
|
76
|
+
|
|
77
|
+
Parameters
|
|
78
|
+
----------
|
|
79
|
+
url : str
|
|
80
|
+
The fixed ``https`` (or ``file://``) URL of the CSV file.
|
|
81
|
+
timeout : float, optional
|
|
82
|
+
Seconds to wait before giving up. Defaults to
|
|
83
|
+
``settings.dataset_fetch_timeout``.
|
|
84
|
+
|
|
85
|
+
Returns
|
|
86
|
+
-------
|
|
87
|
+
pd.DataFrame
|
|
88
|
+
The parsed table.
|
|
89
|
+
|
|
90
|
+
Raises
|
|
91
|
+
------
|
|
92
|
+
RuntimeError
|
|
93
|
+
On a download failure or when the payload is not a readable CSV.
|
|
94
|
+
"""
|
|
95
|
+
payload = fetch_remote_bytes(url, timeout=timeout)
|
|
96
|
+
try:
|
|
97
|
+
return pd.read_csv(io.BytesIO(payload))
|
|
98
|
+
except ValueError as exc:
|
|
99
|
+
raise _download_error(url, exc) from exc
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def read_remote_excel(
|
|
103
|
+
url: str,
|
|
104
|
+
timeout: float | None = None,
|
|
105
|
+
*,
|
|
106
|
+
sheet_name: str | list[str] | None = None,
|
|
107
|
+
) -> dict[str, pd.DataFrame]:
|
|
108
|
+
"""Fetch an Excel workbook with :func:`fetch_remote_bytes` and parse its sheets.
|
|
109
|
+
|
|
110
|
+
Reading ``.xlsx`` files needs ``openpyxl``, which ships with the ``batch``
|
|
111
|
+
extra; a missing install raises an ``ImportError`` that names the extra.
|
|
112
|
+
|
|
113
|
+
Parameters
|
|
114
|
+
----------
|
|
115
|
+
url : str
|
|
116
|
+
The fixed ``https`` (or ``file://``) URL of the workbook.
|
|
117
|
+
timeout : float, optional
|
|
118
|
+
Seconds to wait before giving up. Defaults to
|
|
119
|
+
``settings.dataset_fetch_timeout``.
|
|
120
|
+
sheet_name : str or list of str, optional
|
|
121
|
+
Sheets to read. ``None`` (default) reads every sheet.
|
|
122
|
+
|
|
123
|
+
Returns
|
|
124
|
+
-------
|
|
125
|
+
dict[str, pd.DataFrame]
|
|
126
|
+
One table per sheet, keyed by sheet name, also when a single sheet
|
|
127
|
+
name was requested.
|
|
128
|
+
|
|
129
|
+
Raises
|
|
130
|
+
------
|
|
131
|
+
RuntimeError
|
|
132
|
+
On a download failure or when the payload is not a readable workbook.
|
|
133
|
+
ImportError
|
|
134
|
+
When ``openpyxl`` is not installed.
|
|
135
|
+
"""
|
|
136
|
+
try:
|
|
137
|
+
import openpyxl # noqa: F401, PLC0415 - probed before downloading so the error is immediate
|
|
138
|
+
except ImportError as exc:
|
|
139
|
+
raise require_extra("openpyxl", "batch") from exc
|
|
140
|
+
payload = fetch_remote_bytes(url, timeout=timeout)
|
|
141
|
+
try:
|
|
142
|
+
sheets = pd.read_excel(io.BytesIO(payload), sheet_name=sheet_name, engine="openpyxl")
|
|
143
|
+
except (ValueError, zipfile.BadZipFile) as exc:
|
|
144
|
+
raise _download_error(url, exc) from exc
|
|
145
|
+
if isinstance(sheets, pd.DataFrame):
|
|
146
|
+
return {str(sheet_name): sheets}
|
|
147
|
+
return {str(name): frame for name, frame in sheets.items()}
|
|
@@ -1,13 +1,32 @@
|
|
|
1
|
-
"""Batch process data analysis: alignment, feature extraction, and visualization."""
|
|
1
|
+
"""Batch process data analysis: alignment, feature extraction, modelling, and visualization."""
|
|
2
2
|
|
|
3
|
+
from process_improve.batch._batch_monitor import BatchMonitor
|
|
4
|
+
from process_improve.batch._batch_pca import BatchPCA
|
|
5
|
+
from process_improve.batch._batch_plots import (
|
|
6
|
+
contribution_at_time_plot,
|
|
7
|
+
online_monitoring_plot,
|
|
8
|
+
time_varying_loading_plot,
|
|
9
|
+
unfolded_contribution_plot,
|
|
10
|
+
)
|
|
11
|
+
from process_improve.batch._batch_pls import BatchPLS
|
|
12
|
+
from process_improve.batch.control import MidCourseCorrector, midcourse_correction
|
|
3
13
|
from process_improve.batch.data_input import (
|
|
4
14
|
check_valid_batch_dict,
|
|
5
15
|
dict_to_melted,
|
|
6
16
|
dict_to_wide,
|
|
7
17
|
melted_to_dict,
|
|
8
18
|
melted_to_wide,
|
|
19
|
+
wide_to_dict,
|
|
9
20
|
wide_to_melted,
|
|
10
21
|
)
|
|
22
|
+
from process_improve.batch.datasets import (
|
|
23
|
+
load_batch_fake_data,
|
|
24
|
+
load_dryer,
|
|
25
|
+
load_dupont,
|
|
26
|
+
load_fmc,
|
|
27
|
+
load_nylon,
|
|
28
|
+
load_sbr,
|
|
29
|
+
)
|
|
11
30
|
from process_improve.batch.features import (
|
|
12
31
|
cross,
|
|
13
32
|
f_agemax,
|
|
@@ -36,10 +55,16 @@ from process_improve.batch.preprocessing import (
|
|
|
36
55
|
)
|
|
37
56
|
|
|
38
57
|
__all__ = [
|
|
58
|
+
# Modelling and monitoring
|
|
59
|
+
"BatchMonitor",
|
|
60
|
+
"BatchPCA",
|
|
61
|
+
"BatchPLS",
|
|
62
|
+
"MidCourseCorrector",
|
|
39
63
|
# Preprocessing/alignment
|
|
40
64
|
"batch_dtw",
|
|
41
65
|
# Data input/conversion
|
|
42
66
|
"check_valid_batch_dict",
|
|
67
|
+
"contribution_at_time_plot",
|
|
43
68
|
"cross",
|
|
44
69
|
"determine_scaling",
|
|
45
70
|
"dict_to_melted",
|
|
@@ -63,8 +88,20 @@ __all__ = [
|
|
|
63
88
|
"f_std",
|
|
64
89
|
"f_sum",
|
|
65
90
|
"find_reference_batch",
|
|
91
|
+
# Bundled datasets
|
|
92
|
+
"load_batch_fake_data",
|
|
93
|
+
"load_dryer",
|
|
94
|
+
"load_dupont",
|
|
95
|
+
"load_fmc",
|
|
96
|
+
"load_nylon",
|
|
97
|
+
"load_sbr",
|
|
66
98
|
"melted_to_dict",
|
|
67
99
|
"melted_to_wide",
|
|
100
|
+
"midcourse_correction",
|
|
101
|
+
"online_monitoring_plot",
|
|
68
102
|
"resample_to_reference",
|
|
103
|
+
"time_varying_loading_plot",
|
|
104
|
+
"unfolded_contribution_plot",
|
|
105
|
+
"wide_to_dict",
|
|
69
106
|
"wide_to_melted",
|
|
70
107
|
]
|