Skip to content

Conversation

@github-actions
Copy link

Automated changes by create-pull-request GitHub action

klapo and others added 30 commits March 29, 2023 15:54
- Made several init arguments keyword arguments to better reflect algorithm logic
- Made several arguments belong to the fit command instead of the class init
to better reflect how the fit command should be used (namely window size and step size).
- Some pep8’ing
- n_components is now a required argument for the clustering operation
- Plotting now uses a circular color scheme for many clusters
- Updating the allocation to better reflect not knowing the optimal `svd_rank` a priori.
- Appropriated the svd_rank computation to handle the case with
no global svd and unknown svd_rank to return the number of data variables
for use in allocating the window arrays.
- build_windows now requires positional arguments intsead of accessing
class variables
- Add logic in `fit` for the case when no global svd nor svd_rank is used
and the svd_rank may change between windows.
- n_components is specified in the clustering function instead of
class creation.
- Local vs global svd logic should be more complete
- Moved to slice objects for indexing, allowing incomplete windows
and reconstrucitng the entire data set, regardless of the number of
integer windows.
- Fixed bug in the number of slides to make across the data
- Fixed bug in the initialization of the optdmd kwargs.
- Reblacked the project
- Added logic for initializing using the previous windows frequencies.
- Refactored to have a hopefully more catchy and descriptive name. No
promises that this is the last rename.
- re-blacked
- Added checks for how to initialize the DMD fit.
- Fixed global reconstruction
- Added `cluster_centroids`, `n_components`, `omega_classes` as properties.
- Changed detection of array shapes to use object derived values.
- Added flag to square the frequency or not.
- Sort the frequency band clusters according to centroid magnitude.
- Reconstructions, scale-separation, and plots according to object
values instead of externally provided arguments.
- Mode thresholding for discarding insignificant frequency bands.
- Scale separation for iterative decomposition.
Fork Sync: Update from parent repository
- Add a sorted list of labels for cluster labels, useful for trimming
- Fixed mode trimming and added a flag for resetting trimming.
- Documented several new additions to the doc string
- Reorganized the class to have properties first.
- Added the ability to include residuals to the reconstruction plots.
- matlab code and previous versions did not do the correct weighting
of each window by a gaussian, as described in the paper or implemented
for the scale separated reconstruction (e.g., high vs low frequency).
The global reconstruction now just sums up the individual reconstructed
components, using the gaussian weighting.
- Hyperparameter sweep function for finding the optimal number of
  clusters in the kmeans clustering of window frequencies. Uses the
silhouette score.
- to_xarray allows converting results to an xarray Dataset, enabling in
  and out functions with netcdfs and the powerful alignment tools for
comparing between decomposition levels.
- In the hyperparameter sweep for the optimal number of clusters, a
  cluster size of 1 causes an error. For the case with a small svd_rank
the automatic selection of clusters is forced to be larger than one.
- Plotting functions now accept plot_kwargs and fig_kwargs controlling
  the appearance of the plots and the figures, respectively.
- In the hyperparameter sweep for the optimal number of clusters, a
  cluster size of 1 causes an error. For the case with a small svd_rank
the automatic selection of clusters is forced to be larger than one.
- Plotting functions now accept plot_kwargs and fig_kwargs controlling
  the appearance of the plots and the figures, respectively.
- Added the from_xarray() method which converts an xarray Dataset (e.g.,
  one stored on disk as a netcdf) into a costs object. Costs methods,
such as scale separation and reconstruction can be made from this
converted object.
- Cleaned up unnecessary variables in the object related to time
  keeping. Somewhat simplifies the time keeping.
klapo added 13 commits July 16, 2023 13:30
- Replaced the `squared_frequences` keyword with a `transform_method` keyword
which transforms the omega array imaginary components depending on several options
(no transformation, squared frequencies, or log10 scaled frequencies) for the
frequency band clustering.
- The low frequency/input data component is now in `cividis` by default
with its own colorscale
- The high frequency components are now in `RdBu_r` with a separataely
defined colorscale
- Added keyword arguments for interacting with both sets of options
- Low frequency/input data can now optionally include black contours.
- Dealt with some overlong comment lines
- Moved the gaussian kernel convolution to dedicated function
- Reconstructing the scale separated data no longer can modify omega
inadvertantly fixing a major bug when not suppressing growth.
- Removed the scale truncation method as it no longer functions.
- Converted `scale_reconstruction` to use the `get_window_indices` method.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants