OB.DAAC Logo
NASA Logo
Ocean Color Science Software

ocssw V2022
decode_rs.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define NULL   ((void *)0)
 
#define MIN(a, b)   ((a) < (b) ? (a) : (b))
 
#define A0   (NN)
 

Functions

 for (i=0;i< NROOTS;i++) s[i]
 
 if (!syn_error)
 
memset &[1] lambda (lambda[0])
 
 if (no_eras > 0)
 
 while (++r<=NROOTS)
 
memcpy &[1][1] reg (reg[0])
 
 for (i=1, k=IPRIM-1;i<=NN;i++, k=MODNN(k+IPRIM))
 
 if (deg_lambda !=count)
 
 for (i=0;i<=deg_omega;i++)
 
 for (j=count-1;j >=0;j--)
 

Variables

int i
 
int j
 
int r = no_eras
 
int k
 
data_t u
 
data_t q
 
data_t tmp
 
data_t num1
 
data_t num2
 
data_t den
 
data_t discr_r
 
data_t lambda [NROOTS+1] = 1
 
data_t s [NROOTS]
 
data_t b [NROOTS+1]
 
data_t t [NROOTS+1]
 
data_t omega [NROOTS+1]
 
data_t root [NROOTS]
 
data_t reg [NROOTS+1]
 
data_t loc [NROOTS]
 
int syn_error = 0
 
int count = 0
 
 el = no_eras
 
 deg_lambda = 0
 
 deg_omega = deg_lambda-1
 
finish __pad0__
 

Macro Definition Documentation

◆ A0

#define A0   (NN)

Definition at line 69 of file decode_rs.h.

◆ MIN

#define MIN (   a,
  b 
)    ((a) < (b) ? (a) : (b))

Definition at line 67 of file decode_rs.h.

◆ NULL

#define NULL   ((void *)0)

Definition at line 63 of file decode_rs.h.

Function Documentation

◆ for() [1/4]

for ( )
Initial value:
============================================================================
v2.1.5 04/03/2000
============================================================================
Changes: from v2.1.4
- The GEO_get_GRing_points.c file was corrected to include all of the last
scan in the GRing.
- GEO_initialize_product.c was updated to set the "Units" metadata on Solar
and Sensor Azimuth and Zenith

Definition at line 85 of file decode_rs.h.

◆ for() [2/4]

for ( i  = 0; i <= deg_omega;i++)

Definition at line 253 of file decode_rs.h.

◆ for() [3/4]

for ( i  = 1,
k  = IPRIM-1; i <= NNi++,
k  = MODNN(k+IPRIM) 
)

Definition at line 218 of file decode_rs.h.

◆ for() [4/4]

for ( j  = count-1; j >=0; j--)

Definition at line 266 of file decode_rs.h.

◆ if() [1/3]

if ( syn_error)

Definition at line 102 of file decode_rs.h.

◆ if() [2/3]

if ( deg_lambda = count)

Definition at line 240 of file decode_rs.h.

◆ if() [3/3]

if ( no_eras  ,
 
)

Definition at line 112 of file decode_rs.h.

◆ lambda()

memset&[1] lambda ( lambda  [0])

◆ reg()

memcpy&[1][1] reg ( reg  [0])

◆ while()

while ( ++r<=  NROOTS)

Definition at line 169 of file decode_rs.h.

Variable Documentation

◆ __pad0__

finish __pad0__

Definition at line 294 of file decode_rs.h.

◆ b

data_t b[NROOTS+1]

Definition at line 77 of file decode_rs.h.

◆ count

count = 0

Definition at line 79 of file decode_rs.h.

◆ deg_lambda

deg_lambda = 0

Definition at line 209 of file decode_rs.h.

◆ deg_omega

deg_omega = deg_lambda-1

Definition at line 252 of file decode_rs.h.

◆ den

data_t den

Definition at line 74 of file decode_rs.h.

◆ discr_r

data_t discr_r

Definition at line 74 of file decode_rs.h.

◆ el

el = no_eras

Definition at line 168 of file decode_rs.h.

◆ i

int i
Initial value:

Definition at line 71 of file decode_rs.h.

◆ j

int j

Definition at line 73 of file decode_rs.h.

◆ k

int k

Definition at line 73 of file decode_rs.h.

◆ lambda

lambda[0] = 1

Definition at line 75 of file decode_rs.h.

◆ loc

data_t loc[NROOTS]

Definition at line 78 of file decode_rs.h.

◆ num1

data_t num1

Definition at line 74 of file decode_rs.h.

◆ num2

data_t num2

Definition at line 74 of file decode_rs.h.

◆ omega

data_t omega[NROOTS+1]

Definition at line 77 of file decode_rs.h.

◆ q

data_t q

Definition at line 74 of file decode_rs.h.

◆ r

r = no_eras

Definition at line 73 of file decode_rs.h.

◆ reg

data_t reg[NROOTS+1]

Definition at line 78 of file decode_rs.h.

◆ root

data_t root[NROOTS]

Definition at line 78 of file decode_rs.h.

◆ s

Definition at line 75 of file decode_rs.h.

◆ syn_error

syn_error = 0

Definition at line 79 of file decode_rs.h.

◆ t

data_t t[NROOTS+1]

Definition at line 77 of file decode_rs.h.

◆ tmp

data_t tmp

Definition at line 74 of file decode_rs.h.

◆ u

data_t u

Definition at line 74 of file decode_rs.h.

instead the metadata field ProcessingEnvinronment is filled in from the output of a call to the POSIX compliant function uname from within the L1B code A small bug in L1B_Tables an incorrect comparison of RVS coefficients for TEBs to RVS coefficients for RSBs was being made This was replaced with a comparison between TEB coefficients This error never resulted in an incorrect RVS correction but did lead to recalculating the coefficients for each detector in a thermal band even if the coefficients were the same for all detectors To reduce to overall size of the reflective LUT HDF fill values were eliminated from all LUTs previously dimensioned where and where NUM_TIMES is the number of time dependent table pieces In Preprocess a small error where the trailing dropped scan counter was incremented when the leading dropped scan counter should have been was fixed This counter is internal only and is not yet used for any chiefly to casting of were added to make it LINUX compatible Output of code run on LINUX machines displays differences of at most scaled sector incalculable values of the Emissive calibration factor and incalculable values of SV or BB averages was moved outside the loop over frames in Emissive_Cal c since none of these quantities are frame dependent Initialization of b1 and XMS values in Preprocess c routine Process_OBCENG_Emiss was moved inside the detector loops The code was altered so that if up to five scans are dropped between the leading middle or middle trailing the leading or trailing granule will still be used in emissive calibration to form a cross granule average QA bits and are set for a gap between the leading middle and middle trailing granules respectively This may in rare instances lead to a change in emissive calibration coefficients for scans at the beginning or end of a granule A small bug in the Band correction algorithm was corrected an uncertainty value was being checked against an upper bound whereas the proper quantity to be checked was the corresponding which is the product of the Band radiance times the ratio of the Band to Band scaling factors times the LUT correction value for that detector In addition a new LUT which allows for a frame offset with regard to the Band radiance was added A LUT which switches the correction off or on was also added Changes which do not affect scientific output of the the pixel is flagged with the newly created flag and the number of pixels for which this occurs is counted in the QA_common table The array of b1s in Preprocess c was being initialized to outside the loop over which meant that if b1 could not be the value of b1 from the previous band for that scan detector combination was used The initialization was moved inside the band loop Minor code changes were made to eliminate compiler warnings when the code is compiled in bit mode Temperature equations were upgraded to be MODIS AQUA or MODIS TERRA specific and temperature conversion coefficients for AQUA were MOD_PR02 will not cease execution if the value of this parameter is not but will print a none of which changes the scientific it is treated as a missing granule and a warning message is printed The code now reads the MCST Version etc refer to the LUT versions A small bug in Preprocess c was corrected
Definition: HISTORY.txt:665
a context in which it is NOT documented to do so subscript which cannot be easily calculated when extracting TONS attitude data from the Terra L0 files Corrected several defects in extraction of entrained ephemeris and and as HDF file for both the L1A and Geolocation enabling retrieval of South Polar DEM data Resolved Bug by changing to opent the geolocation file only after a successful read of the L1A metadata
Definition: HISTORY.txt:73
MOD_PR01 Production producing one five minute granule of output data in each run It can be configured to produce as many as three five minute granules per run Each execution with one construction record and one date file for each dataset In normal these are created by which splits them out of the hour datasets For LANCE they are created by which merges all session MODIS L0 datasets overlapping the requested time and extracts from the merged data those packets which fall within that time period Each scan of data is stored in the L1A granule that covers the start time of that scan
Definition: MOD_PR01_pr.txt:19
u5 which has been done in the LOCALGRANULEID metadata should have an extension NRT It is requested to identify the NRT production Changes from v6 which may affect scientific the sector rotation may actually occur during one of the scans earlier than the one where it is first reported As a the b1 values are about the LOCALGRANULEID metadata should have an extension NRT It is requested to identify the NRT to fill pixels affected by dead subframes with a special value Output the metadata of noisy and dead subframe Dead Subframe EV and Detector Quality Flag2 Removed the function call of Fill_Dead_Detector_SI to stop interpolating SI values for dead but also for all downstream products for science test only Changes from v5 which will affect scientific to conform to MODIS requirements Removed the Mixed option from the ScanType in the code because the L1A Scan Type is never Mixed Changed for ANSI C compliance and comments to better document the fact that when the HDF_EOS metadata is stricly the and products are off by and in the track respectively Corrected some misspelling of RCS swir_oob_sending_detector to the Reflective LUTs to enable the SWIR OOB correction detector so that if any of the sending detectors becomes noisy or non near by good detectors from the same sending band can be specified as the substitute in the new look up table Code change for adding an additional dimension of mirror side to the Band_21_b1 LUT to separate the coefficient of the two mirror sides for just like other thermal emissive so that the L1B code can calibrate Band scan to scan with mirror side dependency which leads better calibration result Changes which do not affect scientific when the EV data are not provided in this Crosstalk Correction will not be performed to the Band calibration data Changes which do not affect scientific and BB_500m in L1A Logic was added to turn off the or to spatial aggregation processes and the EV_250m_Aggr1km_RefSB and EV_500m_Aggr1km_RefSB fields were set to fill values when SDSs EV_250m and EV_500m are absent in L1A file Logic was added to skip the processing and turn off the output of the L1B QKM and HKM EV data when EV_250m and EV_500m are absent from L1A In this the new process avoids accessing and reading the and L1A EV skips and writing to the L1B and EV omits reading and subsampling SDSs from geolocation file and writing them to the L1B and omits writing metadata to L1B and EV and skips closing the L1A and L1B EV and SDSs Logic was added to turn off the L1B OBC output when the high resolution OBC SDSs are absent from L1A This is accomplished by skipping the openning of
Definition: HISTORY.txt:352
no change in intended resolving MODur00064 Corrected handling of bad ephemeris attitude resolving resolving GSFcd00179 Corrected handling of fill values for[Sensor|Solar][Zenith|Azimuth] resolving MODxl01751 Changed to validate LUT version against a value retrieved from the resolving MODxl02056 Changed to calculate Solar Diffuser angles without adjustment for estimated post launch changes in the MODIS orientation relative to incidentally resolving defects MODxl01766 Also resolves MODxl01947 Changed to ignore fill values in SCI_ABNORM and SCI_STATE rather than treating them as resolving MODxl01780 Changed to use spacecraft ancillary data to recognise when the mirror encoder data is being set by side A or side B and to change calculations accordingly This removes the need for seperate LUTs for Side A and Side B data it makes the new LUTs incompatible with older versions of the and vice versa Also resolves MODxl01685 A more robust GRing algorithm is being which will create a non default GRing anytime there s even a single geolocated pixel in a granule Removed obsolete messages from seed file
Definition: HISTORY.txt:413
deg_lambda
Definition: decode_rs.h:209
this program makes no use of any feature of the SDP Toolkit that could generate such a then geolocation is calculated at that and then aggregated up to Resolved feature request Bug by adding three new int8 SDSs for each high resolution offsets between the high resolution geolocation and a bi linear interpolation extrapolation of the positions This can be used to reconstruct the high resolution geolocation Resolved Bug by delaying cumulation of gflags until after validation of derived products Resolved Bug by setting Latitude and Longitude to the correct fill resolving to support Near Real Time because they may be unnecessary if use of entrained ephemeris and attitude data is turned resolving bug report Corrected to filter out Aqua attitude records with missing status helping resolve bug MOD_PR03 will still correctly write scan and pixel data that does not depend upon the start thereby resolving MODur00108 Changed header guard macro names to avoid reserved name resolving MODur00104 Maneuver list file for Terra satellite was updated to include data from Jecue DuChateu Maneuver list files for both Terra and Aqua were updated to include two maneuvers from recent IOT weekly reports The limits for Z component of angular momentum was and to set the fourth GEO scan quality flag for a scan depending upon whether or not it occurred during one of them Added _FillValue attributes to many and changed the fill value for the sector start times from to
Definition: HISTORY.txt:295
===========================================================================V5.0.48(Terra) 03/20/2015 Changes shown below are differences from MOD_PR02 V5.0.46(Terra)============================================================================Changes noted for V6.1.20(Terra) below were also instituted for this version.============================================================================V6.1.20(Terra) 03/12/2015 Changes shown below are differences from MOD_PR02 V6.1.18(Terra)============================================================================Changes from v6.1.18 which may affect scientific output:A situation can occur in which a scan which contains sector rotated data has a telemetry value indicating the completeness of the sector rotation. This issue is caused by the timing of the instrument command to perform the sector rotation and the recording of the telemetry point that reports the status of sector rotation. In this case a scan is considered valid by L1B and pass through the calibration - reporting extremely high radiances. Operationally the TEB calibration uses a 40 scan average coefficient, so the 20 scans(one mirror side) after the sector rotation are contaminated with anomalously high radiance values. A similar timing issue appeared before the sector rotation was fixed in V6.1.2. Our analysis indicates the ‘SET_FR_ENC_DELTA’ telemetry correlates well with the sector rotation encoder position. The use of this telemetry point to determine scans that are sector rotated should fix the anomaly occured before and after the sector rotation(usually due to the lunar roll maneuver). The fix related to the sector rotation in V6.1.2 is removed in this version.============================================================================V6.1.18(Terra) 10/01/2014 Changes shown below are differences from MOD_PR02 V6.1.16(Terra)============================================================================Added doi attributes to NRT(Near-Real-Time) product.============================================================================V6.1.16(Terra) 01/27/2014 Changes shown below are differences from MOD_PR02 V6.1.14(Terra)============================================================================Migrate to SDP Toolkit 5.2.17============================================================================V6.1.14(Terra) 06/26/2012 Changes shown below are differences from MOD_PR02 V6.1.12(Terra)============================================================================Added the doi metadata to L1B product============================================================================V6.1.12(Terra) 04/25/2011 Changes shown below are differences from MOD_PR02 V6.1.8(Terra)============================================================================1. The algorithm to calculate uncertainties for reflective solar bands(RSB) is updated. The current uncertainty in L1B code includes 9 terms from prelaunch analysis. The new algorithm regroups them with the new added contributions into 5 terms:u1:the common term(AOI and time independent) and
Definition: HISTORY.txt:126
PGSt_SMF_status GEO_get_GRing_points(GEO_GRing_struct *const GRing_points)
an array had not been initialized Several spelling and grammar corrections were which is read from the appropriate MCF the above metadata values were hard coded A problem calculating the average background DN for SWIR bands when the moon is in the space view port was corrected The new algorithm used to calculate the average background DN for all reflective bands when the moon is in the space view port is now the same as the algorithm employed by the thermal bands For non SWIR changes in the averages are typically less than Also for non SWIR the black body DNs remain a backup in case the SV DNs are not available For SWIR the changes in computed averages were larger because the old which used the black body suffered from contamination by the micron leak As a consequence of the if SV DNs are not available for the SWIR the EV pixels will not be the granule time is used to identify the appropriate tables within the set given for one LUT the first two or last two tables respectively will be used for the interpolation If there is only one LUT in the set of it will be treated as a constant LUT The manner in which Earth View data is checked for saturation was changed Previously the raw Earth View DNs and Space View DNs were checked against the lookup table values contained in the table dn_sat The change made is to check the raw Earth and Space View DNs to be sure they are less than the maximum saturation value and to check the Space View subtracted Earth View dns against a set of values contained in the new lookup table dn_sat_ev The metadata configuration and ASSOCIATEDINSTRUMENTSHORTNAME from the MOD02HKM product The same metatdata with extensions and were removed from the MOD021KM and MOD02OBC products ASSOCIATEDSENSORSHORTNAME was set to MODIS in all products These changes are reflected in new File Specification which users may consult for exact the pow functions were eliminated in Emissive_Cal and Emissive bands replaced by more efficient code Other calculations throughout the code were also made more efficient Aside from a few round off there was no difference to the product The CPU time decreased by about for a day case and for a night case A minor bug in calculating the uncertainty index for emissive bands was corrected The frame the required RAM for each execution is MB on the DEC ALPHA and MB on the SGI Octane v2
Definition: HISTORY.txt:728
deg_omega
Definition: decode_rs.h:252
PGSt_SMF_status GEO_initialize_product(int const number_of_scans, fill_values_struct const *fill_values, MODFILE *const geo_file, int32 const swfid, GEO_param_struct const *GEO_param)
this program makes no use of any feature of the SDP Toolkit that could generate such a then geolocation is calculated at that and then aggregated up to Resolved feature request Bug by adding three new int8 SDSs for each high resolution offsets between the high resolution geolocation and a bi linear interpolation extrapolation of the positions This can be used to reconstruct the high resolution geolocation Resolved Bug by delaying cumulation of gflags until after validation of derived products Resolved Bug by setting Latitude and Longitude to the correct fill resolving to support Near Real Time because they may be unnecessary if use of entrained ephemeris and attitude data is turned resolving bug report Corrected to filter out Aqua attitude records with missing status helping resolve bug MOD_PR03 will still correctly write scan and pixel data that does not depend upon the start thereby resolving MODur00108 Changed header guard macro names to avoid reserved name resolving MODur00104 Maneuver list file for Terra satellite was updated to include data from Jecue DuChateu Maneuver list files for both Terra and Aqua were updated to include two maneuvers from recent IOT weekly reports The limits for Z component of angular momentum was updated
Definition: HISTORY.txt:279
this program makes no use of any feature of the SDP Toolkit that could generate such a then geolocation is calculated at that and then aggregated up to Resolved feature request Bug by adding three new int8 SDSs for each high resolution offsets between the high resolution geolocation and a bi linear interpolation extrapolation of the positions This can be used to reconstruct the high resolution geolocation Resolved Bug by delaying cumulation of gflags until after validation of derived products Resolved Bug by setting Latitude and Longitude to the correct fill resolving to support Near Real Time because they may be unnecessary if use of entrained ephemeris and attitude data is turned on(as it will be in Near-Real-Time processing).
el
Definition: decode_rs.h:168