Source code for honeybee_plus.radiance.command.falsecolor
# coding=utf-8
"""falsecolor - make a falsecolor Radiance picture"""
from ._commandbase import RadianceCommand
from ..datatype import RadiancePath
from ..parameters.falsecolor import FalsecolorParameters
import os
[docs]class Falsecolor(RadianceCommand):
"""
falsecolor - make a falsecolor Radiance picture
"""
input_image_file = RadiancePath('i', 'input file', check_exists=True)
output_file = RadiancePath('output_file', 'output file')
def __init__(self, input_image_file=None, output_file=None,
falsecolor_parameters=None):
RadianceCommand.__init__(self, executable_name='falsecolor.pl')
self.input_image_file = input_image_file
"""The file path for which the falsecolor image is to be created."""
self.output_file = output_file
"""The name of the output file."""
self.falsecolor_parameters = falsecolor_parameters
"""Paramters for the falsecolor command."""
@property
def falsecolor_parameters(self):
"""Get and set falsecolor_parameters."""
return self.__falsecolor_parameters
@falsecolor_parameters.setter
def falsecolor_parameters(self, falsecolor_param):
self.__falsecolor_parameters = falsecolor_param if falsecolor_param is not None \
else FalsecolorParameters()
assert hasattr(self.falsecolor_parameters, "isRadianceParameters"), \
"input falsecolor_parameters is not a valid parameters type."
[docs] def to_rad_string(self, relative_path=False):
""""Return full command as string"""
perl_path = self.normspace(self.perl_exe_path) if os.name == 'nt' else ''
if os.name == 'nt' and not perl_path:
raise IOError('Failed to find perl installation.\n'
'genskyvec.pl needs perl to run successfully.')
exe_name = 'falsecolor.pl' if os.name == 'nt' else 'falsecolor'
cmd_path = self.normspace(os.path.join(self.radbin_path, exe_name))
input_params = self.falsecolor_parameters.to_rad_string()
input_file = self.input_image_file.to_rad_string()
input_file = "-i %s" % input_file if input_file else ''
output_file = self.output_file.to_rad_string().replace("output_file", '')
rad_string = "%s %s %s > %s" % (cmd_path, input_params, input_file, output_file)
return rad_string
@property
def input_files(self):
return self.input_image_file,
[docs] def execute(self):
self.check_input_files(self.to_rad_string())
RadianceCommand.execute(self)