Videos (SeaDAS Tutorial Series: L2 processing Part 1) - seadas/seadas-toolbox GitHub Wiki

UNDER CONSTRUCTION

VIDEO SCRIPT

WHY THE USER WOULD WANT TO VIEW THIS VIDEO

Are there geophysical products you would like to have in a level-2 file, which are NOT in the standard level-2 NASA OB.DAAC files? Would you prefer certain level-2 flags be fine-tuned based on less aggressive or even more aggressive thresholds? Would you perhaps prefer a different atmospheric correction algorithm be applied, or even no atmospheric correction be applied at all? In this video I'm going to show you how you can do all this and more by using the SeaDAS level-2 processing tools.

WHO WE ARE

Hey this is Danny, one of the designers of SeaDAS here are at the NASA, Ocean Ecology Lab, where we give you science quality data of our planet and give you the tools you need to process and analyze the data right on your own personal laptops and computers.

FEATURE OVERVIEW and ADDED POINTS ON HOW THIS WILL HELP THE USER

The heart and soul of SeaDAS is it's capability to process level1 (or raw) data files of any number of satellite missions (each of which have their own unique data formats) into uniform format level-2 files which contain geophysical products and quality control flags. The level-2 files available on the NASA OB.DAAC are in fact created by the same software contained in SeaDAS, the same atmospheric correction, the same algorithms, the same processing options. In this video I will get you started, or better informed, on processing files to level-2 and give you some insight into the multitude of geophysical products and processing options available to you in SeaDAS.

CONTENT

The SeaDAS tool which creates the level-2 files is called "l2gen" or "level2 gen" short for "Level-2 file generator". You can access this through the "SeaDAS Toolbox Menu" under "SeaDAS Processors > l2gen". Let's open it.

mission dependent input files

To start with we need to select a level-1 file as input to l2gen. Here's where a big mission dependency comes into play. L2gen requires as input data which is already calibrated and geolocated, but each mission varies on how and where it stores the calibrated and geolocation data. Some missions store the geolocation data in the level-1 file itself whereas other missions store it in a separate geolocation file (called a geofile). Some missions store the calibrated data in the level-1A file itself whereas others missions require a calibration processing step to write the calibration data to a level-1B file which then serves as input to l2gen. We will address these mission specific details and their individual workflows through l2gen in separate videos for each mission.

For this video we will use MODIS Aqua to demonstrate the features and functionalities of L2gen. But our focus won't be MODIS, and this video will be applicable to all missions especially if you pair it up with watching the mission specific videos.

ifile, geofile, ofile

There are many tabs, but let's start in the "Main" tab and load the input files, which for AQUA are both a level-1B file and a geofile. Again note that other missions may not require a geofile. The level-1 input file tells SeaDAS WHICH mission you are processing and the L2gen GUI is then automatically configured with all processing parameters of that particular mission. We see that the ofile textfields, as well as the geofile textfields have been automatically created based on a pre-defined naming convention.

parfile

The essential field of the L2gen GUI is the "parfile". Basically the whole job of this GUI, and all its tabs, and selectors, and checkboxes buried throughout all these other tabs is to create a "parfile", short for parameter file. When you click "Run", this GUI writes the contents of this parfile textfield into a physical file and runs l2gen with all the criteria in the parfile.

We see the ifile, ofile, and geofile parameters in the parfile textfield. You can change the "ofile" name if you prefer, let's change it in the ofile selector. It automatically updates into the parfile textarea. Conversely, we can change it in the parfile textarea, hit the "Apply" button and it will update the ofile selector component. Alternatively you could click on any other component in this GUI and the parfile area contents will be applied. The "Apply" button is just a convenience feature so you can see the GUI synced up with your latest field entry.

show defaults

As I mentioned, when we hit the "Run" button, whatever is in this parfile textarea is what gets used. What's really happening under the hood is that there are hundreds of processing parameters each with their own default values. You can view the full listing of parameters with their defaults by clicking "show defaults". Now we see everything. If it's commented out then it is the default. If it is not commented out then it's one of the values that you have set here when defaults are not shown.

We could actually tweak any of the parameters right here. For instance, scrolling up and looking at the list we see atmocor=1. This parameter tells l2gen whether or not to do atmospheric correction. It's a boolean parameter, meaning it's value can either be "1" for on, or "0" for off. Let's go ahead and change it here. We also need remove the "#" sign to enable the line. Now deselect the "show defaults". We see our atmospheric correction has been disabled.

Okay let's edit this and change it back to "1". Now let's click the "Apply" button. It just disappeared. But if we click "show defaults" and find it we see it at "1". So let's deselect "show defaults". What's happening here is that if you set a value to it's default then it isn't needed and isn't included in the parfile. This functionality really cleans up your parfile.

product suite

If you've noticed on the OB.DAAC, for each scene there are multiple level-2 files available, an OC, IOP and possibly a SST file, short for "Ocean Color", "Inherent Optical Properties", "Sea Surface Temperature" respectively. The part of the filename containing "OC", "IOP", "SST" is called the product suite ID. The product suite id is used by l2gen to set default processing parameters and default products for that particular grouping of products.

By default SeaDAS L2gen is set to generate the OC products, as you see suite ID is set to OC. We see OC is in the ofile name. If we select "show defaults" we can find the parameter named "l2prod". "l2prod" designates the level-2 products which will be generated in the output level-2 file. Right now this are the same as those found in the OB.DAAC version of the level-2 "OC" file.

Let's change the suite ID to IOP, now we see IOP in the output file name and the l2prod parameter has changed to the IOP products. But l2prod isn't the only parameter that has changed. If we look down into the list parfile parameter defaults we can find that iop_opt is now 7. Let's change the suite back to OC and we see the iop_opt default is 0. So the suite ID is important and it governs your l2gen defaults.

Let's deselect "show defaults". You see that when we choose suite OC, or suite IOP the only thing which appears to change is the suite ID, yet deep down the default values of l2prod and iop_opt have actually changed. So you can just think of the product suite ID as a preferences setting which assigns your defaults.

get_ancillary

The level-1 file contains the scene data measured from the sensor, however there are other ancillary data available to address specifics of atmospheric correction, ice, sst, etc. SeaDAS can integrate this ancillary data to refine the quality of the level-2 file. To include this data, simply click the get_ancillary button and wait a few seconds. SeaDAS will download the data (you do need a WiFi connection) and the file names are added here in your parfile. If you don't do this step, then SeaDAS will instead use previously modeled ancillary data to produce a level-2 file something akin to a NRT "near real time" file.

WRAPUP

So that's the core concepts of processing satellite data to level-2 in SeaDAS. Each mission DOES have it's own unique features and unique workflow through SeaDAS, so in future videos, we will go over how to process each specific mission (be it MODIS, VIIRS, HawkEye, OCI-PACE, etc.).

Check the description below of this video for links to the SeaDAS web page and any addendum notes to this video which we may add subsequent to the publication of this video. YouTube comments are disabled on this channel, but you can seek further help and report any issues on the SeaDAS user community forum. Click subscribe and the notification bell to stay informed as we will be releasing new video content on this channel.

YouTube Title and Decription

Video Title

SeaDAS Tutorial Series: Level-2 Processing (L2gen)

Video Description:

This video shows how to use SeaDAS to generate Level-2 files.

SeaDAS Version (as of this video): 8.3.0

SeaDAS Website: https://seadas.gsfc.nasa.gov

NASA Ocean Color Website: https://oceancolor.gsfc.nasa.gov

Video Addendum ():

EXTRA NOTES In future videos, I will show you the workflow of how to process each specific mission (be it MODIS, VIIRS, HawkEye, OCI-PACE, etc.) to level2 as each mission has it's own unique features and workflow through SeaDAS. But stick around to the end of this video, as much of what we will go over here is what's common across all the missions and won't be repeated in the mission specific videos.

SeaDAS (when run in default mode) applies the same atmospheric correction, the same algorithms, the same processing options, to create the same level-2 files as those available on the OB.DAAC. But you are not limited to the default settings, and i

The L2gen GUI is built dynamically based on the selection of a level-1 input file. This input file tells SeaDAS WHICH mission you are processing and the L2gen GUI is then automatically configured with all processing parameters of that particular mission. L2gen requires both calibrated and geolocated data as its input. Calibrated data means that for each pixel of the scene, the radiance at the top of atmosphere has been determined along the optical path leading from the scene to the sensor. Geolocated data means that for each pixel of the scene it's geographic coordinates and sensor viewing geometry has been determined.

Here's where a big mission dependency comes into play. Each mission varies on how and where it stores the calibration and geolocation data. For some missions the level-1 file includes the calibrated data, for some it includes the geolocated data, for some it includes both, and for some it includes neither. Some missions store the geolocation data in a separate geolocation file (called a geofile). We will address these mission specific details and their workflow through l2gen in separate videos. For this video we will use MODIS Aqua to demonstrate the features and functionalities of L2gen. But our focus won't be MODIS, and this video will be applicable to all missions especially if you pair it up with watching the mission specific videos.