-
Notifications
You must be signed in to change notification settings - Fork 34
Home
Chris Meyer edited this page May 20, 2024
·
26 revisions
These are high level goals/tracks of development. The list is incomplete.
- Improve computations: long-running, concurrent, cancellable
- Improve experience for first time users
- Improve display performance
- Improve data item metadata handling
- Improve API for 3rd party plug-ins and packages
- Prepare for free threaded Python
Note: Please file issues for incomplete, inconsistent, difficult to understand, or out of date information.
- Python versions
- Strict typing standards
- Library Structure
- Testing
- Debugging
- Issues and prioritization
- Threading, async, performance
- Events, data model, data streams, events
- Binding, conversions, validators
- Reference counting and garbage collection
- Registry
- Geometry
- Date and time handling
- Persistence
- Free threading (future)
- Launcher (Qt-based, PyQt6, future)
- Application, windows, dialogs
- Floating panels (specific, general)
- User interface programming, declarative
- User interface design tools (future)
- Actions, menus, key overloads
- Canvas items, layout
- Drawing context, drawing architecture
- Wizard dialogs
- Preferences dialog
erDiagram
Project ||--|{ DataItem : contains
Project ||--|{ DisplayItem : contains
Project ||--|{ Computation : contains
Project ||--|{ DataGroup : contains
Project ||--|{ Connection : contains
Project ||--|{ DataStructure : contains
DisplayItem ||--|{ DisplayLayer : contains
DisplayItem ||--|{ DisplayDataChannel : contains
DisplayItem ||--|{ Graphic : contains
DisplayLayer ||--|| DisplayDataChannel : contains
DisplayDataChannel ||--|| DataItem : reference
DataItem {
data ndarray
data_descriptor DataDescriptor
intensity_calibration Calibration
dimensional_calibrations list[Calibrations]
metadata dict
}
DisplayItem {
display_type str
display_properties dict
}
DisplayLayer {
stroke_color str
fill_color str
line_width int
transparency float
}
DisplayDataChannel {
slice int
index tuple[int]
brightness float
contrast float
gamma float
}
Connection {
source ref
target ref
}
DataGroup {
data_items list[DataItem]
groups list[DataGroup]
}
Computation {
inputs list[DataItem]
outputs list[DataItem]
computation str
}
- Projects, profiles
- Data, data items
- Calibrations, reference frames, coordinate systems
- Computations, computation pipeline
- Data storage and project file formats
- Display items, display data channels, display layers
- Display pipeline
- Performance: processing and display
- Backwards and forward compatibility
- Tool handling, reactor
- Metadata handling
- Undo
- Data groups
- Connections
- Regions of interest (future)
- Schema
- Data Structures
- Data and metadata, calibrations
- Processing functions
- Data representation, RGB
- Data panel, browsers, filtering, sorting
- Inspectors
- Computation editor
- Histogram and statistics
- Import/export
- Notification/message center
- Activity panel
- Data generator
- Action recorder (future)
- Script console, run script, plug-in packages
- API and plug-ins and documentation
- External access (nionlib, notebooks, shared access)
- Threading and async in scripting
- Workspaces
- Raster displays
- Line plot displays
- Volumetric displays (future)
- Tables (future)
- Graphics
- Thumbnails, cache
- Acquisition overview: view, sequence, sync'd, etc.
- Data acquisition pipeline (external)
- Camera and scan abstractions
- Device implementations
- Instrument abstraction
- Instrument state handling (passive, active)
- Acquisition UI (view panels, acquisition panel, control bars, other panels)
- Acquisition low level (internal)
- Drift tracking
- Microscope/camera/scan simulator
- Alignment library (internal)
- Graphing library integration (matplotlib)
- Processing integration (HyperSpy)
- EELS analysis
- Installer and packaging
- Build infrastructure, conda-forge
- User documentation
- Testing
- Tech support
- Social presence (blog, micro-blog, mailing list, discussions)