USFS-PNW / Fia-Biosum-Manager

User interface and main code repository for Biosum
http://biosum.info/
Other
3 stars 3 forks source link

OPTIMIZER: Handle negative numbers in prepost tables as null when calculating weighted variables #367

Open druepdx opened 3 days ago

druepdx commented 3 days ago

Currently when calculating weighted variables, -1s are being multiplied by the weights and producing nonsensical negative values. These should be treated the same as null values.

@jsfried - could you confirm a couple of things?

  1. Should this apply to all negative numbers, or just -1?
  2. Do we want to either get rid of the warning or update it to pop up when there are null values also?
jsfried commented 2 days ago

You raise a good question, and I didn't reply immediately because it required some though to consider the implications. I have not noticed other (than -1) negative numbers in FVS outputs lately, but I have seen them in the past, I think. Depending on how analysts do their processing (e.g., maybe us -99 or-9999 to represent missing values), anything COULD end up in an FVS_CUSTOM table (the table that allows an analyst to put any kind of prepost data in, whether directly from FVS Output tables or computed from them). Ultimately, it would be best if analysts can have the CHOICE of whether to recode negative values to null in the calculation of the weighted variables (that does seem like the place to do it, not in the FVS OUTPUT load stage), and that could be chosen on a variable specific basis, if a checkbox were ultimately added to the weighted variables dialog. Recoding only the -1 values is very specific and if a variable legitimately had negative values and some happened to be -1 and only those got nulled, that would introduce unpleasant anomalies. So I think we ultimately want to end up with analyst choice on a per variable basis of nulling all negative values for a variable when calculating the weighted versions of it (pre [reference package] and post [actual management package]). Nulling them doesn't really solve much for us in the short term if we can't get the adjustments included in this iteration as the exogenous processing will be pretty ugly either way (only a little less ugly with the nulling of negative values). We realize that for the short term, the nuller will likely apply to all variables with negative numbers and I think we can live with that.

lbross commented 1 day ago

Confirmed during 10/24/2024 DEV call that all negative numbers should be recoded to null