htrdr

Solving radiative transfer in heterogeneous media
git clone git://git.meso-star.fr/htrdr.git
Log | Files | Refs | README | LICENSE

htrdr-planets.1.in (27918B)


      1 .\" Copyright (C) 2018-2019, 2022-2025 Centre National de la Recherche Scientifique
      2 .\" Copyright (C) 2020-2022 Institut Mines Télécom Albi-Carmaux
      3 .\" Copyright (C) 2022-2025 Institut Pierre-Simon Laplace
      4 .\" Copyright (C) 2022-2025 Institut de Physique du Globe de Paris
      5 .\" Copyright (C) 2018-2025 |Méso|Star> (contact@meso-star.com)
      6 .\" Copyright (C) 2022-2025 Observatoire de Paris
      7 .\" Copyright (C) 2022-2025 Université de Reims Champagne-Ardenne
      8 .\" Copyright (C) 2022-2025 Université de Versaille Saint-Quentin
      9 .\" Copyright (C) 2018-2019, 2022-2025 Université Paul Sabatier
     10 .\"
     11 .\" This program is free software: you can redistribute it and/or modify
     12 .\" it under the terms of the GNU General Public License as published by
     13 .\" the Free Software Foundation, either version 3 of the License, or
     14 .\" (at your option) any later version.
     15 .\"
     16 .\" This program is distributed in the hope that it will be useful,
     17 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
     18 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     19 .\" GNU General Public License for more details.
     20 .\"
     21 .\" You should have received a copy of the GNU General Public License
     22 .\" along with this program. If not, see <http://www.gnu.org/licenses/>.
     23 .Dd October 2, 2025
     24 .Dt HTRDR-PLANETS 1
     25 .Os
     26 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     27 .\" Name and Short description
     28 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     29 .Sh NAME
     30 .Nm htrdr-planets
     31 .Nd simulate radiative transfer in 3D planetary atmosphere
     32 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     33 .\" Summary of options
     34 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     35 .Sh SYNOPSIS
     36 .Nm
     37 .Op Fl dfhNv
     38 .Op Fl a Ar aerosol_opt Ns Op : Ns Ar aerosol_opt No ...
     39 .Op Fl b Ar accel_struct_build_opt Ns Op : Ns Ar accel_struct_build_opt No ...
     40 .Op Fl C Ar persp_camera_opt Ns Op : Ns Ar persp_camera_opt No ...
     41 .Op Fl G Ar ground_opt Ns Op : Ns Ar ground_opt No ...
     42 .Op Fl i Ar image_opt Ns Op : Ns Ar image_opt No ...
     43 .Op Fl o Ar output
     44 .Op Fl P Ar ortho_camera_opt Ns Op : Ns Ar ortho_camera_opt No ...
     45 .Op Fl r Ar volrad_budget_opt Ns Op : Ns Ar volrad_budget_opt No ...
     46 .Op Fl S Ar source_opt Ns Op : Ns Ar source_opt No ...
     47 .Op Fl s Ar spectral_opt Ns Op : Ns Ar spectral_opt No ...
     48 .Op Fl t Ar thread_count
     49 .Fl g Ar gas_opt Ns Op : Ns Ar gas_opt No ...
     50 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     51 .\" Detailed description
     52 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     53 .Sh DESCRIPTION
     54 .Nm
     55 simulates the radiative transfer of a terrestrial planet in the visible
     56 or the infrared part of the spectrum.
     57 The planet's ground
     58 .Pq option Fl G
     59 can be any set of triangles with BRDFs and temperatures defined per
     60 triangle.
     61 The atmosphere is composed of a gas mixture
     62 .Pq option Fl g
     63 and a potentially empty set of aerosols
     64 .Pq option Fl a .
     65 Both can have arbitrary tetrahedral meshes with per-node radiative
     66 properties.
     67 Rayleigh is used as a gas phase function.
     68 The temperature of the gas is defined on the mesh nodes.
     69 Aerosol phase functions
     70 .Pq Henyey and Greenstein or user defined
     71 are also defined per node.
     72 .Pp
     73 .Nm
     74 is a renderer that calculates an image
     75 .Pq option Fl i
     76 for a given observation position
     77 .Pq option Fl C .
     78 In addition to rendering images, it can also be used to estimate the
     79 volumic radiative budget for a set of tetrehedra
     80 .Pq option Fl r .
     81 Its algorithms are based on Monte Carlo integration, which involves
     82 simulating a given number of optical paths for each estimate, taking
     83 into account light absorption and scattering phenomena.
     84 Thanks to the Monte Carlo,
     85 .Nm
     86 calculates not only the quantities of interest, but also their
     87 uncertainty
     88 .Pq standard deviation of the distribution of weights
     89 at no extra cost.
     90 .Pp
     91 .Nm
     92 offers three ways to perform spectral integration
     93 .Pq option Fl s .
     94 By default, it calculates an image for the visible part of the spectrum
     95 between 380 and 780 nanometers, for the three components of the CIE 1931
     96 XYZ color space which are then recombined to obtain the final color for
     97 each pixel.
     98 The other two methods are to explicitly define the longwave or shortwave
     99 spectral range to be integrated and continuously sample a wavelength in
    100 this range.
    101 In fact, longwave and shortwave are keywords that mean that the source
    102 of radiation is either internal or external to the medium, respectively.
    103 In shortwave, only radiance is evaluated and stored in the output image.
    104 For longwave rendering, this estimated radiance is then converted to
    105 brightness temperature and both are recorded in the image.
    106 .Pp
    107 In
    108 .Nm ,
    109 the spatial unit 1.0 corresponds to one meter and temperatures are
    110 expressed in Kelvin.
    111 The estimated radiances are given in W/sr/m^2, except for monochromatic
    112 calculations where the calculated spectral radiance is defined in
    113 W/sr/m^2/nm.
    114 Finally, the estimated volumic radiative budgets is given in W/m^3.
    115 .Pp
    116 .Nm
    117 implements mixed parallelism.
    118 On a single computer
    119 .Pq that is, a node ,
    120 it uses shared memory parallelism while it relies on Message Passing
    121 Interface (MPI) to parallelize calculations between multiple nodes.
    122 .Nm
    123 can therefore be launched either directly or via a process
    124 launcher such as
    125 .Xr mpirun 1
    126 to distribute the rendering on several computers.
    127 .Pp
    128 The options are as follows:
    129 .Bl -tag -width Ds
    130 .It Fl a Ar aerosol_opt Ns Op : Ns Ar aerosol_opt No ...
    131 Define an aerosol.
    132 Use this option once per aerosol, and duplicate it as many times as
    133 necessary.
    134 .Pp
    135 The aerosol options are as follows:
    136 .Bl -tag -width Ds
    137 .It Cm mesh= Ns Ar volume_mesh
    138 Aerosol tetrahedral mesh saved in
    139 .Xr smsh 5
    140 format.
    141 .It Cm name= Ns Ar string
    142 Name assigned to the aerosol.
    143 .It Cm radprop= Ns Ar radiative_properties
    144 Radiatve properties of the aerosol saved in
    145 .Xr sars 5
    146 format.
    147 Radiative properties are defined per volumetric mesh node.
    148 This file and the tetrahedral mesh
    149 .Pq option Cm mesh
    150 must therefore be consistent with each other, i.e. the nodes must be
    151 listed in the same order.
    152 .It Cm phasefn= Ns Ar phase_functions_list
    153 List in
    154 .Xr rnsl 5
    155 format of phase functions to be loaded.
    156 Each phase function is saved in
    157 .Xr rnsf 5
    158 format.
    159 The correspondence between these phase functions and the nodes of the
    160 volumetric mesh is defined in another file
    161 .Pq option Cm phaseids .
    162 .It Cm phaseids= Ns Ar per_node_phase_function
    163 Path to the
    164 .Xr rnpfi 5
    165 file that stores the index of the phase function to be used per
    166 volumetric mesh node.
    167 The list of phase function is defined in another file
    168 .Pq option Cm phasefn .
    169 Note that this file and the tetrahedral mesh
    170 .Pq option Cm mesh
    171 must be consistent with each other, i.e. the nodes must be
    172 listed in the same order.
    173 .El
    174 .It Fl b Ar accel_struct_build_opt Ns Op : Ns Ar accel_struct_build_opt No ...
    175 Configure the building of the acceleration structures.
    176 .Pp
    177 The acceleration structures building options are as follows:
    178 .Bl -tag -width Ds
    179 .It Cm def= Ns Ar definition
    180 Advice on the definition of the atmospheric acceleration structures.
    181 Default is @HTRDR_PLANETS_ARGS_DEFAULT_GRID_DEFINITION_HINT@.
    182 .It Cm nthreads= Ns Ar threads_count
    183 Advice on the number of threads to use.
    184 This number is different from that defined by the
    185 .Fl t
    186 option, as the construction of acceleration structures is not based on
    187 the same parallelization model as Monte Carlo integration.
    188 This construction may not benefit from too many threads, on the
    189 contrary.
    190 .Pp
    191 The default value is 8, i.e. a maximum of 8 threads are used to build
    192 acceleration structures.
    193 .It Cm proc= Ns Ar processes
    194 This option is only used when
    195 .Nm
    196 is run with multiple processes
    197 .Pq see Xr mpirun 1 .
    198 It defines the processes that must build the acceleration structures.
    199 .Pp
    200 The value
    201 .Cm all
    202 means that all processes build their own set of acceleration structures.
    203 This is the de facto configuration when no storage is used
    204 .Po
    205 i.e. the
    206 .Cm storage
    207 parameter is not set
    208 .Pc .
    209 .Pp
    210 If acceleration structure storage is defined
    211 .Pq Cm storage No parameter ,
    212 a value of
    213 .Cm all
    214 should only be used if each process has its own disk space on which its
    215 own set of acceleration structures is stored.
    216 If processes share a common disk space, the value should be
    217 .Cm master .
    218 This means that only the main process builds the acceleration
    219 structures, which are in fine shared with the other processes by
    220 storing the saved acceleration structures on a common disk space.
    221 .Pp
    222 The default value is
    223 .Cm master .
    224 .It Cm storage= Ns Ar accel_struct_file
    225 File where atmospheric acceleration structures are stored/loaded.
    226 .Pp
    227 If
    228 .Ar accel_struct_file
    229 does not exist, it is created and is used to store the built
    230 acceleration structures.
    231 .Pp
    232 If
    233 .Ar accel_struct_file
    234 exists, acceleration structures are loaded from it rather than built
    235 from scratch, resulting in significant acceleration of the preprocessing
    236 step.
    237 Note that if the data structures stored in
    238 .Ar accel_struct_file
    239 are not as expected (that is, the input atmospheric data or construction
    240 parameters are different), an error is notified and execution is
    241 stopped, thus avoiding the use of incorrect acceleration structures.
    242 .Pp
    243 By default, no storage file is used, i.e. acceleration structures are
    244 built from scratch and stored in memory.
    245 .It Cm tau= Ns Ar optical_thickness
    246 Optical thickness used as threshold criterion for building the
    247 acceleration structures.
    248 Default is @HTRDR_PLANETS_ARGS_DEFAULT_OPTICAL_THICKNESS_THRESHOLD@.
    249 .El
    250 .It Fl C Ar persp_camera_opt Ns Op : Ns Ar persp_camera_opt No ...
    251 Set up a pinhole or thin-lens perspective camera.
    252 .Pp
    253 The options for a perspective camera are as follows:
    254 .Bl -tag -width Ds
    255 .It Cm focal-dst= Ns Ar distance
    256 Distance to focus on with a thin lens camera, that is, a camera whose
    257 .Cm lens-radius
    258 is not zero.
    259 The default focal distance is
    260 @HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOCAL_DST@ meters.
    261 .It Cm focal-length= Ns Ar length
    262 Focal length of a camera lens.
    263 It is another way to control the field of view of a thin lens camera.
    264 By default, the field of view is set through the
    265 .Cm fov
    266 parameter.
    267 .It Cm fov= Ns Ar angle
    268 Vertical field of view of the camera in
    269 ]@HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MIN@,
    270 @HTRDR_ARGS_CAMERA_PERSPECTIVE_FOV_EXCLUSIVE_MAX@[ degrees.
    271 The default field of view is
    272 @HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_FOV@ degrees.
    273 .It Cm lens-radius= Ns Ar radius
    274 Radius of the camera lens.
    275 A non-zero radius means that the camera is a thin lens camera while a
    276 zero radius defines a pinhole camera.
    277 The default lens radius is
    278 @HTRDR_ARGS_DEFAULT_CAMERA_PERSPECTIVE_LENS_RADIUS@.
    279 .It Cm pos= Ns Ar x , Ns Ar y , Ns Ar z
    280 Camera position.
    281 Default is @HTRDR_ARGS_DEFAULT_CAMERA_POS@.
    282 .It Cm tgt= Ns Ar x , Ns Ar y , Ns Ar z
    283 Targeted position
    284 Default is @HTRDR_ARGS_DEFAULT_CAMERA_TGT@.
    285 .It Cm up= Ns Ar x , Ns Ar y , Ns Ar z
    286 Upward vector that the top of the camera is pointing towards.
    287 Default is @HTRDR_ARGS_DEFAULT_CAMERA_UP@.
    288 .El
    289 .It Fl d
    290 Write atmospheric acceleration structures to
    291 .Ar output .
    292 Each structure is saved in legacy VTK format.
    293 To divide the resulting output into N files
    294 .Pq N > 1 ,
    295 each storing an acceleration structure, one can use the
    296 .Xr csplit 1
    297 command as below:
    298 .Bd -literal -offset Ds
    299 csplit -f octree -k output %^#\\ vtk% /^#\\ vtk/ \\
    300        {$(($(grep -ce "^# vtk" output)-2))}
    301 .Ed
    302 .It Fl f
    303 Force overwriting of
    304 .Ar output
    305 file.
    306 .It Fl G Ar ground_opt Ns Op : Ns Ar ground_opt No ...
    307 The planet's ground.
    308 .Pp
    309 The ground options are as follows:
    310 .Bl -tag -width Ds
    311 .It Cm brdf= Ns Ar brdfs_list
    312 List in
    313 .Xr rnsl 5
    314 format of the BRDFs to be loaded.
    315 Each BRDF is saved in
    316 .Xr mrumtl 5
    317 format.
    318 The correspondence between these BRDFs and the triangles of the surface
    319 mesh is defined in another file
    320 .Pq option Cm prop .
    321 .It Cm mesh= Ns Ar surface_mesh
    322 Ground triangular mesh saved in
    323 .Xr smsh 5
    324 format.
    325 .It Cm name= Ns Ar string
    326 Name assigned to the ground.
    327 .It Cm prop= Ns Ar surface_properties
    328 Ground surface properties, i.e. BRDF index and temperature, both defined
    329 by triangle.
    330 The list of BRDF is defined in another file
    331 .Pq option Cm brdf .
    332 Note that this file and the surface mesh must be consistent
    333 .Pq option Cm mesh ,
    334 i.e. the triangles must be listed in the same order.
    335 .El
    336 .It Fl g Ar gas_opt Ns Op : Ns Ar gas_opt No ...
    337 Gas mixture.
    338 .Pp
    339 The gas options are as follows:
    340 .Bl -tag -width Ds
    341 .It Cm mesh= Ns Ar volumetric_mesh
    342 Gas tetrahedral mesh saved in
    343 .Xr smsh 5
    344 format.
    345 .It Cm ck= Ns Ar correlated_k
    346 Correlated K fof the gas saved in
    347 .Xr sck 5
    348 format.
    349 The correlated K are defined per volumetric mesh node.
    350 This file and the tetrahedral mesh
    351 .Pq option Cm mesh
    352 must therefore be consistent with each other, i.e. the nodes must be
    353 listed in the same order.
    354 .It Cm temp= Ns Ar temperature
    355 Gas temperatures saved in
    356 .Xr rngt 5
    357 format.
    358 The temperature is defined per volumetric mesh node.
    359 This file and the tetrahedral mesh
    360 .Pq option Cm mesh
    361 must therefore be consistent with each other, i.e. the nodes must be
    362 listed in the same order.
    363 .El
    364 .It Fl h
    365 Display short help and exit.
    366 .It Fl i Ar image_opt Ns Op : Ns Ar image_opt No ...
    367 Configure sensor image.
    368 .Pp
    369 The image options are as follows:
    370 .Bl -tag -width Ds
    371 .It Cm def= Ns Ar width Ns x Ns Ar height
    372 Image definition.
    373 Default is
    374 @HTRDR_ARGS_DEFAULT_IMG_WIDTH@x@HTRDR_ARGS_DEFAULT_IMG_HEIGHT@.
    375 .It Cm spp= Ns Ar samples_per_pixel
    376 Number of samples to solve the Monte Carlo estimation of each pixel.
    377 Default is @HTRDR_ARGS_DEFAULT_IMG_SPP@.
    378 .El
    379 .It Fl N
    380 Precalculate tetrahedron normals.
    381 This speeds up runtime performance by calculating normals once and for
    382 all rather than re-evaluating them every time a tetrahedron is queried
    383 at a given position.
    384 In return, the memory space used to store normals increases the memory
    385 footprint.
    386 .It Fl o Ar output
    387 Output file.
    388 If not defined, data is written to standard output.
    389 .It Fl P Ar ortho_camera_opt Ns Op : Ns Ar ortho_camera_opt No ...
    390 Set up an orthographic camera.
    391 .Pp
    392 The options for an orthographic camera are as follows:
    393 .Bl -tag -width Ds
    394 .It Cm height= Ns Ar lenght
    395 Image plane height.
    396 Its width is calculated from this length and the image ratio
    397 to guarantee square pixels
    398 .Pq see Fl i No option .
    399 .It Cm pos= Ns Ar x , Ns Ar y , Ns Ar z
    400 Camera position.
    401 Default is @HTRDR_ARGS_DEFAULT_CAMERA_POS@.
    402 .It Cm tgt= Ns Ar x , Ns Ar y , Ns Ar z
    403 Targeted position.
    404 Default is @HTRDR_ARGS_DEFAULT_CAMERA_TGT@.
    405 .It Cm up= Ns Ar x , Ns Ar y , Ns Ar z
    406 Upward vector that the top of the camera is pointing towards.
    407 Default is @HTRDR_ARGS_DEFAULT_CAMERA_UP@.
    408 .El
    409 .It Fl r Ar volrad_budget_opt Ns Op : Ns Ar volrad_budget_opt No ...
    410 Define the calculation of the volumic radiative budget.
    411 Calculation is no longer a rendering:
    412 neither a camera
    413 .Pq option Fl C
    414 nor an image
    415 .Pq option Fl i
    416 is required.
    417 .Pp
    418 The volumic radiative budget options are as follows:
    419 .Bl -tag -width Ds
    420 .It Cm mesh= Ns Ar volume_mesh
    421 Tetrahedral mesh in
    422 .Xr smsh 5
    423 format on which the volumic radiative budget is estimated per
    424 tetrahedron.
    425 .It Cm spt= Ns Ar samples_per_tetrahedron
    426 Number of samples to estimate the volumic radiative budget of each
    427 tetrahedron.
    428 Default is @HTRDR_PLANETS_ARGS_DEFAULT_VOLRAD_BUDGET_SPT@.
    429 .El
    430 .It Fl S Ar source_opt Ns Op : Ns Ar source_opt No ...
    431 Define the external source.
    432 .Pp
    433 The source options are as follows:
    434 .Bl -tag -width Ds
    435 .It Cm lat= Ns Ar latitude
    436 The latitude of the source, i.e. its angle between
    437 .Bq -90, 90
    438 degrees about the Y axis.
    439 The default latitude of 0 is that of the X axis.
    440 .It Cm lon= Ns Ar longitude
    441 The longitude of the source, i.e. its angle between [-180, 180] degrees
    442 about the Z axis.
    443 The default longitude of 0 is that of the X axis.
    444 .It Cm dst= Ns Ar distance
    445 Distance in kilometers from source to origin.
    446 Default is 0.
    447 .It Cm rad= Ns Ar radiance_distribution
    448 Source radiance distribution saved in
    449 .Xr rnrl 5
    450 format.
    451 This option is not compatible with the temperature setting of the source
    452 .Pq option Cm temp
    453 which also defines its radiance distribution.
    454 .It Cm radius= Ns Ar real
    455 Source radius in kilometers.
    456 .It Cm temp= Ns Ar temperature
    457 Source temperature in Kelvin.
    458 When this option is set, the radiance distribution of the source is
    459 Planck, at the specified temperature.
    460 This option is not compatible with the
    461 .Cm rad
    462 option that explicitly defines the source radiance distribution.
    463 .El
    464 .It Fl s Ar spectral_opt Ns Op : Ns Ar spectral_opt No ...
    465 Configure spectral integration.
    466 .Pp
    467 The spectral integration options are as follows:
    468 .Bl -tag -width Ds
    469 .It Cm cie_xyz
    470 Calculate the radiance for the visible part of the spectrum between
    471 .Bq 380, 780
    472 nanometers using the XYZ CIE 1931 color matching functions.
    473 This is the default behavior.
    474 .It Cm lw= Ns Ar wlen_min , Ns Ar wlen_max
    475 Calculate the radiance using the internal source of radiation, i.e. the
    476 radiance emitted by the medium and its boundaries (ground and space).
    477 .Pp
    478 Calculations are performed between
    479 .Bq Ar wlen_min ,  Ar wlen_max
    480 nanometers according to Planck's function for a reference temperature
    481 defined as the maximum ground temperature.
    482 .Pp
    483 If
    484 .Ar wlen_min
    485 and
    486 .Ar wlen_max
    487 are equal, the calculation is monochromatic.
    488 .It Cm sw= Ns Ar wlen_min , Ns Ar wlen_max
    489 Calculate the radiance using the external source of radiance
    490 .Pq option Fl S .
    491 .Pp
    492 Calculations are performed between
    493 .Bq Ar wlen_min ,  Ar wlen_max
    494 nanometers according to the radiance distribution of the external
    495 source
    496 .Pq see Fl S No option
    497 .Pp
    498 If
    499 .Ar wlen_min
    500 and
    501 .Ar wlen_max
    502 are equal, the calculation is monochromatic.
    503 .El
    504 .It Fl t Ar thread_count
    505 Advice on the number of threads to use.
    506 By default,
    507 .Nm
    508 uses many threads as processor cores.
    509 .It Fl v
    510 Make
    511 .Nm
    512 verbose.
    513 .El
    514 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    515 .\" Output data
    516 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    517 .Sh OUTPUT DATA
    518 The output of
    519 .Nm
    520 depends on the type of calculation invoked.
    521 This section describes the nature and layout of these output data.
    522 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    523 .Ss XYZ image
    524 For an image rendering in the visible part of the spectrum
    525 .Pq default behavior or option Fl s Cm cie_xyz ,
    526 the output is an
    527 .Xr htrdr-image 5
    528 whose pixel components store 4 estimates.
    529 .Pp
    530 The first, second, and third pairs of floating point values encode the
    531 estimated integrated radiance in W/sr/m^2 for the X, Y, and Z components
    532 of the CIE 1931 XYZ color space.
    533 The first value of each pair is the expected value of the
    534 average radiance of the pixel.
    535 The second value is its associated standard deviation.
    536 .Pp
    537 The fourth and final pair records the microsecond estimate of the
    538 computation time per radiative path and its standard error.
    539 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    540 .Ss Longwave image
    541 For infrared calculations
    542 .Pq option Fl s Cm lw= Ns Ar wlen_min , Ns Ar wlen_max
    543 the output is an
    544 .Xr htrdr-image 5
    545 whose first and second pixel components store the expected value and the
    546 standard error of the estimated brightness temperature
    547 .Pq in K ,
    548 respectively.
    549 .Pp
    550 The third and fourth components record the expected value and the
    551 standard deviation of the pixel radiance which is either an integrated
    552 radiance in W/sr/m^2 or a spectral radiance in W/sr/m^2/nm depending on
    553 whether this radiance was calculated for a spectral range or at a single
    554 wavelength.
    555 .Pp
    556 The fifth and sixth pixel components are not used.
    557 .Pp
    558 Finally, the last 2 components of the pixel record the estimate in
    559 microseconds of the computation time per radiative path and its standard
    560 error.
    561 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    562 .Ss Shortwave image
    563 For shortwave calculations
    564 .Pq option Fl s Cm sw= Ns Ar wlen_min , Ns Ar wlen_max
    565 the output is an
    566 .Xr htrdr-image 5
    567 formatted as for a longwave image except that the first and second
    568 components of the pixels are not used, as no brightness temperature has
    569 been evaluated.
    570 That is, the third and fourth values record the estimated radiance per
    571 pixel and the seventh and eighth values store the estimate of the
    572 calculation time by radiative path.
    573 The other values are set to 0.
    574 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    575 .Ss Volumic Radiative Budget
    576 For volumic radiative budget
    577 .Pq option Fl r
    578 the output is a list of 15 ASCII values per line, with as many lines as
    579 there are tetrahedra in the volume mesh as an argument to the
    580 .Fl r
    581 option.
    582 The lines follow the order of the input meshes.
    583 .Pp
    584 The total radiative volumic budget is decomposed into its direct and
    585 diffuse components.
    586 For each component
    587 .Pq total, direct and diffuse parts ,
    588 the following information is recorded: the average
    589 .Bq W/m^3 ,
    590 the associated standard deviation
    591 .Bq W/m^3 ,
    592 the sum of Monte Carlo weights and the sum of squared weights.
    593 The purpose of these last two values is to help calculate the expected value
    594 and the standard deviation of the volumic radiative budget for a set of
    595 tetrahedra.
    596 .Pp
    597 After these 12 values, the total number of realisations is recorded.
    598 .Pp
    599 Finally, the last two values are the estimate and associated standard
    600 error of the calculation time per radiative path.
    601 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    602 .\" Returned status
    603 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    604 .Sh EXIT STATUS
    605 .Ex -std
    606 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    607 .\" Examples of use
    608 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    609 .Sh EXAMPLES
    610 An
    611 .Nm
    612 command line can be lengthy due to the options required to describe the
    613 system to be simulated.
    614 For editing reasons, the command lines given as examples in this section
    615 will take up several lines by using the backslash character
    616 .Pq Li \e .
    617 While there's nothing original about this practice, we'd like to
    618 emphasize the importance of spaces or their absence before the backslash
    619 character, particularly for options defining aerosols
    620 .Pq option Fl a
    621 or ground
    622 .Pq option Fl G :
    623 their argument must be a single character string with no spaces other
    624 than those that may be required for file names.
    625 .Pp
    626 The following command line runs
    627 .Nm
    628 in a verbose way
    629 .Pq option Fl v
    630 to calculate an
    631 .Ar 800 No by Ar 600
    632 pixel image by sampling
    633 .Ar 64
    634 radiative paths per pixel
    635 .Pq option Fl i
    636 for the 3 components of the CIE 1931 XYZ color
    637 space
    638 .Pq option Fl s .
    639 The external source is positioned at
    640 .Ar -45
    641 degrees longitude and
    642 .Ar 50
    643 degrees latitude relative to the absolute referential
    644 .Pq option Fl S .
    645 The camera
    646 .Pq option Fl C
    647 looks at the origin
    648 .Pq Cm tgt= Ns Ar 0 , Ns Ar 0 , Ns Ar 0
    649 and is positioned at
    650 .Ar 1.5e7
    651 meters along the Y axis with an image plane aligned along the Z axis
    652 .Pq Cm up= Ns Ar 0 , Ns Ar 0 , Ns Ar 1 .
    653 Its vertical field of view is
    654 .Ar 70
    655 degrees.
    656 The gas of the planetary atmosphere is described by the tetrahedral mesh
    657 recorded in the
    658 .Pa gas.smsh
    659 file, while its spectral data and temperature are given by the files
    660 .Pa gas.sck
    661 and
    662 .Pa gas.rngt ,
    663 respectively.
    664 Two aerosols complete the planetary atmosphere: one for
    665 .Ar clouds
    666 and one for
    667 .Ar haze .
    668 Their respective meshes are stored in the
    669 .Pa clouds_tetrahedra.smsh No and Pa haze_tetrahedra.smsh
    670 files while their radiative properties are given by the
    671 .Pa clouds_properties.sars No and Pa haze_properties.sars
    672 files.
    673 Finally, their phase functions are described by a set of 2 files: the
    674 .Pa clouds_phase_functions.rnsf No and Pa haze_phase_functions.rnsf
    675 files which list the aerosol phase functions,
    676 and the
    677 .Pa clouds_phase_function_ids.rnpfi No and Pa haze_phase_function_ids.rnpfi
    678 files which reference them by volumetric mesh node.
    679 To speed up rendering time, the normals of the tetrahedral meshes of
    680 the gas and aerosols are precalculated once and for all
    681 .Pq option Fl N .
    682 The ground geometry is stored in the
    683 .Pa ground_triangles.smsh
    684 file with its triangle properties
    685 .Pq temperature and BRDF
    686 defined in the
    687 .Pa ground_properties.rnsp
    688 file.
    689 The referenced BRDFs are listed in the
    690 .Pa ground_brdfs.rnsl
    691 file.
    692 The definition of acceleration structures
    693 cannot exceed
    694 .Ar 512^3
    695 and its voxels can be merged until their optical thickness
    696 is greater than
    697 .Ar 10 .
    698 These structures are either reloaded from
    699 .Pa storage_cie.bin
    700 or built from scratch and stored in
    701 .Pa storage_cie.bin
    702 depending on whether that file exists or not.
    703 Finally, the calculated images are
    704 stored in the
    705 .Pa image_CIE_XYZ.ht
    706 file even if the file already exists
    707 .Pq options Fl fo :
    708 .Bd -literal -offset Ds
    709 htrdr-planets -v -N \\
    710               -i def=800x600:spp=64 \\
    711               -s cie_xyz \\
    712               -S lon=-45:lat=50:dst=1.5e8:radius=6.9e5:temp=5778 \\
    713               -C pos=0,1.5e7,0:tgt=0,0,0:up=0,0,1:fov=70 \\
    714               -g mesh=gas.smsh:ck=gas.sck:temp=gas.rngt \\
    715               -a name=clouds\\
    716 :mesh=clouds_tetrahedra.smsh\\
    717 :radprop=clouds_properties.sars\\
    718 :phasefn=clouds_phase_functions.rnsf\\
    719 :phaseids=clouds_phase_function_ids.rnpfi \\
    720               -a name=haze\\
    721 :mesh=haze_tetrahedra.smsh\\
    722 :radprop=haze_properties.sars\\
    723 :phasefn=haze_phase_functions.rnsf\\
    724 :phaseids=haze_phase_function_ids.rnpfi \\
    725               -G name=namek\\
    726 :mesh=ground_triangles.smsh\\
    727 :prop=ground_properties.rnsp\\
    728 :brdf=ground_brdfs.rnsl \\
    729               -b def=512:tau=10:storage=storage_cie.bin \\
    730               -fo image_CIE_XYZ.ht
    731 .Ed
    732 .Pp
    733 The next command line is the same as the previous one, except that it calculates
    734 an infrared image between
    735 .Ar 10,000
    736 nm and
    737 .Ar 20,000
    738 nm
    739 .Pq option Fl s .
    740 Note that the acceleration structure storage file is no longer the same
    741 .Pq Pa storage_lw.bin No rather than Pa storage_cie.bin .
    742 Indeed, the previous one records the acceleration structures for the
    743 spectral range of the CIE 1931 XYZ color space
    744 .Pq i.e. between Bo 380, 780 Bc nm ,
    745 while one wants to store/reload the acceleration structures for a
    746 spectral range between 10 and 20 microns.
    747 In any case, if the previous storage had been submitted, the command
    748 would have stopped with an error message, thus avoiding the use of the
    749 wrong acceleration structures:
    750 .Bd -literal -offset Ds
    751 htrdr-planets -v -N \\
    752               -i def=800x600:spp=64 \\
    753               -s lw=10000,20000 \\
    754               -C pos=0,1.5e7,0:tgt=0,0,0:up=0,0,1:fov=70 \\
    755               -g mesh=gas.smsh:ck=gas.sck:temp=gas.rngt \\
    756               -a name=clouds\\
    757 :mesh=clouds_tetrahedra.smsh\\
    758 :radprop=clouds_properties.sars\\
    759 :phasefn=clouds_phase_functions.rnsf\\
    760 :phaseids=clouds_phase_function_ids.rnpfi \\
    761               -a name=haze\\
    762 :mesh=haze_tetrahedra.smsh\\
    763 :radprop=haze_properties.sars\\
    764 :phasefn=haze_phase_functions.rnsf\\
    765 :phaseids=haze_phase_function_ids.rnpfi \\
    766               -G name=namek\\
    767 :mesh=ground_triangles.smsh\\
    768 :prop=ground_properties.rnsp\\
    769 :brdf=ground_brdfs.rnsl \\
    770               -b def=512:tau=10:storage=storage_lw.bin \\
    771               -fo image_infrared.ht
    772 .Ed
    773 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    774 .\" References
    775 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    776 .Sh SEE ALSO
    777 .Xr htrdr-image 5 ,
    778 .Xr mrumtl 5 ,
    779 .Xr rngt 5 ,
    780 .Xr rnpfi 5 ,
    781 .Xr rnrl 5 ,
    782 .Xr rnsf 5 ,
    783 .Xr sars 5 ,
    784 .Xr sck 5 ,
    785 .Xr smsh 5
    786 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    787 .\" Used and implemented standards
    788 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    789 .Sh STANDARDS
    790 .Rs
    791 .%A International Organization for Standardization / CIE
    792 .%R ISO/CIE 11664-1:2019
    793 .%D June 2019
    794 .%T Colorimetry - Part 1: CIE standard colorimetric observers
    795 .Re
    796 .Pp
    797 .Rs
    798 .%A OpenMP Architecture Review Board
    799 .%D March 2002
    800 .%T OpenMP C and C++ Application Interface
    801 .%O version 2.0
    802 .Re
    803 .Pp
    804 .Rs
    805 .%A Message Passing Interface Forum
    806 .%D July 1997
    807 .%T MPI-2: Extensions to The Message-Passing Interface
    808 .Re
    809 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    810 .\" Brief implementation history
    811 .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    812 .Sh HISTORY
    813 .Nm
    814 has been developed as part of
    815 .Li ANR-21-CE49-0020
    816 RaD-net project.