for (int specimenIndex = 0, n = 0; specimenIndex < this.specimens.length; specimenIndex++) {
for (int incidentAngleIndex = 0; incidentAngleIndex < this.incidentAngles.length; incidentAngleIndex++) {
SphericalCoordinates incidentAngle = this.incidentAngles[incidentAngleIndex];
for (int wavelengthIndex = 0; wavelengthIndex < this.wavelengths.length; wavelengthIndex++, n++) {
WavelengthPacket wavelength = this.wavelengths[wavelengthIndex];
ColorSensorArray sensorArray = this.results[n];
for (int sensor = 0; sensor < worker.collector.sensors(); sensor++) {
SphericalCoordinates exitantAngle = worker.collector.getSensorCenter(sensor);
double solidAngle = worker.collector.getSensorSolidAngle(sensor);
double projectedSolidAngle = worker.collector.getSensorProjectedSolidAngle(sensor);
Color raw = sensorArray.getTotalWeight(sensor);
Color reflectance = raw.divide(this.outstandingSamplesPerMeasurement);
out.printf(
"%d,%f,%f,%d,%d,%f,%f,%f,%f,%d,%s,%s,%s,%s",
specimenIndex,
incidentAngle.polar(),
incidentAngle.azimuthal(),
wavelengthIndex,
sensor,
exitantAngle.polar(),
exitantAngle.azimuthal(),
solidAngle,
projectedSolidAngle,
this.outstandingSamplesPerMeasurement,
colorToCSV(raw),
colorToCSV(reflectance),