Back to Tutorials and Data Recipes
Authors: Carina Poulin (NASA, SSAI), Ian Carroll (NASA, UMBC), Anna Windle (NASA, SSAI)
The following notebooks are prerequisites for this tutorial.
An Earthdata Login account is required to access data from the NASA Earthdata system, including NASA ocean color data.
SeaDAS is the official data analysis sofware of NASA’s Ocean Biology Distributed Active Archive Center (OB.DAAC); used to process, display and analyse ocean color data. SeaDAS is a dektop application that includes the Ocean Color Science Software (OCSSW) libraries. There are also command line programs for the OCSSW libraries, which we can use to write processing scripts or notebooks.
This tutorial will show you how to process PACE OCI data using the
sequence of OCSSW programs l2gen
, l2bin
, and
l3mapgen
.
At the end of this notebok you will know: * How to
process Level-1B data to Level-2 with l2gen
* How to merge
two images with l2bin
* How to create a map with
l3mapgen
Begin by importing all of the packages used in this notebook. If your kernel uses an environment defined following the guidance on the tutorials page, then the imports will be successful.
import csv
import os
import pathlib
import cartopy.crs as ccrs
import earthaccess
import xarray as xr
import matplotlib.pyplot as plt
/srv/conda/envs/notebook/lib/python3.11/site-packages/pyproj/__init__.py:89: UserWarning: pyproj unable to set database path. _pyproj_global_context_initialize()
We are also going to define a function to help write OCSSW parameter
files, which is needed several times in this tutorial. To write the
results in the format understood by OCSSW, this function uses the
csv.writer
from the Python Standard Library. Instead of
writing comma-separated values, however, we specify a non-default
delimiter to get equals-separated values. Not something you usually see
in a data file, but it’s better than writing our own utility from
scratch!
def write_par(path, par):
"""
Prepare a "par file" to be read by one of the OCSSW tools, as an
alternative to specifying each parameter on the command line.
Args:
path (str): where to write the parameter file
par (dict): the parameter names and values included in the file
"""
with open(path, "w") as file:
writer = csv.writer(file, delimiter="=")
values = writer.writerows(par.items())
The Python docstring (fenced by triple quotation marks in the function definition) is not essential, but it helps describe what the function does.
help(write_par)
Help on function write_par in module __main__: write_par(path, par) Prepare a "par file" to be read by one of the OCSSW tools, as an alternative to specifying each parameter on the command line. Args: path (str): where to write the parameter file par (dict): the parameter names and values included in the file
auth = earthaccess.login(persist=True)
We will use the earthaccess
search method used in the
OCI Data Access notebook. Note that Level-1B (L1B) files do not include
cloud coverage metadata, so we cannot use that filter. In this search,
the spatial filter is performed on a location given as a point
represented by a tuple of latitude and longitude in decimal degrees.
tspan = ("2024-04-27", "2024-04-28")
location = (-56.5, 49.8)
The search_data
method accepts a point
argument for this type of location.
results = earthaccess.search_data(
short_name="PACE_OCI_L1B_SCI",
temporal=tspan,
point=location,
)
Granules found: 1
results[0]
Create a directory where you will store downloaded granules (nb. this step is unnecessary with earthaccess >= 0.9.1).
parent = pathlib.Path("granules")
parent.mkdir(exist_ok=True)
Download the granules found in the search.
paths = earthaccess.download(results, parent)
Getting 1 granules, approx download size: 1.69 GB Accessing cloud dataset using dataset endpoint credentials: https://obdaac-tea.earthdatacloud.nasa.gov/s3credentials Downloaded: granules/PACE_OCI.20240427T161654.L1B.nc
While we have the downloaded location stored in the list
paths
, store one in a variable we won’t overwrite for
future use.
l2gen_ifile = paths[0]
The Level-1B files contain top-of-atmosphere reflectances, typically
denoted as \(\rho_t\). On OCI, the
reflectances are grouped into blue, red, and short-wave infrared (SWIR)
wavelengths. Open the dataset’s “observatin_data” group in the netCDF
file using xarray
to plot a “rhot_red” wavelength.
dataset = xr.open_dataset(paths[0], group="observation_data")
plot = dataset["rhot_red"].sel({"red_bands": 100}).plot()
This tutorial will demonstrate processing this Level-1B granule into a Level-2 granule. Because that can take several minutes, we’ll also download a couple of Level-2 granules to save time for the next step of compositing multiple Level-2 granules into a single granule.
location = [(-56.5, 49.8), (-55.0, 49.8)]
Searching on a location defined as a line, rather than a point, is a
good way to get granules that are adjacent to eachother. Pass a list of
latitude and longitude tuples to the line
argument of
search_data
.
results = earthaccess.search_data(
short_name="PACE_OCI_L2_BGC_NRT",
temporal=tspan,
line=location,
)
Granules found: 2
for item in results:
display(item)
paths = earthaccess.download(results, parent)
paths
Getting 2 granules, approx download size: 0.03 GB Accessing cloud dataset using dataset endpoint credentials: https://obdaac-tea.earthdatacloud.nasa.gov/s3credentials Downloaded: granules/PACE_OCI.20240427T143834.L2.OC_BGC.V1_0_0.NRT.nc Downloaded: granules/PACE_OCI.20240427T161654.L2.OC_BGC.V1_0_0.NRT.nc
[PosixPath('granules/PACE_OCI.20240427T143834.L2.OC_BGC.V1_0_0.NRT.nc'), PosixPath('granules/PACE_OCI.20240427T161654.L2.OC_BGC.V1_0_0.NRT.nc')]
While we have the downloaded location stored in the list
paths
, write it to a text file for future use.
paths = [str(i) for i in paths]
with open("l2bin_ifile.txt", "w") as file:
file.write("\n".join(paths))
At Level-1, we neither have geophysical variables nor are the data
projected for easy map making. We will need to process the L1B file to
Level-2 and then to Level-3 to get both of those. Note that Level-2 data
for many geophysical variables are available for download from the
OB.DAAC, so you often don’t need the first step. However, the Level-3
data distributed by the OB.DAAC are global composites, which may cover
more Level-2 scenes than you want. You’ll learn more about compositing
below. This section shows how to use l2gen
for processing
the L1B data to L2 using customizable parameters.
OCSSW programs are run from the command line in Bash, but we can have
a Bash terminal-in-a-cell using the IPython
magic command %%bash
. In the specific case of OCSSW
programs, the Bash environment created for that cell must be set up by
loading $OCSSWROOT/OCSSW_bash.env
.
Every %%bash
cell that calls an OCSSW program needs to
source
the environment definition file shipped with OCSSW,
because its effects are not retained from one cell to the next. We can,
however, define the OCSSWROOT
environment variable in a way
that effects every %%bash
cell.
os.environ.setdefault("OCSSWROOT", "/tmp/ocssw")
'/tmp/ocssw/'
Then we need a couple lines, which will appear in multiple cells
below, to begin a Bash cell initiated with the
OCSSW_bash.env
file.
Using this pattern, run the l2gen
command with the
single argument help
to view the extensive list of options
available. You can find more information about l2gen
and
other OCSSW functions on the seadas
website
%%bash
source $OCSSWROOT/OCSSW_bash.env
l2gen help
msl12 9.7.0-T2024.19 (May 21 2024 18:56:15) Usage: msl12 argument-list The argument-list is a set of keyword=value pairs. The arguments can be specified on the commandline, or put into a parameter file, or the two methods can be used together, with commandline over-riding. return value: 0=OK, 1=error, 110=north,south,east,west does not intersect file data. The list of valid keywords follows: help (boolean) (alias=h) (default=false) = print usage information version (boolean) (default=false) = print the version information dump_options (boolean) (default=false) = print information about each option dump_options_paramfile (ofile) = print information about each option to paramfile dump_options_xmlfile (ofile) = print information about each option to XML file par (ifile) = input parameter file pversion (string) (default=Unspecified) = processing version string suite (string) (default=OC) = product suite string for loading suite-specific defaults eval (int) (default=0) = evaluation bitmask 0: standard processing 1: init to old aerosol models 2: enables MODIS and MERIS cloud Mask for HABS 16: enables MODIS cirrus mask 32: use test sensor info file 64: use test rayleigh tables 128: use test aerosol tables 256: use test polarization tables 1024: mask modis mirror-side 1 (navfail) 2048: mask modis mirror-side 2 (navfail) 4096: don't apply 'cold-only' or equatorial aerosol tests for SST 8192: use alt sensor info file in eval 32768: enables spherical path geom for dtran ifile (ifile) (alias=ifile1) = input L1 file name ilist (ifile) = file containing list of input files, one per line geofile (ifile) = input L1 geolocation file name (MODIS/VIIRS only) ofile (ofile) (alias=ofile1) (default=output) = output file #1 name, output vicarious L1B for inverse mode ofile[#] = additional output L2 file name oformat (string) (default=netCDF4) = output file format netcdf4: output a netCDF version 4 file hdf4: output a HDF version 4 file il2file (ifile) (alias=il2file1) = input L2 file names for sensor to be used as a calibrator. Alternatively, a data point can be used as a calibrator (e.g. MOBY) il2file[#] = additional L2 calibration file names tgtfile (ifile) = vicarious calibration target file aerfile (ifile) = aerosol model specification file metafile (ifile) = output meta-data file l2prod (string) (alias=l2prod1) = L2 products to be included in ofile #1 l2prod[#] = L2 products to be included in ofile[#] proc_ocean (int) (default=1) = toggle ocean processing 1: On 0: Off 2: force all pixels to be processed as ocean proc_land (boolean) (default=off) = toggle land processing proc_sst (boolean) (default=false) = toggle SST processing (default=1 for MODIS, 0 otherwise) proc_cloud (boolean) (default=off) = toggle cloud processing proc_uncertainty (int) (default=0) = uncertainty propagation mode 0: without uncertainty propagation 1: uncertainty propagation generating error variance atmocor (boolean) (default=on) = toggle atmospheric correction mode (int) (default=0) = processing mode 0: forward processing 1: inverse (calibration) mode, targeting to nLw=0 2: inverse (calibration) mode, given nLw target 3: inverse (calibration) mode, given Lw target (internally normalized) aer_opt (int) (default=99) = aerosol mode option -99: No aerosol subtraction >0: Multi-scattering with fixed model (provide model number, 1-N, relative to aermodels list) 0: White aerosol extrapolation. -1: Multi-scattering with 2-band model selection -2: Multi-scattering with 2-band, RH-based model selection and iterative NIR correction -3: Multi-scattering with 2-band model selection and iterative NIR correction -4: Multi-scattering with fixed model pair (requires aermodmin, aermodmax, aermodrat specification) -5: Multi-scattering with fixed model pair and iterative NIR correction (requires aermodmin, aermodmax, aermodrat specification) -6: Multi-scattering with fixed angstrom (requires aer_angstrom specification) -7: Multi-scattering with fixed angstrom and iterative NIR correction (requires aer_angstrom specification) -8: Multi-scattering with fixed aerosol optical thickness (requires taua specification) -9: Multi-scattering with 2-band model selection using Wang et al. 2009 to switch between SWIR and NIR. (MODIS only, requires aer_swir_short, aer_swir_long, aer_wave_short, aer_wave_long) -10: Multi-scattering with MUMM correction and MUMM NIR calculation -17: Multi-scattering epsilon, RH-based model selection and iterative NIR correction -18: Spectral Matching of aerosols reflectance and iterative NIR correction -19: Multi-scattering epsilon (linear), RH-based model selection and iterative NIR correction aer_wave_short (int) (default=765) = shortest sensor wavelength for aerosol model selection aer_wave_long (int) (default=865) = longest sensor wavelength for aerosol model selection aer_wave_base (int) (default=865) = base sensor wavelength for aerosol extrapolation aer_swir_short (int) (default=-1) = shortest sensor wavelength for SWIR-based NIR Lw correction aer_swir_long (int) (default=-1) = longest sensor wavelength for SWIR-based NIR Lw correction aer_rrs_short (float) (default=-1.0) = Rrs at shortest sensor wavelength for aerosol model selection aer_rrs_long (float) (default=-1.0) = Rrs at longest sensor wavelength for aerosol model selection aermodmin (int) (default=-1) = lower-bounding model to use for fixed model pair aerosol option aermodmax (int) (default=-1) = upper-bounding model to use for fixed model pair aerosol option aermodrat (float) (default=0.0) = ratio to use for fixed model pair aerosol option aer_angstrom (float) (default=-999.0) = aerosol angstrom exponent for model selection aer_iter_max (int) (default=10) = maximum number of iterations for NIR water-leaving radiance estimation. mumm_alpha (float) (default=1.72) = water-leaving reflectance ratio for MUMM turbid water atmospheric correction mumm_gamma (float) (default=1.0) = two-way Rayleigh-aerosol transmittance ratio for MUMM turbid water atmospheric correction mumm_epsilon (float) (default=1.0) = aerosol reflectance ratio for MUMM turbid water atmospheric correction absaer_opt (int) (default=0) = absorbing aerosol flagging option 0: disabled 1: use rhow_412 aerosol index test 2: GMAO ancillary aerosol test glint_opt (int) (default=1) = glint correction: 0: glint correction off 1: standard glint correction 2: simple glint correction oxaband_opt (int) (default=0) = oxygen A-band correction 0: no correction 1: Apply Ding and Gordon (1995) correction 2: Apply oxygen transmittance from gas transmittance table (see gas_opt) cirrus_opt (boolean) (default=false) = cirrus cloud reflectance correction option filter_opt (boolean) (default=false) = filtering input data option filter_file (ifile) (default=$OCDATAROOT/sensor/sensor_filter.dat) = data file for input filtering brdf_opt (int) (default=0) = Bidirectional reflectance correction 0: no correction 1: Fresnel reflection/refraction correction for sensor path 3: Fresnel reflection/refraction correction for sensor + solar path 7: Morel f/Q + Fresnel solar + Fresnel sensor 15: Gordon DT + Morel f/Q + Fresnel solar + Fresnel sensor 19: Morel Q + Fresnel solar + Fresnel sensor fqfile (ifile) (default=$OCDATAROOT/common/morel_fq.nc) = f/Q correction file parfile (ifile) = par climatology file for NPP calculation gas_opt (int) (default=1) = gaseous transmittance bitmask selector 0: no correction 1: Ozone 2: CO2 4: NO2 8: H2O 16: Use ATREM 32: Use <sensor>_gas_transmittance.nc tables 64: CO 128: CH4 256: N2O atrem_opt (int) (default=0) = ATREM gaseous transmittance bitmask selector 0: H2O only 1: Ozone 2: CO2 4: NO2 8: CO 16: CH4 32: O2 64: N2O atrem_full (int) (default=0) = ATREM gaseous transmittance calculation option 0: Calculate transmittance using k-distribution method (fast) 1: Calculate transmittance using full method (slow) atrem_geom (int) (default=0) = ATREM gaseous transmittance geometry option 0: Only recalculate geometry when error threshold reached (fast) 1: Recalculate geometry every pixel (slow) atrem_model (int) (default=0) = ATREM gaseous transmittance Atm. model selection 0: Use pixel's latitude and date to determine model 1: tropical 2: mid latitude summer 3: mid latitude winter 4: subarctic summer 5: subarctic winter 6: US standard 1962 atrem_splitpaths (int) (default=0) = ATREM gaseous transmittance split paths between solar and sensor (turns atrem_full on) 0: Calculates transmittance over total path length (default) 1: Calculates transmittance over separate solar and sensor paths (slow) iop_opt (int) (default=0) = IOP model for use in downstream products 0: None (products requiring a or bb will fail) 1: Carder 2: GSM 3: QAA 4: PML 5: NIWA 6: LAS 7: GIOP cphyt_opt (int) (default=1) = model for phytoplankton carbon 1: Graff/Westberry 2: Behrenfeld seawater_opt (int) (default=0) = seawater IOP options 0: static values 1: temperature & salinity-dependent seawater nw, aw, bbw polfile (ifile) = polarization sensitivities filename leader pol_opt (int) (default=-1) = polarization correction (sensor-specific) 0: no correction 1: only Rayleigh component is polarized 2: all radiance polarized like Rayleigh 3: only Rayleigh and Glint are polarized (MODIS default) 4: all radiance polarized like Rayleigh + Glint band_shift_opt (int) (default=0) = bandshifting option 1: apply bio-optical bandshift 0: linear interpolation giop_aph_opt (int) (default=2) = GIOP model aph function type 0: tabulated (supplied via giop_aph_file) 2: Bricaud et al. 1995 (chlorophyll supplied via default empirical algorithm) 3: Ciotti and Bricaud 2006 (size fraction supplied via giop_aph_s) giop_aph_file (ifile) (default=$OCDATAROOT/common/aph_default.txt) = GIOP model, tabulated aph spectra giop_uaph_file (ifile) (default=$OCDATAROOT/common/aph_unc_default.txt) = GIOP model, tabulated aph uncertainty spectra giop_aph_s (float) (default=-1000.0) = GIOP model, spectral parameter for aph giop_adg_opt (int) (default=1) = GIOP model adg function type 0: tabulated (supplied via giop_adg_file) 1: exponential with exponent supplied via giop_adg_s) 2: exponential with exponent derived via Lee et al. (2002) 3: exponential with exponent derived via OBPG method giop_adg_file (string) (default=$OCDATAROOT/common/adg_default.txt) = GIOP model, tabulated adg spectra giop_uadg_file (ifile) (default=$OCDATAROOT/common/adg_unc_default.txt) = GIOP model, tabulated adg uncertainty spectra giop_adg_s (float) (default=0.018) = GIOP model, spectral parameter for adg giop_uadg_s (float) (default=0.0) = GIOP model, uncertainty of spectral parameter for adg giop_bbp_opt (int) (default=3) = GIOP model bbp function type 0: tabulated (supplied via giop_bbp_file) 1: power-law with exponent supplied via giop_bbp_s) 2: power-law with exponent derived via Hoge & Lyon (1996) 3: power-law with exponent derived via Lee et al. (2002) 5: power-law with exponent derived via Ciotti et al. (1999) 6: power-law with exponent derived via Morel & Maritorena (2001) 7: power-law with exponent derived via Loisel & Stramski (2000) 8: spectrally independent vector derived via Loisel & Stramski (2000) 9: fixed vector derived via Loisel & Stramski (2000) 10: fixed vector derived via lee et al. (2002) 11: fixed vector derived via McKinna et al. (2021) 12: fixed vector derived via Huot et al. (2008) giop_bbp_file (ifile) (default=$OCDATAROOT/common/bbp_default.txt) = GIOP model, tabulated bbp spectra giop_ubbp_file (ifile) (default=$OCDATAROOT/common/bbp_default.txt) = GIOP model, tabulated bbp uncertainty spectra giop_bbp_s (float) (default=-1000.0) = GIOP model, spectral parameter for bbp giop_ubbp_s (float) (default=0.0) = GIOP model, uncertainty in spectral parameter for bbp giop_acdom_opt (int) (default=1) = GIOP model acdom function type 0: tabulated (supplied via giop_acdom_file) 1: no data giop_acdom_file (ifile) = GIOP model, file of specific CDOM absorption coefficients for aLMI giop_uacdom_file (ifile) = GIOP model, file of specific CDOM absorption uncertainties for aLMI giop_anap_opt (int) (default=1) = GIOP model anap function type 0: tabulated (supplied via giop_anap_file) 1: no data giop_anap_file (ifile) = GIOP model, file of specific NAP absorption coefficients for aLMI giop_uanap_file (ifile) = GIOP model, file of specific NAP absorption coefficient uncertainties for aLMI giop_bbph_opt (int) (default=1) = GIOP model bbph function type 0: tabulated (supplied via giop_bbph_file) 1: no data giop_bbph_file (ifile) = GIOP model, file of specific phytoplankton backscattering coefficients for aLMI giop_ubbph_file (ifile) = GIOP model, file of specific phytoplankton backscatteirng coefficient uncertainties for aLMI giop_bbnap_opt (int) (default=1) = GIOP model bbnap function type 0: tabulated (supplied via giop_bbnap_file) 1: no data giop_bbnap_file (ifile) = GIOP model, file of specific NAP backscattering coefficients for aLMI giop_ubbnap_file (ifile) = GIOP model, file of specific NAP backscattering coefficient uncertainties for aLMI giop_rrs_opt (int) (default=0) = GIOP model Rrs to bb/(a+bb) method 0: Gordon quadratic (specified with giop_grd) 1: Morel f/Q giop_rrs_unc_opt (int) (default=0) = GIOP model Rrs uncertainties option 0: none 1: sensor-derived Rrs uncertainties 2: input spectral absolute uncertainties using giop_rrs_unc, as comma-separated array with spectral resolution matching sensor 3: input spectral relative uncertainties using giop_rrs_unc, as comma-separated array with spectral resolution matching sensor giop_rrs_diff (float) (default=0.33) = GIOP model, maximum difference between input and modeled Rrs giop_grd (float) (default=[0.0949,0.0794]) = GIOP model, Gordon Rrs to bb/(a+bb) quadratic coefficients giop_wave (float) (default=-1) = GIOP model list of sensor wavelengths for optimization comma-separated list, default is all visible bands (400-700nm) giop_maxiter (int) (default=50) = GIOP Model iteration limit giop_fit_opt (int) (default=1) = GIOP model optimization method 0: Amoeba optimization 1: Levenberg-Marquardt optimization 3: SVD matrix inversion 4: SIOP adaptive matrix inversion gsm_opt (int) (default=0) = GSM model options 0: default coefficients 1: Chesapeake regional coefficients gsm_fit (int) (default=0) = GSM fit algorithm 0: Amoeba 1: Levenberg-Marquardt gsm_adg_s (float) (default=0.02061) = GSM IOP model, spectral slope for adg gsm_bbp_s (float) (default=1.03373) = GSM IOP model, spectral slope for bbp gsm_aphw (float) (default=[412.0, 443.0, 490.0, 510.0, 555.0, 670.0]) = GSM IOP model, wavelengths of ap* table gsm_aphs (float) (default=[0.00665, 0.05582, 0.02055, 0.01910, 0.01015, 0.01424]) = GSM IOP model, coefficients of ap* table qaa_adg_s (float) (alias=qaa_S) (default=0.015) = QAA IOP model, spectral slope for adg qaa_wave (int) = sensor wavelengths for QAA algorithm chloc2_wave (int) (default=[-1,-1]) = sensor wavelengths for OC2 chlorophyll algorithm chloc2_coef (float) (default=[0.0,0.0,0.0,0.0,0.0]) = coefficients for OC2 chlorophyll algorithm chloc3_wave (int) (default=[-1,-1,-1]) = sensor wavelengths for OC3 chlorophyll algorithm chloc3_coef (float) (default=[0.0,0.0,0.0,0.0,0.0]) = coefficients for OC3 chlorophyll algorithm chloc4_wave (int) (default=[-1,-1,-1,-1]) = sensor wavelengths for OC4 chlorophyll algorithm chloc4_coef (float) (default=[0.0,0.0,0.0,0.0,0.0]) = coefficients for OC4 chlorophyll algorithm kd2_wave (int) (default=[-1,-1]) = sensor wavelengths for polynomial Kd(490) algorithm kd2_coef (float) (default=[0.0,0.0,0.0,0.0,0.0,0.0]) = sensor wavelengths for polynomial Kd(490) algorithm flh_offset (float) (default=0.0) = bias to subtract from retrieved fluorescence line height vcnnfile (ifile) = virtual constellation neural net file picfile (ifile) = pic table for Balch 2-band algorithm owtfile (ifile) = optical water type file owtchlerrfile (ifile) = chl error file associate with optical water type aermodfile (ifile) = aerosol model filename leader uncertaintyfile (ifile) = uncertainty LUT aermodels (string) (default=[r30f95v01,r30f80v01,r30f50v01,r30f30v01,r30f20v01,r30f10v01,r30f05v01,r30f02v01,r30f01v01,r30f00v01,r50f95v01,r50f80v01,r50f50v01,r50f30v01,r50f20v01,r50f10v01,r50f05v01,r50f02v01,r50f01v01,r50f00v01,r70f95v01,r70f80v01,r70f50v01,r70f30v01,r70f20v01,r70f10v01,r70f05v01,r70f02v01,r70f01v01,r70f00v01,r75f95v01,r75f80v01,r75f50v01,r75f30v01,r75f20v01,r75f10v01,r75f05v01,r75f02v01,r75f01v01,r75f00v01,r80f95v01,r80f80v01,r80f50v01,r80f30v01,r80f20v01,r80f10v01,r80f05v01,r80f02v01,r80f01v01,r80f00v01,r85f95v01,r85f80v01,r85f50v01,r85f30v01,r85f20v01,r85f10v01,r85f05v01,r85f02v01,r85f01v01,r85f00v01,r90f95v01,r90f80v01,r90f50v01,r90f30v01,r90f20v01,r90f10v01,r90f05v01,r90f02v01,r90f01v01,r90f00v01,r95f95v01,r95f80v01,r95f50v01,r95f30v01,r95f20v01,r95f10v01,r95f05v01,r95f02v01,r95f01v01,r95f00v01]) = aerosol models met1 (ifile) (default=$OCDATAROOT/common/met_climatology.hdf) = 1st meteorological ancillary data file met2 (ifile) = 2nd meteorological ancillary data file met3 (ifile) = 3rd meteorological ancillary data file ozone1 (ifile) (default=$OCDATAROOT/common/ozone_climatology.hdf) = 1st ozone ancillary data file ozone2 (ifile) = 2nd ozone ancillary data file ozone3 (ifile) = 3rd ozone ancillary data file rad1 (ifile) = Ancillary data for PAR, 1st file rad2 (ifile) = Ancillary data for PAR, 2nd file rad3 (ifile) = Ancillary data for PAR, 3rd file anc_profile1 (ifile) = 1st ancillary profile data file anc_profile2 (ifile) = 2nd ancillary profile data file anc_profile3 (ifile) = 3rd ancillary profile data file anc_aerosol1 (ifile) = 1st ancillary aerosol data file anc_aerosol2 (ifile) = 2nd ancillary aerosol data file anc_aerosol3 (ifile) = 3rd ancillary aerosol data file sfc_albedo (ifile) = ancillary cloud albedo data file cth_albedo (ifile) = ancillary albedo file for cloud top height use anc_cor_file (ifile) = ozone correction file pixel_anc_file (ifile) = per pixel ancillary data file land (ifile) (default=$OCDATAROOT/common/gebco_ocssw_v2020.nc) = land mask file water (ifile) (default=$OCDATAROOT/common/gebco_ocssw_v2020.nc) = shallow water mask file demfile (ifile) (default=$OCDATAROOT/common/gebco_ocssw_v2020.nc) = digital elevation map file dem_auxfile (ifile) = auxiliary digital elevation map file mldfile (ifile) = Multi-layer depth file icefile (ifile) (default=$OCDATAROOT/common/ice_mask.hdf) = sea ice file ice_threshold (float) (default=0.1) = sea ice fraction above which will be flagged as sea ice sstcoeffile (ifile) = IR sst algorithm coefficients file dsdicoeffile (ifile) = SST dust correction algorithm coefficients file sstssesfile (ifile) = IR sst algorithm error statistics file sst4coeffile (ifile) = SWIR sst algorithm coefficients file sst4ssesfile (ifile) = SWIR sst algorithm error statistics file sst3coeffile (ifile) = Triple window sst algorithm coefficients file sst3ssesfile (ifile) = Triple window sst algorithm error statistics file sstfile (ifile) (default=$OCDATAROOT/common/sst_climatology.hdf) = input SST reference file sstreftype (int) (default=0) = Reference SST field source 0: Reynolds OI SST reference file 1: AMSR-E daily SST reference file 2: AMSR-E 3-day SST reference file 3: ATSR monthly SST reference file 4: NTEV2 monthly SST reference file 5: AMSR-E 3-day or night SST reference file 6: WindSat daily SST reference file 7: WindSat 3-day SST reference file 8: WindSat 3-day or night SST reference file sstrefdif (float) (default=100.0) = stricter sst-ref difference threshold viirsnv7 (int) (default=-1) = =1 to use the VIIRSN V7 high senz latband sst and sst3 equations viirsnosisaf (int) (default=0) = =1 to use the VIIRSN OSI-SAF sst and sst3 equations no2file (ifile) (default=$OCDATAROOT/common/no2_climatology.hdf) = no2 ancillary file alphafile (ifile) (default=$OCDATAROOT/common/alpha510_climatology.hdf) = alpha510 climatology file tauafile (ifile) (default=$OCDATAROOT/common/taua865_climatology.hdf) = taua865 climatology file flaguse (string) (default=ATMFAIL,LAND,HIGLINT,HILT,HISATZEN,STRAYLIGHT,CLDICE,COCCOLITH,LOWLW,CHLFAIL,NAVWARN,ABSAER,MAXAERITER,ATMWARN,HISOLZEN,NAVFAIL) = Flags to use xcalbox (int) (default=0) = pixel size of the central box in the L1 scene (e.g. 5 pixels around MOBY) to be extracted into xcalfile for the cross-calibration, 0=whole L1 xcalboxcenter (int) (default=[0,0]) = Central [ipix, iscan] of the box in the L1 scene, [0,0] = center of the L1 scene xcalpervalid (int) (default=0) = min percent of valid cross-calibration pixels within the box or the L1 scene, 0 = at least 1 pixel xcalsubsmpl (int) (default=1) = Sub-sampling rate for the data to be used for the cross-calibration chlthreshold (float) (default=100.000000) = threshold on L2 data chlorophyll (100.000000=CHL_MAX) aotthreshold (float) (default=1.000000) = threshold on L2 data AOTs (1.000000=AOT_MAX) coccolith (float) (default=[1.1,0.9,0.75,1.85,1.0,1.65,0.6,1.15]) = coccolithophore algorithm coefs cirrus_thresh (float) (default=[-1.0,-1.0]) = cirrus reflectance thresholds taua (float) = [taua_band1,...,taua_bandn] aerosol optical thickness of the calibration data point absaer (float) (default=0.0) = absorbing aerosol threshold on aerosol index rhoamin (float) (default=0.0001) = min NIR aerosol reflectance to attempt model lookup epsmin (float) (default=0.85) = minimum epsilon to trigger atmospheric correction failure flag epsmax (float) (default=1.35) = maximum epsilon to trigger atmospheric correction failure flag tauamax (float) (default=0.3) = maximum 865 aerosol optical depth to trigger hitau flag nLwmin (float) (default=0.15) = minimum nLw(555) to trigger low Lw flag wsmax (float) (default=12.0) = windspeed limit on white-cap correction in m/s windspeed (float) (default=-1000.0) = user over-ride of windspeed in m/s (-1000=use ancillary files) windangle (float) (default=-1000.0) = user over-ride of wind angle in deg (-1000=use ancillary files) pressure (float) (default=-1000.0) = user over-ride of atmospheric pressure in mb (-1000=use ancillary files) ozone (float) (default=-1000.0) = user over-ride of ozone concentration in cm (-1000=use ancillary files) relhumid (float) (default=-1000.0) = user over-ride of relative humidity in percent (-1000=use ancillary files) watervapor (float) (default=-1000.0) = user over-ride of water vapor in g/cm^2 (-1000=use ancillary files) vcal_opt (int) (default=-1) = Vicarious calibration option vcal_chl (float) (default=-1.0) = Vicarious calibration chl vcal_solz (float) (default=-1.0) = Vicarious calibration solz vcal_nLw (float) = Vicarious calibration normalized water leaving radiances vcal_Lw (float) = Vicarious calibration water leaving radiances vcal_depth (float) (default=-1000.0) = depth to use to exclude data from target file e.g. -1000 excludes depths less than 1000m vcal_min_nbin (int) (default=4) = minimum # of samples in a bin for acceptance vcal_min_nscene (int) (default=3) = minimum # of scenes in a bin for acceptance owmcfile (ifile) (default=$OCDATAROOT/common/owmc_lut.hdf) = lut for OWMC classification north (float) (default=-999) = north boundary south (float) (default=-999) = south boundary east (float) (default=-999) = east boundary west (float) (default=-999) = west boundary xbox (int) (default=-1) = number of pixels on either side of the SW point ybox (int) (default=-1) = number of scan lines on either side of the SW point subsamp (int) (default=1) = sub-sampling interval prodxmlfile (ofile) = output XML file describing all possible products breflectfile (ifile) = input NetCDF file for bottom reflectances and bottom types bpar_validate_opt (int) (default=0) = use solar noon(0), use sensor overpass (1) bpar_elev_opt (int) (default=0) = use bathymery (0), user-defined geometric depth (1) bpar_elev_value (float) (default=30.0) = user defined bpar geometric depth value deflate (int) (default=0) = deflation level raman_opt (int) (default=0) = Raman scattering Rrs correction options 0: no correction 1: Lee et al. (2013) empirical correction 2: Westberry et al. (2013) analytical correction 3: Lee et al. (1994) analytical correction gmpfile (ifile) = GMP geometric parameter file (MISR only) water_spectra_file (ifile) = water absorption/scattering coefficient file shallow_water_depth (float) (default=30.0) = threshold for flagging shallow water avw_coef (float) (default=[0.0,0.0,0.0,0.0,0.0,0.0]) = coefficients for AVW cloud_hgt_file (ifile) = Cloud height and temperature file Currently, use the MODIS L2 cloud file (MYD06...) from the LAADS DAAC doi (string) = Digital Object Identifier (DOI) string wavelength_3d (string) = wavelength_3d input, written in ascending order with format 'wavelength_3d=nnn,nnn,nnn' where nnn is a sensor wavelength or a range of wavelengths as follows 'nnn:nnn' mbac_wave (int) = bands used for mbac atmospheric correction calfile (ifile) = system calibration file rad_opt (int) (default=0) = radiation correction option (sensor-specific) 0: no correction 1: apply MERIS Smile correction viirscalparfile (ifile) = VIIRS L1A calibration parameter file name (VIIRS only) geom_per_band (boolean) (default=0) = geometry per band option: 0: use nominal viewing geometry - same for all bands 1: use band-specific viewing geometry (if available) xcalfile (ifile) = cross-calibration file xcal_opt (int) = cross-calibration option (sensor-specific) comma separated list of option values, 1 per band, with bands listed in xcal_wave. 3: apply cross-calibration corrections (polarization and rvs) 2: apply cross-calibration polarization corrections 1: apply cross-calibration rvs corrections 0: no correction xcal_wave (float) = wavelengths at which to apply cross-calibration. Comma separated list of sensor wavelength values associated with xcal_opt. resolution (int) (default=-1) = processing resolution (MODIS only) -1: standard ocean 1km processing 1000: 1km resolution including aggregated 250 and 500m land bands 500: 500m resolution including aggregated 250 land bands and replication for lower resolution bands 250: 250m resolution with replication for lower resolution bands newavhrrcal (int) (default=0) = =1 for new noaa-16 calibration ch22detcor (float) (default=[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]) = Channel 22 detector corrections (MODIS only) ch23detcor (float) (default=[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]) = Channel 23 detector corrections (MODIS only) sl_pixl (int) (default=-1) = SeaWiFS only, number of LAC pixels for straylight flagging sl_frac (float) (default=0.25) = SeaWiFS only, straylight fractional threshold on Ltypical outband_opt (int) (default=99) = out-of-band correction for water-leaving radiances 2: On (default for MODIS, SeaWiFS, OCTS) 0: Off (default for MOS, OSMI) maskland (boolean) (default=on) = land mask option maskbath (boolean) (default=off) = shallow water mask option maskcloud (boolean) (default=on) = cloud mask option maskglint (boolean) (default=off) = glint mask option masksunzen (boolean) (default=off) = large sun zenith angle mask option masksatzen (boolean) (default=off) = large satellite zenith angle mask option maskhilt (boolean) (default=on) = high Lt masking maskstlight (boolean) (default=on) = stray light masking sunzen (float) (default=75.0) = sun zenith angle threshold in deg. satzen (float) (default=60.0) = satellite zenith angle threshold hipol (float) (default=0.5) = threshold on degree-of-polarization to set HIPOL flag glint_thresh (float) (alias=glint) (default=0.005) = high sun glint threshold cloud_thresh (float) (alias=albedo) (default=0.027) = cloud reflectance threshold cloud_wave (float) (default=865.0) = wavelength of cloud reflectance test cloud_eps (float) (default=-1.0) = cloud reflectance ratio threshold (-1.0=disabled) cloud_mask_file (ifile) = cloud mask file cloud_mask_opt (int) (default=0) = cloud mask file variable name 0: cloud_flag 1: cloud_flag_dilated offset (float) = calibration offset adjustment gain (float) = calibration gain multiplier spixl (int) (default=1) = start pixel number epixl (int) (default=-1) = end pixel number (-1=the last pixel) dpixl (int) (default=1) = pixel sub-sampling interval sline (int) (default=1) = start line number eline (int) (default=-1) = end line number (-1=the last line) dline (int) (default=1) = line sub-sampling interval georegion_file (string) = geo region mask file with lat,lon,georegion 1=process pixel, 0=do not
To process a L1B file using l2gen
, at a minimum, you
need to set an infile name (ifile
) and an outfile name
(ofile
). You can also indicate a data suite; in this
example, we will proceed with the biogeochemical (BGC) suite that
includes chlorophyll a estimates.
Parameters can be passed to OCSSW programs through a text file. They
can also be passed as arguments, but writing to a text file leaves a
clear processing record. Define the parameters in a dictionary, then
send it to the write_par
function defined in the Setup section.
par = {
"ifile": l2gen_ifile,
"ofile": str(l2gen_ifile).replace("L1B", "L2"),
"suite": "BGC",
"l2prod": "chlor_a",
"atmocor": 1,
}
write_par("l2gen.par", par)
With the parameter file ready, it’s time to call l2gen
from a %%bash
cell.
%%bash
source $OCSSWROOT/OCSSW_bash.env
l2gen par=l2gen.par
Loading default parameters from /tmp/ocssw//share/common/msl12_defaults.par Input file granules/PACE_OCI.20240427T161654.L1B.nc is PACE L1B file. Loading characteristics for OCI Opening sensor information file /tmp/ocssw//share/oci/msl12_sensor_info.dat Bnd Lam Fo Tau_r k_oz k_no2 t_co2 awhite aw bbw 0 314.550 112.026 4.873e-01 4.208e-01 3.281e-19 1.000e+00 0.000e+00 2.305e-01 6.356e-03 1 316.239 92.478 6.485e-01 5.806e-01 2.961e-19 1.000e+00 0.000e+00 1.633e-01 7.727e-03 2 318.262 85.195 7.410e-01 5.473e-01 2.844e-19 1.000e+00 0.000e+00 1.278e-01 8.187e-03 3 320.303 82.175 7.809e-01 4.609e-01 2.833e-19 1.000e+00 0.000e+00 1.105e-01 8.271e-03 4 322.433 80.733 7.906e-01 3.543e-01 2.898e-19 1.000e+00 0.000e+00 9.950e-02 8.190e-03 5 324.649 86.251 7.915e-01 2.567e-01 3.018e-19 1.000e+00 0.000e+00 9.079e-02 8.041e-03 6 326.828 95.932 7.891e-01 1.907e-01 3.132e-19 1.000e+00 0.000e+00 8.475e-02 7.871e-03 7 328.988 101.672 7.700e-01 1.386e-01 3.251e-19 1.000e+00 0.000e+00 8.211e-02 7.627e-03 8 331.305 101.708 7.404e-01 9.852e-02 3.417e-19 1.000e+00 0.000e+00 8.089e-02 7.342e-03 9 333.958 97.745 7.204e-01 6.830e-02 3.572e-19 1.000e+00 0.000e+00 7.656e-02 7.132e-03 10 336.815 93.497 7.112e-01 4.395e-02 3.736e-19 1.000e+00 0.000e+00 6.891e-02 6.975e-03 11 339.160 96.099 7.034e-01 3.070e-02 3.963e-19 1.000e+00 0.000e+00 6.288e-02 6.834e-03 12 341.321 98.332 6.898e-01 2.060e-02 4.076e-19 1.000e+00 0.000e+00 5.915e-02 6.663e-03 13 343.632 95.167 6.720e-01 1.439e-02 4.137e-19 1.000e+00 0.000e+00 5.624e-02 6.474e-03 14 346.017 92.958 6.529e-01 9.882e-03 4.395e-19 1.000e+00 0.000e+00 5.365e-02 6.285e-03 15 348.468 95.422 6.342e-01 6.032e-03 4.610e-19 1.000e+00 0.000e+00 5.106e-02 6.097e-03 16 350.912 99.423 6.163e-01 4.542e-03 4.617e-19 1.000e+00 0.000e+00 4.864e-02 5.913e-03 17 353.344 102.927 5.988e-01 3.473e-03 4.768e-19 1.000e+00 0.000e+00 4.647e-02 5.735e-03 18 355.782 99.180 5.823e-01 2.499e-03 5.019e-19 1.000e+00 0.000e+00 4.450e-02 5.562e-03 19 358.235 93.459 5.642e-01 2.283e-03 5.089e-19 1.000e+00 0.000e+00 4.256e-02 5.394e-03 20 360.695 97.255 5.472e-01 2.096e-03 5.117e-19 1.000e+00 0.000e+00 4.053e-02 5.233e-03 21 363.137 105.330 5.320e-01 1.734e-03 5.326e-19 1.000e+00 0.000e+00 3.856e-02 5.079e-03 22 365.610 113.914 5.178e-01 1.415e-03 5.533e-19 1.000e+00 0.000e+00 3.642e-02 4.932e-03 23 368.083 118.845 5.043e-01 1.282e-03 5.555e-19 1.000e+00 0.000e+00 3.417e-02 4.789e-03 24 370.534 115.549 4.908e-01 1.286e-03 5.590e-19 1.000e+00 0.000e+00 3.126e-02 4.651e-03 25 372.991 107.218 4.773e-01 1.342e-03 5.744e-19 1.000e+00 0.000e+00 2.719e-02 4.520e-03 26 375.482 108.880 4.630e-01 1.283e-03 5.834e-19 1.000e+00 0.000e+00 2.270e-02 4.392e-03 27 377.926 118.137 4.513e-01 1.115e-03 5.861e-19 1.000e+00 0.000e+00 1.843e-02 4.269e-03 28 380.419 111.060 4.406e-01 1.167e-03 5.945e-19 1.000e+00 0.000e+00 1.508e-02 4.151e-03 29 382.876 96.370 4.280e-01 1.379e-03 6.014e-19 1.000e+00 0.000e+00 1.316e-02 4.037e-03 30 385.359 96.688 4.156e-01 1.389e-03 6.039e-19 1.000e+00 0.000e+00 1.228e-02 3.928e-03 31 387.811 107.161 4.051e-01 1.257e-03 6.130e-19 1.000e+00 0.000e+00 1.166e-02 3.822e-03 32 390.297 112.501 3.955e-01 1.196e-03 6.227e-19 1.000e+00 0.000e+00 1.104e-02 3.718e-03 33 392.764 106.686 3.857e-01 1.256e-03 6.193e-19 1.000e+00 0.000e+00 1.065e-02 3.619e-03 34 395.238 106.058 3.747e-01 1.271e-03 6.157e-19 1.000e+00 0.000e+00 1.040e-02 3.523e-03 35 397.706 127.304 3.647e-01 1.082e-03 6.328e-19 1.000e+00 0.000e+00 9.891e-03 3.430e-03 36 400.178 157.144 3.564e-01 9.418e-04 6.342e-19 1.000e+00 0.000e+00 8.906e-03 3.341e-03 37 402.654 170.763 3.486e-01 9.296e-04 6.155e-19 1.000e+00 0.000e+00 7.976e-03 3.255e-03 38 405.127 168.889 3.400e-01 9.759e-04 6.015e-19 1.000e+00 0.000e+00 7.534e-03 3.171e-03 39 407.605 168.988 3.314e-01 1.065e-03 6.101e-19 1.000e+00 0.000e+00 7.203e-03 3.090e-03 40 410.074 173.399 3.233e-01 1.143e-03 6.226e-19 1.000e+00 0.000e+00 6.868e-03 3.011e-03 41 412.557 177.268 3.155e-01 1.158e-03 6.161e-19 1.000e+00 0.000e+00 6.656e-03 2.935e-03 42 415.025 177.759 3.079e-01 1.218e-03 5.856e-19 1.000e+00 0.000e+00 6.564e-03 2.861e-03 43 417.512 175.925 3.004e-01 1.325e-03 5.698e-19 1.000e+00 0.000e+00 6.661e-03 2.789e-03 44 419.988 175.156 2.932e-01 1.448e-03 5.927e-19 1.000e+00 0.000e+00 6.771e-03 2.720e-03 45 422.453 174.012 2.863e-01 1.774e-03 6.054e-19 1.000e+00 0.000e+00 6.878e-03 2.654e-03 46 424.940 170.766 2.796e-01 2.153e-03 5.793e-19 1.000e+00 0.000e+00 7.006e-03 2.590e-03 47 427.398 162.027 2.732e-01 2.242e-03 5.468e-19 1.000e+00 0.000e+00 6.986e-03 2.527e-03 48 429.885 154.088 2.664e-01 2.290e-03 5.331e-19 1.000e+00 0.000e+00 6.994e-03 2.464e-03 49 432.379 161.564 2.597e-01 2.492e-03 5.452e-19 1.000e+00 0.000e+00 7.152e-03 2.404e-03 50 434.869 174.172 2.539e-01 2.644e-03 5.549e-19 1.000e+00 0.000e+00 7.438e-03 2.347e-03 51 437.351 178.115 2.482e-01 3.023e-03 5.355e-19 1.000e+00 0.000e+00 8.014e-03 2.291e-03 52 439.828 182.229 2.424e-01 3.903e-03 4.968e-19 1.000e+00 0.000e+00 8.606e-03 2.238e-03 53 442.327 190.795 2.368e-01 4.600e-03 4.726e-19 1.000e+00 0.000e+00 9.139e-03 2.185e-03 54 444.811 195.628 2.315e-01 4.590e-03 4.945e-19 1.000e+00 0.000e+00 9.759e-03 2.133e-03 55 447.309 199.848 2.261e-01 4.547e-03 5.107e-19 1.000e+00 0.000e+00 1.052e-02 2.082e-03 56 449.795 205.764 2.211e-01 4.968e-03 4.798e-19 1.000e+00 0.000e+00 1.131e-02 2.034e-03 57 452.280 205.708 2.162e-01 5.368e-03 4.441e-19 1.000e+00 0.000e+00 1.179e-02 1.987e-03 58 454.769 204.450 2.114e-01 5.945e-03 4.252e-19 1.000e+00 0.000e+00 1.203e-02 1.942e-03 59 457.262 205.953 2.067e-01 7.420e-03 4.263e-19 1.000e+00 0.000e+00 1.212e-02 1.898e-03 60 459.757 207.117 2.022e-01 9.301e-03 4.351e-19 1.000e+00 0.000e+00 1.214e-02 1.855e-03 61 462.252 207.870 1.977e-01 1.011e-02 4.326e-19 1.000e+00 0.000e+00 1.219e-02 1.813e-03 62 464.737 205.886 1.935e-01 9.683e-03 4.061e-19 1.000e+00 0.000e+00 1.238e-02 1.772e-03 63 467.244 203.675 1.893e-01 9.647e-03 3.691e-19 1.000e+00 0.000e+00 1.242e-02 1.733e-03 64 469.729 203.713 1.852e-01 1.043e-02 3.441e-19 1.000e+00 0.000e+00 1.244e-02 1.694e-03 65 472.202 205.281 1.812e-01 1.115e-02 3.582e-19 1.000e+00 0.000e+00 1.276e-02 1.657e-03 66 474.700 207.058 1.774e-01 1.242e-02 3.801e-19 1.000e+00 0.000e+00 1.326e-02 1.621e-03 67 477.189 208.385 1.736e-01 1.528e-02 3.580e-19 1.000e+00 0.000e+00 1.393e-02 1.586e-03 68 479.689 209.553 1.700e-01 1.895e-02 3.338e-19 1.000e+00 0.000e+00 1.437e-02 1.552e-03 69 482.183 206.590 1.665e-01 2.122e-02 3.022e-19 1.000e+00 0.000e+00 1.472e-02 1.518e-03 70 484.689 195.340 1.631e-01 2.114e-02 2.725e-19 1.000e+00 0.000e+00 1.533e-02 1.485e-03 71 487.182 189.524 1.595e-01 2.040e-02 2.939e-19 1.000e+00 0.000e+00 1.612e-02 1.454e-03 72 489.674 195.470 1.562e-01 2.101e-02 3.044e-19 1.000e+00 0.000e+00 1.694e-02 1.423e-03 73 492.176 199.211 1.530e-01 2.224e-02 2.853e-19 1.000e+00 0.000e+00 1.789e-02 1.393e-03 74 494.686 200.274 1.499e-01 2.354e-02 2.822e-19 1.000e+00 0.000e+00 1.916e-02 1.364e-03 75 497.182 199.355 1.469e-01 2.613e-02 2.498e-19 1.000e+00 0.000e+00 2.072e-02 1.336e-03 76 499.688 194.720 1.440e-01 3.087e-02 2.022e-19 1.000e+00 0.000e+00 2.233e-02 1.309e-03 77 502.190 192.753 1.410e-01 3.665e-02 2.151e-19 1.000e+00 0.000e+00 2.438e-02 1.281e-03 78 504.695 195.557 1.382e-01 4.082e-02 2.384e-19 1.000e+00 0.000e+00 2.700e-02 1.255e-03 79 507.198 197.605 1.355e-01 4.179e-02 2.315e-19 1.000e+00 0.000e+00 3.003e-02 1.230e-03 80 509.720 196.520 1.328e-01 4.101e-02 2.296e-19 1.000e+00 0.000e+00 3.389e-02 1.206e-03 81 512.213 193.098 1.302e-01 4.110e-02 2.157e-19 1.000e+00 0.000e+00 3.784e-02 1.181e-03 82 514.729 185.769 1.277e-01 4.275e-02 1.772e-19 1.000e+00 0.000e+00 4.045e-02 1.157e-03 83 517.219 179.326 1.252e-01 4.504e-02 1.597e-19 1.000e+00 0.000e+00 4.179e-02 1.134e-03 84 519.747 182.521 1.227e-01 4.767e-02 1.620e-19 1.000e+00 0.000e+00 4.270e-02 1.111e-03 85 522.249 189.089 1.203e-01 5.134e-02 1.624e-19 1.000e+00 0.000e+00 4.337e-02 1.089e-03 86 524.771 188.823 1.180e-01 5.654e-02 1.755e-19 1.000e+00 0.000e+00 4.387e-02 1.067e-03 87 527.276 187.920 1.158e-01 6.292e-02 1.771e-19 1.000e+00 0.000e+00 4.454e-02 1.049e-03 88 529.798 191.821 1.137e-01 6.884e-02 1.592e-19 1.000e+00 0.000e+00 4.553e-02 1.031e-03 89 532.314 193.286 1.114e-01 7.264e-02 1.423e-19 1.000e+00 0.000e+00 4.646e-02 1.008e-03 90 534.859 191.915 1.092e-01 7.422e-02 1.168e-19 1.000e+00 0.000e+00 4.742e-02 9.861e-04 91 537.346 190.229 1.072e-01 7.488e-02 1.024e-19 1.000e+00 0.000e+00 4.852e-02 9.673e-04 92 539.878 187.754 1.052e-01 7.665e-02 1.097e-19 1.000e+00 0.000e+00 4.966e-02 9.489e-04 93 542.395 188.298 1.032e-01 7.989e-02 1.240e-19 1.000e+00 0.000e+00 5.116e-02 9.303e-04 94 544.904 189.892 1.013e-01 8.325e-02 1.296e-19 1.000e+00 0.000e+00 5.328e-02 9.125e-04 95 547.441 189.629 9.940e-02 8.591e-02 1.237e-19 1.000e+00 0.000e+00 5.584e-02 8.953e-04 96 549.994 189.342 9.756e-02 8.809e-02 1.129e-19 1.000e+00 0.000e+00 5.851e-02 8.784e-04 97 552.511 189.725 9.575e-02 9.044e-02 9.907e-20 1.000e+00 0.000e+00 6.062e-02 8.617e-04 98 555.044 188.862 9.400e-02 9.359e-02 8.268e-20 1.000e+00 0.000e+00 6.191e-02 8.454e-04 99 557.576 185.867 9.230e-02 9.815e-02 6.751e-20 1.000e+00 0.000e+00 6.298e-02 8.297e-04 100 560.104 184.284 9.062e-02 1.041e-01 6.704e-20 1.000e+00 0.000e+00 6.443e-02 8.146e-04 101 562.642 184.903 8.899e-02 1.101e-01 8.271e-20 1.000e+00 0.000e+00 6.592e-02 7.997e-04 102 565.190 184.929 8.737e-02 1.152e-01 8.817e-20 1.000e+00 0.000e+00 6.740e-02 7.846e-04 103 567.710 184.394 8.579e-02 1.194e-01 8.097e-20 1.000e+00 0.000e+00 6.954e-02 7.698e-04 104 570.259 184.337 8.424e-02 1.231e-01 8.258e-20 1.000e+00 0.000e+00 7.243e-02 7.555e-04 105 572.796 185.701 8.273e-02 1.258e-01 7.445e-20 1.000e+00 0.000e+00 7.601e-02 7.418e-04 106 575.343 185.860 8.130e-02 1.262e-01 5.358e-20 1.000e+00 0.000e+00 8.077e-02 7.290e-04 107 577.902 184.295 7.992e-02 1.245e-01 4.606e-20 1.000e+00 0.000e+00 8.675e-02 7.169e-04 108 580.450 184.370 7.850e-02 1.217e-01 4.637e-20 1.000e+00 0.000e+00 9.411e-02 7.037e-04 109 582.996 184.516 7.711e-02 1.191e-01 4.563e-20 1.000e+00 0.000e+00 1.036e-01 6.904e-04 110 585.553 182.261 7.581e-02 1.175e-01 4.880e-20 1.000e+00 0.000e+00 1.147e-01 6.784e-04 111 588.086 178.467 7.455e-02 1.172e-01 5.159e-20 1.000e+00 0.000e+00 1.271e-01 6.670e-04 112 590.548 177.770 7.336e-02 1.186e-01 5.765e-20 1.000e+00 0.000e+00 1.411e-01 6.570e-04 113 593.084 179.810 7.228e-02 1.222e-01 5.611e-20 1.000e+00 0.000e+00 1.572e-01 6.487e-04 114 595.679 179.992 7.117e-02 1.275e-01 4.249e-20 1.000e+00 0.000e+00 1.772e-01 6.390e-04 115 598.262 178.361 6.999e-02 1.328e-01 3.893e-20 1.000e+00 0.000e+00 2.030e-01 6.276e-04 116 600.545 176.370 6.757e-02 1.365e-01 3.874e-20 1.000e+00 0.000e+00 2.467e-01 5.992e-04 117 602.920 176.174 6.651e-02 1.374e-01 3.034e-20 1.000e+00 0.000e+00 2.611e-01 5.899e-04 118 605.461 176.473 6.543e-02 1.353e-01 2.076e-20 1.000e+00 0.000e+00 2.702e-01 5.801e-04 119 607.986 174.705 6.437e-02 1.310e-01 1.990e-20 1.000e+00 0.000e+00 2.728e-01 5.706e-04 120 610.360 172.381 6.335e-02 1.256e-01 2.700e-20 1.000e+00 0.000e+00 2.733e-01 5.614e-04 121 612.730 170.269 6.236e-02 1.202e-01 3.487e-20 1.000e+00 0.000e+00 2.746e-01 5.524e-04 122 615.145 167.881 6.137e-02 1.152e-01 3.541e-20 1.000e+00 0.000e+00 2.763e-01 5.434e-04 123 617.605 167.707 6.038e-02 1.107e-01 3.180e-20 1.000e+00 0.000e+00 2.790e-01 5.346e-04 124 620.061 168.940 5.942e-02 1.070e-01 2.798e-20 1.000e+00 0.000e+00 2.832e-01 5.259e-04 125 622.530 167.529 5.848e-02 1.038e-01 2.439e-20 1.000e+00 0.000e+00 2.876e-01 5.173e-04 126 624.988 165.875 5.754e-02 1.007e-01 2.069e-20 1.000e+00 0.000e+00 2.918e-01 5.089e-04 127 627.434 166.459 5.663e-02 9.740e-02 1.634e-20 1.000e+00 0.000e+00 2.963e-01 5.006e-04 128 629.898 165.893 5.575e-02 9.400e-02 1.319e-20 1.000e+00 0.000e+00 3.008e-01 4.925e-04 129 632.376 164.212 5.486e-02 9.046e-02 1.304e-20 1.000e+00 0.000e+00 3.055e-01 4.846e-04 130 634.830 163.727 5.400e-02 8.676e-02 1.402e-20 1.000e+00 0.000e+00 3.097e-01 4.768e-04 131 637.305 163.541 5.316e-02 8.287e-02 1.464e-20 1.000e+00 0.000e+00 3.137e-01 4.692e-04 132 639.791 162.086 5.234e-02 7.890e-02 1.583e-20 1.000e+00 0.000e+00 3.191e-01 4.618e-04 133 641.029 161.259 5.193e-02 7.696e-02 1.681e-20 1.000e+00 0.000e+00 3.224e-01 4.581e-04 134 642.255 160.668 5.152e-02 7.512e-02 1.767e-20 1.000e+00 0.000e+00 3.258e-01 4.545e-04 135 643.479 160.372 5.112e-02 7.339e-02 1.849e-20 1.000e+00 0.000e+00 3.293e-01 4.509e-04 136 644.716 160.231 5.073e-02 7.176e-02 1.919e-20 1.000e+00 0.000e+00 3.327e-01 4.473e-04 137 645.966 159.889 5.034e-02 7.021e-02 1.946e-20 1.000e+00 0.000e+00 3.360e-01 4.437e-04 138 647.188 159.260 4.995e-02 6.871e-02 1.898e-20 1.000e+00 0.000e+00 3.396e-01 4.402e-04 139 648.435 158.731 4.956e-02 6.727e-02 1.756e-20 1.000e+00 0.000e+00 3.436e-01 4.367e-04 140 649.667 158.341 4.918e-02 6.588e-02 1.544e-20 1.000e+00 0.000e+00 3.486e-01 4.333e-04 141 650.913 158.275 4.880e-02 6.453e-02 1.328e-20 1.000e+00 0.000e+00 3.546e-01 4.299e-04 142 652.153 157.789 4.843e-02 6.321e-02 1.167e-20 1.000e+00 0.000e+00 3.616e-01 4.265e-04 143 653.388 155.177 4.807e-02 6.193e-02 1.068e-20 1.000e+00 0.000e+00 3.693e-01 4.231e-04 144 654.622 151.698 4.771e-02 6.060e-02 9.722e-21 1.000e+00 0.000e+00 3.774e-01 4.198e-04 145 655.869 148.463 4.733e-02 5.922e-02 8.805e-21 1.000e+00 0.000e+00 3.858e-01 4.166e-04 146 657.101 147.695 4.695e-02 5.782e-02 7.987e-21 1.000e+00 0.000e+00 3.947e-01 4.133e-04 147 658.340 149.658 4.658e-02 5.648e-02 7.170e-21 1.000e+00 0.000e+00 4.036e-01 4.101e-04 148 659.600 152.493 4.623e-02 5.523e-02 6.329e-21 1.000e+00 0.000e+00 4.119e-01 4.070e-04 149 660.833 154.868 4.590e-02 5.404e-02 5.541e-21 1.000e+00 0.000e+00 4.192e-01 4.038e-04 150 662.067 155.409 4.555e-02 5.283e-02 4.976e-21 1.000e+00 0.000e+00 4.251e-01 4.007e-04 151 663.300 155.290 4.521e-02 5.158e-02 4.897e-21 1.000e+00 0.000e+00 4.297e-01 3.976e-04 152 664.564 155.005 4.487e-02 5.029e-02 5.478e-21 1.000e+00 0.000e+00 4.334e-01 3.945e-04 153 665.795 154.711 4.453e-02 4.895e-02 6.640e-21 1.000e+00 0.000e+00 4.363e-01 3.915e-04 154 667.023 154.401 4.420e-02 4.759e-02 7.980e-21 1.000e+00 0.000e+00 4.389e-01 3.885e-04 155 668.263 154.028 4.387e-02 4.622e-02 9.022e-21 1.000e+00 0.000e+00 4.415e-01 3.855e-04 156 669.518 153.439 4.354e-02 4.488e-02 9.638e-21 1.000e+00 0.000e+00 4.442e-01 3.825e-04 157 670.755 152.834 4.321e-02 4.356e-02 9.943e-21 1.000e+00 0.000e+00 4.471e-01 3.796e-04 158 671.990 152.273 4.289e-02 4.229e-02 1.010e-20 1.000e+00 0.000e+00 4.497e-01 3.767e-04 159 673.245 151.870 4.257e-02 4.107e-02 1.027e-20 1.000e+00 0.000e+00 4.523e-01 3.738e-04 160 674.503 151.619 4.225e-02 3.991e-02 1.027e-20 1.000e+00 0.000e+00 4.551e-01 3.710e-04 161 675.731 151.421 4.194e-02 3.879e-02 9.926e-21 1.000e+00 0.000e+00 4.583e-01 3.681e-04 162 676.963 151.155 4.163e-02 3.774e-02 9.232e-21 1.000e+00 0.000e+00 4.620e-01 3.654e-04 163 678.208 150.791 4.132e-02 3.675e-02 8.304e-21 1.000e+00 0.000e+00 4.661e-01 3.626e-04 164 679.448 150.430 4.102e-02 3.584e-02 7.379e-21 1.000e+00 0.000e+00 4.703e-01 3.599e-04 165 680.680 149.905 4.072e-02 3.503e-02 6.552e-21 1.000e+00 0.000e+00 4.747e-01 3.572e-04 166 681.919 149.251 4.042e-02 3.430e-02 5.895e-21 1.000e+00 0.000e+00 4.794e-01 3.545e-04 167 683.171 148.503 4.012e-02 3.361e-02 5.490e-21 1.000e+00 0.000e+00 4.845e-01 3.518e-04 168 684.417 147.884 3.983e-02 3.292e-02 5.184e-21 1.000e+00 0.000e+00 4.901e-01 3.492e-04 169 685.657 147.515 3.953e-02 3.216e-02 4.905e-21 1.000e+00 0.000e+00 4.962e-01 3.466e-04 170 686.894 147.425 3.924e-02 3.131e-02 4.525e-21 1.000e+00 0.000e+00 5.029e-01 3.440e-04 171 688.143 147.400 3.896e-02 3.039e-02 4.024e-21 1.000e+00 0.000e+00 5.103e-01 3.414e-04 172 689.394 147.153 3.867e-02 2.943e-02 3.539e-21 1.000e+00 0.000e+00 5.186e-01 3.389e-04 173 690.647 146.715 3.839e-02 2.845e-02 3.144e-21 1.000e+00 0.000e+00 5.276e-01 3.363e-04 174 691.888 146.143 3.811e-02 2.750e-02 2.906e-21 1.000e+00 0.000e+00 5.375e-01 3.338e-04 175 693.130 145.684 3.784e-02 2.657e-02 2.763e-21 1.000e+00 0.000e+00 5.484e-01 3.314e-04 176 694.382 145.196 3.756e-02 2.567e-02 2.656e-21 1.000e+00 0.000e+00 5.605e-01 3.289e-04 177 695.644 144.701 3.729e-02 2.479e-02 2.542e-21 1.000e+00 0.000e+00 5.740e-01 3.265e-04 178 696.891 144.099 3.702e-02 2.394e-02 2.429e-21 1.000e+00 0.000e+00 5.888e-01 3.241e-04 179 698.118 143.280 3.676e-02 2.315e-02 2.343e-21 1.000e+00 0.000e+00 6.047e-01 3.217e-04 180 699.376 142.397 3.649e-02 2.241e-02 2.369e-21 1.000e+00 0.000e+00 6.215e-01 3.193e-04 181 700.612 141.532 3.623e-02 2.174e-02 2.581e-21 1.000e+00 0.000e+00 6.393e-01 3.170e-04 182 701.858 141.039 3.597e-02 2.114e-02 3.030e-21 1.000e+00 0.000e+00 6.580e-01 3.147e-04 183 703.097 140.869 3.571e-02 2.061e-02 3.660e-21 1.000e+00 0.000e+00 6.780e-01 3.124e-04 184 704.354 140.969 3.546e-02 2.014e-02 4.374e-21 1.000e+00 0.000e+00 6.995e-01 3.101e-04 185 705.593 140.996 3.521e-02 1.972e-02 4.920e-21 1.000e+00 0.000e+00 7.231e-01 3.078e-04 186 706.833 140.760 3.496e-02 1.934e-02 5.156e-21 1.000e+00 0.000e+00 7.499e-01 3.056e-04 187 708.089 140.307 3.471e-02 1.900e-02 5.111e-21 1.000e+00 0.000e+00 7.805e-01 3.034e-04 188 709.337 139.705 3.446e-02 1.868e-02 4.920e-21 1.000e+00 0.000e+00 8.152e-01 3.012e-04 189 710.581 139.142 3.422e-02 1.842e-02 4.776e-21 1.000e+00 0.000e+00 8.540e-01 2.990e-04 190 711.826 138.503 3.398e-02 1.820e-02 4.601e-21 1.000e+00 0.000e+00 8.959e-01 2.968e-04 191 713.068 137.918 3.374e-02 1.804e-02 4.294e-21 1.000e+00 0.000e+00 9.408e-01 2.947e-04 192 714.316 137.373 3.350e-02 1.788e-02 3.751e-21 1.000e+00 0.000e+00 9.886e-01 2.926e-04 193 716.817 136.139 3.303e-02 1.733e-02 2.447e-21 1.000e+00 0.000e+00 1.093e+00 2.884e-04 194 719.298 134.747 3.257e-02 1.625e-02 1.823e-21 1.000e+00 0.000e+00 1.206e+00 2.843e-04 195 721.800 134.248 3.212e-02 1.496e-02 1.858e-21 1.000e+00 0.000e+00 1.327e+00 2.802e-04 196 724.303 134.303 3.167e-02 1.391e-02 1.678e-21 1.000e+00 0.000e+00 1.461e+00 2.763e-04 197 726.796 133.424 3.124e-02 1.304e-02 1.167e-21 1.000e+00 0.000e+00 1.642e+00 2.724e-04 198 729.299 132.173 3.081e-02 1.220e-02 8.984e-22 1.000e+00 0.000e+00 1.891e+00 2.686e-04 199 731.790 131.770 3.038e-02 1.153e-02 9.392e-22 1.000e+00 0.000e+00 2.176e+00 2.648e-04 200 734.281 131.420 2.997e-02 1.114e-02 1.157e-21 1.000e+00 0.000e+00 2.438e+00 2.611e-04 201 736.791 130.150 2.956e-02 1.096e-02 1.301e-21 1.000e+00 0.000e+00 2.621e+00 2.575e-04 202 739.287 128.259 2.916e-02 1.090e-02 1.303e-21 1.000e+00 0.000e+00 2.732e+00 2.539e-04 203 740.535 127.659 2.897e-02 1.094e-02 1.339e-21 1.000e+00 0.000e+00 2.770e+00 2.521e-04 204 741.785 127.339 2.877e-02 1.103e-02 1.496e-21 1.000e+00 0.000e+00 2.799e+00 2.504e-04 205 743.046 127.458 2.857e-02 1.119e-02 1.813e-21 1.000e+00 0.000e+00 2.819e+00 2.486e-04 206 744.286 127.660 2.838e-02 1.137e-02 2.155e-21 1.000e+00 0.000e+00 2.832e+00 2.469e-04 207 745.534 127.796 2.819e-02 1.153e-02 2.323e-21 1.000e+00 0.000e+00 2.840e+00 2.452e-04 208 746.789 127.697 2.800e-02 1.159e-02 2.205e-21 1.000e+00 0.000e+00 2.846e+00 2.435e-04 209 748.041 127.310 2.781e-02 1.150e-02 1.876e-21 1.000e+00 0.000e+00 2.850e+00 2.419e-04 210 749.279 126.838 2.762e-02 1.122e-02 1.554e-21 1.000e+00 0.000e+00 2.854e+00 2.402e-04 211 750.540 126.351 2.744e-02 1.074e-02 1.390e-21 1.000e+00 0.000e+00 2.857e+00 2.386e-04 212 751.792 126.028 2.725e-02 1.013e-02 1.397e-21 1.000e+00 0.000e+00 2.862e+00 2.369e-04 213 753.042 125.814 2.707e-02 9.483e-03 1.443e-21 1.000e+00 0.000e+00 2.867e+00 2.353e-04 214 754.294 125.571 2.689e-02 8.866e-03 1.420e-21 1.000e+00 0.000e+00 2.870e+00 2.337e-04 215 755.542 125.152 2.671e-02 8.328e-03 1.307e-21 1.000e+00 0.000e+00 2.872e+00 2.321e-04 216 756.802 124.719 2.654e-02 7.888e-03 1.121e-21 1.000e+00 0.000e+00 2.871e+00 2.305e-04 217 758.051 124.328 2.636e-02 7.536e-03 8.963e-22 1.000e+00 0.000e+00 2.869e+00 2.290e-04 218 759.299 124.043 2.618e-02 7.263e-03 6.951e-22 1.000e+00 0.000e+00 2.868e+00 2.274e-04 219 760.558 123.914 2.601e-02 7.046e-03 5.663e-22 1.000e+00 0.000e+00 2.867e+00 2.259e-04 220 761.802 123.750 2.584e-02 6.870e-03 5.311e-22 1.000e+00 0.000e+00 2.866e+00 2.243e-04 221 763.060 123.256 2.567e-02 6.729e-03 5.615e-22 1.000e+00 0.000e+00 2.864e+00 2.228e-04 222 764.310 122.509 2.550e-02 6.613e-03 6.061e-22 1.000e+00 0.000e+00 2.859e+00 2.213e-04 223 765.557 121.681 2.534e-02 6.524e-03 6.186e-22 1.000e+00 0.000e+00 2.851e+00 2.198e-04 224 766.815 121.062 2.517e-02 6.466e-03 5.746e-22 1.000e+00 0.000e+00 2.843e+00 2.184e-04 225 768.071 120.731 2.500e-02 6.448e-03 4.879e-22 1.000e+00 0.000e+00 2.834e+00 2.169e-04 226 769.326 120.550 2.484e-02 6.482e-03 3.904e-22 1.000e+00 0.000e+00 2.824e+00 2.155e-04 227 770.564 120.456 2.468e-02 6.585e-03 3.155e-22 1.000e+00 0.000e+00 2.813e+00 2.140e-04 228 771.823 120.093 2.452e-02 6.768e-03 2.764e-22 1.000e+00 0.000e+00 2.800e+00 2.126e-04 229 773.074 119.833 2.436e-02 7.035e-03 2.723e-22 1.000e+00 0.000e+00 2.786e+00 2.112e-04 230 774.338 119.604 2.420e-02 7.369e-03 2.949e-22 1.000e+00 0.000e+00 2.771e+00 2.098e-04 231 776.832 119.136 2.389e-02 8.069e-03 3.684e-22 1.000e+00 0.000e+00 2.741e+00 2.070e-04 232 779.336 118.623 2.358e-02 8.375e-03 4.135e-22 1.000e+00 0.000e+00 2.699e+00 2.043e-04 233 781.843 118.090 2.328e-02 7.962e-03 4.360e-22 1.000e+00 0.000e+00 2.650e+00 2.016e-04 234 784.350 117.590 2.298e-02 7.054e-03 4.865e-22 1.000e+00 0.000e+00 2.598e+00 1.990e-04 235 786.855 117.193 2.269e-02 6.138e-03 6.189e-22 1.000e+00 0.000e+00 2.541e+00 1.964e-04 236 789.367 116.427 2.240e-02 5.442e-03 8.418e-22 1.000e+00 0.000e+00 2.482e+00 1.939e-04 237 791.865 114.579 2.212e-02 4.901e-03 7.865e-22 1.000e+00 0.000e+00 2.423e+00 1.914e-04 238 794.382 113.306 2.184e-02 4.449e-03 4.479e-22 1.000e+00 0.000e+00 2.369e+00 1.889e-04 239 796.881 113.682 2.157e-02 4.130e-03 2.896e-22 1.000e+00 0.000e+00 2.321e+00 1.865e-04 240 799.394 113.560 2.130e-02 3.943e-03 3.150e-22 1.000e+00 0.000e+00 2.274e+00 1.841e-04 241 801.901 112.589 2.104e-02 3.847e-03 3.325e-22 1.000e+00 0.000e+00 2.236e+00 1.818e-04 242 804.409 111.657 2.078e-02 3.891e-03 2.312e-22 1.000e+00 0.000e+00 2.212e+00 1.794e-04 243 806.913 110.856 2.052e-02 4.171e-03 1.138e-22 1.000e+00 0.000e+00 2.196e+00 1.772e-04 244 809.428 110.319 2.027e-02 4.692e-03 9.675e-23 1.000e+00 0.000e+00 2.192e+00 1.750e-04 245 811.932 110.212 2.003e-02 5.313e-03 1.269e-22 1.000e+00 0.000e+00 2.203e+00 1.728e-04 246 814.440 109.950 1.979e-02 5.836e-03 1.403e-22 1.000e+00 0.000e+00 2.232e+00 1.706e-04 247 816.943 108.713 1.955e-02 6.024e-03 1.070e-22 1.000e+00 0.000e+00 2.276e+00 1.685e-04 248 819.456 107.005 1.932e-02 5.699e-03 6.941e-23 1.000e+00 0.000e+00 2.340e+00 1.665e-04 249 821.961 106.334 1.908e-02 4.916e-03 6.586e-23 1.000e+00 0.000e+00 2.440e+00 1.644e-04 250 824.462 106.615 1.885e-02 3.982e-03 8.298e-23 1.000e+00 0.000e+00 2.605e+00 1.623e-04 251 826.984 106.526 1.862e-02 3.185e-03 1.014e-22 1.000e+00 0.000e+00 2.847e+00 1.603e-04 252 829.489 105.761 1.840e-02 2.620e-03 1.147e-22 1.000e+00 0.000e+00 3.138e+00 1.583e-04 253 832.005 104.362 1.817e-02 2.259e-03 1.471e-22 1.000e+00 0.000e+00 3.434e+00 1.564e-04 254 834.507 103.505 1.795e-02 2.051e-03 1.970e-22 1.000e+00 0.000e+00 3.664e+00 1.544e-04 255 837.018 103.416 1.774e-02 1.974e-03 1.945e-22 1.000e+00 0.000e+00 3.810e+00 1.526e-04 256 839.516 103.189 1.754e-02 1.990e-03 1.761e-22 1.000e+00 0.000e+00 3.914e+00 1.508e-04 257 842.031 102.548 1.733e-02 2.081e-03 1.913e-22 1.000e+00 0.000e+00 3.996e+00 1.489e-04 258 844.538 101.894 1.713e-02 2.267e-03 1.738e-22 1.000e+00 0.000e+00 4.064e+00 1.471e-04 259 847.062 100.764 1.693e-02 2.602e-03 1.158e-22 1.000e+00 0.000e+00 4.128e+00 1.453e-04 260 849.572 98.537 1.673e-02 3.172e-03 7.480e-23 1.000e+00 0.000e+00 4.189e+00 1.436e-04 261 852.086 94.626 1.654e-02 3.781e-03 8.119e-23 1.000e+00 0.000e+00 4.243e+00 1.419e-04 262 854.586 92.389 1.634e-02 3.974e-03 1.025e-22 1.000e+00 0.000e+00 4.301e+00 1.402e-04 263 857.103 95.844 1.614e-02 3.669e-03 8.662e-23 1.000e+00 0.000e+00 4.366e+00 1.385e-04 264 859.594 98.543 1.595e-02 3.165e-03 6.504e-23 1.000e+00 0.000e+00 4.432e+00 1.368e-04 265 862.112 97.885 1.577e-02 2.572e-03 6.390e-23 1.000e+00 0.000e+00 4.501e+00 1.352e-04 266 864.610 94.383 1.560e-02 2.051e-03 5.998e-23 1.000e+00 0.000e+00 4.585e+00 1.336e-04 267 867.113 92.034 1.542e-02 1.649e-03 6.107e-23 1.000e+00 0.000e+00 4.670e+00 1.321e-04 268 869.613 94.195 1.524e-02 1.362e-03 6.062e-23 1.000e+00 0.000e+00 4.755e+00 1.305e-04 269 872.129 95.128 1.507e-02 1.178e-03 5.796e-23 1.000e+00 0.000e+00 4.860e+00 1.290e-04 270 874.636 94.383 1.490e-02 1.081e-03 6.097e-23 1.000e+00 0.000e+00 4.980e+00 1.275e-04 271 877.145 94.042 1.472e-02 1.057e-03 6.736e-23 1.000e+00 0.000e+00 5.110e+00 1.260e-04 272 879.637 93.568 1.456e-02 1.097e-03 7.289e-23 1.000e+00 0.000e+00 5.252e+00 1.245e-04 273 882.136 93.350 1.440e-02 1.184e-03 7.406e-23 1.000e+00 0.000e+00 5.399e+00 1.231e-04 274 884.639 93.096 1.424e-02 1.303e-03 7.027e-23 1.000e+00 0.000e+00 5.535e+00 1.217e-04 275 887.130 92.483 1.408e-02 1.422e-03 7.840e-23 1.000e+00 0.000e+00 5.669e+00 1.203e-04 276 889.598 92.305 1.393e-02 1.469e-03 1.132e-22 1.000e+00 0.000e+00 5.813e+00 1.190e-04 277 892.093 91.818 1.378e-02 1.484e-03 1.219e-22 1.000e+00 0.000e+00 5.950e+00 1.177e-04 278 894.601 91.425 1.364e-02 1.610e-03 9.420e-23 1.000e+00 0.000e+00 6.078e+00 1.164e-04 279 939.713 81.998 1.109e-02 5.011e-04 7.228e-24 1.000e+00 0.000e+00 2.247e+01 9.450e-05 280 1038.317 66.984 7.465e-03 3.476e-05 3.122e-27 1.000e+00 0.000e+00 2.308e+01 6.293e-05 281 1248.550 44.519 3.536e-03 8.538e-09 1.212e-26 1.000e+00 0.000e+00 1.125e+02 2.952e-05 282 1378.169 35.562 2.376e-03 1.117e-08 3.016e-26 1.000e+00 0.000e+00 5.588e+02 1.971e-05 283 1618.034 23.487 1.252e-03 3.024e-09 8.983e-27 1.000e+00 0.000e+00 7.136e+02 1.026e-05 284 2130.593 9.111 4.152e-04 1.149e-08 3.418e-26 1.000e+00 0.000e+00 2.521e+03 3.356e-06 285 2258.429 7.397 3.292e-04 9.446e-09 2.821e-26 1.000e+00 0.000e+00 2.208e+03 2.651e-06 Loading default parameters for OCI from /tmp/ocssw//share/oci/msl12_defaults.par Loading parameters for suite BGC from /tmp/ocssw//share/oci/msl12_defaults_BGC.par Loading command line parameters Loading user parameters for OCI Internal data compression requested at compression level: 4 Opening filter file /tmp/ocssw/share/oci/msl12_filter.dat Setting 5 x 3 straylight filter on CLDICE mask Filter Kernel 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Minimum fill set to 1 pixels Opening OCI L1B file OCI L1B Npix :1272 Nlines:1710 file->nbands = 286 Allocated 32313760 bytes in L1 record. Allocated 14633960 bytes in error record. Allocated 16067904 bytes in L2 record. Opening: granules/PACE_OCI.20240427T161654.L2.nc The following products will be included in granules/PACE_OCI.20240427T161654.L2.nc. 0 chlor_a 1 l2_flags Begin l2gen Version 9.7.0-T2024.19 Processing Sensor is OCI Sensor ID is 30 Sensor has 286 reflective bands Sensor has 0 emissive bands Number of along-track detectors per band is 1 Number of input pixels per scan is 1272 Processing pixels 1 to 1272 by 1 Processing scans 1 to 1710 by 1 Ocean processing enabled Land processing enabled Atmospheric correction enabled Begin MSl12 processing at 2024163185813000 Allocated 32313760 bytes in L1 record. Allocated 32313760 bytes in L1 record. Allocated 32313760 bytes in L1 record. Allocated 14633960 bytes in error record. Allocated 14633960 bytes in error record. Allocated 14633960 bytes in error record. Loading land mask information from /tmp/ocssw/share/common/gebco_ocssw_v2020.nc Loading DEM information from /tmp/ocssw/share/common/gebco_ocssw_v2020.nc Loading ice mask file from /tmp/ocssw/share/common/ice_climatology.hdf Loaded monthly NSIDC ice climatology HDF file. Loading DEM info from /tmp/ocssw/share/common/gebco_ocssw_v2020.nc Loading climatology file /tmp/ocssw/share/common/sst_climatology.hdf Loading SSS reference from Climatology file: /tmp/ocssw/share/common/sss_climatology_woa2009.hdf Opening meteorological files. met1 = /tmp/ocssw/share/common/met_climatology_v2014.hdf met2 = met3 = ozone1 = /tmp/ocssw/share/common/ozone_climatology_v2014.hdf ozone2 = ozone3 = no2 = /tmp/ocssw/share/common/no2_climatology_v2013.hdf Opening ozone file /tmp/ocssw/share/common/ozone_climatology_v2014.hdf Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_315_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_316_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_318_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_320_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_322_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_325_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_327_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_329_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_331_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_334_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_337_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_339_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_341_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_344_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_346_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_348_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_351_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_353_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_356_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_358_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_361_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_363_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_366_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_368_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_371_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_373_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_375_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_378_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_380_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_383_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_385_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_388_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_390_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_393_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_395_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_398_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_400_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_403_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_405_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_408_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_410_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_413_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_415_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_418_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_420_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_422_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_425_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_427_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_430_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_432_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_435_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_437_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_440_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_442_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_445_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_447_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_450_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_452_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_455_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_457_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_460_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_462_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_465_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_467_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_470_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_472_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_475_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_477_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_480_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_482_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_485_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_487_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_490_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_492_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_495_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_497_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_500_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_502_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_505_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_507_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_510_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_512_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_515_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_517_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_520_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_522_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_525_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_527_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_530_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_532_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_535_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_537_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_540_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_542_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_545_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_547_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_550_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_553_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_555_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_558_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_560_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_563_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_565_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_568_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_570_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_573_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_575_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_578_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_580_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_583_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_586_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_588_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_591_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_593_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_596_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_598_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_601_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_603_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_605_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_608_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_610_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_613_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_615_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_618_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_620_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_623_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_625_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_627_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_630_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_632_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_635_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_637_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_640_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_641_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_642_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_643_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_645_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_646_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_647_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_648_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_650_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_651_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_652_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_653_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_655_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_656_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_657_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_658_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_660_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_661_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_662_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_663_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_665_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_666_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_667_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_668_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_670_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_671_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_672_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_673_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_675_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_676_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_677_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_678_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_679_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_681_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_682_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_683_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_684_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_686_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_687_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_688_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_689_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_691_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_692_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_693_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_694_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_696_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_697_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_698_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_699_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_701_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_702_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_703_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_704_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_706_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_707_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_708_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_709_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_711_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_712_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_713_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_714_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_717_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_719_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_722_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_724_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_727_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_729_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_732_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_734_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_737_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_739_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_741_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_742_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_743_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_744_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_746_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_747_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_748_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_749_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_751_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_752_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_753_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_754_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_756_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_757_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_758_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_759_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_761_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_762_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_763_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_764_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_766_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_767_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_768_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_769_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_771_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_772_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_773_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_774_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_777_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_779_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_782_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_784_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_787_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_789_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_792_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_794_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_797_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_799_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_802_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_804_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_807_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_809_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_812_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_814_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_817_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_819_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_822_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_824_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_827_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_829_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_832_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_835_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_837_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_840_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_842_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_845_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_847_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_850_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_852_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_855_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_857_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_860_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_862_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_865_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_867_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_870_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_872_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_875_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_877_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_880_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_882_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_885_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_887_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_890_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_892_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_895_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_940_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_1038_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_1249_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_1378_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_1618_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_2131_iqu.nc Loading Rayleigh LUT /tmp/ocssw//share/oci/rayleigh/rayleigh_oci_2258_iqu.nc Using 869.6 nm channel for cloud flagging over water. Using 412.6 nm channel for cloud flagging over land. Reading uncertainty from: /tmp/ocssw/share/oci/uncertainty.nc The band No. in uncertainty.nc is not equal to the band No. of sensor,interpolation is used Processing scan # 0 (1 of 1710) after 2 seconds Aerosol selection bands 751 and 870 NIR correction enabled --> for spectral matching. Loading aerosol models from /tmp/ocssw/share/oci/aerosol/aerosol_oci Number of Wavelengths 286 Number of Solar Zenith Angles 45 Number of View Zenith Angles 41 Number of Relative Azimuth Angles 20 Number of Principal Components 30 Number of tau 870 Angles 9 Limiting aerosol models based on RH. Using Spectral Matching of aerosols reflectance for wavelength from 750.5 nm to 869.6 nm for model selection Allocated 14633960 bytes in error record. Allocated 14633960 bytes in error record. 80 aerosol models: 8 humidities x 10 size fractions model 0, rh=30.000002, sd=5, alpha=2.195868, name=r30f95 model 1, rh=30.000002, sd=20, alpha=2.080902, name=r30f80 model 2, rh=30.000002, sd=50, alpha=1.741297, name=r30f50 model 3, rh=30.000002, sd=70, alpha=1.353765, name=r30f30 model 4, rh=30.000002, sd=80, alpha=1.055717, name=r30f20 model 5, rh=30.000002, sd=90, alpha=0.613691, name=r30f10 model 6, rh=30.000002, sd=95, alpha=0.291905, name=r30f05 model 7, rh=30.000002, sd=98, alpha=0.041746, name=r30f02 model 8, rh=30.000002, sd=99, alpha=-0.055294, name=r30f01 model 9, rh=30.000002, sd=100, alpha=-0.160986, name=r30f00 model 10, rh=50.000000, sd=5, alpha=2.185652, name=r50f95 model 11, rh=50.000000, sd=20, alpha=2.072113, name=r50f80 model 12, rh=50.000000, sd=50, alpha=1.736037, name=r50f50 model 13, rh=50.000000, sd=70, alpha=1.351452, name=r50f30 model 14, rh=50.000000, sd=80, alpha=1.055006, name=r50f20 model 15, rh=50.000000, sd=90, alpha=0.614437, name=r50f10 model 16, rh=50.000000, sd=95, alpha=0.293084, name=r50f05 model 17, rh=50.000000, sd=98, alpha=0.042913, name=r50f02 model 18, rh=50.000000, sd=99, alpha=-0.054214, name=r50f01 model 19, rh=50.000000, sd=100, alpha=-0.160053, name=r50f00 model 20, rh=70.000000, sd=5, alpha=2.162975, name=r70f95 model 21, rh=70.000000, sd=20, alpha=2.066226, name=r70f80 model 22, rh=70.000000, sd=50, alpha=1.770589, name=r70f50 model 23, rh=70.000000, sd=70, alpha=1.416016, name=r70f30 model 24, rh=70.000000, sd=80, alpha=1.131202, name=r70f20 model 25, rh=70.000000, sd=90, alpha=0.689151, name=r70f10 model 26, rh=70.000000, sd=95, alpha=0.351549, name=r70f05 model 27, rh=70.000000, sd=98, alpha=0.078747, name=r70f02 model 28, rh=70.000000, sd=99, alpha=-0.029792, name=r70f01 model 29, rh=70.000000, sd=100, alpha=-0.149895, name=r70f00 model 30, rh=75.000000, sd=5, alpha=2.118432, name=r75f95 model 31, rh=75.000000, sd=20, alpha=2.038649, name=r75f80 model 32, rh=75.000000, sd=50, alpha=1.786870, name=r75f50 model 33, rh=75.000000, sd=70, alpha=1.469576, name=r75f30 model 34, rh=75.000000, sd=80, alpha=1.202941, name=r75f20 model 35, rh=75.000000, sd=90, alpha=0.768258, name=r75f10 model 36, rh=75.000000, sd=95, alpha=0.418238, name=r75f05 model 37, rh=75.000000, sd=98, alpha=0.122661, name=r75f02 model 38, rh=75.000000, sd=99, alpha=0.001526, name=r75f01 model 39, rh=75.000000, sd=100, alpha=-0.135091, name=r75f00 model 40, rh=80.000000, sd=5, alpha=2.023311, name=r80f95 model 41, rh=80.000000, sd=20, alpha=1.955203, name=r80f80 model 42, rh=80.000000, sd=50, alpha=1.735948, name=r80f50 model 43, rh=80.000000, sd=70, alpha=1.450873, name=r80f30 model 44, rh=80.000000, sd=80, alpha=1.204292, name=r80f20 model 45, rh=80.000000, sd=90, alpha=0.789448, name=r80f10 model 46, rh=80.000000, sd=95, alpha=0.444207, name=r80f05 model 47, rh=80.000000, sd=98, alpha=0.144784, name=r80f02 model 48, rh=80.000000, sd=99, alpha=0.019897, name=r80f01 model 49, rh=80.000000, sd=100, alpha=-0.122552, name=r80f00 model 50, rh=85.000000, sd=5, alpha=1.941783, name=r85f95 model 51, rh=85.000000, sd=20, alpha=1.880749, name=r85f80 model 52, rh=85.000000, sd=50, alpha=1.681969, name=r85f50 model 53, rh=85.000000, sd=70, alpha=1.418650, name=r85f30 model 54, rh=85.000000, sd=80, alpha=1.186841, name=r85f20 model 55, rh=85.000000, sd=90, alpha=0.789202, name=r85f10 model 56, rh=85.000000, sd=95, alpha=0.451528, name=r85f05 model 57, rh=85.000000, sd=98, alpha=0.153919, name=r85f02 model 58, rh=85.000000, sd=99, alpha=0.028486, name=r85f01 model 59, rh=85.000000, sd=100, alpha=-0.115537, name=r85f00 model 60, rh=90.000000, sd=5, alpha=1.860837, name=r90f95 model 61, rh=90.000000, sd=20, alpha=1.808119, name=r90f80 model 62, rh=90.000000, sd=50, alpha=1.633757, name=r90f50 model 63, rh=90.000000, sd=70, alpha=1.396786, name=r90f30 model 64, rh=90.000000, sd=80, alpha=1.182832, name=r90f20 model 65, rh=90.000000, sd=90, alpha=0.804794, name=r90f10 model 66, rh=90.000000, sd=95, alpha=0.473155, name=r90f05 model 67, rh=90.000000, sd=98, alpha=0.172704, name=r90f02 model 68, rh=90.000000, sd=99, alpha=0.043690, name=r90f01 model 69, rh=90.000000, sd=100, alpha=-0.106277, name=r90f00 model 70, rh=95.000000, sd=5, alpha=1.741890, name=r95f95 model 71, rh=95.000000, sd=20, alpha=1.702224, name=r95f80 model 72, rh=95.000000, sd=50, alpha=1.567437, name=r95f50 model 73, rh=95.000000, sd=70, alpha=1.375453, name=r95f30 model 74, rh=95.000000, sd=80, alpha=1.193434, name=r95f20 model 75, rh=95.000000, sd=90, alpha=0.851522, name=r95f10 model 76, rh=95.000000, sd=95, alpha=0.529470, name=r95f05 model 77, rh=95.000000, sd=98, alpha=0.218423, name=r95f02 model 78, rh=95.000000, sd=99, alpha=0.078690, name=r95f01 model 79, rh=95.000000, sd=100, alpha=-0.088852, name=r95f00 chl_hu: using 442.33 547.44 669.52 rh_ndims=5 rh_dimids=4 3 2 1 0 morel f/q file dimensions n_a=13 n_n=17 n_c=6 n_s=6 n_w=7 Reading foq file /tmp/ocssw/share/common/morel_fq.nc ndims=5 nvars=6 sds_id=5 var=foq Closing foq file /tmp/ocssw/share/common/morel_fq.nc Morel f/Q table from file /tmp/ocssw/share/common/morel_fq.nc Applying ocean BRDF including: Reflection/refraction for upwelling radiance. Reflection/refraction for downwelling radiance. Morel f/Q Compute Raman scattering correction #2. Loading Raman coefficients from: /tmp/ocssw//share/oci/raman.nc. Warning: Cannot apply GMAO total extinction absorbing aerosol test without anc_aerosol inputs defined Setting absaer_opt=0 Processing scan # 50 (51 of 1710) after 58 seconds Processing scan # 100 (101 of 1710) after 92 seconds Processing scan # 150 (151 of 1710) after 130 seconds Processing scan # 200 (201 of 1710) after 172 seconds Processing scan # 250 (251 of 1710) after 221 seconds Processing scan # 300 (301 of 1710) after 281 seconds Processing scan # 350 (351 of 1710) after 352 seconds Processing scan # 400 (401 of 1710) after 418 seconds Processing scan # 450 (451 of 1710) after 481 seconds Processing scan # 500 (501 of 1710) after 546 seconds Processing scan # 550 (551 of 1710) after 615 seconds Processing scan # 600 (601 of 1710) after 690 seconds Processing scan # 650 (651 of 1710) after 770 seconds Processing scan # 700 (701 of 1710) after 851 seconds Processing scan # 750 (751 of 1710) after 923 seconds Processing scan # 800 (801 of 1710) after 1004 seconds Processing scan # 850 (851 of 1710) after 1068 seconds Processing scan # 900 (901 of 1710) after 1122 seconds Processing scan # 950 (951 of 1710) after 1186 seconds Processing scan # 1000 (1001 of 1710) after 1268 seconds Processing scan # 1050 (1051 of 1710) after 1372 seconds Processing scan # 1100 (1101 of 1710) after 1470 seconds Processing scan # 1150 (1151 of 1710) after 1581 seconds Processing scan # 1200 (1201 of 1710) after 1660 seconds Processing scan # 1250 (1251 of 1710) after 1710 seconds Processing scan # 1300 (1301 of 1710) after 1758 seconds Processing scan # 1350 (1351 of 1710) after 1801 seconds Processing scan # 1400 (1401 of 1710) after 1842 seconds Processing scan # 1450 (1451 of 1710) after 1883 seconds Processing scan # 1500 (1501 of 1710) after 1929 seconds Processing scan # 1550 (1551 of 1710) after 1980 seconds Processing scan # 1600 (1601 of 1710) after 2032 seconds Processing scan # 1650 (1651 of 1710) after 2084 seconds Processing scan # 1700 (1701 of 1710) after 2130 seconds Percentage of pixels flagged: Flag # 1: ATMFAIL 46 0.0021 Flag # 2: LAND 625598 28.7615 Flag # 3: PRODWARN 0 0.0000 Flag # 4: HIGLINT 0 0.0000 Flag # 5: HILT 47685 2.1923 Flag # 6: HISATZEN 310870 14.2921 Flag # 7: COASTZ 35353 1.6253 Flag # 8: SPARE 0 0.0000 Flag # 9: STRAYLIGHT 162571 7.4741 Flag #10: CLDICE 1457924 67.0273 Flag #11: COCCOLITH 32 0.0015 Flag #12: TURBIDW 8653 0.3978 Flag #13: HISOLZEN 0 0.0000 Flag #14: SPARE 0 0.0000 Flag #15: LOWLW 226256 10.4020 Flag #16: CHLFAIL 136263 6.2646 Flag #17: NAVWARN 0 0.0000 Flag #18: ABSAER 0 0.0000 Flag #19: SPARE 0 0.0000 Flag #20: MAXAERITER 126666 5.8234 Flag #21: MODGLINT 0 0.0000 Flag #22: CHLWARN 89 0.0041 Flag #23: ATMWARN 154165 7.0877 Flag #24: SPARE 3941 0.1812 Flag #25: SEAICE 230976 10.6190 Flag #26: NAVFAIL 0 0.0000 Flag #27: FILTER 0 0.0000 Flag #28: SPARE 0 0.0000 Flag #29: BOWTIEDEL 0 0.0000 Flag #30: HIPOL 0 0.0000 Flag #31: PRODFAIL 1775989 81.6502 Flag #32: SPARE 0 0.0000 End MSl12 processing at 2024163193351000 Processing Rate = 0.799813 scans/sec Closing oci l1b file Processing Completed
If successful, the l2gen
program created a netCDF file
at the ofile
path. The contents should include the
chlor_a
product from the BGC
suite of
products. Once this process is done, you are ready to visualize your
“custom” L2 data. Use the robust=True
option to ignore
outlier chl a values.
dataset = xr.open_dataset(par["ofile"], group="geophysical_data")
plot = dataset["chlor_a"].plot(cmap="viridis", robust=True)
Feel free to explore l2gen
options to produce the
Level-2 dataset you need! The documentation for l2gen
is
kind of interactive, because so much depends on the data product being
processed. For example, try
l2gen ifile=granules/PACE_OCI.20240427T161654.L1B.nc dump_options=true
to get a lot of information about the specifics of what the
l2gen
program generates.
The next step for this tutorial is to merge multiple Level-2 granules together.
l2bin
It can be useful to merge adjacent scenes to create a single, larger
image. The OCSSW program that performs merging, also known as
“compositing” of remote sensing images, is called l2bin
.
Take a look at the program’s options.
%%bash
source $OCSSWROOT/OCSSW_bash.env
l2bin help
l2bin 7.0.6 (May 21 2024 18:56:12) 7.0.6 Usage: l2bin argument-list The argument-list is a set of keyword=value pairs. The arguments can be specified on the commandline, or put into a parameter file, or the two methods can be used together, with commandline over-riding. return value: 0=OK, 1=error, 110=north,south,east,west does not intersect file data. The list of valid keywords follows: help (boolean) (alias=h) (default=false) = print usage information version (boolean) (default=false) = print the version information dump_options (boolean) (default=false) = print information about each option dump_options_paramfile (ofile) = print information about each option to paramfile dump_options_xmlfile (ofile) = print information about each option to XML file par (ifile) (alias=parfile) = input parameter file ifile (ifile) (alias=infile) = input L2 file name ofile (ofile) (default=output) = output file name fileuse (ofile) = write filenames of the input files used into this file suite (string) = suite for default parameters qual_prod (string) = quality product field name deflate (int) (default=5) = deflation level. 0=off or 1=low through 9=high verbose (boolean) (default=off) = Allow more verbose screen messages night (boolean) (default=off) = set to 1 for SST night processing qual_max (int) (default=2) = maximum acceptable quality rowgroup (int) (default=-1) = # of bin rows to process at once. sday (int) (default=1970001) = start datadate (YYYYDDD) [ignored for "regional" prodtype] eday (int) (default=2038018) = end datadate (YYYYDDD) [ignored for "regional" prodtype] latnorth (float) (default=90) = northern most latitude latsouth (float) (default=-90) = southern most latitude loneast (float) (default=0) = eastern most longitude lonwest (float) (default=0) = western most longitude minobs (int) (default=0) = required minimum number of observations delta_crossing_time (float) (default=0.0) = equator crossing time delta in minutes Caveat...if zero, the sensor default equator crossing time will be used This is not necessarily noon resolution (string) (alias=resolve) (default=H) = bin resolution H: 0.5km Q: 250m HQ: 100m HH: 50m 1: 1.1km 2: 2.3km 4: 4.6km 9: 9.2km 18: 18.5km 36: 36km 1D: 1 degree HD: 0.5 degree QD: 0.25 degree prodtype (string) (default=day) = product type (Set to "regional" to bin all scans.) pversion (string) (default=unspecified) = production version composite_scheme (string) = composite scheme (min/max) composite_prod (string) = composite product fieldname flaguse (string) (default=ATMFAIL,LAND,HILT,HISATZEN,STRAYLIGHT,CLDICE,COCCOLITH,LOWLW,CHLFAIL,CHLWARN,NAVWARN,ABSAER,MAXAERITER,ATMWARN,HISOLZEN,NAVFAIL,FILTER) = flags masked [see /SENSOR/l2bin_defaults.par] l3bprod (string) (default=ALL) = l3bprod = bin products [default=all products] Set to "ALL" or "all" for all L2 products in 1st input file. Use ':' or ',' or ' ' as delimiters. Use ';' or '=' to delineate minimum values. area_weighting (int) (default=0) = Enable area weighting 0: off 1: pixel box 2: pixel bounding box 3: pixel polygon output_wavelengths (string) (default=ALL) = comma separated list of wavelengths for multi-wavelength products doi (string) = Digital Object Identifier (DOI) string
Write a parameter file with the previously saved list of Level-2 files standing in for the usual “ifile” value. We can leave the datetime out of the “ofile” name rather than extracing a time period from the granules chosen for binning.
ofile = "granules/PACE_OCI.L3B.nc"
par = {
"ifile": "l2bin_ifile.txt",
"ofile": ofile,
"prodtype": "regional",
"resolution": 9,
"flaguse": "NONE",
"rowgroup": 2000,
}
write_par("l2bin.par", par)
Now run l2bin
using your chosen parameters:
%%bash
source $OCSSWROOT/OCSSW_bash.env
l2bin par=l2bin.par
l2bin 7.0.6 (May 21 2024 18:56:12) Loading default parameters from /tmp/ocssw//share/common/l2bin_defaults.par Loading default parameters from /tmp/ocssw//share/oci/l2bin_defaults.par Loading command line parameters 2 input files Resolution: 9 Max Qual Allowed: 255 total number of bins: 5940422 Input row_group: 2000 Actual row_group: 1080 krow: 0 out of 2160 (-90.00 to 0.00) Tue Jun 11 19:33:55 2024 krow: 1080 out of 2160 ( 0.00 to 90.00) Tue Jun 11 19:33:55 2024 # bins in row group : 2970211 # filled bins : 28712 total_filled_bins: 28712
l3mapgen
The l3mapgen
function of OCSSW allows you to create maps
with a wide array of options you can see below:
%%bash
source $OCSSWROOT/OCSSW_bash.env
l3mapgen help
l3mapgen 2.4.0-T2024.19 (May 21 2024 18:55:46) Usage: l3mapgen argument-list This program takes a product (or products if netCDF output) from an L3 bin or SMI file, reprojects the data using proj.4 and writes a mapped file in the requested output format. Return values 0 = All Good 1 = Error 110 = No valid data to map The argument list is a set of keyword=value pairs. Arguments can be specified on the command line, or put into a parameter file, or the two methods can be used together, with command line overriding. The list of valid keywords follows: help (boolean) (alias=h) (default=false) = print usage information version (boolean) (default=false) = print the version information dump_options (boolean) (default=false) = print information about each option dump_options_paramfile (ofile) = print information about each option to paramfile dump_options_xmlfile (ofile) = print information about each option to XML file par (ifile) = input parameter file suite (string) = suite for default parameters ifile (ifile) = input L3 bin filename ofile (ofile) (default=output) = output filename oformat (string) (default=netcdf4) = output file format netcdf4: netCDF4 file, can contain more than one product hdf4: HDF4 file (old SMI format) png: PNG image file ppm: PPM image file tiff: TIFF file with georeference tags ofile_product_tag (string) (default=PRODUCT) = sub-string in ofile name that will be substituted by the product name ofile2 (ofile) = second output filename oformat2 (string) (default=png) = second output file format same options as oformat deflate (int) (default=4) = netCDF4 deflation level product (string) = comma separated list of products. Each product can have an optional colon and modifier appended. For example, "product=chlor_a,chlor_a:stdev,Kd_490:nobs" Available modifiers: avg average value (default) stdev standard deviation var variance nobs number of observations in the bin nscenes number of contributing scenes obs_time average observation time (TAI93) bin_num bin ID number wavelength_3d (string) = comma separated list of wavelengths for 3D products resolution (string) = size of output pixel (default from input file) in meters or SMI dimensions 90km: 432 x 216 image for full globe 36km: 1080 x 540 18km: 2160 x 1080 9km: 4320 x 2160 4km: 8640 x 4320 2km: 17280 x 8640 1km: 34560 x 17280 hkm: 69120 x 34560 qkm: 138240 x 69120 smi: 4096 x 2048 smi4: 8192 x 4096 land: 8640 x 4320 #.#: width of a pixel in meters #.#km: width of a pixel in kilometers #.#deg: width of a pixel in degrees width (int) = width of output image in pixels; supercedes resolution parameter. projection (string) (default=platecarree) = proj.4 projection string or one of the following predefined projections: smi: Standard Mapped image, cylindrical projection, uses central_meridian. NSEW defaults to whole globe. projection="+proj=eqc +lon_0=<central_meridian>" platecarree: Plate Carree image, cylindrical projection, uses central_meridian. projection="+proj=eqc +lon_0=<central_meridian>" mollweide: Mollweide projection projection="+proj=moll +lon_0=<central_meridian>" lambert: Lambert conformal conic (2SP) projection projection="+proj=lcc +lon_0=<central_meridian> +lat_0=<scene center latitude> +lat_1=<scene south latitude> +lat_2=<scene north latitude>" albersconic: Albers Equal Area Conic projection projection="+proj=aea +lon_0=<central_meridian> +lat_0=<scene center latitude> +lat_1=<scene south latitude> +lat_2=<scene north latitude>" aeqd: Azimuthal Equidistant projection projection="+proj=aeqd +lon_0=<central_meridian> +lat_0=<scene center latitude>" mercator: Mercator cylindrical map projection projection="+proj=merc +lon_0=<central_meridian>" transmerc: Transverse Mercator cylindrical map projection projection="+proj=tmerc +lon_0=<central_meridian> +lat_0=<scene center latitude>" utm: Universal Transverse Mercator cylindrical map projection projection="+proj=utm +zone=<utm_zone> [+south]" obliquemerc: Oblique Mercator cylindrical map projection projection="+proj=omerc +gamma=0 +lat_0=<lat_0> +lonc=<central_meridian> +alpha=<azimuth> +k_0=1 +x_0=0 +y_0=0" ease2: EASE-Grid 2.0 projection projection="EPSG:6933" ortho: Orthographic projection projection="+proj=ortho +lat_0=<lat_0> +lon_0=<central_meridian> +ellps=GRS80 +units=m" stere: Stereographic projection projection="+proj=stere +lat_0=<lat_0> +lat_ts=<lat_ts> +lon_0=<central_meridian> +ellps=WGS84 +datum=WGS84 +units=m" conus: USA Contiguous Albers Equal Area Conic USGS version projection="+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23.0 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m" alaska: Alaskan Albers Equal Area Conic USGS version projection="EPSG:3338" gibs: latitudinally dependent projection Plate Carree between 60S and 60N else use Polar Sterographic North Polar: projection="EPSG:3413" South Polar: projection="EPSG:3031" raw: Raw dump of bin file contents. write_projtext (boolean) (default=no) = write projection information to a text file. central_meridian (float) (default=-999) = central meridian for projection in deg east. Used only for raw dump and predefined projections as above. lat_ts (float) = latitude of true scale for projection in deg north. Used only for predefined projections above as required. lat_0 (float) = latitude of origin for projection in deg north. Used only for predefined projections above as required. lat_1 (float) = latitude of first standard parallel (south). Used only for predefined projections above as required. lat_2 (float) = latitude of second standard parallel (north). Used only for predefined projections above as required. azimuth (float) = projection rotation angle in deg north. Used only for predefined projections above as required. utm_zone (string) = UTM zone number. Used only for the UTM projection; Append 'S' for southern hemisphere zones (e.g. 59S). north (float) (default=-999) = Northernmost Latitude (default: file north) south (float) (default=-999) = Southernmost Latitude (default: file south) east (float) (default=-999) = Easternmost Longitude (default: file east) west (float) (default=-999) = Westernmost Longitude (default: file west) trimNSEW (boolean) (default=no) = should we trim output to match input NSEW range interp (string) (default=nearest) = interpolation method: nearest: use the value of the nearest bin for the pixel bin: bin all of the pixels that intersect the area of the output pixel area: bin weighted by area of all the pixels that intersect the area of the output pixel apply_pal (boolean) (default=yes) = apply color palette: yes: color image no: grayscale image palfile (ifile) = palette filename (default from product.xml) use_transparency (boolean) (default=no) = make missing data transparent (only valid for color PNG and TIFF) datamin (float) = minimum value for scaling (default from product.xml) datamax (float) = maximum value for scaling (default from product.xml) scale_type (string) = data scaling type (default from product.xml) linear: linear scaling log: logarithmic scaling arctan: arc tangent scaling quiet (boolean) (default=false) = stop the status printing pversion (string) (default=Unspecified) = processing version string use_quality (boolean) (default=yes) = should we do quality factor processing quality_product (string) = product to use for quality factor processing use_rgb (boolean) (default=no) = should we use product_rgb to make a pseudo-true color image product_rgb (string) (default=rhos_670,rhos_555,rhos_412) = Three products to use for RGB. Default is sensor-specific. fudge (float) (default=1.0) = fudge factor used to modify size of L3 pixels threshold (float) (default=0) = minimum percentage of filled pixels before an image is generated num_cache (int) (default=500) = number of rows to cache in memory. mask_land (boolean) (default=no) = set land pixels to pixel value 254 rgb_land (string) (default=160,82,45) = RGB value to use for land mask; comma separate string land (ifile) (default=$OCDATAROOT/common/landmask_GMT15ARC.nc) = land mask file full_latlon (boolean) (default=yes) = write full latitude and longitude arrays. doi (string) = Digital Object Identifier (DOI) string
Run l3mapgen
to make a 9km map with a Plate Carree
projection.
ifile = "granules/PACE_OCI.L3B.nc"
ofile = ifile.replace(".L3B.", ".L3M.")
par = {
"ifile": ifile,
"ofile": ofile,
"projection": "platecarree",
"resolution": "9km",
"interp": "bin",
"use_quality": 0,
"apply_pal": 0,
}
write_par("l3mapgen.par", par)
%%bash
source $OCSSWROOT/OCSSW_bash.env
l3mapgen par=l3mapgen.par
Loading default parameters from /tmp/ocssw//share/oci/l3mapgen_defaults.par l3mapgen 2.4.0-T2024.19 (May 21 2024 18:55:46) ifile : granules/PACE_OCI.L3B.nc ofile : granules/PACE_OCI.L3M.nc oformat : netcdf4 projection : platecarree resolution : 9276.624m product : chlor_a,carbon_phyto,poc,chlor_a_unc,carbon_phyto_unc north : 57.708 south : 35.458 east : -15.967 west : -72.537 image size : 269 x 681 99% complete actual data min : 0.001000 actual data max : 1836.600098 num filled pixels : 47757 percent filled pixels : 26.07%
Open the output with XArray, note that there is no group anymore.
dataset = xr.open_dataset(par["ofile"])
dataset
<xarray.Dataset> Size: 4MB Dimensions: (lat: 269, lon: 681, rgb: 3, eightbitcolor: 256) Coordinates: * lat (lat) float32 1kB 57.67 57.58 57.5 ... 35.67 35.58 35.5 * lon (lon) float32 3kB -72.49 -72.41 -72.33 ... -16.09 -16.01 Dimensions without coordinates: rgb, eightbitcolor Data variables: chlor_a (lat, lon) float32 733kB ... carbon_phyto (lat, lon) float32 733kB ... poc (lat, lon) float32 733kB ... chlor_a_unc (lat, lon) float32 733kB ... carbon_phyto_unc (lat, lon) float32 733kB ... palette (rgb, eightbitcolor) uint8 768B ... Attributes: (12/61) product_name: PACE_OCI.L3M.nc instrument: OCI title: OCI Level-3 Equidistant Cylindrical Map... project: Ocean Biology Processing Group (NASA/GS... platform: PACE source: satellite observations from OCI-PACE ... ... processing_level: L3 Mapped cdm_data_type: grid proj4_string: +proj=eqc +lat_ts=0 +lat_0=0 +x_0=0 +y_... data_bins: 47757 data_minimum: 0.0009999998 data_maximum: 1836.6001
Now that we have projected data, we can make a map with coastines and gridlines.
fig = plt.figure()
ax = plt.axes(projection=ccrs.PlateCarree())
ax.coastlines(linewidth=0.5)
ax.gridlines(draw_labels={"left": "y", "bottom": "x"}, linewidth=0.3)
plot = dataset["chlor_a"].plot(x="lon", y="lat", cmap="viridis", robust=True, ax=ax)
You have completed the notebook on using OCCSW to process PACE data. More notebooks are comming soon!