>Hi David,MeasSpd returns the spectrum in units of watts/sr-m2-wlinterval,
>
>Since you're also working through some radiometric calculations,
>perhaps you can tell me off the top of your head (or from the manual
>if you can dig one up) the units that measspd returns when it's
>talking to a PR-650.
where wlinterval is the wavelength sampling interval you specify
when you call measspd (default is 5 nm). This is the convention
followed uniformly throughout all my code. The reasoning is that
this way you don't need to carry around the delta_wl factor explicitly
when you do colorimetric computations. This convention differs
from that of the instrument, which has a native sampling delta
of 4 nm but which provides power in watts/sr-m2-nm.
> If you press the "measure" button on the PR-650Here's a code snipped that should give you luminance in
>you can get it to store spectral data and transform it into
>photometric units. I'd like to be able to do that manually -- take a
>spectrum with measspd and convert the results to, for instance,
>cd/m^2.
candelas/m2. Long ago I checked that doing this matched
what the PR-650 returns manually, but you might
check it again.
spd = MeasSpd;
load T_xyz1931
T_xyz = 683*T_xyz1931;
XYZ = T_xyz*spd;
lum = XYZ(2);
If you want to use other than the default sampling interval:
Form a)
S = [380 4 101];
spd = MeasSpd(S);
load T_xyz1931;
T_xyz = SplineCmf(S_xyz1931,683*T_xyz1931,S);
XYZ = T_xyz*spd;
lum = XYZ(2);
Or Form b)
S = [380 4 101];
spd = SplineSpd([380 5 81],MeasSpd,S);
load T_xyz1931;
T_xyz = SplineCmf(S_xyz1931,683*T_xyz1931,S);
XYZ = T_xyz*spd;
lum = XYZ(2);
Form b) illustrates the fact that SplineSpd scales the returned. Form
a) is to be preferred, however, because S = [380 4 101] is the
native sampling of the PR-650 and thus you get the spd losslessly
if you measure that way. In form a), MeasSpd resamples to 5 nm sampling
before returning and thus you can lose an einsy amount of precision.
Note that the the toolbox provides three wavelength resampling functions:
SplineCmf - for color matching functions, data expected in rows of a matrix.
SplineSpd - for spectral power distributions, preserves power convention,
data expected in columns.
SplineSrf - for surface reflectance functions, no rescaling, data expected in
columns.
value according to the change in wavelength sampling interval, so
as to keep the units consistent with the toolbox convention.
> My guess was that the measspd numbers would be in W/m^2, butIf you used MeasSpd at its deafault sampling, we'd expect it's numbers
>that's not correct. When I acquired a spectrum with measspd, it had a
>peak of 1.086e-3, whereas a spectrum acquired immediately after that
>one but obtained by pressing the "measure" button on the PR-650, had a
>peak power of 2.42e-4 W/(m^2 sr) according to the LCD on the device.
>When I multiply by 680*V(lambda) and integrate, I get a number that
>is off by essentially the same factor compared to the PR-650's claim
>as to how many candela/m^2 are coming from my source. So is that
>scale factor a conversion from W/m^2 to BTU/ft^2 or something like
>that?
to be a nominal factor of 5 larger than those obtained directly from the
PR-650, since it's native units are Watts/sr-m2-nm.
Because of the wavelength splining, the actual factor will differ from
the nominal unless the peak wl happens to occur at a sample
wavelength common to 4 and 5 nm sampling. If you use MeasSpd([380 4 81])
then I'd expect an exact factor of 4 difference.
David