Summary

This DIRSIG5 sensor plugin allows the user to configure a set of "point" measurement sensors within a scene. These sensors can collect incident energy from either an hemisphere or a full sphere.

Input

{
    "input" : {
        "sample_count" : 10000,
        "bandpass" : {
            "minimum" :  0.4,
            "maximum" :  2.5
        },
        "date_time" : {
            "start"      : "2009-09-01T12:10:00.0000-05:00",
            "step_time"  : 0.1,
            "step_count" : 1
        },
        "collectors" : [
            [ "Tube #1, hemi",   "hemi",   -2.0, -2.0, -2.939, 0.0, 0.0, 1.0 ],
            [ "Tube #1, sphere", "sphere", -2.0, -2.0, -2.939, 0.0, 0.0, 1.0 ],
            [ "Tube #2, hemi",   "hemi",    0.0, -2.0, -1.959, 0.0, 0.0, 1.0 ],
            [ "Tube #2, sphere", "sphere",  0.0, -2.0, -1.959, 0.0, 0.0, 1.0 ],
            [ "Tube #3, hemi",   "hemi",    2.0, -2.0, -1.496, 0.0, 0.0, 1.0 ],
            [ "Tube #3, sphere", "sphere",  2.0, -2.0, -1.496, 0.0, 0.0, 1.0 ],
            [ "Tube #4, hemi",   "hemi",   -2.0, -0.0, -1.199, 0.0, 0.0, 1.0 ],
            [ "Tube #4, sphere", "sphere", -2.0, -0.0, -1.199, 0.0, 0.0, 1.0 ],
            [ "Tube #5, hemi",   "hemi",    0.0, -0.0, -0.979, 0.0, 0.0, 1.0 ],
            [ "Tube #5, sphere", "sphere",  0.0, -0.0, -0.979, 0.0, 0.0, 1.0 ],
            [ "Tube #6, hemi",   "hemi",    2.0, -0.0, -0.799, 0.0, 0.0, 1.0 ],
            [ "Tube #6, sphere", "sphere",  2.0, -0.0, -0.799, 0.0, 0.0, 1.0 ],
            [ "Tube #7, hemi",   "hemi",   -2.0,  2.0, -0.640, 0.0, 0.0, 1.0 ],
            [ "Tube #7, sphere", "sphere", -2.0,  2.0, -0.640, 0.0, 0.0, 1.0 ],
            [ "Tube #8, hemi",   "hemi",    0.0,  2.0, -0.489, 0.0, 0.0, 1.0 ],
            [ "Tube #8, sphere", "sphere",  0.0,  2.0, -0.489, 0.0, 0.0, 1.0 ],
            [ "Tube #9, hemi",   "hemi",    2.0,  2.0, -0.325, 0.0, 0.0, 1.0 ],
            [ "Tube #9, sphere", "sphere",  2.0,  2.0, -0.325, 0.0, 0.0, 1.0 ]
        ]
    },
    "output" : {
        "integration" : [ "spectral" ],
        "units" : "radiance",
        "filename" : "collectors_out.txt"
    }
}

Sample Count

The incident flux is determined by the DIRSIG5 radiometry core using a number of samples distributed over the hemisphere or sphere. The number of samples can be specified using the sample_count variable. The default number of samples is 1,000.

Note This value defines the number of samples in a hemisphere. This value is automatically doubled for spherical sensors.

Spectral Bandpass

The sensors all have the same spectral bandpass. If you have different sensors with different bandpasses then model them as a separate collection.

        "bandpass" : {
            "minimum" :  0.2,
            "maximum" : 20.0
        }

Date/Time

The date/time for the collection of sensors is described in the date_time section. The start variable is an ISO8601 date/time. The number of temporal measurements is defined by the step_count variable and the time between measurements is defined by the step_time variable.

        "date_time" : {
            "start"      : "2009-09-01T12:10:00.0000-05:00",
            "step_time"  : 0.001,
            "step_count" : 10
        }

Collector List

The collectors array describes each collector in the simulation. Each element of the array defines a collector and is an array itself. The elements of an individual collector array are:

  1. The name for the collector.

  2. The collector type (it can be either sphere or hemisphere).

  3. The location of the collector in the Scene ENU coordinate system as an XYZ triplet.

  4. The pointing direction of the collector as an XYZ triplet. The XYZ direction components will be converted into a normalized vector. The direction is only used for the hemisphere collector to indicate the direction of hemisphere the collector is looking into.

  5. The (optional) area of the collector in m2. This area is only required if the output units are integrated over the detector area (for example, the output units are "power").

        "collectors" : [
            [ "Tube #1, hemi",   "hemi",   -2.0, -2.0, -2.939, 0.0, 0.0, 1.0 ],
            [ "Tube #1, sphere", "sphere", -2.0, -2.0, -2.939, 0.0, 0.0, 1.0 ],
            ...
        ]

Output

The integration array contains a list of dimensions to be integrated. The options are spectral and temporal.

Note At this time disabling spectral integration is not an option (the output will always be spectrally integrated).

The units variable defines the units of the output radiometric quantity for the collectors. It can be assigned on of the following values:

  • radiance (flux per area, per solid angle)

  • irradiance (flux per area)

  • power (flux)

Usage

Input Simulation File

    "scene_list" : [
        { "inputs" : "./demo.scene" }
    ],
    "plugin_list" : [
        {
            "name" : "BasicAtmosphere",
            "inputs" : {
                "atmosphere_filename" : "./uniform.atm"
            }
        },
        {
            "name" : "PointCollectors",
            "inputs" : {
                "input_filename" : "./demo.json"
            }
        }
    ]
}]

Output Data File

The output file is an ASCII/Text file that includes a short header (lines starting with #) that summarize key inputs. This is followed by a series of lines, where each line contains the output of the collector set for a given time.

# DIRSIG5 'PointCollectors' plugin output file
# Generated on Wed Jan 9 14:20:43 2019
#
# Samples/collector: 10000
# Bandpass: 0.4 - 2.5 @ 0.02 (106 points)
# Time: 1 samples @ 0.1 second intervals
#
# Collectors:
#    Tube #1, hemi: [-2,-2,-2.939], [0,0,1]
#    Tube #1, sphere: [-2,-2,-2.939], [0,0,1]
#    Tube #2, hemi: [0,-2,-1.959], [0,0,1]
#    Tube #2, sphere: [0,-2,-1.959], [0,0,1]
#    Tube #3, hemi: [2,-2,-1.496], [0,0,1]
#    Tube #3, sphere: [2,-2,-1.496], [0,0,1]
#    Tube #4, hemi: [-2,0,-1.199], [0,0,1]
#    Tube #4, sphere: [-2,0,-1.199], [0,0,1]
#    Tube #5, hemi: [0,0,-0.979], [0,0,1]
#    Tube #5, sphere: [0,0,-0.979], [0,0,1]
#    Tube #6, hemi: [2,0,-0.799], [0,0,1]
#    Tube #6, sphere: [2,0,-0.799], [0,0,1]
#    Tube #7, hemi: [-2,2,-0.64], [0,0,1]
#    Tube #7, sphere: [-2,2,-0.64], [0,0,1]
#    Tube #8, hemi: [0,2,-0.489], [0,0,1]
#    Tube #8, sphere: [0,2,-0.489], [0,0,1]
#    Tube #9, hemi: [2,2,-0.325], [0,0,1]
#    Tube #9, sphere: [2,2,-0.325], [0,0,1]
#
# Output units: Radiance [W/cm^2/sr]
#
0.000,0.219,0.221,0.438,0.430,0.647,0.623,0.850,0.851,1.060,1.049,1.262,1.287,1.487,1.488,1.702,1.702,1.905,1.907,

Usage

To use the PointCollectors plugin in DIRSIG5, the user must use the newer JSON formatted simulation input file (referred to a JSIM file with a .jsim file extension). At this time, these files are hand-crafted (no graphical editor is available). An example is shown below:

[{
    "scene_list" : [
        { "inputs" : "./demo.scene" }
    ],
    "plugin_list" : [
        {
            "name" : "BasicAtmosphere",
            "inputs" : {
                "atmosphere_filename" : "./uniform.atm"
            }
        },
        {
            "name" : "PointCollectors",
            "inputs" : {
                "input_filename" : "./input.json"
            }
        }
    ]
}]