-
Notifications
You must be signed in to change notification settings - Fork 146
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
split settings for the first pass and multi-pass #177
Comments
@eguvep what do you think about changing settings to YAML format and unify those between openpiv and GUI version? |
Hi Alex,
|
Thanks for a quick reply. The parameters issue shall be probably separated from the results storage. Since parameters file is small and it's really for the simple adjustment of those between the runs and for storage for reproducibility, the data storage format is a different beast and it requires some thinking about being a proprietary (our) binary format or some general binary format or maybe ASCII (human readable) format and what it should contain. As far as I see it is that a working folder will contain the raw image files and the settings parameter file next to it leading to the data in the output folder. The path can be a Python script, Jupyter notebook or GUI, but the result should be the same to a certain extent. If GUI creates a different output depending on additional filters, sub-settings, etc. - we need to have it also in the parameters file, so the Jupyter notebook can be re-created for the same path from input to output. I believe we have to have a single settings format and more so - to have a single format for Matlab and Python and other versions. Therefore it's best to store in YAML format (or similar, but there are no many that are readable so easy by C, Matlab and Python) . Let's have the data output format discussion on OpenPIV/openpiv_tk_gui#22 (comment) |
as far as I see your JSON format is very close to YAML format. I do not mind to keep parameters in JSON format as well, but I think that YAML today is a bit more popular and more human readable. |
I guess we need to figure out first between us what is crucial in the structure of the parameters. It will be then easier to decide if we have the same minimal set with the translators or we can agree about the same structure for the minimal set. |
The GUI is created based on the parameters in a default OpenPivParams object. Still, it would be easy to use a standard Settings-Object:
Actually, we are using the following default parameters:
|
As long as the names are the same, we do not even need the same structure. We could just copy them in a single line loop. |
We can start preparing a YAML settings file(s) that are easy to convert to JSON back and forth. The idea is that we have a file that contains the same names for the union set - between windef and GUI and this minimal set has the same names. All the additional things can keep the GUI names, if these are used in the Python script. BTW, does it make sense that we could run a command-line PIV analysis of the data using the |
@eguvep I wonder what is the difference between
and
or
|
Dear Alex, The different min/max parameters are for first pass validation (fp), second pass validation (sp), and postprocessing (doesn't have fp or sp). This is to allow a more robust/customizable validation for multipass evaluations, but may be obsolete and confusing/time consuming to use. Regards, PS; I got 20 days off for Christmas break, so I will be able to help/test new enhancements :) |
Thanks @ErichZimmer and great to see you here. Enjoy your holidays. And so everyone :) Holiday Season greetings to the community. I'm still struggling with the robustness of the windef - also in the comparison with PIVLab there is a bit more "noise" and it's probably due to the changes I made in the code. I'm now trying to figure out all the places that were changed from the original windef.py to 0.23.3 and to clarify the differences that might lead to the experience you @ErichZimmer had with the robustness. If you can take a careful look at the differences between windef versions and find a bug - please go ahead. |
My present suspect now is the orientation of the deformation in respect to the velocity field. In the past @TKaeufer used flipped y coordinate and negative vertical displacement for the velocity, but then when we apply image deformation, these probably should be given in the image coordinate system. I'm afraid I am misplaced some of the flips or some of the sign changes (also the fact that rows, cols in image processing are not the opposite order of u,v displacement, u is columnwise) could be a problem. Another major problem I experience now is the introduction of image masking. This creates a lot of difficult situations where we need to clean/smooth the vector field but we might not want to the image masked region to participate in the interpolation. This might also lead to the loss of smoothing I was looking for. |
the problem
at the moment
windef.piv()
takeswindef.Settings()
with only one type of correlation method. it prevents us from a more robust operation when the first pass is for instancelinear
andnormalized
and other passes are faster due to already deformed windowscircular
and not normalized.Describe the solution you'd like
the suggestion is to move to YAML type of settings that could be even stored in a file next to the results. then we could have
it would also help us to get extended search into the first pass using different interrogaton window sizes and
overlaps and also will open the path to the rectangular windows
The text was updated successfully, but these errors were encountered: