Metadata-Version: 2.4
Name: horayzon-extpar
Version: 1.0.1
Summary: Embree ray tracing interface to compute grid- and subgrid-scale terrain horizon for ICON grids
Author: Christian Steger
License: MIT License
        
        Copyright (c) 2026 ChristianSteger
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/ChristianSteger/HORAYZON_extpar
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.23
Requires-Dist: tbb==2023.1.0
Dynamic: license-file

# HORAYZON_extpar
Embree ray tracing interface to compute grid- and subgrid-scale terrain horizon for ICON grids.

# Installation

## From PyPI (Linux x86_64)

```bash
pip install horayzon-extpar
```

This installs a prebuilt wheel with Embree bundled in, plus `tbb` (Intel's
official runtime wheel) as a dependency.

## From source (development)

Either use Conda to provide Embree and TBB:
```bash
conda create -n horayzon_extpar -c conda-forge embree tbb-devel cython setuptools numpy
conda activate horayzon_extpar
```
then point the build at the Conda environment's Embree install and do an
editable install:
```bash
git clone git@github.com:ChristianSteger/HORAYZON_extpar.git
cd HORAYZON_extpar
EMBREE_DIR="$CONDA_PREFIX" pip install -e .
```

Or skip Conda entirely and just `pip install -e .` from a plain venv with
`pip install tbb-devel tbb` — `setup.py` will download and cache the
official Embree release under `.embree_cache/` automatically.

# Miscellaneous notes

Important:
- The Embree ray tracing performance does not scale well on multi-sockets nodes (noted for large BVH). Better use 64 CPUs on one socket instead of 128 CPUs on two sockets.
