Skip to content

Make scan paths attribute of scan data #192

Merged
skbarber merged 18 commits intomasterfrom
Make-ScanPaths-attribute-of-ScanData-
Aug 29, 2025
Merged

Make scan paths attribute of scan data #192
skbarber merged 18 commits intomasterfrom
Make-ScanPaths-attribute-of-ScanData-

Conversation

@skbarber
Copy link
Copy Markdown
Collaborator

this PR refactors ScanData to not be a child of ScanPaths, but rather use ScanPaths as an attribute. This is a more logical approach for ScanData.

Additionally, some new methods have been added:
-mapping expected file paths for saved devices into the loaded data_frame (which loads using the sfile). This looks in the ScanXXX directory and does light interrogation of the individual contents to determine file extension
-binning of scalar data now possible and configurable
-simple plotting utility to visualize binned data

Introduces minimal primitives for asset filename construction, device folder listing, and extension inference in the ScanPaths class. These additions support canonical asset naming, device subfolder discovery, and automatic selection of file extensions based on existing files.
Replaced 'jpg', 'jpeg', and 'bmp' with 'himg' in the set of acceptable file extensions. This change reflects updated requirements for supported file types.
Major refactor of ScanData: introduces BinningConfig and DeviceSpec dataclasses, flexible binning and aggregation for scalars, lazy asset indexing with normalized tables, device registration, and improved column resolution. Adds methods for grouping and averaging images by bin, ECS dump loading, and s-file management. Enhances type annotations and documentation throughout.
Eliminated asset indexing methods and the DeviceSpec dataclass from ScanData, including all related image grouping and averaging by bin. Added new methods for expected image path grouping and expected asset column handling, streamlining asset management to rely on expected paths rather than file system discovery.
Replaces direct usage of ScanData for path and tag operations with ScanPaths and ScanTag across multiple modules, scripts, and tests. Updates method calls, imports, and documentation to reflect the new separation of scan metadata and path management, improving code clarity and maintainability.
Corrected the usage example to import ScanTag instead of ScanData and updated the instantiation accordingly. Also removed an unnecessary trailing space in the installation section.
Improved docstrings and comments throughout frog_analysis.py for clarity and maintainability. Refactored FrogAnalyzer class to enhance parameter documentation, error handling, and code structure. Added detailed explanations for methods, clarified return types, and improved logging. No functional changes to analysis logic; changes are focused on readability and developer usability.
Added new plotting utilities in geecs_data_utils/plotting_utils.py for visualizing binned data. Updated the basic_usage.ipynb notebook to demonstrate ScanData creation, column searching, and binned data plotting, with improved example data and explanations.
@skbarber skbarber requested a review from TAU-Reinier August 26, 2025 20:00
@skbarber skbarber merged commit e44f5fa into master Aug 29, 2025
1 of 2 checks passed
@skbarber skbarber deleted the Make-ScanPaths-attribute-of-ScanData- branch March 2, 2026 22:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant