Skip to content

SIO-Ocean-Optics-Research-Laboratory/Kd_NN_Distribution

Repository files navigation

Kd_NN_Distribution


An implementation of the neural network algorithm created originally by Cedric Jamet and co-workers for estimating the Kd values at any wavelength. This version of the Kd_NN model can produce Kd at any wavelength (but currently recommended for the visible spectral range because no validation was carried out outside this range), using input Rrs at five light wavelengths (443 nm, 488 nm, 531 nm, 547 nm, 667 nm) corresponding to spectral bands available on ocean color sensor MODIS or using input Rrs at tweleve light wavelengths (440 nm, 470 nm, 490 nm, 510 nm, 530 nm, 560 nm, 580 nm, 600 nm, 620 nm, 640 nm, 670 nm, and 700 nm) corresponding to spectral bands available on PACE's OCI. The complete development and validation of the original Kd_NN model is described in Jamet et al., 2012 and updated in Loisel et al., 2018 and Jorge et al., 2021. The presented version of the Kd_NN model source code is in MATLAB file format. In this version of the Kd_NN code we introduced some changes with the primary purpose to streamline the structure of the code and facilitate its application by users. The Kd_NN software can be used in conjunction with the inverse reflectance LS2 model to enable estimation of the inherent optical properties of seawater (see the separate LS2_Distribution repository).

This README document provides information about the files within the Kd_NN_Distribution repository.


Kd_NN_MODIS.m:

Neural network model to compute the Kd values at a single preselected output light wavelength for a given set of input values of spectral Rrs(λ) and solar zenith angle, where λ is at 5 select MODIS wavelengths. Returns Kd(λ). See supporting documentation for further details.

Kd_NN_PACE.m:

Neural network model to compute the Kd values at a single preselected output light wavelength for a given set of input values of spectral Rrs(λ) and solar zenith angle, where λ is at 12 select PACE wavelengths. Returns Kd(λ). See supporting documentation for further details.

Kd_NN_LUT_MODIS.mat:

Look-up tables (LUTs) necessary to run Kd_NN_MODIS.m. The structure contains three fields, each of which is necessary to run the neural network. See Kd_NN_MODIS.m function documentation for further details about the .mat file.

Kd_NN_LUT_PACE.mat:

Look-up tables (LUTs) necessary to run Kd_NN_PACE.m. The structure contains three fields, each of which is necessary to run the neural network. See Kd_NN_PACE.m function documentation for further details about the .mat file.

Kd_NN_test_run_MODIS.m:

Script which tests Kd_NN_MODIS.m on 100 sample inputs of spectral Rrs(λ) defined at 5 MODIS bands, each accompanied with input solar zenith angle. The code calculates Kd at output light wavelengths within the input domain. Note that the output light wavelength can be the same or can differ between the sample inputs, where a single sample input is defined by a set of 5 spectral values of Rrs(λ) at MODIS wavelengths and solar zenith angle.

Kd_NN_test_run_PACE.m:

Script which tests Kd_NN_PACE.m on a single sample input of spectral Rrs(λ) defined at 12 PACE bands, each accompanied with input solar zenith angle. The code calculates Kd at a single output light wavelength within the input domain. Note that the output light wavelength can be the same or can differ between the sample inputs, where a single sample input is defined by a set of 12 spectral values of Rrs(λ) at PACE wavelengths and solar zenith angle.

Kd_NN_test_run_MODIS.xls:

Spreadsheet containing the input and resulting output data obtained from the application of the Kd_NN_MODIS function on 100 sample inputs to determine Kd at various output wavelengths within the input domain. The file is the original output file generated by Kd_NN_test_run_MODIS.m.

Kd_NN_test_run_PACE.xls:

Spreadsheet containing the input and resulting output data obtained from the application of the Kd_NN_PACE function on an example sample input to determine Kd at a single output wavelength within the input domain. The file is the original output file generated by Kd_NN_test_run_PACE.m.


Version Control Notes

Kd_NN_MODIS.m (v1.3)

Version History:

  • 2018-04-04: Original implementation in C written by David Dessailly
  • 2020-03-23: Original MATLAB version, D. Jorge
  • 2022-09-01: Revised MATLAB version, M. Kehrli
  • 2022-11-03: Final revised MATLAB version (v1.0), M. Kehrli, R. A. Reynolds, and D. Stramski
  • 2023-10-10: Corrected weights and biases in KdNN LUT for clear waters (v1.1)
  • 2024-09-05: Updated structure, weights, and biases provided by CJ and implemented in MATLAB by MK in September 2024 (v1.2)
  • 2025-02-20: Updated structure, weights, and biases provided by CJ and implemented in MATLAB by MK in April 2025 (v1.3)

Kd_NN_PACE.m (v2.3)

Version History:

  • 2018-04-04: Original implementation in C written by David Dessailly
  • 2020-03-23: Original MATLAB version, D. Jorge Schaffer
  • 2022-09-01: Revised MATLAB version, M. Kehrli
  • 2022-11-03: Final revised MATLAB version, M. Kehrli, R. A. Reynolds, and D. Stramski (v1.0)
  • 2023-10-10: Corrected weights and biases in KdNN LUT for clear waters (v1.1)
  • 2024-03-08: New version of the KdNN developed for PACE inputs provided by Daniel Schaffer (v2.1)
  • 2024-09-05: Updated version of PACE NN using a new training dataset that led to a new NN architecture with new weights and biases of the KdNN (v2.2)
  • 2024-09-25: Updated version of PACE NN using a new training dataset that led to a new NN architecture with new weights and biases of the KdNN (v2.3)

System Requirements

To run the MATLAB files in this repository, the following system requirements must be met:

  • MATLAB: Version 9.14 (R2023a) or later
  • Toolboxes:
    • Deep Learning Toolbox: Version 14.6 or later

Contributors: Matthew Kehrli, Aster Taylor, Rick A. Reynolds, and Dariusz Stramski
Contacts: Matthew Kehrli1 (mdkehrli@ucsd.edu | mdkehrli@gmail.com), Rick Reynolds1 (rreynolds@ucsd.edu), Dariusz Stramski1 (dstramski@ucsd.edu), Cédric Jamet2 (cedric.jamet@univ-littoral.fr)
1 Ocean Optics Research Laboratory, Scripps Institution of Oceanography, University of California San Diego
2 Laboratoire d’Oceanologie et de Geosciences, Universite du Littoral Cote d’Opale, Universite Lille, CNRS, Wimereux, France

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages