ssec / polar2grid

Tools for reading, remapping, and writing satellite instrument data.
http://www.ssec.wisc.edu/software/polar2grid/
GNU General Public License v3.0
72 stars 34 forks source link

Add PACE instrument product reader #708

Open kathys opened 2 weeks ago

kathys commented 2 weeks ago

Our ROFFS client would like us to add Chlorophyll and and a couple of other products to the list of those we are making in real time for them. The first step is to find out exactly which products they want, and how we are going to get them routinely given that this NASA mission does not include direct broadcast.

djhoese commented 2 weeks ago

Would these be considered Level 2 products? Or level 1? Or both?

kathys commented 2 weeks ago

These are Level 2 products. Matt from ROFFS said the products he is interested are these from the Ocean Color Instrument (OCI):

Photosynthetically available radiation (PAR) Concentration of Chlorophyll-a Phytoplankton pigment concentrations

I found them described here, but have not been able to download the right files yet. https://pace.oceansciences.org/data_table.htm

kathys commented 4 days ago

ROFFS told me today that they are only interested in the Chlorophyll products for now. I was able to access files from yesterday, and put them here:

bumi:/data/users/kathys/roffs/pace/bgc/

They are NetCDF4 and the arrays seem to be in formatted very similar to the SeaDAS files that P2G already supports.

group: geophysical_data {
  variables:
    float chlor_a(number_of_lines, pixels_per_line) ;
            chlor_a:long_name = "Chlorophyll Concentration, OCI Algorithm" ;
            chlor_a:units = "mg m^-3" ;
            chlor_a:coordinates = "longitude latitude" ;
            chlor_a:standard_name = "mass_concentration_of_chlorophyll_in_sea_water" ;
            chlor_a:_FillValue = -32767.f ;
            chlor_a:valid_min = 0.001f ;
            chlor_a:valid_max = 100.f ;

There is a similar array, that looks like it even has the same bit values, for filtering (l2_flags):

    int l2_flags(number_of_lines, pixels_per_line) ;
            l2_flags:long_name = "Level-2 Processing Flags" ;
            l2_flags:coordinates = "longitude latitude" ;
            l2_flags:valid_min = -2147483648 ;
            l2_flags:valid_max = 2147483647 ;
            l2_flags:flag_masks = 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, -2147483648 ;
            l2_flags:flag_meanings = "ATMFAIL LAND PRODWARN HIGLINT HILT HISATZEN COASTZ SPARE STRAYLIGHT CLDICE COCCOLITH TURBIDW HISOLZEN SPARE LOWLW CHLFAIL NAVWARN ABSAER SPARE MAXAERITER MODGLINT CHLWARN ATMWARN SPARE SEAICE NAVFAIL FILTER SPARE BOWTIEDEL HIPOL PRODFAIL SPARE" ;