raytraverse (1.2.6)

PyPI PyPI - License Read the Docs (version) Travis (.com) Coveralls github https://zenodo.org/badge/doi/10.5281/zenodo.4091318.svg

raytraverse is a complete workflow for climate based daylight modelling, simulation, and evaluation of architectural spaces. Built around a wavelet guided adaptive sampling strategy, raytraverse can fully explore the daylight conditions throughout a space with efficient use of processing power and storage space.

Installation

The easiest way to install raytraverse is with pip:

pip install --upgrade pip setuptools wheel
pip install raytraverse

or if you have cloned this repository:

cd path/to/this/file
pip install .

Usage

raytraverse includes a complete command line interface with all commands nested under the raytraverse parent command enter:

raytraverse --help

raytraverse also exposes an object oriented API written primarily in python. calls to Radiance are made through Renderer objects that wrap the radiance c source code in c++ classes, which are made available in python with pybind11. see the src/ directory for more.

For complete documentation of the API and the command line interface either use the Documentation link included above or:

pip install -r docs/requirements.txt
make docs

to generate local documentation.

Getting Started

the following example script shows the basic workflow for a complete simulation it can be saved to a local file with:

raytraverse examplescript > example.py

or the file is located at raytraverse/example.py

Command Line Interface

The raytraverse command provides command line access to executing common tasks. The best way to manage all of the options is with a .cfg file. First, generate a template:

raytraverse --template > options.cfg

and then edit the options for each file. for example:

[raytraverse_scene]
out = outdir
scene = room.rad

[raytraverse_area]
ptres = 2.0
zone = plane.rad

[raytraverse_suns]
loc = weather.epw
epwloc = True

[raytraverse_skydata]
wea = weather.epw

[raytraverse_skyengine]
accuracy = 2.0
rayargs = -ab 2 -ad 4 -c 1000

[raytraverse_sunengine]
accuracy = 2.0
rayargs = -ab 2 -c 1

[raytraverse_skyrun]
accuracy = 2.0
jitter = True
nlev = 2
overwrite = False

[raytraverse_sunrun]
accuracy = 2.0
nlev = 2
srcaccuracy = 2.0

and then from the command line run:

raytraverse -c options.cfg skyrun sunrun

Tutorials

Citation

Either the latest or specific releases of this software are archived with a DOI at zenodo. See: https://doi.org/10.5281/zenodo.4091318

Additionally, please cite this conference paper for a description of the directional sampling and integration method:

Stephen Wasilewski, Lars O. Grobe, Roland Schregle, Jan Wienold, and Marilyne Andersen. 2021. Raytraverse: Navigating the Lightfield to Enhance Climate-Based Daylight Modeling. In 2021 Proceedings of the Symposium on Simulation in Architecture and Urban Design.

Licence

Copyright (c) 2020 Stephen Wasilewski, HSLU and EPFL
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.

Acknowledgements

Thanks to additional project collaborators and advisors Marilyne Andersen, Lars Grobe, Roland Schregle, Jan Wienold, and Stephen Wittkopf

This software development was financially supported by the Swiss National Science Foundation as part of the ongoing research project “Light fields in climate-based daylight modeling for spatio-temporal glare assessment” (SNSF #179067).

Software Credits

  • Raytraverse uses Radiance

  • As well as all packages listed in the requirements.txt file, raytraverse relies heavily on the Python packages numpy, scipy, and for key parts of the implementation.

  • C++ bindings, including exposing core radiance functions as methods to the renderer classes are made with pybind11

  • Installation and building from source uses cmake and scikit-build

  • This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.