[Pygeoprocessing] Comparison between TauDEM and Pygeo CTI computation workflow - need help
I am a spatial analyst so I don't really have general hydrologist knowledge apart from what I have read for this project. My job was to script a CTI computation with TauDEM, but then I found Pygeoprocessing which sounds really good to me as it runs on our big servers and would allow us to process huge amount of data.
So thanks to your help I was able to get a workflow coded that takes a DEM and go through all the steps to compute the CTI with Pygeoprocessing. The problem is that the values are really different between TauDEM and Pygeoprocessing.
So here is my question, how can I convince people that Pygeo solution is better from a method point of view, are the results given by Pygeoprocessing as correct as the TauDEM solution. I guess that TauDEM has the advantage of being built by the group who actually published the D-inf method for flow direction and flow accumulation so people tend to use that as "the best solution".
I noted in difference in the flow accumulation calculation as TauDEM has a D-inf flow accumulation algorithm and Pygeoprocessing doesn't really indicate which method is used. There is a difference within the flats as well as TauDEM leaves really few or no flats at all while Pygeoprocessing seems to struggle a bit more with that.
My lack of knowledge in hydrology and coding don't allow me to really dig in the code and compare the two methods so if someone is familiar with the differences, if you use Pygeo to compute CTI for research, if you have feedback on what method give the best results and why I would be really grateful.
In any case thanks a lot for this great module, beautifully self documented and easy to use for python beginners.
TauDEM workflow :
- - fill pits
- - calculation of D-inf flow direction
- - calculation of D-inf flow accumulation
- - Calculation of CTI using the traditionnal formula
Pygeo workflow :
- - pygeoprocessing.routing.fill_pits
- - pygeoprocessing.geoprocessing.align_dataset_list
- - pygeoprocessing.routing.flow_direction_d_inf
- - pygeoprocessing.routing.flow_accumulation
- - Calculation of CTI using customized python code
workflow mainly based on the advice of "rich" in this discussion and study of the source code