About coefficient update in header file or static anc

Issues related to VIIRS EDR algorithms and data
Post Reply
jhuangadl
Posts: 142
Joined: Fri Apr 29, 2011 7:57 am

About coefficient update in header file or static anc

Post by jhuangadl »

We are facing a decision now whether we want to keep some threshold values in a header file:

Code: Select all

ProEdrViirsAerosolStruct.h
or in the static ancillary input file:

Code: Select all

4d91021e-2e1ab-0a4f180b-57e2b5d4.VIIRS-Aeros-EDR-AC_npp_20020101010000Z_20020101010000Z_ee00000000000000Z_1_devl_dev_noaa_ops.xml_Internal
.
I understand that it requires no RPO code change if we simply want to update any processing coefficient in the static ancillary input file.
However, if we want to change any threshold values in the header file, it requires a recompiling of the source code and thus a code change has to be requested to get into future builds, which will significantly delay our algorithm improving process.
Therefore, we wonder whether we can move some of the threshold values in the aerosol retrieval header files to the aerosol static ancillary input files.
My question is, how difficult it is from the code change perspective? Does ADL have to go through lots of complicated changes in many other structural xml files to incorporate additional threshold values in the static ancillary input file? If so, where I can find the corresponding XML file for the two files to make corresponding changes? Any other changes might complicate the issue?
Thank you very much!
bhenders
Posts: 72
Joined: Wed Jan 05, 2011 9:27 am
Location: Omaha, NE

Re: About coefficient update in header file or static anc

Post by bhenders »

This is sort of an interesting post, since there has been some discussion of doing an algorithm audit of hard coded constants and making more of them configurable or coefficients that can be updated versus being hard coded.

If they are moved to the configurable coefficients then there are code changes to the following files along with associated documentation changes to the OAD and I believe the CDFCB-X:

$ADL_HOME/cfg/dqmtables/NPP/VIIRS/EDR/Aeros/VIIRS-Aeros-EDR-AC_npp_20020101010000Z_20020101010000Z_ee00000000000000Z_1_devl_dev_noaa_ops.xml
$ADL_HOME/xml/VIIRS/VIIRS_Aeros_EDR_AC_Int.xml
$ADL_HOME/CMN/Utilities/ING/include/IngMsdCoefficients_ViirsAerosolStruct.h
$ADL_HOME/CMN/Utilities/ING/MSD/Coefficients/src/IngMsdCoefficients_ViirsAerosolConverter.cpp

Then of course the actual Aerosol algorithm to remove the references to the header constants and modify the code to pull them from the configurable coefficient structure that is the input to the algorithm. There has been some discussion about having PRO just read the XML file directly but the work and architecture for that has never materialized. The above outline is basically the extent of the changes, I think the number of files that need to be updated is a little overkill but none of the files are overly complicated to implement. However, that advice is coming from someone that understands how all of these items work together and the cause and effect relationships.

Another approach would be to put them all in a new input item (like a LUT) and pull them from that input, however that doesn’t allow the DQM engineer to modify them in operations via a GUI.

Post back if this does not answer your questions.

Thanks,

Bryan Henderson
Raytheon Company
Post Reply