A Novel and Open-Source Illumination Correction for Hyperspectral Digital Outcrop Models

The widespread application of drones and associated miniaturization of imaging sensors has led to an explosion of remote sensing applications with very high spatial and spectral resolutions. The 3-D ultrahigh-resolution digital outcrop models created using drones and oblique imagery from ground-based sensors are now commonly used in the academic and industrial sectors, while the generation of spatially accurate models has been greatly facilitated by the development of computer vision tools, such as structure from motion, and the correction of spectral attributes to achieve material reflectance measurements remains challenging. Following the development of a topographical correction toolbox (mephysto), we now propose a series of new tools that can leverage the detailed geometry captured by digital outcrop models to correct for illumination effects caused by oblique viewing angles and the interaction of light with complex 3-D surfaces. This open-source code is integrated into hylite, a python toolbox for the full 3-D processing and fusion of digital outcrop models with hyperspectral imaging data. We validate the performance of our novel method using a case study at an open-pit mine in Tharsis, Spain, and demonstrate the importance of accurate illumination corrections for quantitative spectral analyses. Significantly, we show that commonly applied spectral analysis techniques can yield erroneous results for data corrected using current state-of-the-art approaches. Our proposed method ameliorates many of the issues with these established approaches.

In addition to geometry, digital outcrop models capture color information, from which variations in lithology and composition can be inferred. Recently, this spectrally limited information is being supplemented with detailed hyperspectral attributes captured using imaging spectrometers, such that individual data points can contain hundreds of spectral bands [7], [11]- [13]. These "hyperclouds" allow the application of advanced remote sensing algorithms to infer outcrop mineralogy and discriminate between lithologies that may appear similar in the visible part of the spectrum [14], [15]. However, spectral artifacts caused by unevenly illuminated topography (e.g., shading and shadowing) need to be corrected before automated mapping approaches can be accurately applied. Hyperspectral cameras need significantly more light than conventional trichromatic (RGB) frame sensors, so they perform best under well-lit (sunny) conditions, especially in longer wavelength regions, such as the shortwave infrared (SWIR). Thus, unlike for, e.g., photogrammetric surveys (for which overcast conditions are ideal), optimal light conditions for hyperspectral data acquisition will generally also cause significant topographic effects.
A variety of methods have been developed to correct these topographic effects in satellite data, but these are challenging to transfer to digital outcrop models due to their high resolution, complex geometry, and often oblique viewing angle [12]. Particular challenges include steep faces (cliffs), curved outcrops (e.g., open-pit mines), and datasets in which indirect illumination from the sky (skylight) is significant (see Fig. 1).
Physics-based approaches developed for satellite or airborne datasets include the topographic correction as part of a larger atmospheric correction model [16]- [19], while simpler techniques (e.g., c-factor and minnaert; cf. [12]) use statistical methods to correct topographic effects independently of any atmospheric influence.
Unlike satellite applications, sensor-to-target distances tend to be small for digital outcrop models, reducing the atmospheric correction to a comparatively simple adjustment for downwelling light composition. This light is normally characterized using one or more calibration panels located in fully illuminated parts of the scene. At-sensor radiance measured for these panels is compared with their known reflectance spectra to derive an empirical line correction (ELC; [20], [21]).
This ELC will be accurate if the illumination is constant throughout a scene and calibration panels are correctly oriented. However, geometric complexities normally cause shading effects due to: 1) variations in the incidence angle of direct sunlight; 2) specular effects (particularly for smooth or polished areas); 3) self-shadowing when a surface is oriented at >90 • from the incident light; and 4) projected shadows caused when prominent objects block direct light across the scene.
Shaded areas are rarely completely dark, however, as they are lit by diffuse skylight and reflections from adjacent surfaces. The downwelling light is, thus, a combination of direct illumination from the sun, diffuse skylight, and multiple reflections at any point in a scene. Sunlight is dominant in well-illuminated regions, including calibration panels, while skylight dominates in shaded or shadowed areas.
In the following, we build on the work of [12] to explore challenges associated with topographic correction for digital outcrop models and propose a new joint method that: 1) integrates calibration panel data and information from shadowed areas to separate skylight and sunlight spectra and 2) uses high-resolution geometric data to derive a per-band and per-pixel combined topographic and atmospheric correction. We validate this approach using a digital model of an openpit mine in the Iberian Pyrite Belt for which hyperspectral data were acquired under both sunny (strong topographic effects) and overcast (minimal topographic effects) conditions. By comparing the two scenes, topographic influence can be independently quantified and used as a baseline to evaluate different correction algorithms.

II. METHODS
State-of-the-art algorithms used for correcting digital outcrop data have been reviewed recently by Jakob et al. [12]. These methods all consider only a single light source and, in essence, transform atmospherically corrected per-pixel reflectance r 0 to a topographically corrected value r c based on some function of the cosine of the angle between the surface normal vector n at each pixel and the (downward-pointing) solar illumination vector s.
Formulas for calculating incidence angle from slope and aspect angles can be found in the literature, but, because digital outcrop models store surface normals as an upward-pointing set of cartesian vectors n i , we find it convenient to work with the cosine of this angle, the dot-product of s and n i . This value (α) represents the portion of incident light that would be reflected if we assume the outcrop is a Lambertian reflector illuminated by a single light source However, in reality, neither of these assumptions holds: the roughness of geological outcrops makes them non-Lambertian reflectors, and downwelling skylight (as well as complex illumination effects caused by light reflected off adjacent objects) means that the measured radiance is a function of multiple light sources, each with distinct irradiance spectra. Research on non-Lambertian reflectors is abundant, allowing us to replace the Lambertian definition of α (1) with, for example, an Oren-Nayar model for diffuse reflection from rough surfaces [22]. This simulates reflection off microfacets oriented with standard deviation σ given the incident light orientation (θ i , φ i ) and viewing angle (θ r , φ r ) to derive an adjusted α value When roughness (σ ) is zero, then this reduces to (1). We use this Oren-Nayar model here as it is a simple approximation for most rock types [23], but a more complex bidirectional reflectance distribution function (BRDF) could easily be substituted if necessary.
The influence of other light sources, especially downwelling skylight, remains a challenge to incorporate into correction algorithms. The skylight received by a point can be modeled using the sky-view factor a, which ranges from 0 to 1 and represents the proportion of skylight relative to a horizontal plane. It can be calculated using a variety of methods [24]- [26], including the portion de ciel visible (PCV) plugin in CloudCompare [27].
Following [28], skylight can be incorporated into a two-light source (sunlight + skylight) model for the relation between material reflectance (R) and measured radiance (r) where I λ and S λ are the intensities of incident sunlight and downwelling skylight at wavelength λ, R λ is the material reflectance at this same wavelength, and r λ is the reflected radiance. It is straightforward to calculate α and a from the high-resolution geometry captured in a digital outcrop model (cf. Section III-B), allowing (4). to be used as a joint topographic and atmospheric correction if the incident sunlight and diffuse skylight spectra can be estimated or measured.
Assuming that calibration panel orientation is known, either from measurements in the field or based on its projected geometry in the hyperspectral image and known camera orientation, then it is possible to relate these two light sources with measured target radiance by substituting the relevant values into (4) and rearranging to derive

A. Correction With Known Skylight
If the downwelling skylight radiance (S λ ) is known, ideally by including a completely shaded calibration panel or by assuming relatively uniform sky color and sampling sky-pixels visible in the hyperspectral imagery, then the incident sunlight spectra (I λ ) can be directly calculated and the joint atmospheric-topographic correction applied by rearranging (4) to calculate per-pixel reflectance

B. Correction With Estimated Skylight
For scenes containing abundant shadows, the skylight spectra can be estimated statistically by assuming that the median reflectance of areas affected by shadows is equal to the overall median reflectance. This assumption is rather limiting but generally holds if shadows are evenly distributed across a scene. Using square brackets to denote the median operator and R shade to denote the shaded subset of pixel reflectance (R), we can express this core assumption as Shade pixels can be identified using outcrop geometry to: 1) map self-shadowed regions with normal-vectors pointing away from the sun and 2) identify projective shadows using one of the various published geometric or spectral methods (see [29] for a review). By rearranging (4), the general relationship between measured radiance r and reflectance R becomes which, for the set of completely shaded pixels where α = 0, simplifies to Based on the assumption of equal median reflectance (9), we can, thus, derive a · S λ r shade Removing constants from the median operator gives the following relationship between the incident light spectra and diffuse skylight spectra: The term in brackets, which we have replaced with δ in the following equations for clarity, is essentially the normalized reduction in the median radiance of shaded pixels relative to the whole population. It consists entirely of known values, so it can be directly calculated based on the scene geometry and measured hyperspectral radiance data.
Adding additional constraints on the incident light intensity from the calibration panel (7), we can solve for S λ and I λ These estimated intensities can then be used in (8) to derive corrected reflectance data. Note that zeros (pixels with radiance below detection limit) should be removed from the dataset to avoid infinite values when calculating δ (14).

C. Postprocessing Steps
Regardless of the method used, overcorrections or undercorrections can be caused by geometric errors in the digital outcrop model and misalignments between this and the hyperspectral image. This tends to cause erroneously reflective stripes along with sharp geometric features, such as corners. These areas usually represent a very small fraction of the total dataset, so they can be easily removed by outlier detection methods. The simplest of these is to remove the most/least reflective pixels using a percentile clip: a 1%-99% clip was applied to all the results presented in Section III.

III. VALIDATION STUDY
To validate our novel joint illumination correction method and compare it to the existing state-of-the-art approaches reviewed by Jakob et al. [12], we present results from a case study using data from Sierra Bullones (SB), an open-pit mine in the Tharsis mining district, southern Spain. This area is of particular interest as it is geologically and geometrically complex, ideal to demonstrate the importance of accurate corrections for spectral mapping.
With original sulfide reserves of 133 million tons, Tharsis is considered one of the most important mines in the Iberian Pyrite Belt and can be traced back to Chalcolithic and Roman times. In the SB open pit, both underground and opencast mining was conducted between 1866 and the 1990s [30], [31], and there is ongoing exploration work nearby. The main mineral commodity was pyrite, but the stockwork and gossan also contain As-Co-S, tellurides, and gold [31]. The massive sulfide ores form multiple thin but laterally extensive lenses embedded within a shale-dominated volcanic-sedimentary complex [31]. The mineralized sequence crops out discontinuously for more than 25 km along with the core of a regional E-W-trending antiform and can be subdivided into four south-dipping, thrust-bounded tectonic  units, comprising, from south to north: 1) slates and sandstones of the parautochthonous Phyllite-Quartzite (PQ) Group; 2) massive sulfides and slates; 3) slate and basalt with bodies of hydrothermal breccias; and 4) rhyodacite sills intruding slates. Both the shales and the felsic volcanic rocks adjacent to each ore body are affected by pervasive hydrothermal alteration, which manifests as ankeritization, sericitization, and silicification. The stockwork, located stratigraphically below the massive sulfides, is associated with the chloritic alteration.
Hyperspectral data covering the eastern side of the SB pit were acquired on two different days (see Fig. 2)-once in the afternoon during clear conditions, and once under bright but overcast conditions (see Table I). While overcast lighting is not ideal, requiring longer exposures and resulting in significantly more noise in the SWIR, it causes minimal topographic effects. Hence, the visible near-infrared (VNIR) part of this dataset provides an important baseline that is almost free of topographic effects. We compare this baseline with corrected results from the sunny scene to evaluate the effectiveness of different topographic corrections.
Both scans were acquired using a tripod-mounted Asia FENIX (Specim, Oulu, Finland) hyperspectral pushbroom scanner. This camera has a wavelength range of 380-2500 nm at a spectral resolution of 3.5 nm in the VNIR and 12 nm in the SWIR. Its vertical field of view is 32.3 • (over 384 pixels), and it has a maximum horizontal scanning angle of 130 • . In this study, the camera was operated using a spectral binning model of 4/1 (for the VNIR/SWIR, respectively), resulting in 450 bands. Raw images were converted to radiance by subtracting dark-reference measurements and applying a sensorspecific correction to convert digital numbers to radiance. Finally, the signal-to-noise ratio for each scene was boosted by averaging the three individual scans captured sequentially during each acquisition. Fig. 3. True-color composites of reflectance estimates derived using ELC from (a) overcast scene, which contains limited topographic effects, and (b) sunny scene, which contains significant topographic effects. The two can be compared to estimate this topographic effect (c), which, in this case, accounts for about half (55%) of the total variance in the sunny scene.
Two hundred and twenty-two geotagged ground images were also captured using a Nikon D850 (sensor size of 35.9 mm × 24.0 mm, with a pixel count of 7360 × 4912) and a Zeiss Milvus 2/35 ZF.2 lens, to construct a 3-cm resolution point cloud of the open pit using the structure from motion (SfM) workflow implemented in Agisoft Metashape v1.6. The resulting point cloud with relative positioning was subsequently georeferenced using a publicly available 2 m LiDAR dataset (PNOA-LiDAR, Instituto Geográfico Nacional, http://pnoa.ign.es) using the iterative closest point (ICP) algorithm integrated into CloudCompare v. 2.9.
The hyperspectral data were backprojected onto the photogrammetric point cloud using hylite [15]. hylite matches keypoints between each image and the point cloud using scale invariant feature transform (SIFT) [32] and then solves the Perspective-n-Point (PnP) problem using Open-CV [33] to accurately extract camera position and viewing direction. Points in the cloud were then projected onto each image to identify pixel correspondence, and the two datasets are aligned by projecting spectra from the sunny dataset onto the same pixel grid as the overcast dataset (see Fig. 2).
Finally, calibration spectra were extracted by averaging pixels for each image with a Spectralon R90 reference panel (made from a standardized polytetrafluoroethylene (PTFE) material with a stable reflectivity of 90% across the spectral range of interest) that was placed in the scene during each acquisition. The panels' orientations were estimated using hylite, based on their projected 2-D shape and known (square) geometry, and the associated sky view factor calculated by assuming the panel was relatively unoccluded and evaluating

A. Atmospheric (Only) Correction
It is standard practice with outcrop hyperspectral data to convert radiance to reflectance using an empirical line calibration (ELC; [20]). This uses calibration panel spectra to correct for the spectral composition of downwelling sunlight, which is (incorrectly) assumed to be distributed uniformly across the scene.
An ELC was applied to each of the scenes (see Fig. 3) to provide a reference with which to evaluate our novel correction algorithm. The difference between the independent reflectance estimates derived from the sunny and overcast scenes gives a useful approximation of the topographic effect that we aim to correct [see Fig. 3(c)]. This topographic effect accounts for 55% of the variance in the sunny scene, highlighting the need for accurate correction approaches.

B. Joint Illumination Correction
Geometric data from the 3-D photogrammetric point cloud, including surface normal vectors, viewing direction, and sky view factors estimated using the PCV plugin [27], were projected onto the coregistered hyperspectral images using hylite. The position of the Sun was calculated using the astral python package [34] based on acquisition time and location (see Table I) for each acquisition.
The sunny scene was divided into three illumination classes: illuminated (sun), cast-shadow, and self-shadow [see Fig. 4(a)]. Pixels with normal vectors directed away from downwelling sunlight were considered to be self-shadowed. Cast-shadows were identified by averaging reflectance between 400 and 450 nm, dividing by the average from 550 to   6. Reflectance estimates derived by (a) correcting radiance measurements using standard procedures, including (b) only atmospheric correction (ELC), (c) c-factor correction, (d) minnaert correction, and (e) joint method proposed in this work. Reflectance estimates derived from (f) overcast scene, which has negligible topographic effects, were used to calculate residuals for each correction method. An iron index was also calculated, highlighting that inadequate topographic correction can cause significant errors in derivative products, such as band ratios. All RGB composites are visualized using a constant reflectance range of 0-0.6, while the iron indices are clipped from 1.0 to 1.25. 600 nm, and then applying a threshold such that values > 1.25 (and not already in the self-shadow class) were labeled as cast-shadow (cf. [29]).
Lambertian (1) and Oren-Nayar (2) reflection models were evaluated using the projected point normals, viewing direction, and Sun orientation [see Fig. 4(b) and (c)]. A large Fig. 7. Plots of reference (cloudy) reflectance versus results from the sunny dataset after applying (a) no topographic correction, and using (b) cosine, (c) percent, (d) c-factor, (e) minnaert, and (f) our joint correction method. The results highlight that: 1) there is a strong wavelength dependence in the correction results and 2) our joint correction method is closest to the reference data. roughness (σ = 40 • ) was used in the Oren-Nayar model because the material in the scene is mostly coarse rubble or blocky, exfoliating rock formation. Comparing these results with Fig. 3(c), it is immediately evident that the Lambertian model overestimates the topographic effect, as has already been established [12]. Hence, the Oren-Nayar model was used for the rest of the correction steps.
The overcast scene was assumed to contain no direct sunlight, allowing the skylight spectra to be directly estimated from the calibration panel, and a joint illumination correction was applied using (8) to give baseline reflectance estimates. This correction is essentially equivalent to the ELC results [see Fig. 3(a)] but accounting for small illumination differences caused by variations in sky view factor.
Skylight spectra for the sunny scene were estimated using two independent methods: averaging the spectra of sky pixels in the original image [see Fig. 2(a)] and applying the estimation technique outlined in Section II-B. The results are almost identical (see Fig. 5), suggesting that (16) can be applied to real data with the inherent assumptions. This estimated skylight spectrum [see Fig. 5(b)] was used in (8) to derive corrected reflectance estimates.  Table II). Indeed, the other evaluated topographic correction algorithms (cosine, percent, c-factor, and minnaert) all produce larger errors compared to an atmospheric-only ELC.
To highlight the spectral variations caused by the various corrections, an iron index (750/890 nm) was calculated. Although wavelength-independent topographic effects cancel out in this band-ratio, it is sensitive to changes in spectra slope and other distortions. The uncorrected datasets [see Fig. 6(a) and (b)] show systematic overestimation of iron content in shaded or shadowed regions, mostly notable on the right side Fig. 8. Spectral angles between reference spectra and those derived using (a) ELC, (b) c-factor, (c) minnaert, and (d) our joint correction algorithm. Spectral angles are invariant to changes in bulk reflectance, so quantify differences in spectra shape. of the scene. Topographic correction using the c-factor and minnaert methods gave results that also differ significantly from the reference dataset in these shadowed regions [see Plotting reference (cloudy) reflectance against corrected reflectance further highlights the spectral differences that result after applying different correction algorithms (see Fig. 7). Significantly, these differences are clearly wavelength dependent, with lower wavelengths generally falling below the unity line and higher wavelengths above it. This systematic spectral distortion was summarized by computing the spectral angle between each pixels' corrected reflectance spectra and the associated cloudy reference reflectance spectra (see Fig. 8). Our joint illumination correction produces results that most closely match the reference spectra (see Fig. 7) and show the least spectral distortion (see Fig. 8), though significant room for improvement remains.
Finally, the influence of these spectral differences on classification was explored using the spectral angle mapper (SAM) algorithm [35]. SAM has become widely applied by the remote sensing community (e.g., [36]- [38]) and, like the iron indices presented in Fig. 6, is insensitive to overall pixel brightness and so is generally assumed to be robust to topographic effects. The algorithm works by calculating the angles between pixel spectra (represented as a set of vectors) and reference spectra for each material. Reference spectra [see Fig. 9(a)] were calculated by choosing four 10 × 10 pixel squares for each lithology exposed at SB (volcanics, phyllite, massive sulphide, and gossan) [see Fig. 9(b)] and calculating their median spectra based on data from the reference (overcast) image. The resulting classification [see Fig. 9(b)] was compared with results derived from topographically corrected data [see Fig. 9(c)-(f)]. While these classifications may not be geologically accurate (they have not been validated as groundtruth data are not available), they clearly demonstrate that the different correction methods influence classification results (see Table III), and thus, the SAM classifier is more sensitive to topographic effects than that has previously been assumed.
The classification without topographic correction [ELC only; see Fig. 9(c)] incorrectly labeled shadowed pixels as massive sulfide and only partially mapped the exposed ore body. Cosine and percent corrections do not alter spectra shape, so gave equivalent results (overall accuracy = 61%). Surprisingly, the c-factor [see Fig. 9(d)] and minnaert [see Fig. 9(e)] corrections degraded classification accuracy even further (to 55%) relative to the overcast dataset, and both methods completely failed to correctly identify massive sulfide. Classification results after our joint-correction method most closely matched the reference (68%) and correctly mapped the massive sulfide body.

IV. DISCUSSION
The results of the SB case study emphasize the need for appropriate illumination correction when using hyperspectral data to map surfaces with high spatial resolution devices. State-of-the-art corrections for satellite data (e.g., ATCOR; [19]) cannot be applied to the complex geometries and oblique viewing angles typical for digital outcrop models, so practitioners tend to either ignore topographic effects or to apply statistical corrections using e.g., the c-factor or minnaert algorithms (cf. [12]). Sophisticated codes, such as ATCOR, are proprietary, expensive, and not adapted.
Our results highlight the existence of significant errors when topographic effects are ignored. A naive interpretation of the iron index presented in Fig. 6 would incorrectly identify abundant iron oxides in shadowed regions of the SB pit. Similarly, the classification without topographic correction was 40% different from the reference classification, incorrectly labeling pixels in both well illuminated and shaded regions. Cfactor and minnaert corrections did not improve classification accuracy (indeed, they degraded it by another 5%-10%). We suggest that this is because the standard corrections applied to convert radiance to reflectance (e.g., ELC) and established topographic corrections, such as c-factor and minnaert, do not properly account for the difference in illumination spectra between shaded and fully illuminated regions.
Despite its relative simplicity, the joint correction method that we propose successfully corrects these illumination differences by modeling the mixture of skylight and sunlight at each point in the scene. Ideally, downwelling skylight can be measured directly using a completely shaded calibration panel although our results show that the estimation method described in Section III-B can provide a reasonable approximation (e.g., for legacy data). The iron index calculated using this method closely matches the reference dataset (see Fig. 6), and the results could be further improved by better modeling the distribution of, e.g., partially shaded pixels in the penumbra  . Table III), which was calculated using the overcast dataset.  Tables II and III also highlight the improved performance of our correction method. While these must be treated cautiously, given uncertainties regarding the reference reflectances and associated classification from the cloudy dataset, they do highlight the tendency of established methods to overcorrect incidence angle effects. We suggest that this is caused by systematic underestimation of the reflected light fraction and associated overestimation of material reflectance. This could be explained by their failure to account for reflected skylight, and the resulting positive bias is evident in the residual histograms shown in Fig. 6. It has been well established that the cosine correction overcorrects illumination differences [12], [39], [40]; however, to the best of our knowledge, this is the first time that a similar overcorrection has been demonstrated for the other approaches.
The estimated topographic effect shown in Fig. 3, which accounts for 55% of the variance in the uncorrected dataset, also suggests that more complex shading models are needed if we are to achieve accurate topographic corrections. The pit-face on the right-hand side of the scene [see Fig. 3(c)], which is almost perpendicular to both the viewing direction and illumination direction, appears to be more reflective than predicted by a Lambertian or Oren-Nayar model (see Fig. 4), presumably due to specular reflection. Adjacency effects caused by reflections from nearby outcrops and water filling the bottom of the open pit may also be important though, without a complex global illumination model, these are difficult to characterize.
The computer graphics community has developed a variety of global illumination models [41] that could be adapted for topographic correction, providing an interesting avenue for future research. The methods described in Section II for characterizing downwelling sun and skylight radiance spectra could be used to provide the necessary input for these and potentially lead to significantly better corrections (cf. Fig. 7). Empirical adjustments, such as the c-factor correction, could also be included to fit global illumination models to observed radiance, as could statistical methods for estimating path radiance (e.g., [42]).
In the meantime, the SB case study demonstrates that our proposed method provides a robust, practical correction that delivers usable results. A recent study [15] successfully employed the joint correction method presented here to map lithology and alteration minerals in an open-pit mine and emphasized the importance of this correction to achieving accurate results. A rapidly growing amount of hyperspectral data is becoming available to geoscientists, but the range of sensors, acquisition conditions, and ground sampling distances (from laboratory to satellite) require accurate corrections [12] if data are to be quantitatively compared and synthesized.
To facilitate the use of our topographic correction method by the outcrop sensing community, we have added it (along with appropriate documentation and usage instructions) to the open-source hylite toolbox, a python package for correcting and analyzing hyperspectral datasets [15]. We suggest that the characterization of downwelling skylight using a completely shaded calibration panel is worthwhile and should become standard practice. Multiexposure high dynamic range techniques could also be employed to maximize signal-to-noise ratios across the whole scene when illumination contrasts are large.

V. CONCLUSION
In conclusion, outcrop geometry causes important illumination differences that, if uncorrected, hinder the identification and mapping of outcrop mineralogy. By separating downwelling sun and skylight spectra and modeling their contribution to each pixel's illumination, our novel and opensource correction method achieves substantially better results than established ones. Absolute reflectance values are closer to reference measurements, and spectral distortions caused by different mixtures of sun and skylight are corrected for. Hence, we hope that it is a valuable tool for the outcrop remote sensing community. These corrections are fundamental for any proximal hyperspectral acquisition, especially those performed by drones.