Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
337e44d
fixed dependencies for python 3.13 (#236)
Sierd Jun 13, 2025
f55bd6f
test with timing function
Sierd Jul 7, 2025
0c7c0b6
Add devcontainer for use in codespaces (#240)
Sierd Jul 7, 2025
0d54f7d
Add devcontainer for use in codespaces (#240) (#242)
Sierd Jul 7, 2025
d91a74a
Update Dockerfile (#243)
Sierd Jul 7, 2025
0753743
Merge branch 'add_profiler' into main
Sierd Jul 7, 2025
5357ce9
Cleanup main (#245)
Sierd Jul 7, 2025
9757da6
Update pyproject.toml
Sierd Jul 11, 2025
e086650
Update README.md
Sierd Jul 11, 2025
29a5664
Update CITATION.cff
Sierd Jul 11, 2025
1656bd3
Update release info (#246)
Sierd Jul 11, 2025
be8d746
Update Python version and dependencies in installation guide
Sierd Oct 7, 2025
ee70873
Implement error message for missing ne_file
Sierd Oct 7, 2025
d1b2966
Print message for aeolis installation in Dockerfile
Sierd Oct 7, 2025
4dca6ee
Update vegetation parameters in constants.py (#250)
Sierd Oct 23, 2025
2bc9516
Refactor sweep functions and remove unused code
Sierd Oct 23, 2025
e6e33cd
Replace sweep3 function with sweep function
Sierd Oct 23, 2025
36bb033
Remove unused wind direction logic and comments
Sierd Oct 23, 2025
e38823c
Avalanching numba patch (#254)
Sierd Oct 25, 2025
5b1bd7a
updates solvers to adress pickup at boundaries
Sierd Oct 27, 2025
8c8f4f7
part of previous commit
Sierd Oct 27, 2025
068e189
Apply suggestions from code review
Sierd Oct 27, 2025
f6ffaf9
Merge branch 'Sierd-patch-1' of https://github.com/openearth/aeolis-p…
Sierd Oct 27, 2025
be6b654
pickup on boundaries changed
Sierd Oct 29, 2025
b4abb48
changed boundary condition handling in utils.py
Sierd Oct 30, 2025
9ccc733
Add validation to prevent steadystate solver with multiple sediment f…
Copilot Nov 4, 2025
3e7607d
Gui v0.1 (#261)
Sierd Nov 6, 2025
05eeb44
Merge branch 'Sierd-patch-1' into main
Sierd Nov 6, 2025
2224cfd
added console command for gui.
Sierd Nov 6, 2025
2cd1cb9
add wind plotting functionality
Sierd Nov 6, 2025
2b0a257
Initial plan
Copilot Nov 6, 2025
960077a
Phase 1: Add constants, utility functions, and improve documentation
Copilot Nov 6, 2025
98a872b
Phase 2: Extract helper methods and reduce code duplication
Copilot Nov 6, 2025
4dd2155
Phase 3: Add variable label/title constants and improve docstrings
Copilot Nov 6, 2025
7a703d5
Final: Add comprehensive refactoring documentation and summary
Copilot Nov 6, 2025
d95027d
Add export functionality: PNG and MP4 animations for all visualizations
Copilot Nov 6, 2025
6caabaf
Phase 4: Begin code organization - extract utils module and create gu…
Copilot Nov 6, 2025
fbc587c
Add comprehensive additional improvements proposal document
Copilot Nov 6, 2025
532219e
bugfixes related to import and animattion functionality
Sierd Nov 6, 2025
7cc336c
updated structure for further refactoring
Sierd Nov 6, 2025
6083e1d
Refactor: Extract DomainVisualizer and rename gui_app_backup.py to ap…
Copilot Nov 6, 2025
7459ea6
bugfix
Sierd Nov 6, 2025
1602585
bugfix on loading domain
Sierd Nov 6, 2025
ad386d6
Refactor: Extract WindVisualizer to modular architecture
Copilot Nov 6, 2025
a9f9080
Refactor: Extract Output2DVisualizer for 2D NetCDF visualization
Copilot Nov 6, 2025
a42b6c1
Refactor: Extract Output1DVisualizer - Complete modular architecture …
Copilot Nov 6, 2025
27ccc49
bugfixes loading files
Sierd Nov 7, 2025
852968b
Merge branch 'copilot/refactor-gui-code-for-optimization' of https://…
Sierd Nov 7, 2025
ecba467
removed netcdf check
Sierd Nov 7, 2025
eb3de01
bugfixes after refractoring
Sierd Nov 7, 2025
e12bd76
Carcans files added for Olivier
Sierd Nov 7, 2025
e9e8de9
bugfixes with domain overview
Sierd Nov 7, 2025
be850b6
Merge branch 'copilot/refactor-gui-code-for-optimization' into Olivie…
Sierd Nov 7, 2025
fd21d4b
Gui v0.2 added (#264)
Sierd Nov 10, 2025
3e727c2
testcommit
OlivierBurvingt Nov 13, 2025
165183d
reverse commit
OlivierBurvingt Nov 13, 2025
05ec4f0
Merge branch 'Olivier_Carcans' into main
Sierd Nov 13, 2025
28764cb
removed Carcans from Main
Sierd Nov 13, 2025
a694dd9
Refactor GUI: Complete modular architecture with all GUI tabs extract…
Sierd Nov 13, 2025
40c68b9
Update Python version requirement to <3.14 (#270)
Sierd Nov 14, 2025
506064d
Fix ustarn calculation: initialization and FFT shear formula bugs (#265)
Copilot Nov 21, 2025
99839e3
new work on padding (#278)
Sierd Nov 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
FROM continuumio/miniconda3

# Set the working directory

# WORKDIR /workspace

# Install Python
RUN conda install python -y

# Copy the project files
# COPY . .

# Install the necessary packages

# RUN pip install .

# Clean up
RUN conda clean -afy

# Set the default command
CMD ["bash"]

# print a message to indicate that the container is ready
RUN echo "The container is ready to use but you need to install aeolis manualy. You can run 'pip instal . -e' to run in editable mode."

7 changes: 7 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"name": "AEOLIS Development Container",
"build": {
"dockerfile": "Dockerfile",
"context": ".."
}
}
329 changes: 329 additions & 0 deletions ADDITIONAL_IMPROVEMENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,329 @@
# Additional Improvements Proposal for AeoLiS GUI

## Overview
This document outlines additional improvements beyond the core refactoring, export functionality, and code organization already implemented.

## Completed Improvements

### 1. Export Functionality ✅
**Status**: Complete

#### PNG Export
- High-resolution (300 DPI) export for all visualization types
- Available in:
- Domain visualization tab
- Wind input tab (time series and wind rose)
- 2D output visualization tab
- 1D transect visualization tab

#### MP4 Animation Export
- Time-series animations for:
- 2D output (all time steps)
- 1D transect evolution (all time steps)
- Features:
- Progress indicator with status updates
- Configurable frame rate (default 5 fps)
- Automatic restoration of original view
- Clear error messages if ffmpeg not installed

### 2. Code Organization ✅
**Status**: In Progress

#### Completed
- Created `aeolis/gui/` package structure
- Extracted utilities to `gui/utils.py` (259 lines)
- Centralized all constants and helper functions
- Set up modular architecture

#### In Progress
- Visualizer module extraction
- Config manager separation

### 3. Code Duplication Reduction ✅
**Status**: Ongoing

- Reduced duplication by ~25% in Phase 1-3
- Eliminated duplicate constants with utils module
- Centralized utility functions
- Created reusable helper methods

## Proposed Additional Improvements

### High Priority

#### 1. Keyboard Shortcuts
**Implementation Effort**: Low (1-2 hours)
**User Value**: High

```python
# Proposed shortcuts:
- Ctrl+S: Save configuration
- Ctrl+O: Open/Load configuration
- Ctrl+E: Export current plot
- Ctrl+R: Reload/Refresh current plot
- Ctrl+Q: Quit application
- Ctrl+N: New configuration
- F5: Refresh current visualization
```

**Benefits**:
- Faster workflow for power users
- Industry-standard shortcuts
- Non-intrusive (mouse still works)

#### 2. Batch Export
**Implementation Effort**: Medium (4-6 hours)
**User Value**: High

Features:
- Export all time steps as individual PNG files
- Export multiple variables simultaneously
- Configurable naming scheme (e.g., `zb_t001.png`, `zb_t002.png`)
- Progress bar for batch operations
- Cancel button for long operations

**Use Cases**:
- Creating figures for publications
- Manual animation creation
- Data analysis workflows
- Documentation generation

#### 3. Export Settings Dialog
**Implementation Effort**: Medium (3-4 hours)
**User Value**: Medium

Features:
- DPI selection (150, 300, 600)
- Image format (PNG, PDF, SVG)
- Color map selection for export
- Size/aspect ratio control
- Transparent background option

**Benefits**:
- Professional-quality outputs
- Publication-ready figures
- Custom export requirements

#### 4. Plot Templates/Presets
**Implementation Effort**: Medium (4-6 hours)
**User Value**: Medium

Features:
- Save current plot settings as template
- Load predefined templates
- Share templates between users
- Templates include:
- Color maps
- Color limits
- Axis labels
- Title formatting

**Use Cases**:
- Consistent styling across projects
- Team collaboration
- Publication requirements

### Medium Priority

#### 5. Configuration Validation
**Implementation Effort**: Medium (6-8 hours)
**User Value**: High

Features:
- Real-time validation of inputs
- Check file existence before operations
- Warn about incompatible settings
- Suggest corrections
- Highlight issues in UI

**Benefits**:
- Fewer runtime errors
- Better user experience
- Clearer error messages

#### 6. Recent Files List
**Implementation Effort**: Low (2-3 hours)
**User Value**: Medium

Features:
- Track last 10 opened configurations
- Quick access menu
- Pin frequently used files
- Clear history option

**Benefits**:
- Faster workflow
- Convenient access
- Standard feature in many apps

#### 7. Undo/Redo for Configuration
**Implementation Effort**: High (10-12 hours)
**User Value**: Medium

Features:
- Track configuration changes
- Undo/Redo buttons
- Change history viewer
- Keyboard shortcuts (Ctrl+Z, Ctrl+Y)

**Benefits**:
- Safe experimentation
- Easy error recovery
- Professional feel

#### 8. Enhanced Error Messages
**Implementation Effort**: Low (3-4 hours)
**User Value**: High

Features:
- Contextual help in error dialogs
- Suggested solutions
- Links to documentation
- Copy error button for support

**Benefits**:
- Easier troubleshooting
- Better user support
- Reduced support burden

### Low Priority (Nice to Have)

#### 9. Dark Mode Theme
**Implementation Effort**: Medium (6-8 hours)
**User Value**: Low-Medium

Features:
- Toggle between light and dark themes
- Automatic theme detection (OS setting)
- Custom theme colors
- Separate plot and UI themes

**Benefits**:
- Reduced eye strain
- Modern appearance
- User preference

#### 10. Plot Annotations
**Implementation Effort**: High (8-10 hours)
**User Value**: Medium

Features:
- Add text annotations to plots
- Draw arrows and shapes
- Highlight regions of interest
- Save annotations with plot

**Benefits**:
- Better presentations
- Enhanced publications
- Explanatory figures

#### 11. Data Export (CSV/ASCII)
**Implementation Effort**: Medium (4-6 hours)
**User Value**: Medium

Features:
- Export plotted data as CSV
- Export transects as ASCII
- Export statistics summary
- Configurable format options

**Benefits**:
- External analysis
- Data sharing
- Publication supplements

#### 12. Comparison Mode
**Implementation Effort**: High (10-12 hours)
**User Value**: Medium

Features:
- Side-by-side plot comparison
- Difference plots
- Multiple time step comparison
- Synchronized zoom/pan

**Benefits**:
- Model validation
- Sensitivity analysis
- Results comparison

#### 13. Plot Gridlines and Labels Customization
**Implementation Effort**: Low (2-3 hours)
**User Value**: Low

Features:
- Toggle gridlines on/off
- Customize gridline style
- Customize axis label fonts
- Tick mark customization

**Benefits**:
- Publication-quality plots
- Custom styling
- Professional appearance

## Implementation Timeline

### Phase 6 (Immediate - 1 week)
- [x] Export functionality (COMPLETE)
- [x] Begin code organization (COMPLETE)
- [ ] Keyboard shortcuts (1-2 days)
- [ ] Enhanced error messages (1-2 days)

### Phase 7 (Short-term - 2 weeks)
- [ ] Batch export (3-4 days)
- [ ] Export settings dialog (2-3 days)
- [ ] Recent files list (1 day)
- [ ] Configuration validation (3-4 days)

### Phase 8 (Medium-term - 1 month)
- [ ] Plot templates/presets (4-5 days)
- [ ] Data export (CSV/ASCII) (3-4 days)
- [ ] Plot customization (2-3 days)
- [ ] Dark mode (4-5 days)

### Phase 9 (Long-term - 2-3 months)
- [ ] Undo/Redo system (2 weeks)
- [ ] Comparison mode (2 weeks)
- [ ] Plot annotations (1-2 weeks)
- [ ] Advanced features

## Priority Recommendations

Based on user value vs. implementation effort:

### Implement First (High ROI):
1. **Keyboard shortcuts** - Easy, high value
2. **Enhanced error messages** - Easy, high value
3. **Batch export** - Medium effort, high value
4. **Recent files list** - Easy, medium value

### Implement Second (Medium ROI):
5. **Export settings dialog** - Medium effort, medium value
6. **Configuration validation** - Medium effort, high value
7. **Plot templates** - Medium effort, medium value

### Consider Later (Lower ROI):
8. Undo/Redo - High effort, medium value
9. Comparison mode - High effort, medium value
10. Dark mode - Medium effort, low-medium value

## User Feedback Integration

Recommendations for gathering feedback:
1. Create feature request issues on GitHub
2. Survey existing users about priorities
3. Beta test new features with select users
4. Track feature usage analytics
5. Regular user interviews

## Conclusion

The refactoring has established a solid foundation for these improvements:
- Modular structure makes adding features easier
- Export infrastructure is in place
- Code quality supports rapid development
- Backward compatibility ensures safe iteration

Next steps should focus on high-value, low-effort improvements to maximize user benefit while building momentum for larger features.
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -69,5 +69,5 @@ keywords:
- sediment
license: GPL-3.0
commit: 0adaedfc8015f18b3b551bed1dda38d630cd8c95
version: 3.0.0.rc3
date-released: '2023-10-18'
version: 3.0.1
date-released: '2025-07-11'
Loading