Changelog
Version 0.5 (December 2025)
Major Restructuring Release
Package Organization
Eliminated
gcs_analysis.py- functions merged intogcs_core.pyRenamed
gcs_v5.py→gcs.pyfor cleaner importsReorganized classification functions into dedicated module
Moved
classify_cq_behavior_simple()from core to classification moduleImproved module coherence and logical organization
Function Changes
Renamed Functions:
classify_with_highres_logic()→classify_segment_phase()More descriptive, clearer purpose
New Functions:
calculate_log_thickness()- Log-normalized line thickness for hysteresis plotsget_line_style_from_hi_class()- Method-specific line styling
Improved Functions:
calculate_all_hysteresis_metrics()- Now returns comprehensive dictionarycompute_cvc_cvq_windows()- Added window size parameterAll visualization functions updated with improved styling
Bug Fixes
Critical:
Fixed Lloyd/Lawler NaN bug in percentile sampling
Fixed event-scale hysteresis duplication in window analysis
Resolved import coherency issues
Minor:
Suppressed Lloyd/Lawler “Mean of empty slice” warnings
Fixed thickness calculation in hysteresis plots
Corrected line style assignment logic for different HI classifiers
Visualization Improvements
Classifier-based line styles - Different patterns for HARP/Zuecco/Lloyd
Log thickness scaling - Better visual representation of HI magnitudes
Phase color consistency - Unified color scheme across all plots
Improved legends - Clearer labels and better organization
Documentation
Added comprehensive README.md
Created GETTING_STARTED.md quick start guide
Detailed PACKAGE_CONTENTS.md structure reference
Complete API documentation in docstrings
Added VISUALIZATION_LINE_STYLE_UPDATE.md technical doc
Created IMPORT_FIX.md troubleshooting guide
Testing
New comprehensive import test (test_imports_v05.py)
Verifies all 8 test categories
Checks for removed old function names
Validates version metadata
GitHub Readiness
Added setup.py for pip installation
Created requirements.txt with all dependencies
Added .gitignore for Python projects
Full CC-BY 4.0 LICENSE text included
Example notebooks cleaned and documented
Version 4.0 (Previous)
Original Monolithic Version
Combined hysteresis analysis and classification
Single large module structure
Event-scale hysteresis only
Basic visualization functions
Known issues with Lloyd NaN and event duplication
Known Issues in v4.0
Lloyd function generates numpy warnings
Event-scale hysteresis creates artifacts in time series
Import structure confusing
Documentation scattered
No formal package structure
Migration from v4.0 to v0.5
Breaking Changes
Import Changes:
Old:
from gcs_v5 import classify_geochemical_phase
from gcs_analysis import some_function
New:
import hygcs as gcs
classified = gcs.classify_geochemical_phase(...)
Function Renames:
Old Name |
New Name |
|---|---|
|
|
|
|
Removed Functions:
Functions in gcs_analysis.py were merged into gcs_core.py.
Direct imports from gcs_analysis will fail.
Migration Guide:
# Old v4.0 code
from gcs_v5 import classify_geochemical_phase
from gcs_analysis import calculate_all_hysteresis_metrics
# New v0.5 code
import hygcs as gcs
classified = gcs.classify_geochemical_phase(...)
metrics = gcs.calculate_all_hysteresis_metrics(...)
Deprecated Features
None - this is a major restructuring, old structure fully replaced.
Future Plans
Version 0.6 (Planned)
Potential improvements:
PyPI package release
Additional hysteresis methods
Improved confidence scoring algorithms
Machine learning phase classification option
Expanded test suite
Performance optimizations
Version 1.0 (Planned)
Stable API release:
Frozen API for backwards compatibility
Complete test coverage
Comprehensive benchmarking
Publication of methodology paper
Community contribution guidelines
Reporting Issues
Found a bug? Have a suggestion?
GitHub Issues: https://github.com/yourusername/HyGCS/issues
Contributing
We welcome contributions! Please:
Fork the repository
Create a feature branch
Make your changes with tests
Submit a pull request
See CONTRIBUTING.md (to be added) for detailed guidelines.
Version Numbering
HyGCS follows semantic versioning principles:
Major version (X.0.0): Breaking API changes
Minor version (0.X.0): New features, backwards compatible
Patch version (0.0.X): Bug fixes, backwards compatible
Current version: 0.5.0