Source code for honeybee_radiance_command.options.ra_gif

"""ra_gif parameters."""
import math
from .optionbase import OptionCollection, BoolOption, NumericOption, IntegerOption


[docs]class Ra_GIFOptions(OptionCollection): """ra_gif command options. Also see: https://floyd.lbl.gov/radiance/man_html/ra_gif.1.html """ __slots__ = ('_b', '_d', '_c', '_g', '_e', '_n') def __init__(self): """ra_gif command options.""" OptionCollection.__init__(self) self._b = BoolOption("b", "Change image color - default: False") self._d = BoolOption("d", "Turn off dithering - default: False") self._c = NumericOption("c", "Fewer colors", min_value=1, max_value=256) self._g = NumericOption("g", "Gamma correction - default: 2.2") self._e = IntegerOption("e", "Exposure compensation") self._n = NumericOption("n", "Sampling factor for large images", min_value=1, max_value=80) @property def b(self): """Change image color - default: False Convert a radiance generated image to black and white. """ return self._b @b.setter def b(self, value): self.b.value = value @property def d(self): """Turn off dithering - default: False""" return self._d @d.setter def d(self, value): self._d.value = value @property def c(self): """This option allows fewer than 256 colors (and fewer than 8 bits per pixel).""" return self._c @c.setter def c(self, value): self._c.value = value @property def g(self): """Gamma correction - default: 2.2 This option specifies the exponent used in gamma correction. An exponent of 1.0 turns gamma correction off. """ return self._g @g.setter def g(self, value): self._g.value = value @property def e(self): """Exposure compensation This option specifies an exposure compensation in f-stops (powers of two). Only integer stops are allowed, for efficiency. """ return self._e @e.setter def e(self, value): if not self._e: self._e.value = None elif math.log2(value).is_integer(): self._e.value = value else: raise ValueError('Only integers that are to power of two are allowed.' ' You provided "{}".'.format(value)) @property def n(self): """Sampling factor for large images This option specifies a sampling factor for neural network color quantization. This value should be between 1 and 80, where 1 takes the longest and produces the best results in small areas of the image. If no value is given, a faster median cut algorithm is used. """ return self._n @n.setter def n(self, value): self._n.value = value