-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtemplate.yml
More file actions
78 lines (78 loc) · 8.01 KB
/
template.yml
File metadata and controls
78 lines (78 loc) · 8.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
light:
temperature: 5782.0 # [K]
radius: 6.95E8 # [m]
body:
radius: 1737400.0 # [m]
albedo: 0.12 # [-]
albedo_type: normal # ['bond'/'geometric'/'normal']
maps:
#albedo: {filename: moon/lroc_cgi/lroc_color_poles_2k.tif, depth: 8.0, domain: [0.16, 0.4], gamma: 2.8} # Albedo map
albedo: {filename: moon/lroc_cgi/lroc_color_poles_2k.tif, depth: 8.0, domain: [0.12, 0.48], gamma: 2.8} # Albedo map
displacement: {filename: moon/ldem_4.tif, depth: 1, scale: 1000.0} # Displacement map (BW = -+)
normal: {filename: moon/Moon_LRO_LOLA_NBM_Global_4ppd_pizzetti2025.tif, depth: 32.0, frame: body} # Normal map (RGB = XYZ)
horizon: {filename: moon/Moon_LRO_LOLA_HM_Global_4ppd_pizzetti2025.tif, depth: 1} # Horizon map (BW = 0-1)
#radiometry: {model: lambert} # Lambert reflection
#radiometry: {model: oren, roughness: 0.5} # Oren-Nayar reflection (rough surfaces)
#radiometry: {model: specular, shininess: 1.0} # Specular reflection (shiny surfaces)
#radiometry: {model: phong, shininess: 1.0, weight_lambert: 0.5, weight_specular: 2.0} # Phong reflection (blend of Lambert and Specular)
radiometry: {model: hapke, parameters: [0.25, 0.3, 0, 1, 2.2, 0.07, 0.4129, 0]} # Hapke reflection (Ideal for the Moon) [b_HG, c_HG, B0_CBOE, h_CBOE, B0_SHOE, h_SHOE, roughness, filling_factor]
camera:
exposure_time: 3E-3 # [s]
focal_length: 0.105 # [m]
f_number: 4.0 # [-]
pixel_width: 5.5E-6 # [m]
resolution: [1024.0, 1024.0] # [px] Horizontal and vertical dimensions of pixel array
full_well_capacity: 100000.0 # [e-]
gain_analog2digital: 0.6553 # [DN/e-]
amplification: 0 # [dB] digital amplification
offset: 0 # [DN] image offset
quantum_efficiency: {lambda_min: [4.25E-7, 4.75E-7, 5.25E-7, 5.75E-7, 6.25E-7, 6.75E-7, 7.25E-7, 7.75E-7, 8.25E-7, 8.75E-7, 9.25E-7, 9.75E-7], # [m] Detector wavebands lower limits
lambda_max: [4.75E-7, 5.25E-7, 5.75E-7, 6.25E-7, 6.75E-7, 7.25E-7, 7.75E-7, 8.25E-7, 8.75E-7, 9.25E-7, 9.75E-7, 1.025E-6], # [m] Detector wavebands upper limits
values: [0.35, 0.43, 0.46, 0.45, 0.42, 0.37, 0.3, 0.23, 0.16, 0.09, 0.04, 0.02], # [-]
sampling: piecewise} # Sampling method ['piecewise'/'midpoint']
transmittance: {lambda_min: [4.25E-7, 4.75E-7, 5.25E-7, 5.75E-7, 6.25E-7, 6.75E-7, 7.25E-7, 7.75E-7, 8.25E-7, 8.75E-7, 9.25E-7, 9.75E-7], # [m] Detector wavebands lower limits
lambda_max: [4.75E-7, 5.25E-7, 5.75E-7, 6.25E-7, 6.75E-7, 7.25E-7, 7.75E-7, 8.25E-7, 8.75E-7, 9.25E-7, 9.75E-7, 1.025E-6], # [m] Detector wavebands upper limits
values: [0.41, 0.687, 0.915, 0.954, 0.967, 0.977, 0.979, 0.982, 0.984, 0.987, 0.989, 0.992], # [-]
sampling: piecewise} # Sampling method ['piecewise'/'midpoint']
noise: {aberration: {flag: false, coefficients: [0 0 3], polychromatic: false}, # Zernike coefficients as RMS of diffraction wave (OSA/ANSI). [tiltX, tiltY, defocus, astig45, astig0, comaY, comaX, trefoilY, trefoilX]. Pass [] for diffraction-limited (all zeros). Set polychromatic to compute a different PSF for each waveband.
smearing: {flag: false, readout_time: 1E-6, direction: up}, # Smearing Noise. Readout time is the time to read the pixel array. Reading direction can be up or down
blooming: {flag: false, alpha: 0.05, beta: 0.02}, # Blooming occurs at saturation and cause photon leakage of saturated pixels to neighboring pixels. Alpha controls the percentage of excess to distribute and beta the offset wrt fwc after which where leakage start
shot: {flag: false, seed: 2}, # Shot Noise
prnu: {flag: false, sigma: 0.02, seed: 3}, # Photo-Response Non-Uniformity multiplicative standard deviation [%]
dark: {flag: false, sigma: 1.3245, mean: 590, seed: 1}, # Dark Current multiplicative standard deviation [%] and mean [e-/s]
smearing: {flag: false, time_readout: 1E-6}} # Smear readout time [s]
readout: {flag: false, sigma: 100, seed: 4}} # Readout Noise standard deviation [e-]
scene:
pos_body2light_IAU: # [m] Position of light with respect to body in body-fixed IAU frame
- [1.042258402256167e11]
- [-1.073149437372658e11]
- [0.0]
pos_body2cam_IAU: # [m] Position of camera with respect to body in body-fixed IAU frame
- [100000000]
- [0.0]
- [0.0]
q_IAU2CAM: # [-] Orientation of camera frame with respect body-fixed IAU frame
- [0.5]
- [-0.5]
- [-0.5]
- [0.5]
setting:
#general: {parallelization: false, verbose: false} # Single-thread parallelization
general: {parallelization: true, workers: auto, verbose: false} # Multi-thread parallelization with specified number of workers
#discretization: {method: fixed, number_points: 2e5} # Fixed discretization with specified number of points
discretization: {method: adaptive, accuracy: low} # Adaptive discretization with ['high','medium','low', number_points_per_px] degree of accuracy
#sampling: {method: uniform} # Uniform longitude/latitude sampling
#sampling: {method: concentrated} # Nadir-Concentrated longitude/latitude sampling
#sampling: {method: projecteduniform} # Projected-uniform longitude/latitude sampling
sampling: {method: auto} # Automatically choose between the three
#culling: {occlusion_method: depthbuffer} # Shadow occlusion based on depthbuffer
#culling: {occlusion_method: raytracing, occlusion_algorithm: sampling} # Shadow occlusion based on logspace or linspace sampling
culling: {occlusion_method: raytracing, occlusion_algorithm: iterative} # Shadow occlusion based on raymarching (default)
#integration: {method: integral} # Normal integration (slow)
#integration: {method: trapz, number_points: 10.0} # Trapz integration with specified number of integration points (fast)
integration: {method: constant} # Constant integration of BRDF (fastest)
#gridding: {method: sum} # Sum of the point values falling into the same pixel.
gridding: {method: weightedsum, algorithm: gaussian} # Weighted sum of the point values falling into the same pixel with an ['area','diff','invsquared'] weighting algorithm on the neighboring pixels within a given pixel shift window
#reconstruction: {granularity: 1.0} # Nominal grid, no reconstruction filter
reconstruction: {granularity: auto, filter: bilinear, antialiasing: true} # Grid upsampled up to the specified granularity, then resized to nominal size with a ['nearest','bilinear','bicubic','lanczos2','lanczos3','gaussian','osculatory'] reconstruction filter
saving: {filename: example, format: png, depth: 16} # Image saving with a specified bit depth, filename and format