@classmethod
def HomogeneousLambertian(cls, ro):
    """Provides parameterisation for homogeneous Lambertian (ie. uniform BRDF) surfaces.

        The single argument can be either:

        - A single float value (for example, 0.634), in which case it is interpreted as a spectrally-constant reflectance value.
        - A constant defined by this class (one of ``GroundReflectance.GreenVegetation``, ``GroundReflectance.ClearWater``, ``GroundReflectance.Sand`` or ``GroundReflectance.LakeWater``) in which case a built-in spectrum of the specified material is used.
        - An array of values (for example, [0.67, 0.85, 0.34, 0.65]) in which case the values are taken to be reflectances across the whole wavelength range at a spacing of 2.5nm. In this case, if the start wavelength is s and the end wavelength is e, the values must be given for the wavelengths: ``s, s+2.5, s+5.0, s+7.5, ..., e-2.5, e``
        - A multidimensional ndarray giving wavelength (column 0) and reflectance (column 1) values

        """
    ro_type, ro_value = cls._GetTargetTypeAndValues(ro)
    if ro_value == '':
        res = '0 Homogeneous surface\n0 No directional effects\n%s\n' % ro_type
    elif ro_type == '-1':
        res = (
            '0 Homogeneous surface\n0 No directional effects\n%s\nWV_REPLACE\n%s\n'
             % (ro_type, ro_value))
    else:
        res = '0 Homogeneous surface\n0 No directional effects\n%s\n%s\n' % (
            ro_type, ro_value)
    return [res, ro]
