Metadata-Version: 2.4
Name: pydirectional
Version: 0.1.4
Summary: Bidirectional Reflectance Distribution Function (BRDF) modeling tools
Author-email: MetEOR Toolkit Team <team@comet-toolkit.org>
Project-URL: Homepage, https://comet-toolkit.org
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: matplotlib
Requires-Dist: pandas
Requires-Dist: scipy
Requires-Dist: matheo
Requires-Dist: curepy
Requires-Dist: xarray
Requires-Dist: netcdf4
Requires-Dist: processor_tools
Provides-Extra: dev
Requires-Dist: ruff; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-html; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: ipython; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx_rtd_theme; extra == "docs"
Requires-Dist: sphinx_book_theme; extra == "docs"
Requires-Dist: sphinx_design; extra == "docs"
Requires-Dist: sphinx_automodapi; extra == "docs"
Requires-Dist: myst_parser; extra == "docs"
Requires-Dist: ipython; extra == "docs"
Dynamic: license-file

# pydirectional

BRDF (Bidirectional Reflectance Distribution Function) modeling tools.

`pydirectional` provides forward models, fitting routines, and utilities for
working with BRDF measurements and standard semi-empirical models (RTLS, RPV,
Hapke, and others).

> **Warning:** This software is in beta. Results should be used with
> caution. Please share any feedback via the issue tracker.

## Usage

### Virtual environment

It is always recommended to use a virtual environment for each Python project.
Use your preferred environment manager, or create one with:

```bash
python -m venv venv
```

Activate it on Windows with `venv\Scripts\activate`, or on macOS/Linux with
`source venv/bin/activate`.

### Installation

Install the package and its core dependencies:

```bash
pip install -e .
```

Optional extras are available depending on your use case:

```bash
pip install -e ".[dev]"   # Development tools (ruff, mypy, pytest, …)
pip install -e ".[docs]"  # Documentation build (sphinx, …)
```

### Development

Install the pre-commit hooks after cloning:

```bash
pre-commit install
```

When you commit, `ruff` will lint and format your code. If it makes
corrections the commit will be aborted so you can review the changes — just
commit again once you are happy.

Run the test suite with:

```bash
pytest
```

## Compatibility

`pydirectional` requires Python 3.11 or later and is tested on Python 3.11,
3.12, and 3.13.

## Licence

`pydirectional` is released under the GNU Lesser General Public License v3
(LGPLv3). See the [LICENSE](https://github.com/meteor-toolkit/pydirectional/blob/main/LICENSE) file for the full licence text.

## Authors

`pydirectional` is developed and maintained by the
[MetEOR Toolkit Team](mailto:team@comet-toolkit.org).
