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/plt_util.py
CHANGED
|
@@ -1,141 +1,141 @@
|
|
|
1
|
-
''' plt utilities '''
|
|
2
|
-
from typing import List#, Set, Dict, Tuple, Optional
|
|
3
|
-
from struct import unpack
|
|
4
|
-
import numpy as np
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def writePlt(outFileName:str,mat,title:str,varNames:List[str],zoneTitle:str)->None :
|
|
9
|
-
''' write tecplot binary files'''
|
|
10
|
-
nVar=len(mat)
|
|
11
|
-
h,w=mat[0].shape
|
|
12
|
-
tecIntest=b'#!TDV71 '
|
|
13
|
-
|
|
14
|
-
def writeLong(l):
|
|
15
|
-
f.write(np.int32(l))
|
|
16
|
-
def writeFloat32(fl):
|
|
17
|
-
f.write(np.float32(fl))
|
|
18
|
-
def writeString(s):
|
|
19
|
-
for c in str.encode(s):
|
|
20
|
-
f.write(np.int32(c))
|
|
21
|
-
f.write(np.int32(0))
|
|
22
|
-
return
|
|
23
|
-
#apertura file binario di output .plt
|
|
24
|
-
f=open(outFileName,"wb")
|
|
25
|
-
|
|
26
|
-
#scrittura nel file di output del TEST
|
|
27
|
-
f.write(tecIntest)
|
|
28
|
-
#scrittura nel file di output di 1 (ordine dei bytes BO???)
|
|
29
|
-
writeLong(1)
|
|
30
|
-
#scrittura del titolo
|
|
31
|
-
writeString(title)
|
|
32
|
-
|
|
33
|
-
#scrittura numero e nome delle variabili
|
|
34
|
-
writeLong(nVar)
|
|
35
|
-
for s in varNames:
|
|
36
|
-
writeString(s)
|
|
37
|
-
writeFloat32(299.0)
|
|
38
|
-
#ZONE NAME
|
|
39
|
-
writeString(zoneTitle)
|
|
40
|
-
#scrittura del BLOCK POINT
|
|
41
|
-
writeLong(1)
|
|
42
|
-
#scrittura del COLORE
|
|
43
|
-
writeLong(-1)
|
|
44
|
-
#scrittura nel file di output della larghezza e altezza img W e H
|
|
45
|
-
writeLong(w)
|
|
46
|
-
writeLong(h)
|
|
47
|
-
#scrittura nel file di output della dimensione Z
|
|
48
|
-
writeLong(1)
|
|
49
|
-
#scrittura nel file di output di 357.0 (bo????)
|
|
50
|
-
writeFloat32(357.0)
|
|
51
|
-
#scrittura nel file di output di 299.0 (bo????)
|
|
52
|
-
writeFloat32(299.0)
|
|
53
|
-
#scrittura nel file di output di 0 (bo????)
|
|
54
|
-
writeLong(0)
|
|
55
|
-
#sizeof variabili
|
|
56
|
-
for _ in range (0,nVar):
|
|
57
|
-
writeLong(1)
|
|
58
|
-
|
|
59
|
-
#scrittura nel file di output delle matrici x,y,u,v,up,vp (variabili)
|
|
60
|
-
writeFloat32(np.ascontiguousarray(np.transpose(mat,(1,2,0))))
|
|
61
|
-
|
|
62
|
-
f.flush()
|
|
63
|
-
f.close()
|
|
64
|
-
|
|
65
|
-
return
|
|
66
|
-
def readPlt(inFileName):
|
|
67
|
-
''' read tecplot binary files
|
|
68
|
-
returns a 3d array [w,h,nVar]
|
|
69
|
-
'''
|
|
70
|
-
#nVar=len(Mat)
|
|
71
|
-
#h,w=Mat[0].shape
|
|
72
|
-
tecIntest=b'#!TDV71 '
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
def readFloat32():
|
|
76
|
-
return unpack('f',f.read(4))[0]
|
|
77
|
-
|
|
78
|
-
def readLong():
|
|
79
|
-
return unpack('i',f.read(4))[0]
|
|
80
|
-
def readString():
|
|
81
|
-
s=''
|
|
82
|
-
while True:
|
|
83
|
-
ic=unpack('i',f.read(4))[0]
|
|
84
|
-
if ic==0:
|
|
85
|
-
break
|
|
86
|
-
s+=chr(ic)
|
|
87
|
-
return s
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
#apertura file binario di output .plt
|
|
91
|
-
f=open(inFileName,"rb")
|
|
92
|
-
|
|
93
|
-
#scrittura nel file di output del TEST
|
|
94
|
-
tecIntest=f.read(8)
|
|
95
|
-
if tecIntest!=b'#!TDV71 ':
|
|
96
|
-
print("ERrore")
|
|
97
|
-
if readLong()!=1:
|
|
98
|
-
print("ERrore")
|
|
99
|
-
#Lettura del titolo
|
|
100
|
-
_=readString()
|
|
101
|
-
|
|
102
|
-
#lettura numero e nome delle variabili
|
|
103
|
-
nVar=readLong()
|
|
104
|
-
varNames=[]
|
|
105
|
-
for _ in range(nVar):
|
|
106
|
-
varNames.append(readString())
|
|
107
|
-
if readFloat32()!=299:
|
|
108
|
-
print("ERrore")
|
|
109
|
-
#ZONE NAME
|
|
110
|
-
_=readString()
|
|
111
|
-
#scrittura del BLOCK POINT
|
|
112
|
-
readLong()
|
|
113
|
-
#scrittura del COLORE
|
|
114
|
-
readLong()
|
|
115
|
-
#scrittura nel file di output della larghezza e altezza img W e H
|
|
116
|
-
w=readLong()
|
|
117
|
-
h=readLong()
|
|
118
|
-
#scrittura nel file di output della dimensione Z
|
|
119
|
-
if readLong()!=1:
|
|
120
|
-
print("ERrore")#3d nonprevisto
|
|
121
|
-
if readFloat32()!=357:
|
|
122
|
-
print("ERrore")
|
|
123
|
-
if readFloat32()!=299:
|
|
124
|
-
print("ERrore")
|
|
125
|
-
readLong()
|
|
126
|
-
for _ in range(nVar):
|
|
127
|
-
dimVar=readLong()
|
|
128
|
-
ty=np.float32 if dimVar==1 else np.float64
|
|
129
|
-
aa=np.reshape(np.fromfile(f, ty,count=w*h*nVar),[h,w,nVar])
|
|
130
|
-
|
|
131
|
-
f.close()
|
|
132
|
-
return aa,varNames
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
if __name__ == "__main__":
|
|
139
|
-
i=0
|
|
140
|
-
nomeFileOut= f"{'test'}{i:0{4:d}d}.plt"
|
|
141
|
-
readPlt(nomeFileOut)
|
|
1
|
+
''' plt utilities '''
|
|
2
|
+
from typing import List#, Set, Dict, Tuple, Optional
|
|
3
|
+
from struct import unpack
|
|
4
|
+
import numpy as np
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def writePlt(outFileName:str,mat,title:str,varNames:List[str],zoneTitle:str)->None :
|
|
9
|
+
''' write tecplot binary files'''
|
|
10
|
+
nVar=len(mat)
|
|
11
|
+
h,w=mat[0].shape
|
|
12
|
+
tecIntest=b'#!TDV71 '
|
|
13
|
+
|
|
14
|
+
def writeLong(l):
|
|
15
|
+
f.write(np.int32(l))
|
|
16
|
+
def writeFloat32(fl):
|
|
17
|
+
f.write(np.float32(fl))
|
|
18
|
+
def writeString(s):
|
|
19
|
+
for c in str.encode(s):
|
|
20
|
+
f.write(np.int32(c))
|
|
21
|
+
f.write(np.int32(0))
|
|
22
|
+
return
|
|
23
|
+
#apertura file binario di output .plt
|
|
24
|
+
f=open(outFileName,"wb")
|
|
25
|
+
|
|
26
|
+
#scrittura nel file di output del TEST
|
|
27
|
+
f.write(tecIntest)
|
|
28
|
+
#scrittura nel file di output di 1 (ordine dei bytes BO???)
|
|
29
|
+
writeLong(1)
|
|
30
|
+
#scrittura del titolo
|
|
31
|
+
writeString(title)
|
|
32
|
+
|
|
33
|
+
#scrittura numero e nome delle variabili
|
|
34
|
+
writeLong(nVar)
|
|
35
|
+
for s in varNames:
|
|
36
|
+
writeString(s)
|
|
37
|
+
writeFloat32(299.0)
|
|
38
|
+
#ZONE NAME
|
|
39
|
+
writeString(zoneTitle)
|
|
40
|
+
#scrittura del BLOCK POINT
|
|
41
|
+
writeLong(1)
|
|
42
|
+
#scrittura del COLORE
|
|
43
|
+
writeLong(-1)
|
|
44
|
+
#scrittura nel file di output della larghezza e altezza img W e H
|
|
45
|
+
writeLong(w)
|
|
46
|
+
writeLong(h)
|
|
47
|
+
#scrittura nel file di output della dimensione Z
|
|
48
|
+
writeLong(1)
|
|
49
|
+
#scrittura nel file di output di 357.0 (bo????)
|
|
50
|
+
writeFloat32(357.0)
|
|
51
|
+
#scrittura nel file di output di 299.0 (bo????)
|
|
52
|
+
writeFloat32(299.0)
|
|
53
|
+
#scrittura nel file di output di 0 (bo????)
|
|
54
|
+
writeLong(0)
|
|
55
|
+
#sizeof variabili
|
|
56
|
+
for _ in range (0,nVar):
|
|
57
|
+
writeLong(1)
|
|
58
|
+
|
|
59
|
+
#scrittura nel file di output delle matrici x,y,u,v,up,vp (variabili)
|
|
60
|
+
writeFloat32(np.ascontiguousarray(np.transpose(mat,(1,2,0))))
|
|
61
|
+
|
|
62
|
+
f.flush()
|
|
63
|
+
f.close()
|
|
64
|
+
|
|
65
|
+
return
|
|
66
|
+
def readPlt(inFileName):
|
|
67
|
+
''' read tecplot binary files
|
|
68
|
+
returns a 3d array [w,h,nVar]
|
|
69
|
+
'''
|
|
70
|
+
#nVar=len(Mat)
|
|
71
|
+
#h,w=Mat[0].shape
|
|
72
|
+
tecIntest=b'#!TDV71 '
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def readFloat32():
|
|
76
|
+
return unpack('f',f.read(4))[0]
|
|
77
|
+
|
|
78
|
+
def readLong():
|
|
79
|
+
return unpack('i',f.read(4))[0]
|
|
80
|
+
def readString():
|
|
81
|
+
s=''
|
|
82
|
+
while True:
|
|
83
|
+
ic=unpack('i',f.read(4))[0]
|
|
84
|
+
if ic==0:
|
|
85
|
+
break
|
|
86
|
+
s+=chr(ic)
|
|
87
|
+
return s
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
#apertura file binario di output .plt
|
|
91
|
+
f=open(inFileName,"rb")
|
|
92
|
+
|
|
93
|
+
#scrittura nel file di output del TEST
|
|
94
|
+
tecIntest=f.read(8)
|
|
95
|
+
if tecIntest!=b'#!TDV71 ':
|
|
96
|
+
print("ERrore")
|
|
97
|
+
if readLong()!=1:
|
|
98
|
+
print("ERrore")
|
|
99
|
+
#Lettura del titolo
|
|
100
|
+
_=readString()
|
|
101
|
+
|
|
102
|
+
#lettura numero e nome delle variabili
|
|
103
|
+
nVar=readLong()
|
|
104
|
+
varNames=[]
|
|
105
|
+
for _ in range(nVar):
|
|
106
|
+
varNames.append(readString())
|
|
107
|
+
if readFloat32()!=299:
|
|
108
|
+
print("ERrore")
|
|
109
|
+
#ZONE NAME
|
|
110
|
+
_=readString()
|
|
111
|
+
#scrittura del BLOCK POINT
|
|
112
|
+
readLong()
|
|
113
|
+
#scrittura del COLORE
|
|
114
|
+
readLong()
|
|
115
|
+
#scrittura nel file di output della larghezza e altezza img W e H
|
|
116
|
+
w=readLong()
|
|
117
|
+
h=readLong()
|
|
118
|
+
#scrittura nel file di output della dimensione Z
|
|
119
|
+
if readLong()!=1:
|
|
120
|
+
print("ERrore")#3d nonprevisto
|
|
121
|
+
if readFloat32()!=357:
|
|
122
|
+
print("ERrore")
|
|
123
|
+
if readFloat32()!=299:
|
|
124
|
+
print("ERrore")
|
|
125
|
+
readLong()
|
|
126
|
+
for _ in range(nVar):
|
|
127
|
+
dimVar=readLong()
|
|
128
|
+
ty=np.float32 if dimVar==1 else np.float64
|
|
129
|
+
aa=np.reshape(np.fromfile(f, ty,count=w*h*nVar),[h,w,nVar])
|
|
130
|
+
|
|
131
|
+
f.close()
|
|
132
|
+
return aa,varNames
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
if __name__ == "__main__":
|
|
139
|
+
i=0
|
|
140
|
+
nomeFileOut= f"{'test'}{i:0{4:d}d}.plt"
|
|
141
|
+
readPlt(nomeFileOut)
|
PaIRS_UniNa/preProcParFor.py
CHANGED
|
@@ -1,150 +1,155 @@
|
|
|
1
|
-
''' preProcParFor helper function for parfor '''
|
|
2
|
-
|
|
1
|
+
''' preProcParFor helper function for parfor '''
|
|
2
|
+
|
|
3
3
|
from .PaIRS_pypacks import * #OPTIMIZE TAGP rimuovere tutti gli import e mettere solo quelli necessari
|
|
4
4
|
from .procTools import *
|
|
5
|
-
|
|
6
|
-
prTime = PrintTA(PrintTA.cyan, PrintTA.faceStd, PrintTAPriority.medium).prTime
|
|
7
|
-
|
|
8
|
-
def initMIN(eventFerma,iImg,procId,data:dataTreePar,*args,**kwargs):
|
|
9
|
-
''' this function is called once per processor before the main function
|
|
10
|
-
eventferma is passed to the function called by PIV in order to stop the processing '''
|
|
11
|
-
#prLock(0,f" initMIN procId={procId}")
|
|
12
|
-
compMin=CompMin()
|
|
13
|
-
|
|
14
|
-
compMin.eventExit=eventFerma
|
|
15
|
-
# initially I thought that it was easier to initialize the minimum without calling procMIN but this is not possible because
|
|
16
|
-
# if an error occurs (e.g. reading) while processing the first image it is not possible to overcome this error
|
|
17
|
-
#if procId==2: prTimeLock(f"initMIN rima compmin procId={procId} ")
|
|
18
|
-
(flagOut,VarOut)=procMIN(iImg,procId,compMin,data,*args,**kwargs)
|
|
19
|
-
#if procId==2: prTimeLock(f"fine initMIN procId={procId} ")
|
|
20
|
-
return (flagOut,VarOut,compMin)
|
|
21
|
-
|
|
22
|
-
def procMIN(i,procId,compMin:CompMin,data:dataTreePar,
|
|
23
|
-
''' main proc function called for all the images one time per processor
|
|
24
|
-
k=0 or 1 for the first and second image
|
|
25
|
-
In output flagOut and varOut[0] can be:
|
|
26
|
-
Already processed: varOut[0]=-1 flagOut=FLAG_PROC[k]|FLAG_READ[k]|FLAG_FINALIZED[k]
|
|
27
|
-
Error reading: varOut[0]=i flagOut=FLAG_READ_ERR[k]
|
|
28
|
-
Read and processed: varOut[0]=i flagOut=FLAG_PROC[k]|FLAG_READ[k]|FLAG_FINALIZED[k]|FLAG_CALLBACK_INTERNAL
|
|
29
|
-
Use:
|
|
30
|
-
numCallBackTotOk+=sum(1 if x&FLAG_CALLBACK_INTERNAL else 0 for x in flagOut)
|
|
31
|
-
to evaluate the number of total internal callbacks
|
|
32
|
-
numProcOrErrTot=sum(1 if (f&FLAG_FINALIZED_OR_ERR[0])and (f&FLAG_FINALIZED_OR_ERR[1]) else 0 for f in flagOut)
|
|
33
|
-
numProcOrErrTot=sum(1 if f else 0 for f in flagOut)
|
|
34
|
-
to evaluate the number of total images processed (after a possible pause)
|
|
35
|
-
numFinalized=sum(1 if (f&FLAG_FINALIZED[0]) and (f&FLAG_FINALIZED[1]) else 0 for f in flagOut)
|
|
36
|
-
to evaluate the number of total images correctly processed
|
|
37
|
-
where FLAG_FINALIZED_OR_ERR = [ p|e for (p,e) in zip(FLAG_FINALIZED,FLAG_READ_ERR)]
|
|
38
|
-
'''
|
|
39
|
-
flagOut=0
|
|
40
|
-
|
|
41
|
-
varOut=[-1,'',[]]
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
try:
|
|
49
|
-
for
|
|
50
|
-
# tbd
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
varOut[
|
|
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
|
-
VarOut[
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
5
|
+
|
|
6
|
+
prTime = PrintTA(PrintTA.cyan, PrintTA.faceStd, PrintTAPriority.medium).prTime
|
|
7
|
+
|
|
8
|
+
def initMIN(eventFerma,iImg,procId,data:dataTreePar,*args,**kwargs):
|
|
9
|
+
''' this function is called once per processor before the main function
|
|
10
|
+
eventferma is passed to the function called by PIV in order to stop the processing '''
|
|
11
|
+
#prLock(0,f" initMIN procId={procId}")
|
|
12
|
+
compMin=CompMin(data.ncam)
|
|
13
|
+
|
|
14
|
+
compMin.eventExit=eventFerma
|
|
15
|
+
# initially I thought that it was easier to initialize the minimum without calling procMIN but this is not possible because
|
|
16
|
+
# if an error occurs (e.g. reading) while processing the first image it is not possible to overcome this error
|
|
17
|
+
#if procId==2: prTimeLock(f"initMIN rima compmin procId={procId} ")
|
|
18
|
+
(flagOut,VarOut)=procMIN(iImg,procId,compMin,data,*args,**kwargs)
|
|
19
|
+
#if procId==2: prTimeLock(f"fine initMIN procId={procId} ")
|
|
20
|
+
return (flagOut,VarOut,compMin)
|
|
21
|
+
|
|
22
|
+
def procMIN(i,procId,compMin:CompMin,data:dataTreePar,numMaxProcs,*args,**kwargs):
|
|
23
|
+
''' main proc function called for all the images one time per processor
|
|
24
|
+
k=0 or 1 for the first and second image
|
|
25
|
+
In output flagOut and varOut[0] can be:
|
|
26
|
+
Already processed: varOut[0]=-1 flagOut=FLAG_PROC[k]|FLAG_READ[k]|FLAG_FINALIZED[k]
|
|
27
|
+
Error reading: varOut[0]=i flagOut=FLAG_READ_ERR[k]
|
|
28
|
+
Read and processed: varOut[0]=i flagOut=FLAG_PROC[k]|FLAG_READ[k]|FLAG_FINALIZED[k]|FLAG_CALLBACK_INTERNAL
|
|
29
|
+
Use:
|
|
30
|
+
numCallBackTotOk+=sum(1 if x&FLAG_CALLBACK_INTERNAL else 0 for x in flagOut)
|
|
31
|
+
to evaluate the number of total internal callbacks
|
|
32
|
+
numProcOrErrTot=sum(1 if (f&FLAG_FINALIZED_OR_ERR[0])and (f&FLAG_FINALIZED_OR_ERR[1]) else 0 for f in flagOut)
|
|
33
|
+
numProcOrErrTot=sum(1 if f else 0 for f in flagOut)
|
|
34
|
+
to evaluate the number of total images processed (after a possible pause)
|
|
35
|
+
numFinalized=sum(1 if (f&FLAG_FINALIZED[0]) and (f&FLAG_FINALIZED[1]) else 0 for f in flagOut)
|
|
36
|
+
to evaluate the number of total images correctly processed
|
|
37
|
+
where FLAG_FINALIZED_OR_ERR = [ p|e for (p,e) in zip(FLAG_FINALIZED,FLAG_READ_ERR)]
|
|
38
|
+
'''
|
|
39
|
+
flagOut=0
|
|
40
|
+
|
|
41
|
+
varOut=[-1,'',[]]
|
|
42
|
+
|
|
43
|
+
ncam=data.ncam
|
|
44
|
+
nframe=data.nframe
|
|
45
|
+
nImgMin=nframe*ncam
|
|
46
|
+
nImgMolt=2 if data.FlagTR else 1
|
|
47
|
+
|
|
48
|
+
try:
|
|
49
|
+
for j in range(nImgMin):
|
|
50
|
+
# tbd
|
|
51
|
+
k=j%nframe
|
|
52
|
+
cam=j//nframe%ncam
|
|
53
|
+
ind=nImgMolt*nframe*i + k + data.nimg*nframe*cam
|
|
54
|
+
#if i==2:1/0
|
|
55
|
+
|
|
56
|
+
#i=0 ind=0 (0)-> a ind=1 (1)->b
|
|
57
|
+
#i=1 ind=4 (2)-> a ind=5 (3)->b
|
|
58
|
+
varOut[1]+=data.list_Image_Files[ind]+"\n"
|
|
59
|
+
if data.list_eim[ind]:
|
|
60
|
+
if data.list_pim[i]&FLAG_PROC[k]:
|
|
61
|
+
flagOut|=FLAG_PROC[k]|FLAG_READ[k]|FLAG_FINALIZED[k] # It has been already processed. Exit without calling the callback core part
|
|
62
|
+
if k: return (flagOut,varOut) #second img
|
|
63
|
+
#flagOut=flagOut& ~FLAG_CALLBACK# nel caso sia stata chiamata in precedenza ed ora non venga chiamata
|
|
64
|
+
else:
|
|
65
|
+
if compMin.eventExit.is_set(): return (flagOut,varOut)
|
|
66
|
+
nameImg=data.inpPath+data.list_Image_Files[ind]
|
|
67
|
+
#if k==0: prLock(f'{i} {data.list_Image_Files[ind]} --- {data.list_Image_Files[ind+1]} ')
|
|
68
|
+
try:
|
|
69
|
+
if compMin.eventExit.is_set(): return (flagOut,varOut)
|
|
70
|
+
I=np.array(Image.open(nameImg))
|
|
71
|
+
except Exception as inst:
|
|
72
|
+
flagOut|=FLAG_READ_ERR[k]
|
|
73
|
+
#if data.list_pim[i]&FLAG_READ_ERR[k]: varOut[0]=-1# no log already written
|
|
74
|
+
varOut[1]+=f"!!!!!!!!!! Error reading {data.list_Image_Files[ind]}:\n{inst}\n"# no internal callback {str(inst.__cause__)}
|
|
75
|
+
prLock(f'{varOut[1]}',end='')
|
|
76
|
+
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.
|
|
77
|
+
else:# no exception
|
|
78
|
+
|
|
79
|
+
flagOut|=FLAG_READ[k]
|
|
80
|
+
if compMin.checkImg(I,data.SogliaNoise_Min,data.SogliaStd_Min ):
|
|
81
|
+
#flagOut=1 if k==0 else (2 if flagOut==-1 else 3)
|
|
82
|
+
compMin.minSum(I,j)
|
|
83
|
+
#prLock(f"procMIN {i}--{procId} {nameIm} flagOut={flagOut} list_pim[i]={data.list_pim[i]} ")
|
|
84
|
+
flagOut|=FLAG_PROC[k]|FLAG_FINALIZED[k]# in this case both processed and finalized
|
|
85
|
+
else:
|
|
86
|
+
varOut[1]+=f"The gray levels in {data.list_Image_Files[ind]} are too small! Please, check the image or change the minimum allowed value and standard deviation thresholds in the Validation box!\n"
|
|
87
|
+
flagOut|=FLAG_PROC[k] # in this case both processed and finalized
|
|
88
|
+
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.
|
|
89
|
+
flagOut|=FLAG_CALLBACK_INTERNAL# Verrà chiamata la callback
|
|
90
|
+
else:
|
|
91
|
+
#if data.list_pim[i]&FLAG_READ_ERR[k]: varOut[0]=-1# no log already written
|
|
92
|
+
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.
|
|
93
|
+
flagOut|=FLAG_READ_ERR[k]
|
|
94
|
+
varOut[1]+=f"!!!!!!!!!! The file {data.list_Image_Files[ind]} is missing!\n"
|
|
95
|
+
except :
|
|
96
|
+
flagOut|=FLAG_GENERIC_ERROR
|
|
97
|
+
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.
|
|
98
|
+
varOut[1]+=printException(flagMessage=True)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
if not procId%numMaxProcs and flagOut&FLAG_PROC_AB: # copying in the queue is time consuming. This is done only when needed
|
|
102
|
+
varOut[2]=compMin.Imin#VarOut=[i,stampa,Var]
|
|
103
|
+
return (flagOut,varOut)
|
|
104
|
+
|
|
105
|
+
def finalMIN( procId,compMin:CompMin,data:dataTreePar,numMaxProcs,*args,**kwargs):
|
|
106
|
+
#prLock(f'finalMIN procId={procId} {data.compMin.contab}')
|
|
107
|
+
return compMin
|
|
108
|
+
|
|
109
|
+
def saveAndMin(procId,flagHasWorked,compMin:CompMin,data:dataTreePar,numMaxProcs,*args,**kwargs):
|
|
110
|
+
''' saveAndMean is the wrapUp function called once per processor '''
|
|
111
|
+
#prTimeLock(f'saveAndMin procId={procId} {data.compMin.contab}')
|
|
112
|
+
if flagHasWorked:
|
|
113
|
+
data.compMin.calcMin(compMin)
|
|
114
|
+
#prTimeLock(f'saveAndMin fine procId={procId} {data.compMin.contab}')
|
|
115
|
+
return data.compMin
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def callBackMin(flag,perc,procId,flagOut,name,VarOut,signal_res):
|
|
119
|
+
'''
|
|
120
|
+
flag=true new data False just check exit
|
|
121
|
+
perc= precentage done
|
|
122
|
+
flagOutFromTasks,varOutFromTask Out varibles from task e.g.:
|
|
123
|
+
flagOut=1 #0 to be processed, -1 error, 1 correctly processed
|
|
124
|
+
varOutFromTask whatever for now a string
|
|
125
|
+
name current element in names
|
|
126
|
+
to stop the process the return value should be True otherwise sleep
|
|
127
|
+
'''
|
|
128
|
+
global FlagStopWorkers
|
|
129
|
+
if flag:
|
|
130
|
+
i=VarOut[0]
|
|
131
|
+
stampa=VarOut[1]
|
|
132
|
+
Var=VarOut[2]
|
|
133
|
+
#prLock(f'Callback {i} {perc} getpid {os.getpid()} {len(Var)}')
|
|
134
|
+
signal_res.emit(procId,i,flagOut,Var,stampa)
|
|
135
|
+
VarOut[2]=[]#altrimenti salvo le img
|
|
136
|
+
'''
|
|
137
|
+
if i==0:
|
|
138
|
+
callBackMin.flagStop=True
|
|
139
|
+
if(callBackMin.flagStop):
|
|
140
|
+
if i>=2:
|
|
141
|
+
callBackMin.flagStop=False
|
|
142
|
+
FlagStopWorkers[0]=True
|
|
143
|
+
return True
|
|
144
|
+
#'''
|
|
145
|
+
if FlagStopWorkers[0]:
|
|
146
|
+
return True
|
|
147
|
+
else:
|
|
148
|
+
return False
|
|
149
|
+
callBackMin.flagStop=True
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|