wolfhece 2.1.125__py3-none-any.whl → 2.1.126__py3-none-any.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.
- wolfhece/PyDraw.py +4 -1
- wolfhece/apps/version.py +1 -1
- wolfhece/lazviewer/laz_viewer.py +107 -22
- wolfhece/math_parser/calculator.py +1 -1
- wolfhece/wolf_array.py +55 -1
- {wolfhece-2.1.125.dist-info → wolfhece-2.1.126.dist-info}/METADATA +1 -1
- {wolfhece-2.1.125.dist-info → wolfhece-2.1.126.dist-info}/RECORD +10 -10
- {wolfhece-2.1.125.dist-info → wolfhece-2.1.126.dist-info}/WHEEL +0 -0
- {wolfhece-2.1.125.dist-info → wolfhece-2.1.126.dist-info}/entry_points.txt +0 -0
- {wolfhece-2.1.125.dist-info → wolfhece-2.1.126.dist-info}/top_level.txt +0 -0
wolfhece/PyDraw.py
CHANGED
@@ -7404,7 +7404,10 @@ class WolfMapViewer(wx.Frame):
|
|
7404
7404
|
if self.calculator is None:
|
7405
7405
|
self.calculator = Calculator(mapviewer = self)
|
7406
7406
|
else:
|
7407
|
-
|
7407
|
+
try:
|
7408
|
+
self.calculator.Show()
|
7409
|
+
except:
|
7410
|
+
self.calculator = Calculator(mapviewer = self)
|
7408
7411
|
|
7409
7412
|
elif itemlabel == _('Image digitizer...'):
|
7410
7413
|
|
wolfhece/apps/version.py
CHANGED
wolfhece/lazviewer/laz_viewer.py
CHANGED
@@ -17,6 +17,7 @@ from matplotlib.figure import Figure
|
|
17
17
|
from shapely.geometry import LineString, Point, CAP_STYLE, Polygon
|
18
18
|
from shapely.ops import prep
|
19
19
|
import wx
|
20
|
+
from tqdm import tqdm
|
20
21
|
|
21
22
|
from . import viewer
|
22
23
|
from ..PyWMS import getWalonmap
|
@@ -41,6 +42,7 @@ class Colors_Lazviewer(Enum):
|
|
41
42
|
ORTHO_2006_2007 = 2006
|
42
43
|
CODE_2013 = 0
|
43
44
|
CODE_2023 = 2
|
45
|
+
CODE_2021_2022 = 3
|
44
46
|
FROM_FILE = 1
|
45
47
|
|
46
48
|
class Classification_LAZ():
|
@@ -68,6 +70,18 @@ class Classification_LAZ():
|
|
68
70
|
9 : ['Eau', 'Eau',Colors.rgb_withalpha_float('aqua',1.)],
|
69
71
|
10 : ['Ponts', 'Ponts',Colors.rgb_withalpha_float('lightyellow1',1.)]}
|
70
72
|
|
73
|
+
def init_2021_2022(self):
|
74
|
+
|
75
|
+
self.class_name = 'SPW 2021-2022'
|
76
|
+
self.classification={
|
77
|
+
0 : ['0', 'Pas de classification', Colors.rgb_withalpha_float('black',.2),],
|
78
|
+
1 : ['Hors-sol', 'building, toits et autres', Colors.rgb_withalpha_float('white',.2),],
|
79
|
+
2 : ['Sol', 'y compris talus et digues', Colors.rgb_withalpha_float('brown',1.)],
|
80
|
+
4 : ['Végétation', 'y compris la végétation linéaire', Colors.rgb_withalpha_float('forestgreen',1.)],
|
81
|
+
9 : ['Eau', 'Eau',Colors.rgb_withalpha_float('aqua',1.)],
|
82
|
+
10 : ['Ponts', 'Ponts',Colors.rgb_withalpha_float('lightyellow1',1.)],
|
83
|
+
15 : ['Ligne hautes-tension', 'Ligne hautes-tension',Colors.rgb_withalpha_float('lightcyan1',0.25)]}
|
84
|
+
|
71
85
|
def init_2023(self):
|
72
86
|
|
73
87
|
self.class_name = 'SPW-Geofit 2023'
|
@@ -155,8 +169,8 @@ class xyz_laz():
|
|
155
169
|
parts = last_part.split('_')
|
156
170
|
|
157
171
|
# L'origine est codée dans le nom de fichier
|
158
|
-
self.origx = float(parts[
|
159
|
-
self.origy = float(parts[
|
172
|
+
self.origx = float(parts[-3])
|
173
|
+
self.origy = float(parts[-2])
|
160
174
|
|
161
175
|
dx = 2500.
|
162
176
|
dy = 3500.
|
@@ -590,7 +604,8 @@ class xyz_laz_grids():
|
|
590
604
|
dirs = listdir(dir_grids)
|
591
605
|
|
592
606
|
for curdir in dirs:
|
593
|
-
|
607
|
+
if Path(curdir).is_dir():
|
608
|
+
self.grids.append(xyz_laz_grid(join(dir_grids,curdir)))
|
594
609
|
|
595
610
|
def scan_around(self, xy:Union[LineString,list[list[float], list[float]]], length_buffer=5.):
|
596
611
|
"""
|
@@ -707,42 +722,82 @@ class xyz_laz_grids():
|
|
707
722
|
|
708
723
|
return figmpl
|
709
724
|
|
710
|
-
def create_from_laz(self, dir_laz:str, shape:str, ds:float = 50, force_format = np.float64):
|
725
|
+
def create_from_laz(self, dir_laz:str, shape:str=None, ds:float = 50, force_format = np.float64):
|
711
726
|
|
712
727
|
try:
|
713
728
|
from ..PyVertexvectors import Zones
|
714
729
|
except:
|
715
730
|
from wolfhece.PyVertexvectors import Zones
|
716
|
-
vecs = Zones(shape)
|
717
731
|
|
718
|
-
|
732
|
+
vecs = None
|
733
|
+
if shape is not None:
|
734
|
+
vecs = Zones(shape)
|
735
|
+
|
736
|
+
dir_laz = Path(dir_laz)
|
737
|
+
|
738
|
+
for entry in tqdm(dir_laz.glob('**/*.laz')):
|
719
739
|
if entry.is_file():
|
720
|
-
if entry.name.endswith('.laz'):
|
721
740
|
|
722
|
-
|
723
|
-
|
741
|
+
file_wo_suf = entry.stem
|
742
|
+
dirname = join(self.dir, file_wo_suf)
|
724
743
|
|
725
|
-
|
726
|
-
|
744
|
+
if not exists(dirname):
|
745
|
+
makedirs(dirname, exist_ok=True)
|
727
746
|
|
728
|
-
|
747
|
+
newlaz = xyz_laz_grid(mydir=dirname)
|
729
748
|
|
749
|
+
if vecs is not None:
|
730
750
|
vec = vecs.get_zone(file_wo_suf)
|
731
751
|
bounds = vec.myvectors[0].get_bounds()
|
752
|
+
else:
|
753
|
+
lazdata = laspy.read(entry)
|
754
|
+
bounds = [[lazdata.x.min(), lazdata.y.min()],
|
755
|
+
[lazdata.x.max(), lazdata.y.max()]]
|
756
|
+
|
757
|
+
bounds = [[math.floor(bounds[0][0]/ds)*ds, math.floor(bounds[0][1]/ds)*ds],
|
758
|
+
[math.ceil(bounds[1][0]/ds)*ds, math.ceil(bounds[1][1]/ds)*ds]]
|
759
|
+
|
760
|
+
dx = bounds[1][0] -bounds[0][0]
|
761
|
+
dy = bounds[1][1] -bounds[0][1]
|
762
|
+
nb = max(int(dx/ds), int(dy/ds))
|
763
|
+
|
764
|
+
self.grids.append(newlaz._sort_grid_np(entry,
|
765
|
+
join(dirname, file_wo_suf),
|
766
|
+
bounds=[[bounds[0][0], bounds[1][0]], [bounds[0][1], bounds[1][1]]],
|
767
|
+
gridsize=[max(int(dx/ds),1), max(int(dy/ds),1)],
|
768
|
+
force_format=force_format))
|
769
|
+
|
770
|
+
def create_bounds_shape(self, dir_laz:str, out_shape:str):
|
771
|
+
""" Create shape from laz files """
|
772
|
+
try:
|
773
|
+
from ..PyVertexvectors import Zones
|
774
|
+
except:
|
775
|
+
from wolfhece.PyVertexvectors import Zones
|
776
|
+
|
777
|
+
dir_laz = Path(dir_laz)
|
778
|
+
out_shape = Path(out_shape)
|
779
|
+
|
780
|
+
vecs = Zones()
|
781
|
+
|
782
|
+
for entry in tqdm(dir_laz.glob('**/*.laz')):
|
783
|
+
if entry.is_file():
|
784
|
+
lazdata = laspy.read(entry)
|
732
785
|
|
733
|
-
|
734
|
-
|
786
|
+
bounds = [[lazdata.x.min(), lazdata.y.min()],
|
787
|
+
[lazdata.x.max(), lazdata.y.max()]]
|
788
|
+
loczone = zone(name=entry.stem)
|
789
|
+
locvec = vector(name=entry.stem)
|
735
790
|
|
736
|
-
|
737
|
-
|
738
|
-
|
791
|
+
locvec.add_vertex(wolfvertex(bounds[0][0], bounds[0][1]))
|
792
|
+
locvec.add_vertex(wolfvertex(bounds[1][0], bounds[0][1]))
|
793
|
+
locvec.add_vertex(wolfvertex(bounds[1][0], bounds[1][1]))
|
794
|
+
locvec.add_vertex(wolfvertex(bounds[0][0], bounds[1][1]))
|
795
|
+
locvec.close_force()
|
739
796
|
|
740
|
-
|
741
|
-
|
742
|
-
bounds=[[bounds[0][0], bounds[1][0]], [bounds[0][1], bounds[1][1]]],
|
743
|
-
gridsize=[max(int(dx/ds),1), max(int(dy/ds),1)],
|
744
|
-
force_format=force_format))
|
797
|
+
loczone.add_vector(locvec, forceparent=True)
|
798
|
+
vecs.add_zone(loczone, forceparent=True)
|
745
799
|
|
800
|
+
vecs.saveas(Path(self.dir) / out_shape)
|
746
801
|
|
747
802
|
class Wolf_LAZ_Data(Element_To_Draw):
|
748
803
|
""" Base class for LAZ data which can be imported in Pydraw.Mapviewer.
|
@@ -1145,6 +1200,8 @@ class Wolf_LAZ_Data(Element_To_Draw):
|
|
1145
1200
|
logging.warning(_('No classification chosen - Abort !'))
|
1146
1201
|
elif classification == 'SPW 2013-2014':
|
1147
1202
|
self.classification.init_2013()
|
1203
|
+
elif classification == 'SPW 2021-2022':
|
1204
|
+
self.classification.init_2021_2022()
|
1148
1205
|
else:
|
1149
1206
|
self.classification.init_2023()
|
1150
1207
|
|
@@ -1900,6 +1957,34 @@ def get_colors(las:laspy.LasData, which_colors:Colors_Lazviewer, imsize=2000, fn
|
|
1900
1957
|
name, comment, color = value
|
1901
1958
|
colors[myclass==int(key)] = color
|
1902
1959
|
|
1960
|
+
elif which_colors==Colors_Lazviewer.CODE_2021_2022.value:
|
1961
|
+
"""
|
1962
|
+
- Rebus/non classés - Code 0;
|
1963
|
+
- Hors-sol (building, toits et autres) - Code 1;
|
1964
|
+
- Sol (y compris talus et digues) - Code 2;
|
1965
|
+
- Végétation haute (y compris la végétation linéaire) - Code 4;
|
1966
|
+
- Eau - Code 9;
|
1967
|
+
- Pont – Code 10;
|
1968
|
+
- Ligne hautes-tension - Code 15.
|
1969
|
+
"""
|
1970
|
+
if type(las) is laspy.LasData:
|
1971
|
+
myclass = las.classification
|
1972
|
+
elif type(las) is list:
|
1973
|
+
myclass=[]
|
1974
|
+
for curlas in las:
|
1975
|
+
myclass.append(curlas.classification)
|
1976
|
+
myclass = np.concatenate(myclass)
|
1977
|
+
else:
|
1978
|
+
myclass = np.int8(las[:,3])
|
1979
|
+
|
1980
|
+
if palette_classif is None:
|
1981
|
+
palette_classif = Classification_LAZ()
|
1982
|
+
palette_classif.init_2021_2022()
|
1983
|
+
|
1984
|
+
for key, value in palette_classif.classification.items():
|
1985
|
+
name, comment, color = value
|
1986
|
+
colors[myclass==int(key)] = color
|
1987
|
+
|
1903
1988
|
elif which_colors==Colors_Lazviewer.CODE_2023.value:
|
1904
1989
|
|
1905
1990
|
if palette_classif is None:
|
@@ -116,7 +116,7 @@ class Calculator(wx.Frame):
|
|
116
116
|
from ..PyDraw import draw_type
|
117
117
|
ids = self._mapviewer.get_list_keys(drawing_type=draw_type.ARRAYS, checked_state=None)
|
118
118
|
for id in ids:
|
119
|
-
self.memory_txt
|
119
|
+
self.memory_txt = id
|
120
120
|
|
121
121
|
def memory_clear_event(self, e):
|
122
122
|
self.memory_clear()
|
wolfhece/wolf_array.py
CHANGED
@@ -1912,6 +1912,8 @@ class Ops_Array(wx.Frame):
|
|
1912
1912
|
|
1913
1913
|
self.labelling = wx.Button(self.tools, wx.ID_ANY, _("Labelling"), wx.DefaultPosition,wx.DefaultSize, 0)
|
1914
1914
|
|
1915
|
+
self.clean = wx.Button(self.tools, wx.ID_ANY, _("Clean"), wx.DefaultPosition,wx.DefaultSize, 0)
|
1916
|
+
|
1915
1917
|
self.extract_selection = wx.Button(self.tools, wx.ID_ANY, _("Extract selection"), wx.DefaultPosition,wx.DefaultSize, 0)
|
1916
1918
|
|
1917
1919
|
cont_sizer = wx.BoxSizer(wx.HORIZONTAL)
|
@@ -1926,6 +1928,7 @@ class Ops_Array(wx.Frame):
|
|
1926
1928
|
Toolssizer.Add(self.nullborder, 1, wx.EXPAND)
|
1927
1929
|
Toolssizer.Add(self.filter_zone, 1, wx.EXPAND)
|
1928
1930
|
Toolssizer.Add(self.labelling, 1, wx.EXPAND)
|
1931
|
+
Toolssizer.Add(self.clean, 1, wx.EXPAND)
|
1929
1932
|
Toolssizer.Add(self.extract_selection, 1, wx.EXPAND)
|
1930
1933
|
Toolssizer.Add(cont_sizer, 1, wx.EXPAND)
|
1931
1934
|
|
@@ -1933,6 +1936,7 @@ class Ops_Array(wx.Frame):
|
|
1933
1936
|
self.nullborder.SetToolTip(_("Set null value on the border of the array\n\nYou will be asked for the width of the border (in cells)"))
|
1934
1937
|
self.filter_zone.SetToolTip(_("Filter the array based on contiguous zones\n\nConservation of the ones which contain selected nodes"))
|
1935
1938
|
self.labelling.SetToolTip(_("Labelling of contiguous zones using Scipy.label function\n\nReplacing the current values by the labels"))
|
1939
|
+
self.clean.SetToolTip(_("Clean the array\n\nRemove small isolated patches of data"))
|
1936
1940
|
self.extract_selection.SetToolTip(_("Extract the current selection"))
|
1937
1941
|
|
1938
1942
|
self.tools.SetSizer(Toolssizer)
|
@@ -2304,6 +2308,7 @@ class Ops_Array(wx.Frame):
|
|
2304
2308
|
self.ApplyTools.Bind(wx.EVT_BUTTON, self.OnApplyNullvalue)
|
2305
2309
|
self.nullborder.Bind(wx.EVT_BUTTON, self.OnNullBorder)
|
2306
2310
|
self.filter_zone.Bind(wx.EVT_BUTTON, self.OnFilterZone)
|
2311
|
+
self.clean.Bind(wx.EVT_BUTTON, self.OnClean)
|
2307
2312
|
self.labelling.Bind(wx.EVT_BUTTON, self.OnLabelling)
|
2308
2313
|
self.extract_selection.Bind(wx.EVT_BUTTON, self.OnExtractSelection)
|
2309
2314
|
self._contour_int.Bind(wx.EVT_BUTTON, self.OnContourInt)
|
@@ -2743,7 +2748,6 @@ class Ops_Array(wx.Frame):
|
|
2743
2748
|
def OnFilterZone(self, event:wx.MouseEvent):
|
2744
2749
|
""" Filter the array based on contiguous zones """
|
2745
2750
|
|
2746
|
-
pass
|
2747
2751
|
self.parentarray.filter_zone()
|
2748
2752
|
|
2749
2753
|
dlg = wx.MessageDialog(None, _('Do you want to set null value in the masked data ?'), _('Masked data'), wx.YES_NO | wx.ICON_QUESTION)
|
@@ -2754,6 +2758,27 @@ class Ops_Array(wx.Frame):
|
|
2754
2758
|
|
2755
2759
|
dlg.Destroy()
|
2756
2760
|
|
2761
|
+
def OnClean(self, event:wx.MouseEvent):
|
2762
|
+
""" Clean the array -- Remove the isolated cells """
|
2763
|
+
|
2764
|
+
dlg = wx.NumberEntryDialog(None, 'Minimum number of nodes for a patch to be kept', 'Minimum number of nodes', 'Minimum number of nodes', 10, 1, 1000)
|
2765
|
+
if dlg.ShowModal() != wx.ID_OK:
|
2766
|
+
dlg.Destroy()
|
2767
|
+
return
|
2768
|
+
|
2769
|
+
minnodes = dlg.GetValue()
|
2770
|
+
self.parentarray.clean_small_patches(minnodes)
|
2771
|
+
|
2772
|
+
dlg.Destroy()
|
2773
|
+
|
2774
|
+
dlg = wx.MessageDialog(None, _('Do you want to set null value in the masked data ?'), _('Masked data'), wx.YES_NO | wx.ICON_QUESTION)
|
2775
|
+
ret = dlg.ShowModal()
|
2776
|
+
|
2777
|
+
if ret == wx.ID_YES:
|
2778
|
+
self.parentarray.set_nullvalue_in_mask()
|
2779
|
+
|
2780
|
+
dlg.Destroy()
|
2781
|
+
|
2757
2782
|
def OnLabelling(self, event:wx.MouseEvent):
|
2758
2783
|
""" Labelling of contiguous zones """
|
2759
2784
|
|
@@ -5814,6 +5839,35 @@ class WolfArray(Element_To_Draw, header_wolf):
|
|
5814
5839
|
if reset_plot:
|
5815
5840
|
self.reset_plot()
|
5816
5841
|
|
5842
|
+
def clean_small_patches(self, min_size:int = 1, set_null:bool = False, reset_plot:bool = True):
|
5843
|
+
""" Clean small patches in the array """
|
5844
|
+
|
5845
|
+
if min_size < 1:
|
5846
|
+
logging.error(_('Minimum size must be greater than 1'))
|
5847
|
+
return
|
5848
|
+
|
5849
|
+
# labellisation
|
5850
|
+
labeled_array = self.array.data.copy()
|
5851
|
+
labeled_array[np.where(self.array.mask)] = 0
|
5852
|
+
|
5853
|
+
labeled_array, num_features = label(labeled_array,)
|
5854
|
+
|
5855
|
+
# count the number of elements in each patch
|
5856
|
+
patch_size = np.bincount(labeled_array.ravel())
|
5857
|
+
|
5858
|
+
# mask the small patches
|
5859
|
+
mask_small_patches = patch_size < min_size
|
5860
|
+
labeled_array[mask_small_patches[labeled_array]] = 0
|
5861
|
+
|
5862
|
+
# mask data in the array based on the labeled array
|
5863
|
+
self.array.mask[labeled_array == 0] = True
|
5864
|
+
|
5865
|
+
if set_null:
|
5866
|
+
self.set_nullvalue_in_mask()
|
5867
|
+
|
5868
|
+
if reset_plot:
|
5869
|
+
self.reset_plot()
|
5870
|
+
|
5817
5871
|
def labelling(self, reset_plot:bool = True):
|
5818
5872
|
"""
|
5819
5873
|
Labelling of the array using Scipy
|
@@ -7,7 +7,7 @@ wolfhece/ManageParams.py,sha256=EeuUI5Vvh9ixCvYf8YShMC1s1Yacc7OxOCN7q81gqiQ,517
|
|
7
7
|
wolfhece/Model1D.py,sha256=SI4oNF_J3MdjiWZoizS8kuRXLMVyymX9dYfYJNVCQVI,476989
|
8
8
|
wolfhece/PyConfig.py,sha256=gyl1MesSJZaVpC1XtvD78PpnE1VD3hGM3HPQXTJ3eJg,12963
|
9
9
|
wolfhece/PyCrosssections.py,sha256=igU_ELrg5VrHU6RNbF5tHxPyVImpR3xdpfopJYc7haw,114711
|
10
|
-
wolfhece/PyDraw.py,sha256=
|
10
|
+
wolfhece/PyDraw.py,sha256=CkNGIgPd5gSokggiJabVME1XzYDVDbBFuyMT_iJB9p0,568998
|
11
11
|
wolfhece/PyGui.py,sha256=5ANCUmsBwsx_h-GWqV9xwnSQyGJ16mSObOm-h3_7LIQ,144708
|
12
12
|
wolfhece/PyGuiHydrology.py,sha256=f60E8K9eGTnRq5RDF6yvt-ahf2AYegwQ9t25zZ2Mk1A,14946
|
13
13
|
wolfhece/PyHydrographs.py,sha256=jwtSNMMACwarxrtN1UeQYth99UNrhwPx1IGgUwcooHA,3774
|
@@ -52,7 +52,7 @@ wolfhece/pywalous.py,sha256=mWB7UxlYMIbPxNUDlONQEjcOOy9VSaRU9aYWZ5IFLu8,19164
|
|
52
52
|
wolfhece/rain_SPWMI.py,sha256=qCfcmF7LajloOaCwnTrrSMzyME03YyilmRUOqrPrv3U,13846
|
53
53
|
wolfhece/textpillow.py,sha256=map7HsGYML_o5NHRdFg2s_TVQed_lDnpYNDv27MM0Vw,14130
|
54
54
|
wolfhece/tools_mpl.py,sha256=gQ3Jg1iuZiecmMqa5Eli2ZLSkttu68VXL8YmMDBaEYU,564
|
55
|
-
wolfhece/wolf_array.py,sha256=
|
55
|
+
wolfhece/wolf_array.py,sha256=WeScyyq1USIOcMt2ew35QbJzk6ZDRXQRrGvwyPu3Tx8,441902
|
56
56
|
wolfhece/wolf_hist.py,sha256=7jeVrgSkM3ErJO6SRMH_PGzfLjIdw8vTy87kesldggk,3582
|
57
57
|
wolfhece/wolf_texture.py,sha256=ecoXXmmcLuyG1oPqU2dB_k03qMTCLTVQoSq1xi1EalU,17359
|
58
58
|
wolfhece/wolf_tiles.py,sha256=v-HohqaWuMYdn75XLnA22dlloAG90iwnIqrgnB0ASQ4,10488
|
@@ -80,7 +80,7 @@ wolfhece/apps/curvedigitizer.py,sha256=lEJJwgAfulrrWQc-U6ij6sj59hWN3SZl4Yu1kQxVz
|
|
80
80
|
wolfhece/apps/hydrometry.py,sha256=lhhJsFeb4zGL4bNQTs0co85OQ_6ssL1Oy0OUJCzhfYE,656
|
81
81
|
wolfhece/apps/isocurrent.py,sha256=dagmGR8ja9QQ1gwz_8fU-N052hIw-W0mWGVkzLu6C7I,4247
|
82
82
|
wolfhece/apps/splashscreen.py,sha256=SrustmIQeXnsiD-92OzjdGhBi-S7c_j-cSvuX4T6rtg,2929
|
83
|
-
wolfhece/apps/version.py,sha256=
|
83
|
+
wolfhece/apps/version.py,sha256=UIqgv5JPHoD2r7Ney7Go6P3kWMdWMylqgNdriVFXJKo,389
|
84
84
|
wolfhece/apps/wolf.py,sha256=j_CgvsL8rwixbVvVD5Z0s7m7cHZ86gmFLojKGuetMls,729
|
85
85
|
wolfhece/apps/wolf2D.py,sha256=4z_OPQ3IgaLtjexjMKX9ppvqEYyjFLt1hcfFABy3-jU,703
|
86
86
|
wolfhece/apps/wolf_logo.bmp,sha256=ruJ4MA51CpGO_AYUp_dB4SWKHelvhOvd7Q8NrVOjDJk,3126
|
@@ -154,7 +154,7 @@ wolfhece/lagrangian/particles.py,sha256=S52_-3rzgVhift6l4Gznvsf_RTggzvNaD1dPvQUr
|
|
154
154
|
wolfhece/lagrangian/velocity_field.py,sha256=oGVjNm98gEpawreFIrC1lDyC5bEhkk2CsyYAlF1Kq50,10574
|
155
155
|
wolfhece/lazviewer/__init__.py,sha256=lz60EpQOBZ-zjvYzff6Y11jzAmC7mjOaxRYAfoqizQs,473
|
156
156
|
wolfhece/lazviewer/_add_path.py,sha256=XgMEXRhFhx9-B1hUsP7Zr199zNljYwT5dGMYSB9jRa4,639
|
157
|
-
wolfhece/lazviewer/laz_viewer.py,sha256=
|
157
|
+
wolfhece/lazviewer/laz_viewer.py,sha256=vq3IrGNnGPuBzIe4fg4mxjhWdGiBHu95Smvst5sdUmE,80822
|
158
158
|
wolfhece/lazviewer/libs/Qt5Core.dll,sha256=sTJ_ctYFY9KHMNytF-lzH_078zIvnKTjN-71FDkOWPw,4924928
|
159
159
|
wolfhece/lazviewer/libs/Qt5Gui.dll,sha256=07BeaOeYByraGkKYeDiSDYLawHM8tyd55pVJlKbZ4Y0,5436416
|
160
160
|
wolfhece/lazviewer/libs/Qt5Network.dll,sha256=U-9FiLE9LUKru8r8EQxTnwwlMpwS8JzUtenhkKTCox0,1038336
|
@@ -223,7 +223,7 @@ wolfhece/mar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
223
223
|
wolfhece/mar/commontools.py,sha256=SiSxpv5BFYEBCEydsE4ZmBuot3KTy0UYMx2aa-4fbuQ,52549
|
224
224
|
wolfhece/mar/interface_MAR_WOLF.py,sha256=MWeXaHLDT4Eo9jZOAvz013lmpgGYT1v9VUYGAgBgSRU,21454
|
225
225
|
wolfhece/math_parser/__init__.py,sha256=Mi7YTrlJtcflyrRdZHHgE-uNPUFfOWmsf8FsOwKBRPI,27961
|
226
|
-
wolfhece/math_parser/calculator.py,sha256=
|
226
|
+
wolfhece/math_parser/calculator.py,sha256=e9KVemvVqYofWYEwu_wgMhu4EhmcL6dY790DOwDdxTs,7448
|
227
227
|
wolfhece/mesh2d/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
228
228
|
wolfhece/mesh2d/bc_manager.py,sha256=fKED0RhUjCmd0xd0lcOeZqiga5Glqs1ag1boYhXlq0k,54232
|
229
229
|
wolfhece/mesh2d/cell_tracker.py,sha256=mPmnD5lEf3gLPuLqtAIo-Gp-ipAwQdPxzjWOGt0b7jM,8958
|
@@ -299,8 +299,8 @@ wolfhece/ui/wolf_multiselection_collapsiblepane.py,sha256=8PlMYrb_8jI8h9F0_EagpM
|
|
299
299
|
wolfhece/ui/wolf_times_selection_comparison_models.py,sha256=ORy7fz4dcp691qKzaOZHrRLZ0uXNhL-LIHxmpDGL6BI,5007
|
300
300
|
wolfhece/wintab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
301
301
|
wolfhece/wintab/wintab.py,sha256=8A-JNONV6ujgsgG3lM5Uw-pVgglPATwKs86oBzzljoc,7179
|
302
|
-
wolfhece-2.1.
|
303
|
-
wolfhece-2.1.
|
304
|
-
wolfhece-2.1.
|
305
|
-
wolfhece-2.1.
|
306
|
-
wolfhece-2.1.
|
302
|
+
wolfhece-2.1.126.dist-info/METADATA,sha256=hmEqfYiCm4H8SOEmJe1qoJbjBXFa1FTHc4xHjG7i9C8,2587
|
303
|
+
wolfhece-2.1.126.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
304
|
+
wolfhece-2.1.126.dist-info/entry_points.txt,sha256=ZZ-aSfbpdcmo-wo84lRFzBN7LaSnD1XRGSaAKVX-Gpc,522
|
305
|
+
wolfhece-2.1.126.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
|
306
|
+
wolfhece-2.1.126.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|