This document outlines the various truth collectors available in the DIRSIG5 model.
Consult the DIRSIG4 Truth Collectors manual for details about truth collection in DIRSIG4. |
The truth collectors are objects that extract information about important image formation parameters on a per-pixel basis. Because a pixel may contain multiple contributions, many of the truth collectors provide statistical summaries. For example, the material index truth reports the most common material within a pixel whereas the temperature truth reports the average temperature within a pixel.
Because the DIRSIG model utilizes ray-tracing, the granularity of the extracted values is subject to sub-pixel sampling. For example, if the user is employing a single sample per pixel, then the collector cannot produce fractional values. The more samples that used per pixel, the better the sampling of the sub-pixel geometry will be and, hence, the more accurate both the radiometry and the truth will be. |
In DIRSIG5, truth is collected by the sensor plugins. Each sensor plugin has it’s own interface for configuring what truth is collected and how that collected data is presented. However, they all use the same request mechanism and most present the data as a raster data set using the spectral dimension as a feature vector, with each band containing data for a specific collector.
In DIRSIG5, the truth collection sub-system was designed to be configurable at a more granular scale. This means that in addition to the DIRSIG4-era collection sets, the individual truth elements that composed those sets can be selected. These individual collectors can be specified using their unique names in the sensor plugins that support the truth collection.
Most users utilize the BasicPlatform plugin, and this section describes the details of configuring truth for that plugin. |
The table below summarizes the individual collector names, the corresponding collector label (this longer label is what is used in truth output products, e.g., the band name in a rather truth data file), the name of any collector sets they are included in and finally a short description. In DIRSIG5 either an individual name or a set name can be supplied and the names are case-insensitive.
Collector Name | Collector Label | Set Name | Description |
---|---|---|---|
Dominant Material Index |
The index of the most abundant material |
||
Dominant Optical Property Index |
The index of the variant within the most abundant material |
||
Scene ENU X Coordinate [m] |
The average X coordinate (Scene ENU) |
||
Scene ENU Y Coordinate [m] |
The average Y coordinate (Scene ENU) |
||
Scene ENU Z Coordinate [m] |
The average Z coordinate (Scene ENU) |
||
Distance [m] |
The average distance from the sensor |
||
View Angle Cosine |
The average cosine of the surface normal vs. view vector |
||
Texture U Coordinate |
The average U texture coordinate |
||
Texture V Coordinate |
The average V texture coordinate |
||
Surface Normal X Component |
The X component of the average surface normal (Scene ENU) |
||
Surface Normal Y Component |
The Y component of the average surface normal (Scene ENU) |
||
Surface Normal Z Component |
The Y component of the average surface normal (Scene ENU) |
||
Barycentric U Coordinate |
The U component of the average barycentric coordinate |
||
Barycentric V Coordinate |
The V component of the average barycentric coordinate |
||
Barycentric W Coordinate |
The W component of the average barycentric coordinate |
||
Geodetic Latitude [+N deg] |
The average latitude of the pixel (degrees, +N) |
||
Geodetic Longitude [+E deg] |
The average longitude of the pixel (degrees, +E) |
||
WGS84 Altitude [m] |
The average altitude of the pixel (meters WGS84) |
||
ECEF X Coordinate [m] |
The average X coordinate (ECEF) |
||
ECEF Y Coordinate [m] |
The average Y coordinate (ECEF) |
||
ECEF Z Coordinate [m] |
The average Z coordinate (ECEF) |
||
Scene Index |
The index of the most abundant scene |
||
Geometry Index |
The index of the most abundant base geometry |
||
Instance Index |
The index of the most abundant instance |
||
Primitive Index |
The index of the most abundant element within the base geometry |
||
Path Zenith [degrees] |
The zenith (declination) angle of paths for the pixel. |
||
Path Azimuth [degrees] |
The azimuth (East of North) angle of paths for the pixel. |
||
Path Declination [degrees] |
The declination (DECL) angle in the celestial sphere frame. |
||
Path Right Accension [degrees] |
The right accension (RA) angle in the celestial sphere frame. |
||
Path Radiance |
The atmospheric path radiance at the reference wavelength. |
||
Path Transmission |
The atmospheric path transmission for the reference wavelength. |
||
Path Light Time [seconds] |
The average propagation time between the sensor and the intersected surfaces. |
||
Path Direction ECEF X Component (at sensor) |
The initial (at sensor) X component of the average ray in ECEF |
||
Path Direction ECEF Y Component (at sensor) |
The initial (at sensor) Y component of the average ray in ECEF |
||
Path Direction ECEF Y Component (at sensor) |
The initial (at sensor) Z component of the average ray in ECEF |
||
Path Direction ECEF X Component (at scene) |
The final (at scene) X component of the average propagated ray in ECEF |
||
Path Direction ECEF Y Component (at scene) |
The final (at scene) Y component of the average propagated ray in ECEF |
||
Path Direction ECEF Z Component (at scene) |
The final (at scene) Z component of the average propagated ray in ECEF |
||
Sun Fraction |
The fraction of the pixel that is directly lit by the sun |
||
Sun Exposure |
Cosine weighted version of the sun shadow. |
||
Moon Fraction |
The fraction of the pixel that is directly lit by the moon |
||
Moon Exposure |
Cosine weighted version of the moon shadow. |
||
Sky Fraction |
The fraction of the sky illuminating the pixel |
||
Solar Irradiance (w/ cos) |
The cosine weighted solar irradiance for the reference wavelength. |
||
Lunar Irradiance (w/ cos) |
The cosine weighted lunar irradiance for the reference wavelength. |
||
Scene ENU X Coordinate (medium) [m] |
The average X coordinate of the first boundary inside a medium (Scene ENU) |
||
Scene ENU Y Coordinate (medium) [m] |
The average Y coordinate of the first boundary inside a medium (Scene ENU) |
||
Scene ENU Z Coordinate (medium) [m] |
The average Z coordinate of the first boundary inside a medium (Scene ENU) |
||
Volume Path Length [m] |
The length of a path through the first volume |
||
Volume Concentration Length [conc*m] |
The concentration path length of a path through the first volume |
||
Temperature [K] |
The average temperature with the pixel [Kelvin] |
||
Sample Count |
The number of primary rays used for the pixel |
||
Bounce Count |
The average number of bounces for rays in the pixel |
||
Source Count |
The number of sources contributing in a pixel |
||
Abundance |
(none) |
The abundance (fill fraction) of a material within a pixel |
|
Convergence Status |
(none) |
A flag capturing how the problem converged (or not) |
|
Cloud layer fraction |
(none) |
The fraction number of samples that hit a cloud layer (not a VDB cloud) |
In DIRSIG5, you can also specify the name all and collect data from
all the available truth collectors.
|
Material Indexes
The material index truth collectors extract information about the materials and/or material variants are present within each pixel. Since a pixel may contain more than one material, this collector reports information about the most commonly found materials and optical properties sampled within the pixel.
The material
truth set requests the following individual truth
collectors:
materialindex
-
This is the index of the most common material in the pixel. This index can be linked back to a specific material via the
scene_tool
utility’s lookup tool. The corresponding long name for this collector is Dominant Material Index.
materialvariantindex
-
This is the index of the most common variant or property for a material in the pixel. The most common example of a variant is which curve is used in a material with spatial variation using multiple curves (e.g., a material using a texture map or curve map). This index can be linked back to a specific optical property via the
scene_tool
utility’s lookup tool. The corresponding long name for this collector is Dominant Optical Property Index.
Geometry Indexes
The geometry truth collectors extract information about the geometry of the first surface intersected within a pixel.
The geoids
truth set requests the following individual truth
collectors:
sceneindex
-
This is the index of the most common scene within a pixel. When multiple scenes are employed in a simulation, this index indicates which scene was the most common within the pixel.
instanceindex
-
Internally, each instance of every object has a unique "index" that can be used to resolve where instances of each object are located at a given time. The "instance index" truth collector gathers the unique instance index that dominates the spatial area of the pixel.
geometryindex
-
Internally, each base geometry object has a unique "index" that can be used to resolve geometry shared by instances and the source of that geometry. The "geometry index" truth collector gathers the unique base geometry index that dominates the spatial area of the pixel.
Surface Intersections
The surface intersection truth collectors extract information about the location, distances, angles, etc. the first surface intersected within a pixel.
The intersection
truth set requests the following individual truth
collectors:
scenex
,sceney
andscenez
-
The average XYZ location for the geometry intersected within a pixel in the Scene ENU coordinate system.
distance
-
The distance (in meters) from the sensor to the object.
viewcosine
-
The cosine of the relative angle between the viewing ray and the surface normal.
textureu
andtexturev
-
The
intersection
truth set also includes the texture coordinate collectors.
To get geographic intersection information (rather than values in the Scene ENU coordinate system) use the Geolocation collector. |
A useful way to determine the Scene ENU coordinates of an object in a scene is to render the scene with the Intersection truth enabled and then load the X, Y and Z intersection bands as the Red, Green and Blue bands in the image viewer. As you hover your mouse over any pixel, the "data value" will be the XYZ location of that object. |
Texture Coordinates
The intersection truth collectors extract information about the texture coordinates with the first surface intersected within a pixel.
The texture
truth set requests the following individual truth
collectors:
textureu
andtexturev
-
The average UV mapping coordinate within the pixel. These coordinates will be
-1
if there is no UV coordinate information associated with the object.
These value can be unexpected when multiple surfaces are intersected within a pixel and the UV coordinates vary greatly. |
Surface Normals
The normal truth collectors extract information about the average normal of the first surface intersected within a pixel.
The normal
truth set requests the following individual truth
collectors:
normx
,normy
andnormz
-
The unitless XYZ values of the average normal for the surfaces intersected within a pixel in the Scene ENU coordinate system.
Barycentric Coordinates
The barycentric coordinate truth collectors extract information about the average barycentric coordinate of the intersection within a pixel. These coordinates are internally generated and then used for interpolating geometric properties across a facet, including vertex normals and texture coordinates.
The barycentriccoords
truth set requests the following individual truth
collectors:
baryu
,baryv
andbaryw
-
The unitless UVW values of the average barycentric coordinate for the surfaces intersected within a pixel.
Geolocation
The geolocation truth collector gathers the average latitude, longitude and altitude of the intersection within the pixel.
latitude
,longitude
andaltitude
-
The average latitude (degrees, positive North), longitude (degrees, positive East), and altitude (meters above the WGS-84 ellipsoid) in the Geodetic coordinate system.
ecefx
,ecefy
andecefz
-
The average XYZ coordinate in the Earth-Centered, Earth-Fixed coordinate system.
Temperature
The temperature truth collectors gather temperature information about objects intersected within a pixel.
The temperature
truth set requests the following individual truth
collectors:
temperature
-
The average temperature in Kelvin of the surface(s) intersected within the pixel.
Atmosphere
The atmospheric path collectors gather information about the atmospheric contributions along the primary path from the sensor to the first intersection. Internally these are a spectral quantities but are reported for the reference wavelength only.
These path radiance and transmission values can be used to verify the additive "path" or "upwelled" radiance and multiplicative transmission term extracted from an atmosphere compensation algorithm. |
The atmosphere
truth set requests the following individual truth
collectors:
pathzenith
-
The average zenith (declination) angle in degrees for the paths within the pixel. This collector is also included in the pathangles truth set).
pathazimuth
-
The average azimuth angle in degrees (East of North) for paths within the pixel. This collector is also included in the pathangles truth set.
pathradiance
-
The average spectral radiance (at the reference wavelength) from the atmosphere within the pixel. The units are Watts / (cm2 sr micron).
pathtransmission
-
The average transmission (at the reference wavelength) from the atmosphere within the pixel. This quantity is unitless.
Shadows
The shadow truth collectors gather information about solar and lunar shadows within the pixel.
The shadow
truth set requests the following individual truth
collectors:
sunshadow
-
The fraction of the pixel that is directly illuminated by the sun.
sunexposure
-
The fraction of the pixel that is directly illuminated by the sun and cosine weighted by the relative angle between the surface and the sun direction.
moonshadow
-
The fraction of the pixel that is directly illuminated by the moon.
moonexposure
-
The fraction of the pixel that is directly illuminated by the moon and cosine weighted by the relative angle between the surface and the moon direction.
skyfraction
-
The fraction of the sky that is illuminating the pixel. Note that this quantity is not directly used in the radiometry solution, rather it is computed from the solution to provide insights into the solution.
Medium Intersections
The medium intersection truth collectors extract information about the location, distances, angles, etc. the first medium (volume, cloud, plume, etc.) intersected within a pixel.
The medium
truth set requests the following individual truth
collectors:
mediumx
,mediumy
andmediumz
-
The medium intersection collectors return the respective Scene ENU coordinate for the first boundary encountered with a medium. In the case of a plume or cloud, this could be an internal object (e.g., a plane inside the cloud) or the exit boundary of the plume or cloud.
Path Angles
The path angle collectors gather information about the average direction of the paths sampling a pixel.
The pathangles
truth set requests the following individual truth
collectors:
pathzenith
-
The average zenith (declination) angle in degrees for the paths within the pixel.
pathazimuth
-
The average azimuth angle in degrees (East of North) for paths within the pixel.
pathdeclination
-
The average declination (DECL) angle in degrees, which is the celestial sphere’s equivalent of latitude.
pathrightaccension
-
The average right accension (RA) angle in degrees, which is the celestial sphere’s equivalent of longitude.
Propagation
The propagation truth captures information about light propagation between the sensor and the intersected surface. This includes the propagaton time (aka light time) and the inital (at the sensor) and final (at the scene) view direction vector components, which maybe be different due to refraction.
pathlighttime
-
The average light propagation time in seconds between the sensor and surface(s) intersected within the pixel. This time reflects the varying index of refraction through the atmosphere.
propstartdirx
-
The X component of the average pixel sampling ray direction at the sensor (before refraction) in ECEF coordinates.
propstartdiry
-
The Y component of the average pixel sampling ray direction at the sensor (before refraction) in ECEF coordinates.
propstartdirz
-
The Z component of the average pixel sampling ray direction at the sensor (before refraction) in ECEF coordinates.
propstartdirx
-
The X component of the average pixel sampling ray direction at the scene (after refraction) in ECEF coordinates.
propstartdiry
-
The Y component of the average pixel sampling ray direction at the scene (after refraction) in ECEF coordinates.
propstartdirz
-
The Z component of the average pixel sampling ray direction at the scene (after refraction) in ECEF coordinates.
Path Tracing Data
The path intersection truth captures data about the sampling performed by the path tracer, including how many paths (samples) per pixel are used and the average number of bounces (scattering events) were used.
The paths
truth set requests the following individual truth
collectors:
samplecount
-
The number of paths used to sample the pixel.
bouncecount
-
The average number of bounces used in the paths sampling the pixel.
sourcecount
-
The average number of user-defined sources contribution to the pixel.
Volume, Cloud and Plume Data
When working with volumetric data (e.g., via the OpenVDB plugins), it is useful to get data for volumes in the pixel. The currently available collectors gather data about the path within the first volume along the path.
If the volume includes scattering, then this data is collected for the scattered path within the volume. Hence, the "length" of the path reflects distance that the ray wandered within the volume and not the distance through the volume. |
If there are multiple, overlapping volumes within a pixel, this truth does not distinguish between them and the combined values are provided. |
The volume
truth set requests the following individual truth
collectors (note the cloud
and plume
sets are an alias for
this set):
volpathlength
-
The length of a path in meters within the first volume.
volconclength
-
The concentration path length in ppm-meters of a path within the first volume.
Other truth products will contain information about the volume. See this section of the VDB plugins manual for an example of volume properties for a volumetric plume being captured in other truth products. |
Abundance
The abundance truth collector gathers precise sub-pixel abundance fractions for a user-supplied list of material IDs or tags names. This is especially handy in situations where the user is looking to generate a truth mask for a target detection algorithm. The resulting truth "band" for each requested material ID will contain how much of the pixel was occupied by that material or tag as a fraction from 0 - 1. This data can be used to drive pixel resolution receiver operator characteristic (ROC) curve analysis of a target detection algorithm.
Material Abundance
The user must supply the truth collector the list of material IDs to be collected as a comma separated list.
Important Notes:
-
In a simulation with multiple-scenes, the abundance collector will find materials with the supplied ID across all scenes. This allows for the abundance of the same material in each scene to be collected into a single truth map.
-
In some cases, different scenes might contain materials with the same material ID that were not intended to be same. In those cases, the supplied material ID can be combined with the scene name to only track the material in a specific scene. The format for the material ID in this case is a scene name and material ID pair separated by "
::
" (i.e.,tile1::grass
, wheretile1
is the scene name name andgrass
is the material ID).
Tagged (Geometry) Abundance
Alternatively, the collector can be configured to track abundance based on geometry tags.
Convergence Status
The convergence status flag indicates how or if the problem (pixel) convergence was satisfied (or not). The status flag can have the following values:
0
→ The radiance converged using some number of samples greater than
the minimum and less than the maximum.
1
→ The radiance converged using only the minimum number of samples.
2
→ The radiance did not converge after using the maximum number of
samples.
3
→ No user scene was hit and the default earth core was hit instead.
4
→ The radiance never reached the radiance threshold and was
set to 0
.
Cloud layer fraction
The cloud layer fraction indicates the decimal fraction of samples that hit
a cloud layer and were scattered versus continuing along a free path to other geometry/sky.
This only tracks clouds that are defined in CloudModelInterface
based plugins
that define clouds in global layers, not OpenVDB or other free-standing clouds
which are handled as normal volumes.