PaIRS-UniNa 0.1.13__cp310-cp310-win_amd64.whl → 0.2.8__cp310-cp310-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- PaIRS_UniNa/Calibration_Tab.py +331 -0
- PaIRS_UniNa/Changes.txt +134 -2
- PaIRS_UniNa/Custom_Top.py +299 -299
- PaIRS_UniNa/Explorer.py +3136 -0
- PaIRS_UniNa/FolderLoop.py +562 -0
- PaIRS_UniNa/Input_Tab.py +831 -0
- PaIRS_UniNa/Input_Tab_CalVi.py +786 -0
- PaIRS_UniNa/Input_Tab_tools.py +3025 -0
- PaIRS_UniNa/Log_Tab.py +57 -14
- PaIRS_UniNa/Output_Tab.py +922 -0
- PaIRS_UniNa/PaIRS_PIV.py +111 -18
- PaIRS_UniNa/PaIRS_pypacks.py +698 -140
- PaIRS_UniNa/Process_Tab.py +1221 -1402
- PaIRS_UniNa/Process_Tab_CalVi.py +137 -262
- PaIRS_UniNa/Process_Tab_Disp.py +163 -0
- PaIRS_UniNa/Process_Tab_Min.py +120 -0
- PaIRS_UniNa/Saving_tools.py +296 -0
- PaIRS_UniNa/TabTools.py +863 -543
- PaIRS_UniNa/Vis_Tab.py +1898 -1315
- PaIRS_UniNa/Vis_Tab_CalVi.py +484 -356
- PaIRS_UniNa/Whatsnew.py +59 -10
- PaIRS_UniNa/_PaIRS_PIV.pyd +0 -0
- PaIRS_UniNa/__init__.py +4 -3
- PaIRS_UniNa/addwidgets_ps.py +326 -56
- PaIRS_UniNa/calib.py +19 -12
- PaIRS_UniNa/calibView.py +48 -25
- PaIRS_UniNa/gPaIRS.py +3902 -3461
- PaIRS_UniNa/gPalette.py +189 -170
- PaIRS_UniNa/icons/align_all.png +0 -0
- PaIRS_UniNa/icons/announcement.png +0 -0
- PaIRS_UniNa/icons/automatic_levels_off.png +0 -0
- PaIRS_UniNa/icons/automatic_levels_on.png +0 -0
- PaIRS_UniNa/icons/automatic_off.png +0 -0
- PaIRS_UniNa/icons/automatic_on.png +0 -0
- PaIRS_UniNa/icons/automatic_size_off.png +0 -0
- PaIRS_UniNa/icons/automatic_size_on.png +0 -0
- PaIRS_UniNa/icons/bin_off.png +0 -0
- PaIRS_UniNa/icons/bin_on.png +0 -0
- PaIRS_UniNa/icons/brush_cursor.png +0 -0
- PaIRS_UniNa/icons/bugfix.png +0 -0
- PaIRS_UniNa/icons/cal_proc.png +0 -0
- PaIRS_UniNa/icons/cal_proc_off.png +0 -0
- PaIRS_UniNa/icons/cal_step.png +0 -0
- PaIRS_UniNa/icons/cal_step_off.png +0 -0
- PaIRS_UniNa/icons/calibration_logo.png +0 -0
- PaIRS_UniNa/icons/change_folder.png +0 -0
- PaIRS_UniNa/icons/change_folder_off.png +0 -0
- PaIRS_UniNa/icons/close_all.png +0 -0
- PaIRS_UniNa/icons/close_workspace.png +0 -0
- PaIRS_UniNa/icons/colormap.png +0 -0
- PaIRS_UniNa/icons/colormaps/Accent.png +0 -0
- PaIRS_UniNa/icons/colormaps/BrBG.png +0 -0
- PaIRS_UniNa/icons/colormaps/Dark2.png +0 -0
- PaIRS_UniNa/icons/colormaps/PRGn.png +0 -0
- PaIRS_UniNa/icons/colormaps/Paired.png +0 -0
- PaIRS_UniNa/icons/colormaps/Pastel1.png +0 -0
- PaIRS_UniNa/icons/colormaps/Pastel2.png +0 -0
- PaIRS_UniNa/icons/colormaps/PiYG.png +0 -0
- PaIRS_UniNa/icons/colormaps/PuOr.png +0 -0
- PaIRS_UniNa/icons/colormaps/RdBu.png +0 -0
- PaIRS_UniNa/icons/colormaps/RdGy.png +0 -0
- PaIRS_UniNa/icons/colormaps/RdYlBu.png +0 -0
- PaIRS_UniNa/icons/colormaps/RdYlGn.png +0 -0
- PaIRS_UniNa/icons/colormaps/Set1.png +0 -0
- PaIRS_UniNa/icons/colormaps/Set2.png +0 -0
- PaIRS_UniNa/icons/colormaps/Set3.png +0 -0
- PaIRS_UniNa/icons/colormaps/Spectral.png +0 -0
- PaIRS_UniNa/icons/colormaps/Wistia.png +0 -0
- PaIRS_UniNa/icons/colormaps/afmhot.png +0 -0
- PaIRS_UniNa/icons/colormaps/autumn.png +0 -0
- PaIRS_UniNa/icons/colormaps/binary.png +0 -0
- PaIRS_UniNa/icons/colormaps/blackVector.png +0 -0
- PaIRS_UniNa/icons/colormaps/blueVector.png +0 -0
- PaIRS_UniNa/icons/colormaps/bone.png +0 -0
- PaIRS_UniNa/icons/colormaps/brg.png +0 -0
- PaIRS_UniNa/icons/colormaps/bwr.png +0 -0
- PaIRS_UniNa/icons/colormaps/cividis.png +0 -0
- PaIRS_UniNa/icons/colormaps/cool.png +0 -0
- PaIRS_UniNa/icons/colormaps/coolwarm.png +0 -0
- PaIRS_UniNa/icons/colormaps/copper.png +0 -0
- PaIRS_UniNa/icons/colormaps/cubehelix.png +0 -0
- PaIRS_UniNa/icons/colormaps/cyanVector.png +0 -0
- PaIRS_UniNa/icons/colormaps/flag.png +0 -0
- PaIRS_UniNa/icons/colormaps/gist_heat.png +0 -0
- PaIRS_UniNa/icons/colormaps/gray.png +0 -0
- PaIRS_UniNa/icons/colormaps/greenVector.png +0 -0
- PaIRS_UniNa/icons/colormaps/hot.png +0 -0
- PaIRS_UniNa/icons/colormaps/hsv.png +0 -0
- PaIRS_UniNa/icons/colormaps/inferno.png +0 -0
- PaIRS_UniNa/icons/colormaps/jet.png +0 -0
- PaIRS_UniNa/icons/colormaps/magentaVector.png +0 -0
- PaIRS_UniNa/icons/colormaps/magma.png +0 -0
- PaIRS_UniNa/icons/colormaps/ocean.png +0 -0
- PaIRS_UniNa/icons/colormaps/pink.png +0 -0
- PaIRS_UniNa/icons/colormaps/plasma.png +0 -0
- PaIRS_UniNa/icons/colormaps/prism.png +0 -0
- PaIRS_UniNa/icons/colormaps/rainbow.png +0 -0
- PaIRS_UniNa/icons/colormaps/redVector.png +0 -0
- PaIRS_UniNa/icons/colormaps/seismic.png +0 -0
- PaIRS_UniNa/icons/colormaps/spring.png +0 -0
- PaIRS_UniNa/icons/colormaps/summer.png +0 -0
- PaIRS_UniNa/icons/colormaps/tab10.png +0 -0
- PaIRS_UniNa/icons/colormaps/tab20.png +0 -0
- PaIRS_UniNa/icons/colormaps/tab20b.png +0 -0
- PaIRS_UniNa/icons/colormaps/tab20c.png +0 -0
- PaIRS_UniNa/icons/colormaps/terrain.png +0 -0
- PaIRS_UniNa/icons/colormaps/twilight.png +0 -0
- PaIRS_UniNa/icons/colormaps/viridis.png +0 -0
- PaIRS_UniNa/icons/colormaps/whiteVector.png +0 -0
- PaIRS_UniNa/icons/colormaps/winter.png +0 -0
- PaIRS_UniNa/icons/colormaps/yellowVector.png +0 -0
- PaIRS_UniNa/icons/common_region.png +0 -0
- PaIRS_UniNa/icons/common_region_off.png +0 -0
- PaIRS_UniNa/icons/completed.png +0 -0
- PaIRS_UniNa/icons/contourf_off.png +0 -0
- PaIRS_UniNa/icons/contourf_on.png +0 -0
- PaIRS_UniNa/icons/copy.png +0 -0
- PaIRS_UniNa/icons/copy_process.png +0 -0
- PaIRS_UniNa/icons/copy_process_off.png +0 -0
- PaIRS_UniNa/icons/cut.png +0 -0
- PaIRS_UniNa/icons/cut_warnings.png +0 -0
- PaIRS_UniNa/icons/darkmode.png +0 -0
- PaIRS_UniNa/icons/disp_step.png +0 -0
- PaIRS_UniNa/icons/disp_step_off.png +0 -0
- PaIRS_UniNa/icons/edit_list.png +0 -0
- PaIRS_UniNa/icons/example_list.png +0 -0
- PaIRS_UniNa/icons/flaticon_PaIRS_beta.png +0 -0
- PaIRS_UniNa/icons/flaticon_PaIRS_download_warning.png +0 -0
- PaIRS_UniNa/icons/flip_y_off.png +0 -0
- PaIRS_UniNa/icons/flip_y_on.png +0 -0
- PaIRS_UniNa/icons/folder_loop_cleanup.png +0 -0
- PaIRS_UniNa/icons/folder_loop_cleanup_off.png +0 -0
- PaIRS_UniNa/icons/gear.gif +0 -0
- PaIRS_UniNa/icons/gear.png +0 -0
- PaIRS_UniNa/icons/import_set.png +0 -0
- PaIRS_UniNa/icons/information.png +0 -0
- PaIRS_UniNa/icons/input_logo.png +0 -0
- PaIRS_UniNa/icons/issue.png +0 -0
- PaIRS_UniNa/icons/laser_NTR.png +0 -0
- PaIRS_UniNa/icons/laser_TR_double.png +0 -0
- PaIRS_UniNa/icons/laser_TR_single.png +0 -0
- PaIRS_UniNa/icons/link.png +0 -0
- PaIRS_UniNa/icons/linked.png +0 -0
- PaIRS_UniNa/icons/log_logo.png +0 -0
- PaIRS_UniNa/icons/logo_opaco.png +0 -0
- PaIRS_UniNa/icons/measure.png +0 -0
- PaIRS_UniNa/icons/measure_off.png +0 -0
- PaIRS_UniNa/icons/min_proc.png +0 -0
- PaIRS_UniNa/icons/min_proc_off.png +0 -0
- PaIRS_UniNa/icons/min_step.png +0 -0
- PaIRS_UniNa/icons/min_step_off.png +0 -0
- PaIRS_UniNa/icons/new_workspace.png +0 -0
- PaIRS_UniNa/icons/open_image.png +0 -0
- PaIRS_UniNa/icons/open_new_window.png +0 -0
- PaIRS_UniNa/icons/open_result.png +0 -0
- PaIRS_UniNa/icons/open_workspace.png +0 -0
- PaIRS_UniNa/icons/output_logo.png +0 -0
- PaIRS_UniNa/icons/paste_above.png +0 -0
- PaIRS_UniNa/icons/paste_below.png +0 -0
- PaIRS_UniNa/icons/paused.png +0 -0
- PaIRS_UniNa/icons/piv_proc.png +0 -0
- PaIRS_UniNa/icons/piv_proc_off.png +0 -0
- PaIRS_UniNa/icons/piv_step.png +0 -0
- PaIRS_UniNa/icons/piv_step_off.png +0 -0
- PaIRS_UniNa/icons/process_logo.png +0 -0
- PaIRS_UniNa/icons/process_loop.png +0 -0
- PaIRS_UniNa/icons/project.png +0 -0
- PaIRS_UniNa/icons/pylog.png +0 -0
- PaIRS_UniNa/icons/python_warning.png +0 -0
- PaIRS_UniNa/icons/queue.png +0 -0
- PaIRS_UniNa/icons/read.png +0 -0
- PaIRS_UniNa/icons/read_list.png +0 -0
- PaIRS_UniNa/icons/reset.png +0 -0
- PaIRS_UniNa/icons/reset_levels.png +0 -0
- PaIRS_UniNa/icons/restore_undo.png +0 -0
- PaIRS_UniNa/icons/running.gif +0 -0
- PaIRS_UniNa/icons/running.png +0 -0
- PaIRS_UniNa/icons/running_warn.png +0 -0
- PaIRS_UniNa/icons/save_and_stop.png +0 -0
- PaIRS_UniNa/icons/save_cfg.png +0 -0
- PaIRS_UniNa/icons/saveas_workspace.png +0 -0
- PaIRS_UniNa/icons/scale_all.png +0 -0
- PaIRS_UniNa/icons/scale_down.png +0 -0
- PaIRS_UniNa/icons/scale_up.png +0 -0
- PaIRS_UniNa/icons/scan_list.png +0 -0
- PaIRS_UniNa/icons/scan_path.png +0 -0
- PaIRS_UniNa/icons/scan_path_loop.png +0 -0
- PaIRS_UniNa/icons/scan_path_loop_off.png +0 -0
- PaIRS_UniNa/icons/search.png +0 -0
- PaIRS_UniNa/icons/showIW_off.png +0 -0
- PaIRS_UniNa/icons/showIW_on.png +0 -0
- PaIRS_UniNa/icons/show_all.png +0 -0
- PaIRS_UniNa/icons/sort.png +0 -0
- PaIRS_UniNa/icons/sort_reversed.png +0 -0
- PaIRS_UniNa/icons/spiv_proc.png +0 -0
- PaIRS_UniNa/icons/spiv_proc_off.png +0 -0
- PaIRS_UniNa/icons/star.png +0 -0
- PaIRS_UniNa/icons/step_inheritance.png +0 -0
- PaIRS_UniNa/icons/subMIN_off.png +0 -0
- PaIRS_UniNa/icons/subMIN_on.png +0 -0
- PaIRS_UniNa/icons/unedited.png +0 -0
- PaIRS_UniNa/icons/uninitialized.png +0 -0
- PaIRS_UniNa/icons/unlink.png +0 -0
- PaIRS_UniNa/icons/unwrap_items.png +0 -0
- PaIRS_UniNa/icons/vectorColor.png +0 -0
- PaIRS_UniNa/icons/view.png +0 -0
- PaIRS_UniNa/icons/view_off.png +0 -0
- PaIRS_UniNa/icons/vis_logo.png +0 -0
- PaIRS_UniNa/icons/warning_circle.png +0 -0
- PaIRS_UniNa/icons/window.png +0 -0
- PaIRS_UniNa/icons/workspace.png +0 -0
- PaIRS_UniNa/icons/wrap_items.png +0 -0
- PaIRS_UniNa/icons/write_list.png +0 -0
- PaIRS_UniNa/listLib.py +303 -0
- PaIRS_UniNa/mtfPIV.py +8 -8
- PaIRS_UniNa/parForMulti.py +7 -5
- PaIRS_UniNa/parForWorkers.py +370 -31
- PaIRS_UniNa/pivParFor.py +233 -229
- PaIRS_UniNa/plt_util.py +141 -141
- PaIRS_UniNa/preProcParFor.py +153 -148
- PaIRS_UniNa/procTools.py +631 -178
- PaIRS_UniNa/readcfg.py +31 -1
- PaIRS_UniNa/rqrdpckgs.txt +9 -0
- PaIRS_UniNa/stereoPivParFor.py +227 -0
- PaIRS_UniNa/tAVarie.py +215 -215
- PaIRS_UniNa/tabSplitter.py +612 -0
- PaIRS_UniNa/ui_Calibration_Tab.py +545 -0
- PaIRS_UniNa/ui_Custom_Top.py +5 -5
- PaIRS_UniNa/ui_Input_Tab.py +1101 -0
- PaIRS_UniNa/{ui_Import_Tab_CalVi.py → ui_Input_Tab_CalVi.py} +1282 -1275
- PaIRS_UniNa/ui_Log_Tab.py +262 -257
- PaIRS_UniNa/{ui_Export_Tab.py → ui_Output_Tab.py} +2361 -1778
- PaIRS_UniNa/ui_Process_Tab.py +3809 -3758
- PaIRS_UniNa/ui_Process_Tab_CalVi.py +1547 -1546
- PaIRS_UniNa/ui_Process_Tab_Disp.py +1141 -0
- PaIRS_UniNa/ui_Process_Tab_Min.py +437 -0
- PaIRS_UniNa/ui_Vis_Tab.py +1626 -1208
- PaIRS_UniNa/ui_Vis_Tab_CalVi.py +1249 -1249
- PaIRS_UniNa/ui_Whatsnew.py +131 -131
- PaIRS_UniNa/ui_gPairs.py +876 -950
- PaIRS_UniNa/ui_infoPaIRS.py +550 -425
- PaIRS_UniNa/whatsnew.txt +6 -4
- {PaIRS_UniNa-0.1.13.dist-info → pairs_unina-0.2.8.dist-info}/METADATA +69 -51
- pairs_unina-0.2.8.dist-info/RECORD +329 -0
- {PaIRS_UniNa-0.1.13.dist-info → pairs_unina-0.2.8.dist-info}/WHEEL +1 -1
- PaIRS_UniNa/CalVi.py +0 -18
- PaIRS_UniNa/Export_Tab.py +0 -574
- PaIRS_UniNa/Import_Tab.py +0 -657
- PaIRS_UniNa/Import_Tab_CalVi.py +0 -861
- PaIRS_UniNa/Import_Tab_tools.py +0 -598
- PaIRS_UniNa/Tree_Tab.py +0 -543
- PaIRS_UniNa/gCalVi.py +0 -2024
- PaIRS_UniNa/icons/add.png +0 -0
- PaIRS_UniNa/icons/cancelled.png +0 -0
- PaIRS_UniNa/icons/chain.png +0 -0
- PaIRS_UniNa/icons/chain_broken.png +0 -0
- PaIRS_UniNa/icons/default_sizes.png +0 -0
- PaIRS_UniNa/icons/dock_tabs.png +0 -0
- PaIRS_UniNa/icons/done.png +0 -0
- PaIRS_UniNa/icons/down_arrow.png +0 -0
- PaIRS_UniNa/icons/export_logo.png +0 -0
- PaIRS_UniNa/icons/fast_delete.png +0 -0
- PaIRS_UniNa/icons/flip_y.png +0 -0
- PaIRS_UniNa/icons/ganci.png +0 -0
- PaIRS_UniNa/icons/import_blue.png +0 -0
- PaIRS_UniNa/icons/import_logo.png +0 -0
- PaIRS_UniNa/icons/missing.png +0 -0
- PaIRS_UniNa/icons/process_icon.png +0 -0
- PaIRS_UniNa/icons/processing.png +0 -0
- PaIRS_UniNa/icons/restart.png +0 -0
- PaIRS_UniNa/icons/right_arrow.png +0 -0
- PaIRS_UniNa/icons/run_piv.png +0 -0
- PaIRS_UniNa/icons/terminal.png +0 -0
- PaIRS_UniNa/icons/undock_tabs.png +0 -0
- PaIRS_UniNa/icons/vect_field.png +0 -0
- PaIRS_UniNa/icons/w0.png +0 -0
- PaIRS_UniNa/icons/w1.png +0 -0
- PaIRS_UniNa/icons/w2.png +0 -0
- PaIRS_UniNa/icons/w3.png +0 -0
- PaIRS_UniNa/icons/w4.png +0 -0
- PaIRS_UniNa/icons/w5.png +0 -0
- PaIRS_UniNa/run_CalVi.py +0 -14
- PaIRS_UniNa/run_gcalvi.py +0 -5
- PaIRS_UniNa/ui_Import_Tab.py +0 -1077
- PaIRS_UniNa/ui_Tree_Tab.py +0 -684
- PaIRS_UniNa/ui_gCalVi.py +0 -640
- PaIRS_UniNa/ui_infoCalVi.py +0 -428
- PaIRS_UniNa-0.1.13.dist-info/LICENSE +0 -19
- PaIRS_UniNa-0.1.13.dist-info/RECORD +0 -174
- /PaIRS_UniNa/icons/{clean_queue.png → clean.png} +0 -0
- /PaIRS_UniNa/icons/{waiting_c.png → sandglass.png} +0 -0
- {PaIRS_UniNa-0.1.13.dist-info → pairs_unina-0.2.8.dist-info}/top_level.txt +0 -0
PaIRS_UniNa/pivParFor.py
CHANGED
|
@@ -1,231 +1,235 @@
|
|
|
1
1
|
from .PaIRS_pypacks import *
|
|
2
2
|
from .procTools import *
|
|
3
|
-
|
|
4
|
-
def image2Float(a):
|
|
5
|
-
''' converts image to float '''
|
|
6
|
-
return lambda I: np.ascontiguousarray(I,dtype= a)
|
|
7
|
-
Image2PIV_Float=image2Float( np.float64 if PaIRS_lib.SizeOfReal()==8 else np.float32)
|
|
8
|
-
|
|
9
|
-
class WrapperOutFromPIV(PaIRS_lib.PyFunOutPIV):
|
|
10
|
-
''' Wrapper class for FunOut
|
|
11
|
-
FunOut is called periodically from the PaIRS_lib lib and if FunOut returns a value different from
|
|
12
|
-
zero the processing is stopped
|
|
13
|
-
'''
|
|
14
|
-
def __init__(self,flagFerma,eventExit) :
|
|
15
|
-
PaIRS_lib.PyFunOutPIV.__init__(self)
|
|
16
|
-
self.flagFerma=flagFerma
|
|
17
|
-
self.eventExit=eventExit
|
|
18
|
-
def FunOut(self, a, b, o) :
|
|
19
|
-
if self.eventExit.is_set():
|
|
20
|
-
self.flagFerma=-1
|
|
21
|
-
return -1
|
|
22
|
-
#print(f'flag ferma {self.flagFerma[0]} id={id(self.flagFerma)} {os.getpid()} ')
|
|
23
|
-
return 0
|
|
24
|
-
|
|
25
|
-
def initPIV(eventFerma,iImg,procId,data:dataTreePar,*args,**kwargs):
|
|
26
|
-
''' this function is called once per processor before the main function
|
|
27
|
-
eventferma is passed to the function called by PIV in order to stop the processing '''
|
|
28
|
-
#prTimeLock(0,f" initPIV")
|
|
29
|
-
|
|
30
|
-
PIV
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
PIV.
|
|
52
|
-
PIV.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
Error
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
I=
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
#
|
|
104
|
-
#
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
#
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
#
|
|
132
|
-
if (
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
#
|
|
136
|
-
varOut[1
|
|
137
|
-
#
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
PIV.Media.
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
return
|
|
190
|
-
|
|
191
|
-
def
|
|
192
|
-
'
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
VarOut[2]
|
|
217
|
-
''
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
3
|
+
|
|
4
|
+
def image2Float(a):
|
|
5
|
+
''' converts image to float '''
|
|
6
|
+
return lambda I: np.ascontiguousarray(I,dtype= a)
|
|
7
|
+
Image2PIV_Float=image2Float( np.float64 if PaIRS_lib.SizeOfReal()==8 else np.float32)
|
|
8
|
+
|
|
9
|
+
class WrapperOutFromPIV(PaIRS_lib.PyFunOutPIV):
|
|
10
|
+
''' Wrapper class for FunOut
|
|
11
|
+
FunOut is called periodically from the PaIRS_lib lib and if FunOut returns a value different from
|
|
12
|
+
zero the processing is stopped
|
|
13
|
+
'''
|
|
14
|
+
def __init__(self,flagFerma,eventExit) :
|
|
15
|
+
PaIRS_lib.PyFunOutPIV.__init__(self)
|
|
16
|
+
self.flagFerma=flagFerma
|
|
17
|
+
self.eventExit=eventExit
|
|
18
|
+
def FunOut(self, a, b, o) :
|
|
19
|
+
if self.eventExit.is_set():
|
|
20
|
+
self.flagFerma=-1
|
|
21
|
+
return -1
|
|
22
|
+
#print(f'flag ferma {self.flagFerma[0]} id={id(self.flagFerma)} {os.getpid()} ')
|
|
23
|
+
return 0
|
|
24
|
+
|
|
25
|
+
def initPIV(eventFerma,iImg,procId,data:dataTreePar,*args,**kwargs):
|
|
26
|
+
''' this function is called once per processor before the main function
|
|
27
|
+
eventferma is passed to the function called by PIV in order to stop the processing '''
|
|
28
|
+
#prTimeLock(0,f" initPIV")
|
|
29
|
+
|
|
30
|
+
PIV=data2PIV(data,flagSpiv=False)
|
|
31
|
+
data.OUT=OUTpar(data.Process,data.Step)
|
|
32
|
+
data.OUT.copyfromdiz(data.OUT_dict)
|
|
33
|
+
|
|
34
|
+
PIV.Inp.FlagLog=0
|
|
35
|
+
#vect=[]
|
|
36
|
+
#for v in data.PRO.Vect: vect.append(v.astype(np.intc))
|
|
37
|
+
|
|
38
|
+
#PIV.SetVect([v.astype(np.intc) for v in data.PRO.Vect])
|
|
39
|
+
if data.FlagMIN:
|
|
40
|
+
data.compMin.Imin=[np.zeros(1),np.zeros(1)]
|
|
41
|
+
for k,filename in enumerate(data.Imin[0]):
|
|
42
|
+
try:
|
|
43
|
+
data.compMin.Imin[k]=np.ascontiguousarray(Image.open(filename))
|
|
44
|
+
except Exception as inst:
|
|
45
|
+
errorMessage=f'Error while opening historical minimum background image file: {filename}. PIV process will not be executed!'
|
|
46
|
+
pri.Error.red(errorMessage+f"\n\nError details:\n{inst}\n")
|
|
47
|
+
raise (errorMessage)
|
|
48
|
+
#raise (inst)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
PIV.Media=MediaPIV()#data.mediaPIV
|
|
52
|
+
PIV.WraOut =WrapperOutFromPIV(0,eventExit=eventFerma)
|
|
53
|
+
PIV.fun=PaIRS_lib.GetPyFunction(PIV.WraOut)
|
|
54
|
+
(flagOut,VarOut) =procPIV(iImg,procId ,PIV,data,*args,**kwargs)
|
|
55
|
+
return (flagOut,VarOut,PIV)
|
|
56
|
+
def exitNoLog(flagOut,varOut):
|
|
57
|
+
''' exit without printing the log '''
|
|
58
|
+
varOut[0]=-1
|
|
59
|
+
return (flagOut,varOut)
|
|
60
|
+
def procPIV(i,procId ,PIV,data:dataTreePar,numUsedProcs,*args,**kwargs):
|
|
61
|
+
''' main proc function called for all the images one time per processor
|
|
62
|
+
k=0 always
|
|
63
|
+
In output flagOut and varOut[0] can be:
|
|
64
|
+
Already processed: varOut[0]=-1 flagOut=FLAG_PROC[k]|FLAG_READ[k]|FLAG_FINALIZED[k]
|
|
65
|
+
Error reading: varOut[0]=i flagOut=FLAG_READ_ERR[k]
|
|
66
|
+
Error processing: varOut[0]=i flagOut=FLAG_READ[k]
|
|
67
|
+
Process stoped by user: varOut[0]=-1 flagOut=FLAG_READ[k]
|
|
68
|
+
Error saving: varOut[0]=i flagOut=FLAG_PROC[k]|FLAG_READ[k]
|
|
69
|
+
Read and processed: varOut[0]=i flagOut=FLAG_PROC[k]|FLAG_READ[k]|FLAG_FINALIZED[k]|FLAG_CALLBACK_INTERNAL
|
|
70
|
+
Use:
|
|
71
|
+
numCallBackTotOk+=sum(1 if x&FLAG_CALLBACK_INTERNAL else 0 for x in flagOut)
|
|
72
|
+
to evaluate the number of total internal callbacks
|
|
73
|
+
numProcOrErrTot=sum(1 if f else 0 for f in flagOut)
|
|
74
|
+
to evaluate the number of total images processed (after a possible pause)
|
|
75
|
+
numFinalized=sum(1 if f&FLAG_FINALIZED[0] else 0 for f in flagOut)
|
|
76
|
+
to evaluate the number of total images correctly processed
|
|
77
|
+
|
|
78
|
+
where FLAG_FINALIZED_OR_ERR = [ p|e for (p,e) in zip(FLAG_FINALIZED,FLAG_READ_ERR)]
|
|
79
|
+
numProcOrErrTot=sum(1 if (f&FLAG_FINALIZED_OR_ERR[0])or(not f&FLAG_PROC[0]) else 0 for f in flagOut)
|
|
80
|
+
to delete images
|
|
81
|
+
pa='C:\\desk\\dl\\apairs\\jetcross\\'
|
|
82
|
+
no='zR2jet0_0004a'
|
|
83
|
+
I =imread([pa no '.png']);
|
|
84
|
+
I=I*0+1;
|
|
85
|
+
imwrite(I,[pa no 'black.png']);
|
|
86
|
+
'''
|
|
87
|
+
|
|
88
|
+
flagOut=0#data.list_pim[i] #0 to be processed, -1 error, 1 correctly processed
|
|
89
|
+
|
|
90
|
+
varOut=[i,'',[]] # The log will be written unless exitNoLog. If FLAG_CALLBACK_INTERNAL will be set then also the internal part will be called.
|
|
91
|
+
|
|
92
|
+
#if PIV.WraOut.flagFerma!=0: return (flagOut,VarOut)
|
|
93
|
+
j=i*2
|
|
94
|
+
kConst=0#useless. In preProc the flags are different for the first and second image in this case we only use the first (i.e. k=0)
|
|
95
|
+
try:
|
|
96
|
+
varOut[1]+=f'{data.list_Image_Files[j]}-{data.list_Image_Files[j+1]}'
|
|
97
|
+
if data.list_eim[j] and data.list_eim[j+1]:
|
|
98
|
+
if data.list_pim[i]&FLAG_FINALIZED[kConst]:
|
|
99
|
+
flagOut=FLAG_READ[kConst]|FLAG_PROC[kConst]|FLAG_FINALIZED[kConst] # It has been already processed. Exit without calling the callback core part
|
|
100
|
+
#☻prTimeLock(0,f"{i} --> {data.list_Image_Files[j]} {data.list_Image_Files[j+1]} {hex(flagOut)}")
|
|
101
|
+
return exitNoLog(flagOut,varOut)
|
|
102
|
+
else:
|
|
103
|
+
if PIV.WraOut.eventExit.is_set(): return exitNoLog(flagOut,varOut)# non si può mettere prima
|
|
104
|
+
# reading images and transforming
|
|
105
|
+
#prTimeLock(0,f"{i} --> {data.list_Image_Files[j]} {data.list_Image_Files[j+1]}")
|
|
106
|
+
I1=[None]*2
|
|
107
|
+
# tbd
|
|
108
|
+
#if i==2:1/0
|
|
109
|
+
try:
|
|
110
|
+
for k in range(2):
|
|
111
|
+
if PIV.WraOut.eventExit.is_set(): return exitNoLog(flagOut,varOut)
|
|
112
|
+
nameImg=data.inpPath+data.list_Image_Files[j+k]
|
|
113
|
+
I1[k]=np.ascontiguousarray(Image.open(nameImg))
|
|
114
|
+
if data.FlagMIN:
|
|
115
|
+
if data.FlagTR and i%2:
|
|
116
|
+
I1[k]=I1[k]-data.compMin.Imin[[1,0][k]]
|
|
117
|
+
else:
|
|
118
|
+
I1[k]=I1[k]-data.compMin.Imin[k]
|
|
119
|
+
iProc=transfIm(data.OUT,flagTransf=0,Images=I1)
|
|
120
|
+
except Exception as inst:
|
|
121
|
+
flagOut|=FLAG_READ_ERR[kConst]
|
|
122
|
+
if data.list_pim[i]&FLAG_READ_ERR[kConst]:varOut[0]=-1# no log already written
|
|
123
|
+
varOut[1]+=f"\n!!!!!!!!!! Error while reading the image {data.list_Image_Files[j+k]}:\n{inst}\n"
|
|
124
|
+
prLock(f'{varOut[1]}')
|
|
125
|
+
return (flagOut,varOut) #we can exit directly! Not calling the internal part of the callback in case of error
|
|
126
|
+
|
|
127
|
+
# no exception reading images and transforming running the process
|
|
128
|
+
flagOut|=FLAG_READ[kConst]
|
|
129
|
+
#infoPrint.white(os.getpid())
|
|
130
|
+
try:
|
|
131
|
+
PIV.SetImg([Image2PIV_Float(I) for I in iProc]) #inside try but should not happen
|
|
132
|
+
if PIV.WraOut.eventExit.is_set(): return (flagOut,varOut)
|
|
133
|
+
err=PIV.PIV_Run(PIV.fun)
|
|
134
|
+
except Exception as inst:
|
|
135
|
+
#raise (inst)
|
|
136
|
+
if ( data.list_pim[i] &FLAG_READ[kConst]):varOut[0]=-1# no log already written
|
|
137
|
+
#dum=str(inst.__cause__).split('\n')[3] #solved
|
|
138
|
+
dum='\n'.join(str(inst.args[0]).split('\n')[3:])
|
|
139
|
+
#varOut[1]+=f"\n!!!!!!!!!! Error while processing the above image pair: {dum}"
|
|
140
|
+
varOut[1]+=f"\n!!!!!!!!!! Error while processing data:\n{dum}\n"
|
|
141
|
+
#prLock(f'{varOut[1]}')
|
|
142
|
+
return (flagOut,varOut) #we can exit directly! Not calling the internal part of the callback in case of error
|
|
143
|
+
try:# no exception running the process
|
|
144
|
+
if err==-1000: #interrotto
|
|
145
|
+
return exitNoLog(flagOut,varOut) #we can exit directly no log !
|
|
146
|
+
else:
|
|
147
|
+
# Finalizing the process (means transformations and saving data)
|
|
148
|
+
flagOut|=FLAG_PROC[kConst]# per completezza aggiungo anche processato
|
|
149
|
+
x,y,u,v=transfVect(data.OUT,PIV)
|
|
150
|
+
nameFields=PIV.Media.namesPIV.instVelFields
|
|
151
|
+
otherVars=[getattr(PIV,f) for f in nameFields[4:] ]
|
|
152
|
+
campoVel=[x,y,u,v] +transfIm(data.OUT,flagTransf=1,Images=otherVars,flagRot=1)
|
|
153
|
+
nameVar=PIV.Media.namesPIV.instVel
|
|
154
|
+
PIV.Media.sum(campoVel)
|
|
155
|
+
try:
|
|
156
|
+
saveResults(data,i+1,campoVel,nameVar)
|
|
157
|
+
except Exception as inst:
|
|
158
|
+
varOut[1]+=f"\n!!!!!!!!!! Error while saving the results:\n{str(inst)}\n"
|
|
159
|
+
#prLock(f'{varOut[1]}')
|
|
160
|
+
varOut[0]=i# In any case the log will be written. If FLAG_CALLBACK_INTERNAL will be set then also the internal part will be called.
|
|
161
|
+
return (flagOut,varOut) #we can exit directly! Not calling the internal part of the callback in case of error
|
|
162
|
+
varOut[1]+="\n"+printPIVLog(PIV.PD)
|
|
163
|
+
flagOut|=FLAG_FINALIZED[kConst]
|
|
164
|
+
varOut[0]=i# In any case the log will be written. If FLAG_CALLBACK_INTERNAL will be set then also the internal part will be called.
|
|
165
|
+
flagOut|=FLAG_CALLBACK_INTERNAL# Verrà chiamata la callback
|
|
166
|
+
except Exception as inst:
|
|
167
|
+
varOut[1]+=f"\n!!!!!!!!!! Error while finalizing the PIV process:\n{str(inst)}\n"
|
|
168
|
+
#prLock(f'{varOut[1]}')
|
|
169
|
+
return (flagOut,varOut)
|
|
170
|
+
else:#if data.list_eim[j] and data.list_eim[j+1]:
|
|
171
|
+
flagOut|=FLAG_READ_ERR[kConst]
|
|
172
|
+
if data.list_pim[i]&FLAG_READ_ERR[kConst]:varOut[0]=-1# no log already written
|
|
173
|
+
jj=j+1 if data.list_eim[j] else j
|
|
174
|
+
varOut[1]+=f"\n!!!!!!!!!! Error while reading the image {data.list_Image_Files[jj]}:\nThe image file is missing!\n"
|
|
175
|
+
#prLock(f'{varOut[1]}')
|
|
176
|
+
except :
|
|
177
|
+
flagOut|=FLAG_GENERIC_ERROR
|
|
178
|
+
varOut[0]=i# In any case the log will be written. If FLAG_CALLBACK_INTERNAL will be set then also the internal part will be called.
|
|
179
|
+
varOut[1]+=printException(flagMessage=True)
|
|
180
|
+
|
|
181
|
+
# to del ma il resto dove va
|
|
182
|
+
#varOut=[i,stampa,[]] if flagOut&FLAG_FINALIZING_PROC_OK[0] else [-1,stampa,[]]
|
|
183
|
+
if (not procId%numUsedProcs) and flagOut&FLAG_FINALIZED[0]: # copiare l'img nella coda è un operazione onerosa. TA ha deciso che si copia solo quando serve
|
|
184
|
+
#prLock(f'procMIN Main proc i={i}')
|
|
185
|
+
varOut[2]=campoVel#VarOut=[i,stampa,Var]
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
return (flagOut,varOut)
|
|
190
|
+
|
|
191
|
+
def finalPIV(procId, PIV,data,*args,finalPIVPIppo=4 ,**kwargs):
|
|
192
|
+
#prLock(f'finalPIV procId={procId}')
|
|
193
|
+
return PIV.Media
|
|
194
|
+
|
|
195
|
+
def saveAndMean(procId,flagHasWorked,med,data,*args,**kwargs):
|
|
196
|
+
''' saveAndMean is the wrapUp function called once per processor '''
|
|
197
|
+
if flagHasWorked:
|
|
198
|
+
data.mediaPIV.sumMedia(med)
|
|
199
|
+
return data.mediaPIV
|
|
200
|
+
|
|
201
|
+
def callBackPIV(flag,perc,procId,flagOut,name,VarOut,signal_res):
|
|
202
|
+
'''
|
|
203
|
+
flag=true new data False just check exit
|
|
204
|
+
perc= precentage done
|
|
205
|
+
flagOutFromTasks,varOutFromTask Out varibles from task e.g.:
|
|
206
|
+
flagOut=1 #0 to be processed, -1 error, 1 correctly processed
|
|
207
|
+
varOutFromTask whatever for now a string
|
|
208
|
+
name current element in names
|
|
209
|
+
to stop the process the return value should be True otherwise sleep
|
|
210
|
+
'''
|
|
211
|
+
global FlagStopWorkers
|
|
212
|
+
|
|
213
|
+
if flag:
|
|
214
|
+
i=VarOut[0]
|
|
215
|
+
stampa=VarOut[1]
|
|
216
|
+
Var=VarOut[2]
|
|
217
|
+
#pr(f'Callback {i} getpid {os.getpid()} {len(Var)}')
|
|
218
|
+
#prLock(f'Callback {i} getpid {os.getpid()} ')
|
|
219
|
+
signal_res.emit(procId,i,flagOut,Var,stampa)
|
|
220
|
+
VarOut[2]=[]#altrimenti salvo le img
|
|
221
|
+
'''
|
|
222
|
+
if i==0:
|
|
223
|
+
callBackPIV.flagStop=True
|
|
224
|
+
if(callBackPIV.flagStop):
|
|
225
|
+
if i>=2:
|
|
226
|
+
callBackPIV.flagStop=False
|
|
227
|
+
FlagStopWorkers[0]=True
|
|
228
|
+
return True
|
|
229
|
+
#'''
|
|
230
|
+
if FlagStopWorkers[0]:
|
|
231
|
+
return True
|
|
232
|
+
else:
|
|
233
|
+
return False
|
|
234
|
+
callBackPIV.flagStop=True
|
|
235
|
+
|