def test_n_dimensional_scattering_cross_section(self): """ Tests :func:`colour.phenomenons.rayleigh.scattering_cross_section` definition n-dimensional arrays support. """ wl = 360 * 10e-8 sigma = 2.7812892348020306e-26 np.testing.assert_almost_equal( scattering_cross_section(wl), sigma, decimal=32) sigma = np.tile(sigma, 6) np.testing.assert_almost_equal( scattering_cross_section(wl), sigma, decimal=32) sigma = np.reshape(sigma, (2, 3)) np.testing.assert_almost_equal( scattering_cross_section(wl), sigma, decimal=32) sigma = np.reshape(sigma, (2, 3, 1)) np.testing.assert_almost_equal( scattering_cross_section(wl), sigma, decimal=32)
def test_n_dimensional_scattering_cross_section(self): """ Tests :func:`colour.phenomenons.rayleigh.scattering_cross_section` definition n-dimensional arrays support. """ wl = 360 * 10e-8 sigma = 2.7812892348020306e-26 np.testing.assert_almost_equal(scattering_cross_section(wl), sigma, decimal=32) sigma = np.tile(sigma, 6) np.testing.assert_almost_equal(scattering_cross_section(wl), sigma, decimal=32) sigma = np.reshape(sigma, (2, 3)) np.testing.assert_almost_equal(scattering_cross_section(wl), sigma, decimal=32) sigma = np.reshape(sigma, (2, 3, 1)) np.testing.assert_almost_equal(scattering_cross_section(wl), sigma, decimal=32)
def test_nan_scattering_cross_section(self): """ Tests :func:`colour.phenomenons.rayleigh.scattering_cross_section` definition nan support. """ cases = [-1.0, 0.0, 1.0, -np.inf, np.inf, np.nan] cases = set(permutations(cases * 3, r=1)) for case in cases: wavelength = case CO2_concentration = case temperature = case scattering_cross_section(wavelength, CO2_concentration, temperature)
def test_nan_scattering_cross_section(self): """ Tests :func:`colour.phenomenons.rayleigh.scattering_cross_section` definition nan support. """ cases = [-1.0, 0.0, 1.0, -np.inf, np.inf, np.nan] cases = set(permutations(cases * 3, r=1)) for case in cases: wavelength = case CO2_concentration = case temperature = case scattering_cross_section( wavelength, CO2_concentration, temperature)
def test_scattering_cross_section(self): """ Tests :func:`colour.phenomenons.rayleigh.scattering_cross_section` definition. """ self.assertAlmostEqual( scattering_cross_section(360 * 10e-8), 2.7812892348020306e-26, places=32) self.assertAlmostEqual( scattering_cross_section(555 * 10e-8), 4.661330902337604e-27, places=32) self.assertAlmostEqual( scattering_cross_section(830 * 10e-8), 9.12510035221888e-28, places=32) self.assertAlmostEqual( scattering_cross_section(555 * 10e-8, 0), 4.3465433368391025e-27, places=32) self.assertAlmostEqual( scattering_cross_section(555 * 10e-8, 360), 4.675013461928133e-27, places=32) self.assertAlmostEqual( scattering_cross_section(555 * 10e-8, 620), 4.707951639592975e-27, places=32) self.assertAlmostEqual( scattering_cross_section(555 * 10e-8, temperature=200), 2.245601437154005e-27, places=32) self.assertAlmostEqual( scattering_cross_section(555 * 10e-8, temperature=300), 5.05260323359651e-27, places=32) self.assertAlmostEqual( scattering_cross_section(555 * 10e-8, temperature=400), 8.98240574861602e-27, places=32)
def test_scattering_cross_section(self): """ Tests :func:`colour.phenomenons.rayleigh.scattering_cross_section` definition. """ self.assertAlmostEqual( scattering_cross_section(360 * 10e-8), 2.781289234802031e-26, places=32) self.assertAlmostEqual( scattering_cross_section(555 * 10e-8), 4.661330902337604e-27, places=32) self.assertAlmostEqual( scattering_cross_section(830 * 10e-8), 9.125100352218880e-28, places=32) self.assertAlmostEqual( scattering_cross_section(555 * 10e-8, 0), 4.346543336839102e-27, places=32) self.assertAlmostEqual( scattering_cross_section(555 * 10e-8, 360), 4.675013461928133e-27, places=32) self.assertAlmostEqual( scattering_cross_section(555 * 10e-8, 620), 4.707951639592975e-27, places=32) self.assertAlmostEqual( scattering_cross_section(555 * 10e-8, temperature=200), 2.245601437154005e-27, places=32) self.assertAlmostEqual( scattering_cross_section(555 * 10e-8, temperature=300), 5.052603233596510e-27, places=32) self.assertAlmostEqual( scattering_cross_section(555 * 10e-8, temperature=400), 8.982405748616020e-27, places=32)
Showcases *Rayleigh Optical Depth* computations examples. """ import colour from colour.phenomenons import (rayleigh_optical_depth, rayleigh_scattering_spd, scattering_cross_section) from colour.utilities.verbose import message_box message_box('Rayleigh Optical Depth Computations') wavelength = 555 * 10e-8 message_box(('Computing the scattering cross section per molecule at given ' 'wavelength in cm:\n' '\n\tWavelength: {0} cm'.format(wavelength))) print(scattering_cross_section(wavelength)) print('\n') message_box(('Computing the "Rayleigh Optical depth" as function of ' 'wavelength in cm:\n' '\n\tWavelength: {0} cm'.format(wavelength))) print(rayleigh_optical_depth(wavelength)) print('\n') message_box(('Creating a "Rayleigh" spectral power distribution with default ' 'spectral shape:\n' '\n\t{0}'.format(colour.DEFAULT_SPECTRAL_SHAPE))) spd = rayleigh_scattering_spd() print(spd[555])
""" import colour from colour.phenomenons import ( rayleigh_optical_depth, rayleigh_scattering_spd, scattering_cross_section) from colour.utilities.verbose import message_box message_box('Rayleigh Optical Depth Computations') wavelength = 555 * 10e-8 message_box(('Computing the scattering cross section per molecule at given ' 'wavelength in cm:\n' '\n\tWavelength: {0} cm'.format(wavelength))) print(scattering_cross_section(wavelength)) print('\n') message_box(('Computing the "Rayleigh Optical depth" as function of ' 'wavelength in cm:\n' '\n\tWavelength: {0} cm'.format(wavelength))) print(rayleigh_optical_depth(wavelength)) print('\n') message_box(('Creating a "Rayleigh" spectral power distribution with default ' 'spectral shape:\n' '\n\t{0}'.format(colour.DEFAULT_SPECTRAL_SHAPE))) spd = rayleigh_scattering_spd() print(spd[555])