Several questions regarding Seadas L2gen tool using PACE_OCI L1B data
Posted: Thu Oct 24, 2024 4:43 pm America/New_York
Hello,
I am new to Seadas. I am trying to process Rrs values from Pace Oci L1B data using L2gen tool in SeaDAS. I have several questions:
(1) Seadas/sytem info
-----------------------------------------------------------
Main Application Platform:
-----------------------------------------------------------
Application Version: SeaDAS 9.1.0
SNAP Engine Version: 11.0.0.0* (SeaDAS Platform modified)
SNAP Desktop Version: 11.0.0.0* (SeaDAS Platform modified)
SNAP Engine Build Date: 202410022359
SNAP Desktop Build Date: 202410030004
Installation Directory: /Users/*****/SeaDAS
Data Directory: /Users/*****/.seadas9
Configuration: /Users/*****/SeaDAS/etc/snap.properties
VM Configuration: /Users/*****/SeaDAS/etc/seadas.conf
VM Configuration: /Users/*****/SeaDAS/etc/snap.conf
VM Configuration (gpt): /Users/*****/SeaDAS/bin/gpt.vmoptions
VM Configuration (pconvert): /Users/*****/SeaDAS/bin/pconvert.vmoptions
Runtime Configuration: /Users/*****/.seadas9/etc/snap.properties
Runtime Configuration (SeaDAS Toolbox): /Users/*****/.seadas9/etc/seadas.properties
JRE: OpenJDK Runtime Environment 11.0.19+7
JVM: OpenJDK 64-Bit Server VM by Eclipse Adoptium
Memory: 8192 MiB
OCSSWROOT (Environment Variable): null
Python3 Version: Python 3.9.6 (default, Aug 9 2024, 14:24:13)
Python3 Directory: /usr/bin/python3
Python3 Requests Installed: YES
Earthdata Netrc Entry: YES
-----------------------------------------------------------
SeaDAS Toolbox:
-----------------------------------------------------------
SeaDAS Toolbox Version: 2.1.0
SeaDAS Toolbox Build Date: 202410030013
Configuration: /Users/*****/.seadas9/etc/seadas.properties
OCSSW Location: local
[OCSSW-Local] Root Directory: /Users/*****/SeaDAS/ocssw
[OCSSW-Local] Python3 Version: Python 3.9.6 (default, Aug 9 2024, 14:24:13)
[OCSSW-Local] Python3 Directory: /usr/bin/python3
[OCSSW-Local] Python3 Requests Installed: YES
[OCSSW-Local] Earthdata Netrc Entry: YES
[OCSSW-Local] Log Directory: /
-----------------------------------------------------------
NASA Science Processing (OCSSW):
-----------------------------------------------------------
OCSSWROOT=/Users/*****/SeaDAS/ocssw
OCDATAROOT=/Users/*****/SeaDAS/ocssw/share
l2gen version: msl12 9.7.0-V2024.1 (Jul 17 2024 09:15:16)
l2bin version: 7.0.7
l3bin version: 5.14
l3mapgen version: l3mapgen 2.4.0-V2024.1 (Jul 17 2024 09:14:01)
Installed Missions: ['oci']
-----------------------------------------------------------
General System and Software:
-----------------------------------------------------------
Operating system: MacOS 14.6.1
Java version: 21.0.3
Python3 version: 3.9.6
Python3 Path: /usr/bin/python3
Env:
CC=gcc
CXX=g++
ELEMENTS=/Users/*****/SeaDAS/ocssw/var/seawifs
EOS_LIB_PREFIX=macintel64
FC=gfortran
GCC_TUNE=
HDFEOS_LIB=/Users/*****/SeaDAS/ocssw/opt/EOS/lib/macintel64
HRPT_STATION_IDENTIFICATION_FILE=/Users/*****/SeaDAS/ocssw/share/seawifs/station/station_id.dat
L2GEN_ANC=/Users/*****/SeaDAS/ocssw/var/anc
LIB3_BIN=/Users/*****/SeaDAS/ocssw/opt/bin
LIB3_CHECK=0
LIB3_DIR=/Users/*****/SeaDAS/ocssw/opt
LIB3_INC=/Users/*****/SeaDAS/ocssw/opt/include
LIB3_LIB=/Users/*****/SeaDAS/ocssw/opt/lib
NAVCTL=/Users/*****/SeaDAS/ocssw/share/seawifs/nav
NAVQC=/Users/*****/SeaDAS/ocssw/share/seawifs/nav
OCSSW_ARCH=macosx_intel
OCSSW_BIN=/Users/*****/SeaDAS/ocssw/bin
OCSSW_DEBUG=0
OCSSW_MODIS=1
OCTS_REGISTRATION_TABLES=/Users/*****/SeaDAS/ocssw/share/octs/nav
OCVARROOT=/Users/*****/SeaDAS/ocssw/var
ORBCTL=/Users/*****/SeaDAS/ocssw/share/seawifs/nav
PGSINC=/Users/*****/SeaDAS/ocssw/opt/EOS/include
PGSLIB=/Users/*****/SeaDAS/ocssw/opt/EOS/lib/macintel64
PROJ_DATA=/Users/*****/SeaDAS/ocssw/opt/share/proj
PROJ_LIB=/Users/*****/SeaDAS/ocssw/opt/share/proj
SWFTBL=/Users/*****/SeaDAS/ocssw/share/seawifs/qc
SWTBL=/Users/*****/SeaDAS/ocssw/share/seawifs
(2) I can use the 'L2gen' to process a case of PACE OCI L1B data (I used the default configuration, except I hit the 'Get ancillary' button)
==========
# PRIMARY INPUT OUTPUT FIELDS
ifile=/Users/*****/SeaDAS/downloaded_oci/PACE_OCI.20240501T001954.L1B.V2.nc
ofile=/Users/*****/SeaDAS/downloaded_oci/PACE_OCI.20240501T001954.L2.OC.nc
# SUITE
suite=OC
# ANCILLARY INPUTS Default = climatology (select 'Get Ancillary' to download ancillary files)
icefile=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/20240501120000-CMC-L4_GHRSST-SSTfnd-CMC0.1deg-GLOB-v02.0-fv03.0.nc
met1=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/GMAO_MERRA2.20240501T000000.MET.nc
met2=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/GMAO_MERRA2.20240501T010000.MET.nc
met3=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/GMAO_MERRA2.20240501T010000.MET.nc
ozone1=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/GMAO_MERRA2.20240501T000000.MET.nc
ozone2=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/GMAO_MERRA2.20240501T010000.MET.nc
ozone3=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/GMAO_MERRA2.20240501T010000.MET.nc
sstfile=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/20240501120000-CMC-L4_GHRSST-SSTfnd-CMC0.1deg-GLOB-v02.0-fv03.0.nc
==========
I also download the L2 level data from https://oceancolor.gsfc.nasa.gov/ 'PACE_OCI.20240501T001954.L2.OC_AOP.V2_0.NRT.nc', I want to ensure if I can reproduce the identical result as the standard AOP Rrs product.
When I compared the file I processed(named 'PACE_OCI.20240501T001954.L2.OC.nc') with the standard file (name 'PACE_OCI.20240501T001954.L2.OC_AOP.V2_0.NRT.nc'), I found that the Rrs between them are slightly different. I noticed that there are differences in the input_parameters:
The 'PACE_OCI.20240501T001954.L2.OC.nc' I generated: no anc_aerosol files;
:anc_aerosol1 = "";
:anc_aerosol2 = "";
:anc_aerosol3 = "";
:sfc_albedo = "";
The standard file 'PACE_OCI.20240501T001954.L2.OC_AOP.V2_0.NRT.nc' has anc_aerosol files;
:anc_aerosol1 = "GMAO_MERRA2.20240501T000000.AER.nc";
:anc_aerosol2 = "GMAO_MERRA2.20240501T010000.AER.nc";
:anc_aerosol3 = "GMAO_MERRA2.20240501T010000.AER.nc";
For my case, the 'Get ancillary' did not download anc_aerosol files (I checked the ''/Users/*****/SeaDAS/ocssw/var/anc/2024/122/"). Did I miss something when I used the l2gen??
(3) Does the l2gen tool automatically perform atmospheric correction separately for the open ocean and coastal (turbid) waters? any references? How to identify if a pixel is in the open ocean or coastal? using the Distance to the Nearest Coast ?
(4) I’m wondering if I can use the l2gen tool to generate Rrs(geometry) that is dependent on solar and sensor geometry. How to configure the l2gen parameters?
I noticed that there is a 'brdf' parameters in the Atmospheric Correction Intermediates under the Product Tab of the L2gen interface;
Which equation is correct?
(4.1) Rrs(geometry) = Rrs(standard product, normalized) / brdf
(4.2) Rrs(geometry)= Rrs(standard product, normalized) * brdf
Thank you very much,
Ad_wong
I am new to Seadas. I am trying to process Rrs values from Pace Oci L1B data using L2gen tool in SeaDAS. I have several questions:
(1) Seadas/sytem info
-----------------------------------------------------------
Main Application Platform:
-----------------------------------------------------------
Application Version: SeaDAS 9.1.0
SNAP Engine Version: 11.0.0.0* (SeaDAS Platform modified)
SNAP Desktop Version: 11.0.0.0* (SeaDAS Platform modified)
SNAP Engine Build Date: 202410022359
SNAP Desktop Build Date: 202410030004
Installation Directory: /Users/*****/SeaDAS
Data Directory: /Users/*****/.seadas9
Configuration: /Users/*****/SeaDAS/etc/snap.properties
VM Configuration: /Users/*****/SeaDAS/etc/seadas.conf
VM Configuration: /Users/*****/SeaDAS/etc/snap.conf
VM Configuration (gpt): /Users/*****/SeaDAS/bin/gpt.vmoptions
VM Configuration (pconvert): /Users/*****/SeaDAS/bin/pconvert.vmoptions
Runtime Configuration: /Users/*****/.seadas9/etc/snap.properties
Runtime Configuration (SeaDAS Toolbox): /Users/*****/.seadas9/etc/seadas.properties
JRE: OpenJDK Runtime Environment 11.0.19+7
JVM: OpenJDK 64-Bit Server VM by Eclipse Adoptium
Memory: 8192 MiB
OCSSWROOT (Environment Variable): null
Python3 Version: Python 3.9.6 (default, Aug 9 2024, 14:24:13)
Python3 Directory: /usr/bin/python3
Python3 Requests Installed: YES
Earthdata Netrc Entry: YES
-----------------------------------------------------------
SeaDAS Toolbox:
-----------------------------------------------------------
SeaDAS Toolbox Version: 2.1.0
SeaDAS Toolbox Build Date: 202410030013
Configuration: /Users/*****/.seadas9/etc/seadas.properties
OCSSW Location: local
[OCSSW-Local] Root Directory: /Users/*****/SeaDAS/ocssw
[OCSSW-Local] Python3 Version: Python 3.9.6 (default, Aug 9 2024, 14:24:13)
[OCSSW-Local] Python3 Directory: /usr/bin/python3
[OCSSW-Local] Python3 Requests Installed: YES
[OCSSW-Local] Earthdata Netrc Entry: YES
[OCSSW-Local] Log Directory: /
-----------------------------------------------------------
NASA Science Processing (OCSSW):
-----------------------------------------------------------
OCSSWROOT=/Users/*****/SeaDAS/ocssw
OCDATAROOT=/Users/*****/SeaDAS/ocssw/share
l2gen version: msl12 9.7.0-V2024.1 (Jul 17 2024 09:15:16)
l2bin version: 7.0.7
l3bin version: 5.14
l3mapgen version: l3mapgen 2.4.0-V2024.1 (Jul 17 2024 09:14:01)
Installed Missions: ['oci']
-----------------------------------------------------------
General System and Software:
-----------------------------------------------------------
Operating system: MacOS 14.6.1
Java version: 21.0.3
Python3 version: 3.9.6
Python3 Path: /usr/bin/python3
Env:
CC=gcc
CXX=g++
ELEMENTS=/Users/*****/SeaDAS/ocssw/var/seawifs
EOS_LIB_PREFIX=macintel64
FC=gfortran
GCC_TUNE=
HDFEOS_LIB=/Users/*****/SeaDAS/ocssw/opt/EOS/lib/macintel64
HRPT_STATION_IDENTIFICATION_FILE=/Users/*****/SeaDAS/ocssw/share/seawifs/station/station_id.dat
L2GEN_ANC=/Users/*****/SeaDAS/ocssw/var/anc
LIB3_BIN=/Users/*****/SeaDAS/ocssw/opt/bin
LIB3_CHECK=0
LIB3_DIR=/Users/*****/SeaDAS/ocssw/opt
LIB3_INC=/Users/*****/SeaDAS/ocssw/opt/include
LIB3_LIB=/Users/*****/SeaDAS/ocssw/opt/lib
NAVCTL=/Users/*****/SeaDAS/ocssw/share/seawifs/nav
NAVQC=/Users/*****/SeaDAS/ocssw/share/seawifs/nav
OCSSW_ARCH=macosx_intel
OCSSW_BIN=/Users/*****/SeaDAS/ocssw/bin
OCSSW_DEBUG=0
OCSSW_MODIS=1
OCTS_REGISTRATION_TABLES=/Users/*****/SeaDAS/ocssw/share/octs/nav
OCVARROOT=/Users/*****/SeaDAS/ocssw/var
ORBCTL=/Users/*****/SeaDAS/ocssw/share/seawifs/nav
PGSINC=/Users/*****/SeaDAS/ocssw/opt/EOS/include
PGSLIB=/Users/*****/SeaDAS/ocssw/opt/EOS/lib/macintel64
PROJ_DATA=/Users/*****/SeaDAS/ocssw/opt/share/proj
PROJ_LIB=/Users/*****/SeaDAS/ocssw/opt/share/proj
SWFTBL=/Users/*****/SeaDAS/ocssw/share/seawifs/qc
SWTBL=/Users/*****/SeaDAS/ocssw/share/seawifs
(2) I can use the 'L2gen' to process a case of PACE OCI L1B data (I used the default configuration, except I hit the 'Get ancillary' button)
==========
# PRIMARY INPUT OUTPUT FIELDS
ifile=/Users/*****/SeaDAS/downloaded_oci/PACE_OCI.20240501T001954.L1B.V2.nc
ofile=/Users/*****/SeaDAS/downloaded_oci/PACE_OCI.20240501T001954.L2.OC.nc
# SUITE
suite=OC
# ANCILLARY INPUTS Default = climatology (select 'Get Ancillary' to download ancillary files)
icefile=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/20240501120000-CMC-L4_GHRSST-SSTfnd-CMC0.1deg-GLOB-v02.0-fv03.0.nc
met1=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/GMAO_MERRA2.20240501T000000.MET.nc
met2=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/GMAO_MERRA2.20240501T010000.MET.nc
met3=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/GMAO_MERRA2.20240501T010000.MET.nc
ozone1=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/GMAO_MERRA2.20240501T000000.MET.nc
ozone2=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/GMAO_MERRA2.20240501T010000.MET.nc
ozone3=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/GMAO_MERRA2.20240501T010000.MET.nc
sstfile=/Users/*****/SeaDAS/ocssw/var/anc/2024/122/20240501120000-CMC-L4_GHRSST-SSTfnd-CMC0.1deg-GLOB-v02.0-fv03.0.nc
==========
I also download the L2 level data from https://oceancolor.gsfc.nasa.gov/ 'PACE_OCI.20240501T001954.L2.OC_AOP.V2_0.NRT.nc', I want to ensure if I can reproduce the identical result as the standard AOP Rrs product.
When I compared the file I processed(named 'PACE_OCI.20240501T001954.L2.OC.nc') with the standard file (name 'PACE_OCI.20240501T001954.L2.OC_AOP.V2_0.NRT.nc'), I found that the Rrs between them are slightly different. I noticed that there are differences in the input_parameters:
The 'PACE_OCI.20240501T001954.L2.OC.nc' I generated: no anc_aerosol files;
:anc_aerosol1 = "";
:anc_aerosol2 = "";
:anc_aerosol3 = "";
:sfc_albedo = "";
The standard file 'PACE_OCI.20240501T001954.L2.OC_AOP.V2_0.NRT.nc' has anc_aerosol files;
:anc_aerosol1 = "GMAO_MERRA2.20240501T000000.AER.nc";
:anc_aerosol2 = "GMAO_MERRA2.20240501T010000.AER.nc";
:anc_aerosol3 = "GMAO_MERRA2.20240501T010000.AER.nc";
For my case, the 'Get ancillary' did not download anc_aerosol files (I checked the ''/Users/*****/SeaDAS/ocssw/var/anc/2024/122/"). Did I miss something when I used the l2gen??
(3) Does the l2gen tool automatically perform atmospheric correction separately for the open ocean and coastal (turbid) waters? any references? How to identify if a pixel is in the open ocean or coastal? using the Distance to the Nearest Coast ?
(4) I’m wondering if I can use the l2gen tool to generate Rrs(geometry) that is dependent on solar and sensor geometry. How to configure the l2gen parameters?
I noticed that there is a 'brdf' parameters in the Atmospheric Correction Intermediates under the Product Tab of the L2gen interface;
Which equation is correct?
(4.1) Rrs(geometry) = Rrs(standard product, normalized) / brdf
(4.2) Rrs(geometry)= Rrs(standard product, normalized) * brdf
Thank you very much,
Ad_wong