# Balloon App

Balloon App is a software for the optimization of a balloon system with an altitude control mechanism for trajectory control and simulation using weather forecast data.

## Table of Contents

- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
- [Examples](#examples)
- [Contributing](#contributing)
- [Licenses](#licenses)

## Features

- **Balloon Optimization**: Optimize balloon configurations for various parameters.
- **Simulation**: Simulate balloon behavior under different weather conditions.
- **Forecast Integration**: Integrate and use weather forecasts for simulations.
- **Visualization**: Visualize balloon trajectories and other relevant data.

## Installation

### Prerequisites

- Python 3.6 or higher
- pip (Python package installer)

### Steps

1. Clone the repository:
    ```bash
    git clone https://github.com/yourusername/balloon_app.git
    cd balloon_app
    ```

2. Create a virtual environment (optional but recommended):
    ```bash
    python -m venv env
    source env/bin/activate  # On Windows use `env\Scripts\activate`
    ```

3. Install the required dependencies:
    ```bash
    pip install -r requirements.txt
    ```

4. Run the application:
    ```bash
    python main.py
    ```

## Usage

The main entry point for the application is `main.py`. You can run it directly from the command line:

```bash
python main.py
```

## Examples
Example data and notebooks can be found in the additional/examples and additional/notebooks directories. These include:

Balloon optimization examples
Simulation examples
Notebooks for using only parts of the code base. To run the Jupyter notebooks, you need to have Jupyter installed. You can install it using:

```bash
pip install jupyter
```
Then, start the Jupyter notebook server:

```bash
jupyter notebook
```

## Contributing

Contributions are welcome! Please follow these steps to contribute:

1. Fork the repository.
2. Create a new branch (`git checkout -b feature/your-feature`).
3. Make your changes.
4. Commit your changes (`git commit -m 'Add your feature'`).
5. Push to the branch (`git push origin feature/your-feature`).
6. Open a pull request.

Please ensure your code follows the project's coding standards and includes appropriate tests.

## Licenses

This project uses the following third-party libraries with their respective licenses:

- certifi: MPL-2.0
- cftime: LGPL-3.0
- contourpy: MIT License
- cycler: BSD License
- fonttools: MIT License
- kiwisolver: MIT License
- matplotlib: PSF License
- netCDF4: MIT License
- numpy: BSD License
- packaging: Apache License 2.0
- pillow: HPND License
- pyparsing: MIT License
- PyQt6: GPL License
- PyQt6-Qt6: GPL License
- PyQt6-sip: GPL License
- python-dateutil: Simplified BSD License
- scipy: BSD License
- six: MIT License

### License

This project is licensed under the MIT License - see the LICENSE file for details.