authority: folia
slug: chlorophyll-a-inland
name: Chlorophyll-a (inland waters)
domain: land
subdomain: water-quality
authority_id: folia:chlorophyll-a-inland
parent: ocean-colour
aliases:
  - chl-a-inland
  - chla-inland
  - freshwater-chlorophyll
external_ids:
  cf_standard_name: mass_concentration_of_chlorophyll_a_in_sea_water
canonical_units: mg m-3
external_validations:
  library:
    name: acolite
    id: acolite-chl
    docs_url: https://odnature.naturalsciences.be/remsem/software-and-data/acolite
  product:
    id: sentinel-3-olci-l2-wfr
    docs_url: https://sentinels.copernicus.eu/web/sentinel/user-guides/sentinel-3-olci/processing-levels/level-2
  product_alt:
    id: cyan-cyanobacteria-assessment-network
    docs_url: https://www.epa.gov/water-research/cyanobacteria-assessment-network-cyan
  sentinel_hub:
    processor: Sentinel-3 OLCI custom scripts (chlorophyll)
    docs_url: https://custom-scripts.sentinel-hub.com/sentinel-3/
description: |
  Chlorophyll-a concentration in inland water bodies (lakes, reservoirs,
  rivers, estuaries). Distinguished from the GCOS `ocean-colour` parent
  because inland-water algorithms must handle high CDOM (coloured
  dissolved organic matter) and suspended sediment, which break standard
  ocean blue/green band-ratio retrievals. Common operational recipes:
  NDCI (Normalized Difference Chlorophyll Index, Mishra & Mishra 2012)
  for Sentinel-2 and Sentinel-3 MSI/OLCI; ACOLITE for joint atmospheric
  correction + retrieval over turbid case-2 waters; CyAN composites for
  US lakes (NASA/NOAA/USGS/EPA cyanobacteria early warning). CF has no
  inland-specific standard name, so the canonical sea-water name is
  reused with the algorithm distinction noted here. Consumed by
  drinking-water-safety, harmful-algal-bloom early warning, and
  watershed-management ops.
theme: hydrology
example_recipes:
  - title: "NDCI on Sentinel-2 (Mishra & Mishra 2012)"
    tool: gee
    requires: [s2-l2a-reflectance]
    snippet: |
      // NDCI = (B5 - B4) / (B5 + B4)  — red-edge / red
      var s2 = ee.Image('COPERNICUS/S2_SR_HARMONIZED/...');
      var ndci = s2.normalizedDifference(['B5', 'B4']).rename('ndci');
      // empirical fit to chl-a (mg m-3) — calibrate per-lake
      var chl = ndci.expression(
        '14.039 + 86.115 * ndci + 194.325 * ndci * ndci',
        {ndci: ndci}
      ).rename('chl_a_mg_m3');
    docs_url: https://doi.org/10.1080/2150704X.2011.641164
  - title: "ACOLITE chlorophyll-a retrieval over inland water"
    tool: python
    requires: [s2-l1c-toa, s3-olci-l1]
    command: |
      # ACOLITE CLI — atmospheric correction + chl-a for case-2 waters
      python launch_acolite.py --cli \
        --settings settings.txt \
        --inputfile S2A_MSIL1C_*.SAFE \
        --output ./acolite_out/
      # produces chl_re_mishra2014 (NDCI-based) and chl_oc3 bands
    docs_url: https://odnature.naturalsciences.be/remsem/software-and-data/acolite
consumed_by: [imagery_radiometric_indices]
produced_by: []
demos: []
status: documented
sources:
  - https://odnature.naturalsciences.be/remsem/software-and-data/acolite
  - https://sentinels.copernicus.eu/web/sentinel/user-guides/sentinel-3-olci/processing-levels/level-2
  - https://www.epa.gov/water-research/cyanobacteria-assessment-network-cyan
  - https://custom-scripts.sentinel-hub.com/sentinel-3/
  - https://doi.org/10.1080/2150704X.2011.641164
  - Mishra, S. & Mishra, D.R. 2012, Remote Sensing Letters 3(7), 633-642 (NDCI for chlorophyll-a in turbid productive waters)
