Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
38 changes: 38 additions & 0 deletions applications/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Applications

This directory contains model-specific implementations and examples for the ICESEE data assimilation framework.

## Supported Models

### Flowline Model
A simple 1D ice flow simulation model used for testing and benchmarking data assimilation workflows.
- **Location**: `flowline_model/`
- **Status**: Integration underway

### Icepack Model
PDE-based ice sheet modeling using the Firedrake finite element framework.
- **Location**: `icepack_model/`
- **Status**: Fully supported
- **Dependencies**: Firedrake

### ISSM (Ice Sheet System Model)
Finite-element ice sheet modeling using MATLAB interface.
- **Location**: `issm_model/`
- **Status**: Development underway
- **Dependencies**: ISSM, MATLAB

### Lorenz96 Model
Idealized nonlinear dynamical system for data assimilation benchmarking and testing.
- **Location**: `lorenz_model/`
- **Status**: Fully supported

## Model Registration

Models are registered in `supported_models.py`, which provides a centralized interface for model discovery and initialization within the ICESEE framework.

## Structure

Each model directory typically contains:
- Example configurations and run scripts
- Model-specific utilities and helper functions
- Integration code for connecting to the ICESEE EnKF framework
45 changes: 45 additions & 0 deletions applications/flowline_model/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Flowline Model

A simple 1D ice flow simulation model for testing and benchmarking ICESEE data assimilation workflows.

## Overview

The flowline model provides a lightweight ice sheet representation that is computationally efficient for rapid prototyping and testing of data assimilation algorithms. It simulates ice flow along a single flowline using simplified physics.

## Files

- `flowline_enkf.py` - Main EnKF implementation for the flowline model
- `config_loader.py` - Configuration file loader
- `params.yaml` - Model parameters and DA configuration
- `EnKF.ipynb` - Jupyter notebook demonstrating EnKF usage
- `run_flowline_enkf.ipynb` - Complete workflow notebook

## Usage

### Running in Jupyter

Open `run_flowline_enkf.ipynb` to see a complete example of:
1. Model initialization
2. Ensemble generation
3. Data assimilation cycles
4. Results visualization

### Command Line

```bash
python flowline_enkf.py --config params.yaml
```

## Status

Integration with ICESEE framework is currently underway. The model is functional for standalone testing and demonstration purposes.

## Configuration

Model parameters are specified in `params.yaml`, including:
- Ensemble size
- Observation frequency
- Model physics parameters
- Data assimilation settings

Refer to the configuration file for detailed parameter descriptions.
45 changes: 45 additions & 0 deletions applications/icepack_model/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Icepack Model

Integration of the Icepack ice sheet model with the ICESEE data assimilation framework.

## Overview

Icepack is a Python library for modeling ice sheets using finite element methods via the Firedrake framework. This directory provides the interface between Icepack and ICESEE's Ensemble Kalman Filter implementation.

## Structure

- `examples/` - Example configurations and test cases for different ice geometries and scenarios
- `icepack_utils/` - Utilities specific to Icepack model integration

## Dependencies

- Firedrake finite element library
- Icepack ice sheet modeling library
- ICESEE core framework

## Examples

The `examples/` directory contains various test cases including:
- Idealized geometries
- Synthetic ice streams
- Realistic glacier scenarios

Each example typically includes:
- Configuration files
- Mesh generation scripts
- Initial condition setup
- Observation generation

## Status

Fully supported and actively used for ice sheet state and parameter estimation.

## Getting Started

Refer to the examples in the `examples/` directory for complete workflows. Each example contains its own README with specific instructions.

## Resources

- [Icepack Documentation](https://icepack.github.io/)
- [Firedrake Documentation](https://www.firedrakeproject.org/)
- [ICESEE Wiki](https://github.com/ICESEE-project/ICESEE/wiki)
40 changes: 40 additions & 0 deletions applications/icepack_model/examples/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Icepack Examples

This directory contains example configurations and test cases for the Icepack model integration with ICESEE.

## Available Examples

Each subdirectory contains a complete example workflow with:
- Model configuration
- Mesh/geometry setup
- Initial conditions
- Observation specifications
- Data assimilation configuration

## Example Types

Examples range from idealized test cases to realistic glacier scenarios, providing templates for various data assimilation applications with ice sheet models.

## Running Examples

Each example directory typically contains:
1. Configuration files (YAML)
2. Python scripts or Jupyter notebooks
3. Documentation (README.md)
4. Results/output directories

Refer to individual example READMEs for specific instructions.

## Requirements

- Firedrake and Icepack installed
- ICESEE framework
- Sufficient computational resources (varies by example)

## Contributing

When adding new examples:
- Include a README describing the scenario
- Provide clear configuration files
- Document expected results
- Keep examples self-contained
35 changes: 35 additions & 0 deletions applications/icepack_model/icepack_utils/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Icepack Utilities

This directory contains utilities specific to the Icepack model integration with ICESEE.

## Purpose

These utilities provide helper functions and tools for:
- Model initialization and setup
- Data conversion between Icepack and ICESEE formats
- Mesh handling and geometry operations
- Firedrake-specific operations
- Result post-processing

## Structure

Utilities are organized to support:
- Model preprocessing
- Runtime operations
- Post-processing and analysis

## Usage

Import these utilities in your Icepack-ICESEE workflows:

```python
from applications.icepack_model.icepack_utils import ...
```

## Dependencies

- Firedrake
- Icepack
- ICESEE core framework

Refer to individual utility modules for specific dependencies and usage examples.
47 changes: 47 additions & 0 deletions applications/issm_model/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# ISSM Model

Integration of the Ice Sheet System Model (ISSM) with the ICESEE data assimilation framework.

## Overview

ISSM is a comprehensive finite-element ice sheet model that includes a wide range of physics and capabilities. This directory provides the interface between ISSM and ICESEE's ensemble-based data assimilation methods.

## Structure

- `examples/` - Example configurations and test cases using ISSM
- `issm_utils/` - Utilities for ISSM model integration and MATLAB-Python interfacing

## Dependencies

- ISSM (Ice Sheet System Model)
- MATLAB with ISSM installed
- ICESEE core framework
- Python-MATLAB bridge

## Status

Development underway. The integration is being actively developed and tested.

## Examples

The `examples/` directory contains test cases including:
- ISMIP benchmark experiments
- Realistic ice sheet configurations
- Parameter estimation scenarios

## MATLAB Interface

Since ISSM primarily operates through MATLAB, special utilities are provided in `issm_utils/` to facilitate:
- MATLAB-Python communication
- Data conversion between MATLAB and Python formats
- Process management for MATLAB instances

## Getting Started

Refer to the examples in the `examples/` directory. Note that ISSM must be properly installed and configured in your MATLAB environment.

## Resources

- [ISSM Website](https://issm.jpl.nasa.gov/)
- [ISSM Documentation](https://issm.jpl.nasa.gov/documentation/)
- [ICESEE Wiki](https://github.com/ICESEE-project/ICESEE/wiki)
40 changes: 40 additions & 0 deletions applications/issm_model/examples/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# ISSM Examples

This directory contains example configurations and test cases for the ISSM model integration with ICESEE.

## Available Examples

Examples demonstrate various ISSM capabilities with data assimilation, including:
- Benchmark experiments (ISMIP)
- Realistic ice sheet scenarios
- State and parameter estimation workflows

## Example Structure

Each example typically includes:
- MATLAB scripts for ISSM model setup
- Python scripts for ICESEE integration
- Configuration files
- Documentation

## Requirements

- ISSM installed and configured in MATLAB
- MATLAB with Python interface
- ICESEE framework

## Running Examples

Since ISSM operates primarily through MATLAB:
1. Ensure ISSM is properly installed in your MATLAB environment
2. Configure Python-MATLAB interface
3. Follow example-specific instructions in individual READMEs

## Notes

The ISSM integration is under active development. Some examples may require specific ISSM versions or configurations.

## Resources

- [ISSM Documentation](https://issm.jpl.nasa.gov/documentation/)
- [ISMIP Protocols](http://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6)
40 changes: 40 additions & 0 deletions applications/issm_model/issm_utils/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# ISSM Utilities

This directory contains utilities for ISSM model integration with ICESEE.

## Purpose

These utilities facilitate:
- MATLAB-Python communication
- ISSM data conversion to ICESEE formats
- Process management for MATLAB instances
- Model state and parameter handling
- Results extraction and post-processing

## Key Components

### matlab2python/
Tools for converting MATLAB data structures to Python formats and vice versa.

### containers/
Container configurations for running ISSM with ICESEE in containerized environments.

## Usage

These utilities bridge the gap between ISSM's MATLAB environment and ICESEE's Python framework, enabling seamless data exchange during data assimilation cycles.

## MATLAB Interface

Special consideration is given to:
- Efficient data transfer between MATLAB and Python
- Proper MATLAB process lifecycle management
- Error handling across the MATLAB-Python boundary

## Dependencies

- MATLAB
- ISSM (properly configured in MATLAB)
- Python MATLAB Engine API
- ICESEE core framework

Refer to individual utility modules for specific usage patterns and requirements.
60 changes: 60 additions & 0 deletions applications/lorenz_model/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Lorenz Model

Implementation of the Lorenz96 model for data assimilation testing and benchmarking.

## Overview

The Lorenz96 model is a simplified dynamical system originally designed to study atmospheric predictability. It serves as an excellent testbed for data assimilation algorithms due to its chaotic behavior and computational efficiency.

## Structure

- `examples/` - Example configurations and test cases
- `lorenz_utils/` - Utilities specific to Lorenz96 model integration

## Model Description

The Lorenz96 model is a system of ordinary differential equations with the form:

```
dX_i/dt = (X_{i+1} - X_{i-2}) * X_{i-1} - X_i + F
```

where:
- `X_i` represents the state variable at location i
- `F` is a forcing parameter (typically 8)
- Cyclic boundary conditions are applied

## Use Cases

This model is ideal for:
- Testing new data assimilation algorithms
- Benchmarking EnKF performance
- Understanding nonlinear DA behavior
- Educational demonstrations
- Algorithm parameter tuning

## Status

Fully supported and extensively tested.

## Examples

The `examples/` directory contains various scenarios including:
- Different system sizes (number of variables)
- Various observation configurations
- Perfect and imperfect model experiments
- Parameter estimation tests

## Getting Started

See the examples in `examples/lorenz96/` for complete workflows demonstrating:
- Model initialization
- Ensemble generation
- Observation simulation
- EnKF application
- Results analysis

## Resources

- Original Lorenz96 paper: Lorenz, E. N. (1996). "Predictability: A problem partly solved"
- [ICESEE Wiki](https://github.com/ICESEE-project/ICESEE/wiki)
Loading
Loading