Metadata-Version: 2.4
Name: samstars
Version: 0.1.0
Summary: Multimodal instance segmentation of individual trees
Author: Iosefa Percival
License-Expression: MIT
Project-URL: Repository, https://github.com/iosefa/samstars
Keywords: segmentation,remote-sensing,lidar,imagery,geospatial
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: GIS
Classifier: Topic :: Scientific/Engineering :: Image Processing
Requires-Python: <3.13,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: csbdeep>=0.8.1
Requires-Dist: geopandas>=1.0
Requires-Dist: numpy>=1.26
Requires-Dist: pandas>=2.0
Requires-Dist: pyogrio>=0.7.2
Requires-Dist: rasterio<1.5,>=1.4
Requires-Dist: scikit-image>=0.22
Requires-Dist: scikit-learn>=1.3
Requires-Dist: scipy>=1.11
Requires-Dist: segment-anything==1.0
Requires-Dist: shapely>=2.0
Requires-Dist: stardist>=0.9.1
Requires-Dist: tensorflow<2.19,>=2.15
Requires-Dist: torch<3,>=2.3
Requires-Dist: torchvision<1,>=0.18
Requires-Dist: tqdm>=4.66
Provides-Extra: metal
Requires-Dist: tensorflow-metal<2,>=1.2; (platform_system == "Darwin" and platform_machine == "arm64") and extra == "metal"
Provides-Extra: test
Requires-Dist: pytest>=8; extra == "test"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.6; extra == "docs"
Requires-Dist: mkdocs-jupyter; extra == "docs"
Requires-Dist: mkdocs-material>=9.5; extra == "docs"
Requires-Dist: mkdocstrings>=1.0; extra == "docs"
Requires-Dist: mkdocstrings-python>=2.0; extra == "docs"
Requires-Dist: pymdown-extensions>=10.7; extra == "docs"
Dynamic: license-file

# samstars

`samstars` is a Python library for instance segmentation of individual trees
using high-resolution imagery and lidar-derived rasters.

## Installation

For users, install the published library from PyPI:

```bash
python -m pip install samstars
```

`samstars` supports Python 3.10 through 3.12 on Linux x86-64 and Apple
Silicon macOS. CPU execution is the baseline. Apple Silicon users can install
optional TensorFlow Metal support with `python -m pip install "samstars[metal]"`; Linux
CUDA users should install a matched PyTorch/Torchvision build using the
[official PyTorch selector](https://pytorch.org/get-started/locally/) before
installing `samstars`.

`samstars` does not bundle trained model files.
See [`docs/training.md`](docs/training.md) and
[`docs/segmentation.md`](docs/segmentation.md) to train a model bundle and run
segmentation.

## Developer setup

For local development from a clone:

```bash
python -m pip install -e .
```

Install the test dependencies and run the functional suite with:

```bash
python -m pip install -e ".[test]"
python -m pytest
```

For documentation development:

```bash
python -m pip install -e ".[docs]"
mkdocs serve
```

For platform-specific development environments, use the Conda environment
files in this repository:

```bash
conda env create -f environment.ubuntu.samstars.yml
conda activate samstars
python -m pip install -e .
```

On Apple Silicon macOS, use `environment.macos.samstars.yml` instead. These
environment files provide Python 3.10 CPU baselines; accelerator setup is
described in [`docs/installation.md`](docs/installation.md).

## Notes

- Python 3.10 through 3.12 is supported on Linux x86-64 and Apple Silicon macOS.
- CPU execution is the default; CUDA, MPS, and TensorFlow Metal are opt-in accelerators.
- Segmentation runs require a trained `samstars` model bundle.
- The intended workflow is to train a model bundle for your data and then use it for segmentation.
