Riverscapes / gcd

Geomorphic Change Detection For Windows
http://gcd.riverscapes.xyz
GNU General Public License v3.0
25 stars 5 forks source link

Question about thresholded results between GCD 6 & DoD 3... #283

Closed joewheaton closed 6 years ago

joewheaton commented 6 years ago

This message was recieved from a DoD3 and GCD 6 user:

Dear Dr. Wheaton,

I am a long-time user of DoD3 and GCD6 (now GCD7), which provide me powerful tools for analyzing the uncertainty of DoD and segregation of sediment budget. I have a question about the thresholded results of DoD that you might be able to give me a quick answer.

I perform probabilistic (Bayesian) thresholding with DoD3 and GCD6, their results are different even when I use the same propagated error (sigma_DoD = 0.25) and CI (threshold probability = 0.95). The first plot attached below is from DoD3, and the second is from GCD6. Does this difference arise from different Bayesian treatments used in DoD3 and GCD6? I understand that you are extremely busy, so a short answer would be greatly appreciated. This has been my question for quite a while, and I really want to get this straightened out.

Thanks in advance for your swift reply.

Sincerely, Fu-Chun Wu National Taiwan University From DoD3 unnamed From DoD6 unnamed 1

joewheaton commented 6 years ago

Dear Fu-Chun Wu, Thanks for your inquiry and we are glad you found the GCD 6 and DoD3. We're no longer supporting earlier versions of GCD, as we've just released GCD 7 and have worked hard to move everything over to that new platform. However, there are a number of plausible answers to your questions:

I perform probabilistic (Bayesian) thresholding with DoD3 and GCD6, their results are different even when I use the same propagated error (sigma_DoD = 0.25) and CI (threshold probability = 0.95). The first plot attached below is from DoD3, and the second is from GCD6. Does this difference arise from different Bayesian treatments used in DoD3 and GCD6?

  1. It is difficult to say for sure if the visual differences in the two rasters you provide images of are actually different, or those are simply differences between the color ramps and display properties. The best way to check is to actually difference the two DoDs (or in GCD 7, there is now a hand Intercomparison Tool). It also helps to display both with the exact same symbology by importing the symbology from another layer to the current layer.
  2. There are a number of ways in which the precise answers between different versions of GCD and DoD software could be wrong. DoD is an old Matlab code, GCD 5 and 6 were a C++ code and 7 is C# and all had different ways of storing rasters in memory, different significant figures, different degrees of Arc dependencies (DoD3 and GCD 7 have none) and these can all result in real minor differences between calculated values in any of the many steps along the way.
  3. @MattReimer did find some bugs in our Spatial Coherence filter algorithm used in GCD 6 that was not always present (sometimes) when refactoring from GCD6 to GCD 7. I can't remember exactly what these were, but its possible this could be adding to the problem.
  4. To properly identify the exact place along the way where there is a discrepancy (e.g. is it in rawDoD.tif, properror.tif, apriorProb.tif, nbrEros.tif, nbrDep.tif, condProb.tif, or postProb.tif, or threhDoD.tif) is possible, but a lot of work. From what you've shown, I suspect these are just differences in rounding precision, as opposed to fundamental conceptual differences in the algorithms behind each output.

More fundamentally, and as an aside...

The bottom line is whether or not it is a fundamental change so important that its worth worrying about, or just one of these many minor differences described above. I'd suggest its probably not worth worrying about, and I would worry more about whether or not using the spatial coherence filter is the best method here. We've tried to add the ability to use multi-method masking in error modelling as a more practical work around to get through these issues, as well as AOI implementation in thresholding of results.

I hope that helps...