wolfhece 2.1.127__py3-none-any.whl → 2.1.129__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 +52 -3
- wolfhece/PyPalette.py +36 -0
- wolfhece/PyParams.py +7 -3
- wolfhece/PyVertexvectors.py +579 -70
- wolfhece/apps/version.py +1 -1
- wolfhece/coupling/hydrology_2d.py +295 -192
- wolfhece/eikonal.py +13 -3
- wolfhece/hydrology/Catchment.py +153 -52
- wolfhece/hydrology/Comparison.py +29 -25
- wolfhece/hydrology/Optimisation.py +309 -178
- wolfhece/hydrology/PostProcessHydrology.py +6 -3
- wolfhece/hydrology/PyWatershed.py +93 -93
- wolfhece/hydrology/RetentionBasin.py +21 -14
- wolfhece/hydrology/SubBasin.py +128 -12
- wolfhece/hydrology/constant.py +3 -0
- wolfhece/hydrology/cst_exchanges.py +364 -38
- wolfhece/hydrology/plot_hydrology.py +32 -16
- wolfhece/hydrology/read.py +16 -6
- wolfhece/lagrange_multiplier.py +205 -0
- wolfhece/libs/WolfDll.dll +0 -0
- wolfhece/math_parser/calculator.py +1 -0
- wolfhece/pybridges.py +2 -2
- wolfhece/pypolygons_scen.py +2 -2
- wolfhece/radar/wolfradar.py +75 -22
- wolfhece/shapes/__init__.py +0 -0
- wolfhece/shapes/circle.py +335 -0
- wolfhece/wolf_array.py +834 -40
- wolfhece/wolfresults_2D.py +204 -13
- {wolfhece-2.1.127.dist-info → wolfhece-2.1.129.dist-info}/METADATA +5 -5
- {wolfhece-2.1.127.dist-info → wolfhece-2.1.129.dist-info}/RECORD +33 -30
- {wolfhece-2.1.127.dist-info → wolfhece-2.1.129.dist-info}/WHEEL +1 -1
- {wolfhece-2.1.127.dist-info → wolfhece-2.1.129.dist-info}/entry_points.txt +0 -0
- {wolfhece-2.1.127.dist-info → wolfhece-2.1.129.dist-info}/top_level.txt +0 -0
wolfhece/wolfresults_2D.py
CHANGED
@@ -24,6 +24,9 @@ import logging
|
|
24
24
|
from tqdm import tqdm
|
25
25
|
from datetime import datetime as dt, timedelta
|
26
26
|
|
27
|
+
from shapely import contains, contains_xy, prepare, destroy_prepared, is_prepared
|
28
|
+
from shapely.geometry import Point, Polygon
|
29
|
+
|
27
30
|
try:
|
28
31
|
from OpenGL.GL import *
|
29
32
|
except:
|
@@ -3401,7 +3404,7 @@ class Wolfresults_2D(Element_To_Draw):
|
|
3401
3404
|
|
3402
3405
|
return self.head_blocks[getkeyblock(which_block,False)]
|
3403
3406
|
|
3404
|
-
def get_xy_infootprint_vect(self, myvect: vector, which_block=1) -> tuple[np.ndarray,np.ndarray]:
|
3407
|
+
def get_xy_infootprint_vect(self, myvect: vector | Polygon, which_block=1) -> tuple[np.ndarray,np.ndarray]:
|
3405
3408
|
|
3406
3409
|
"""
|
3407
3410
|
:return numpy array content les coordonnées (x,y) des mailles dans l'empreinte du vecteur
|
@@ -3417,19 +3420,27 @@ class Wolfresults_2D(Element_To_Draw):
|
|
3417
3420
|
|
3418
3421
|
return mypts,myptsij
|
3419
3422
|
|
3420
|
-
def get_ij_infootprint_vect(self, myvect: vector, which_block=1) -> np.ndarray:
|
3423
|
+
def get_ij_infootprint_vect(self, myvect: vector | Polygon, which_block=1) -> np.ndarray:
|
3421
3424
|
|
3422
3425
|
"""
|
3423
3426
|
Returns:
|
3424
3427
|
numpy array content les indices ij des mailles dans l'empreinte du vecteur
|
3425
3428
|
"""
|
3426
3429
|
|
3430
|
+
if isinstance(myvect, Polygon):
|
3431
|
+
xmin, ymin, xmax, ymax = myvect.bounds
|
3432
|
+
elif isinstance(myvect, vector):
|
3433
|
+
xmin, ymin, xmax, ymax = myvect.xmin, myvect.ymin, myvect.xmax, myvect.ymax
|
3434
|
+
else:
|
3435
|
+
logging.error(_('The object must be a vector or a Polygon'))
|
3436
|
+
return np.array([])
|
3437
|
+
|
3427
3438
|
lochead = self.get_header_block(which_block)
|
3428
3439
|
nbx = lochead.nbx
|
3429
3440
|
nby = lochead.nby
|
3430
3441
|
|
3431
|
-
i1, j1 = self.get_ij_from_xy(
|
3432
|
-
i2, j2 = self.get_ij_from_xy(
|
3442
|
+
i1, j1 = self.get_ij_from_xy(xmin, ymin, which_block)
|
3443
|
+
i2, j2 = self.get_ij_from_xy(xmax, ymax, which_block)
|
3433
3444
|
i1 = max(i1,0)
|
3434
3445
|
j1 = max(j1,0)
|
3435
3446
|
i2 = min(i2,nbx-1)
|
@@ -3439,17 +3450,39 @@ class Wolfresults_2D(Element_To_Draw):
|
|
3439
3450
|
|
3440
3451
|
return mypts
|
3441
3452
|
|
3442
|
-
def get_xy_inside_polygon(self, myvect: vector,
|
3453
|
+
def get_xy_inside_polygon(self, myvect: vector | Polygon,
|
3454
|
+
usemask:bool=True, method:Literal['mpl','shapely']='shapely'):
|
3443
3455
|
"""
|
3444
3456
|
Obtention des coordonnées contenues dans un polygone
|
3445
|
-
|
3457
|
+
|
3458
|
+
:param myvect: polygone
|
3459
|
+
:param usemask: restreint les éléments aux éléments non masqués de la matrice
|
3460
|
+
:param method: méthode de calcul ('mpl' == Matplotlib ou 'shapely')
|
3446
3461
|
"""
|
3447
3462
|
|
3448
|
-
|
3463
|
+
if method=='mpl':
|
3464
|
+
return self.get_xy_inside_polygon_mpl(myvect, usemask)
|
3465
|
+
elif method=='shapely':
|
3466
|
+
return self.get_xy_inside_polygon_shapely(myvect, usemask)
|
3467
|
+
|
3468
|
+
|
3469
|
+
def get_xy_inside_polygon_mpl(self, myvect: vector | Polygon, usemask:bool=True):
|
3470
|
+
"""
|
3471
|
+
Obtention des coordonnées contenues dans un polygone
|
3472
|
+
|
3473
|
+
:param myvect: polygone
|
3474
|
+
:param usemask: restreint les éléments aux éléments non masqués de la matrice
|
3475
|
+
"""
|
3476
|
+
|
3477
|
+
if isinstance(myvect, vector):
|
3478
|
+
# force la mise à jour des min/max
|
3479
|
+
myvect.find_minmax()
|
3480
|
+
myvert = myvect.asnparray()
|
3481
|
+
elif isinstance(myvect, Polygon):
|
3482
|
+
myvert = myvect.exterior.coords
|
3449
3483
|
|
3450
3484
|
mypointsxy={}
|
3451
3485
|
|
3452
|
-
myvert = myvect.asnparray()
|
3453
3486
|
path = mpltPath.Path(myvert)
|
3454
3487
|
|
3455
3488
|
for curblock in range(self.nb_blocks):
|
@@ -3467,6 +3500,56 @@ class Wolfresults_2D(Element_To_Draw):
|
|
3467
3500
|
|
3468
3501
|
return mypointsxy
|
3469
3502
|
|
3503
|
+
def get_xy_inside_polygon_shapely(self, myvect: vector | Polygon,
|
3504
|
+
usemask:bool=True, strictly:bool=False):
|
3505
|
+
"""
|
3506
|
+
Obtention des coordonnées contenues dans un polygone
|
3507
|
+
|
3508
|
+
:param usemask: restreint les éléments aux éléments non masqués de la matrice
|
3509
|
+
:param strictly: si True, les points sur le bord du polygone ne sont pas considérés comme à l'intérieur
|
3510
|
+
"""
|
3511
|
+
|
3512
|
+
if isinstance(myvect, vector):
|
3513
|
+
# force la mise à jour des min/max
|
3514
|
+
myvect.find_minmax()
|
3515
|
+
polygon = myvect.polygon
|
3516
|
+
elif isinstance(myvect, Polygon):
|
3517
|
+
polygon = myvect
|
3518
|
+
|
3519
|
+
mypointsxy={}
|
3520
|
+
|
3521
|
+
if not is_prepared(polygon):
|
3522
|
+
prepare(polygon) # Prepare the polygon for **faster** contains check -- VERY IMPORTANT
|
3523
|
+
to_destroy = True
|
3524
|
+
else:
|
3525
|
+
to_destroy = False
|
3526
|
+
|
3527
|
+
for curblock in range(self.nb_blocks):
|
3528
|
+
locpointsxy,locpointsij = self.get_xy_infootprint_vect(myvect,curblock+1)
|
3529
|
+
|
3530
|
+
if strictly:
|
3531
|
+
inside = contains_xy(polygon, mypointsxy[:,0], mypointsxy[:,1])
|
3532
|
+
else:
|
3533
|
+
points= np.array([Point(x,y) for x,y in mypointsxy])
|
3534
|
+
boundary = polygon.boundary
|
3535
|
+
inside = contains(polygon, points)
|
3536
|
+
on_border = list(map(lambda point: boundary.contains(point), points))
|
3537
|
+
inside = np.logical_or(inside, on_border)
|
3538
|
+
|
3539
|
+
if usemask and len(locpointsxy)>0:
|
3540
|
+
locpointsij = locpointsij[np.where(inside)]
|
3541
|
+
mymask = np.logical_not(self.myblocks[getkeyblock(curblock)].current.array.mask[locpointsij[:, 0], locpointsij[:, 1]])
|
3542
|
+
locpointsxy = locpointsxy[np.where(mymask)]
|
3543
|
+
|
3544
|
+
locpointsxy = locpointsxy[np.where(inside)]
|
3545
|
+
mypointsxy[getkeyblock(curblock)]=locpointsxy
|
3546
|
+
|
3547
|
+
if to_destroy:
|
3548
|
+
destroy_prepared(polygon) # Release the prepared polygon
|
3549
|
+
|
3550
|
+
return mypointsxy
|
3551
|
+
|
3552
|
+
|
3470
3553
|
def get_xy_under_polyline(self, myvect: vector) -> dict[str, (int,int)]:
|
3471
3554
|
"""
|
3472
3555
|
Obtention des coordonnées (x,y) sous une polyligne avec séparation des points par bloc
|
@@ -3487,7 +3570,9 @@ class Wolfresults_2D(Element_To_Draw):
|
|
3487
3570
|
|
3488
3571
|
return mypoints
|
3489
3572
|
|
3490
|
-
def get_values_insidepoly(self, myvect:vector
|
3573
|
+
def get_values_insidepoly(self, myvect:vector | Polygon,
|
3574
|
+
usemask:bool=True, agglo:bool=True, getxy:bool=False,
|
3575
|
+
method:Literal['mpl','shapely']='mpl'):
|
3491
3576
|
"""
|
3492
3577
|
Retourne les valeurs des mailles contenues dans un polygone
|
3493
3578
|
Traite la matrice courante et l'altitude de fond si on est en vue 'views_2D.WATERLEVEL'
|
@@ -3502,7 +3587,7 @@ class Wolfresults_2D(Element_To_Draw):
|
|
3502
3587
|
"""
|
3503
3588
|
myvalues={}
|
3504
3589
|
myvaluesel={}
|
3505
|
-
mypoints = self.get_xy_inside_polygon(myvect, usemask)
|
3590
|
+
mypoints = self.get_xy_inside_polygon(myvect, usemask, method=method)
|
3506
3591
|
|
3507
3592
|
for curblock in range(self.nb_blocks):
|
3508
3593
|
curkey = getkeyblock(curblock)
|
@@ -3535,7 +3620,9 @@ class Wolfresults_2D(Element_To_Draw):
|
|
3535
3620
|
else:
|
3536
3621
|
return myvalues,None
|
3537
3622
|
|
3538
|
-
def get_all_values_insidepoly(self, myvect:vector, usemask:bool= True,
|
3623
|
+
def get_all_values_insidepoly(self, myvect:vector, usemask:bool= True,
|
3624
|
+
agglo:bool= True, getxy:bool= False,
|
3625
|
+
method:Literal['mpl','shapely']='mpl'):
|
3539
3626
|
"""
|
3540
3627
|
Récupération de toutes les valeurs dans un polygone
|
3541
3628
|
|
@@ -3548,7 +3635,7 @@ class Wolfresults_2D(Element_To_Draw):
|
|
3548
3635
|
"""
|
3549
3636
|
|
3550
3637
|
myvalues={}
|
3551
|
-
mypoints = self.get_xy_inside_polygon(myvect, usemask)
|
3638
|
+
mypoints = self.get_xy_inside_polygon(myvect, usemask, method=method)
|
3552
3639
|
|
3553
3640
|
for curblock in range(self.nb_blocks):
|
3554
3641
|
if len(mypoints[getkeyblock(curblock)])>0:
|
@@ -4876,6 +4963,7 @@ class Wolfresults_2D(Element_To_Draw):
|
|
4876
4963
|
:param start: start time step - 0-based
|
4877
4964
|
:param end: end time step - 0-based
|
4878
4965
|
:param every: step interval
|
4966
|
+
:param callback: optional callback to update progress
|
4879
4967
|
|
4880
4968
|
:return : tuple of WolfArray or WolfArrayMB - H, U_norm, Q_norm, Z, Head
|
4881
4969
|
"""
|
@@ -5296,4 +5384,107 @@ class Wolfresults_2D(Element_To_Draw):
|
|
5296
5384
|
band.WriteArray(arr.array.transpose())
|
5297
5385
|
band.FlushCache()
|
5298
5386
|
band.ComputeStatistics(True)
|
5299
|
-
out_ds = None
|
5387
|
+
out_ds = None
|
5388
|
+
|
5389
|
+
def get_time_averaged_results(self, start:int=0, end:int=-1, every:int=1, time_averaging:bool=True, callback=None) -> Union[tuple[WolfArray, WolfArray, WolfArray], tuple[WolfArrayMB, WolfArrayMB, WolfArrayMB]]:
|
5390
|
+
"""
|
5391
|
+
Get time averaged results (or simply, average over all saved indicies)
|
5392
|
+
|
5393
|
+
:param start: start time step - 0-based
|
5394
|
+
:param end: end time step - 0-based
|
5395
|
+
:param every: step interval
|
5396
|
+
:param time_averaging: True -> Time-averaging, False -> Average over all saved indicies
|
5397
|
+
:param callback: optional callback to update progress
|
5398
|
+
|
5399
|
+
:return : WolfArray - h, qx, qy
|
5400
|
+
"""
|
5401
|
+
|
5402
|
+
number_of_time_steps = self.get_nbresults()
|
5403
|
+
if end ==-1:
|
5404
|
+
end = number_of_time_steps
|
5405
|
+
|
5406
|
+
assert start>=0, 'Start index must be greater or equal to 0'
|
5407
|
+
assert end>0, 'End index must be greater than 0 (or -1 to use all time steps)'
|
5408
|
+
assert every>0, 'Step interval must be greater than 0'
|
5409
|
+
assert start<end, 'Start index must be less than end index'
|
5410
|
+
|
5411
|
+
if (end-start)%every != 0:
|
5412
|
+
logging.warning('The difference between start and end indices is not a multiple of the step interval. The last time step will not be included in the averaging.')
|
5413
|
+
|
5414
|
+
if time_averaging:
|
5415
|
+
deltaTot = self.times[end-1] - self.times[start]
|
5416
|
+
else:
|
5417
|
+
deltaTot = (end - start)//every
|
5418
|
+
|
5419
|
+
# Initialise time-averaged matrices based on results type
|
5420
|
+
# If only one block --> WolfArray
|
5421
|
+
# If only multiple blocks --> WolfArrayMB
|
5422
|
+
h_avg = self.as_WolfArray(copyarray=True)
|
5423
|
+
qx_avg = self.as_WolfArray(copyarray=True)
|
5424
|
+
qy_avg = self.as_WolfArray(copyarray=True)
|
5425
|
+
|
5426
|
+
averaged = [h_avg, qx_avg, qy_avg]
|
5427
|
+
|
5428
|
+
for curavg in averaged:
|
5429
|
+
curavg.nullvalue = 0.
|
5430
|
+
curavg.reset()
|
5431
|
+
curavg.mask_reset()
|
5432
|
+
|
5433
|
+
for time_step in tqdm(range(start, end, every)):
|
5434
|
+
|
5435
|
+
if callback is not None:
|
5436
|
+
callback(time_step, "Step {} / {}".format(time_step+1, end))
|
5437
|
+
|
5438
|
+
self.read_oneresult(time_step+1)
|
5439
|
+
|
5440
|
+
if time_averaging:
|
5441
|
+
# Weight for time averaging. At the last time step, the weight is the same as the previous one.
|
5442
|
+
if time_step<end-every:
|
5443
|
+
delta = self.times[time_step+every] - self.times[time_step]
|
5444
|
+
else:
|
5445
|
+
delta = 1
|
5446
|
+
|
5447
|
+
if self.nb_blocks>1:
|
5448
|
+
for curblock in self.myblocks.keys():
|
5449
|
+
|
5450
|
+
# Get WolfArray
|
5451
|
+
wd = self.get_h_for_block(curblock)
|
5452
|
+
qx = self.get_qx_for_block(curblock)
|
5453
|
+
qy = self.get_qy_for_block(curblock)
|
5454
|
+
|
5455
|
+
# Add the values to the corresponding block in the time-averaged matrix
|
5456
|
+
h_avg[curblock].array += wd.array * delta
|
5457
|
+
qx_avg[curblock].array += qx.array * delta
|
5458
|
+
qy_avg[curblock].array += qy.array * delta
|
5459
|
+
|
5460
|
+
else:
|
5461
|
+
curblock = getkeyblock(0)
|
5462
|
+
|
5463
|
+
# Get WolfArray
|
5464
|
+
wd = self.get_h_for_block(curblock)
|
5465
|
+
qx = self.get_qx_for_block(curblock)
|
5466
|
+
qy = self.get_qy_for_block(curblock)
|
5467
|
+
|
5468
|
+
# Add the values to the corresponding block in the time-averaged matrix
|
5469
|
+
h_avg[curblock].array += wd.array * delta
|
5470
|
+
qx_avg[curblock].array += qx.array * delta
|
5471
|
+
qy_avg[curblock].array += qy.array * delta
|
5472
|
+
|
5473
|
+
# Calculate the average
|
5474
|
+
for curavg in averaged:
|
5475
|
+
if self.nb_blocks>1:
|
5476
|
+
for i in range(self.nb_blocks):
|
5477
|
+
curavg[i].array /= deltaTot
|
5478
|
+
else:
|
5479
|
+
curblock = getkeyblock(0)
|
5480
|
+
curavg[curblock].array /= deltaTot
|
5481
|
+
|
5482
|
+
if self.nb_blocks>1:
|
5483
|
+
for i in range(self.nb_blocks):
|
5484
|
+
qx_avg[i].array.mask[:,:] = h_avg[i].array.mask[:,:]
|
5485
|
+
qy_avg[i].array.mask[:,:] = h_avg[i].array.mask[:,:]
|
5486
|
+
else:
|
5487
|
+
qx_avg.array.mask[:,:] = h_avg.array.mask[:,:]
|
5488
|
+
qy_avg.array.mask[:,:] = h_avg.array.mask[:,:]
|
5489
|
+
|
5490
|
+
return h_avg, qx_avg, qy_avg
|
@@ -1,8 +1,7 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: wolfhece
|
3
|
-
Version: 2.1.
|
3
|
+
Version: 2.1.129
|
4
4
|
Author-email: Pierre Archambeau <pierre.archambeau@uliege.be>
|
5
|
-
License: Copyright (c) 2024 University of Liege. All rights reserved.
|
6
5
|
Project-URL: Homepage, https://uee.uliege.be/hece
|
7
6
|
Project-URL: Issues, https://uee.uliege.be/hece
|
8
7
|
Classifier: Programming Language :: Python :: 3.10
|
@@ -40,7 +39,7 @@ Requires-Dist: notebook
|
|
40
39
|
Requires-Dist: matplotlib
|
41
40
|
Requires-Dist: mkl
|
42
41
|
Requires-Dist: python-gettext
|
43
|
-
Requires-Dist: shapely
|
42
|
+
Requires-Dist: shapely==2.0.7
|
44
43
|
Requires-Dist: openpyxl
|
45
44
|
Requires-Dist: xlrd
|
46
45
|
Requires-Dist: openkmi
|
@@ -59,7 +58,7 @@ Requires-Dist: numba==0.58.*
|
|
59
58
|
Requires-Dist: xmltodict
|
60
59
|
Requires-Dist: opencv-python
|
61
60
|
Requires-Dist: xarray
|
62
|
-
Requires-Dist: rasterio
|
61
|
+
Requires-Dist: rasterio==1.3.11
|
63
62
|
Requires-Dist: h5py
|
64
63
|
Requires-Dist: exif
|
65
64
|
Requires-Dist: pyglm
|
@@ -70,6 +69,7 @@ Requires-Dist: autograd
|
|
70
69
|
Requires-Dist: plyfile
|
71
70
|
Requires-Dist: tabulate
|
72
71
|
Requires-Dist: ipympl
|
72
|
+
Requires-Dist: contextily
|
73
73
|
|
74
74
|
Ce paquet contient l'interface graphique Python du logiciel WOLF (HECE - ULiège) de même que plusieurs outils de traitements topographique, hydraulique et hydrologique.
|
75
75
|
|
@@ -7,16 +7,16 @@ wolfhece/ManageParams.py,sha256=EeuUI5Vvh9ixCvYf8YShMC1s1Yacc7OxOCN7q81gqiQ,517
|
|
7
7
|
wolfhece/Model1D.py,sha256=SI4oNF_J3MdjiWZoizS8kuRXLMVyymX9dYfYJNVCQVI,476989
|
8
8
|
wolfhece/PyConfig.py,sha256=Y0wtSIFpAMYa7IByh7hbW-WEOVjNsQEduq7vhIYdZQw,16716
|
9
9
|
wolfhece/PyCrosssections.py,sha256=igU_ELrg5VrHU6RNbF5tHxPyVImpR3xdpfopJYc7haw,114711
|
10
|
-
wolfhece/PyDraw.py,sha256=
|
10
|
+
wolfhece/PyDraw.py,sha256=igUjT6PZfXW0PpZti-Xo4S2vDnIyFxab-jpVdkmrX9c,600006
|
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
|
14
|
-
wolfhece/PyPalette.py,sha256=
|
15
|
-
wolfhece/PyParams.py,sha256=
|
14
|
+
wolfhece/PyPalette.py,sha256=cwoiYMQW8SMgtUvQwXhIYKJ2NNhAfiemKE8npIu4eqc,33724
|
15
|
+
wolfhece/PyParams.py,sha256=wVgzJC5Bs8rfx6NdUdcFDtnsaPBYJgRn3A-rROk49MQ,99525
|
16
16
|
wolfhece/PyPictures.py,sha256=m1kY0saW6Y9Q0bDCo47lW6XxDkBrbQG-Fd8uVn8G5ic,2514
|
17
17
|
wolfhece/PyTranslate.py,sha256=4appkmNeHHZLFmUtaA_k5_5QL-5ymxnbVN4R2OblmtE,622
|
18
18
|
wolfhece/PyVertex.py,sha256=qFf8UPvkbwumRRfjpBcgZmqpHtcEtIEoUh30rWFF-lQ,45205
|
19
|
-
wolfhece/PyVertexvectors.py,sha256
|
19
|
+
wolfhece/PyVertexvectors.py,sha256=2kjtKwdYiGif-NVok8rS9T7Ok8jYMGN4tzy6zXoTxh8,325764
|
20
20
|
wolfhece/PyWMS.py,sha256=WmOzHP02wVcB5RGJAlENL_NzF9rYfvLxslRFyxaEt1Q,6615
|
21
21
|
wolfhece/RatingCurve.py,sha256=bUjIrQjvIjkD4V-z8bZmA6pe1ILtYNM0-3fT6YUY1RU,22498
|
22
22
|
wolfhece/RatingCurveData.py,sha256=5UvnIm89BwqjnEbLCcY3CA8WoFd_xHJbooNy62fX5iY,57660
|
@@ -29,7 +29,7 @@ wolfhece/analyze_vect.py,sha256=3lkMwaQ4KRddBVRvlP9PcM66wZwwC0eCmypP91AW-os,6015
|
|
29
29
|
wolfhece/cli.py,sha256=U8D7e_OezfrRfgMsa4TyQ7rI4voLKSY3RK-c8fb6rrw,3156
|
30
30
|
wolfhece/color_constants.py,sha256=Snc5RX11Ydi756EkBp_83C7DiAQ_Z1aHD9jFIBsosAU,37121
|
31
31
|
wolfhece/drawing_obj.py,sha256=7vY04B6r08nurTTFmBXHyR5tVIF1YzAEw_uz4pqTDIw,4233
|
32
|
-
wolfhece/eikonal.py,sha256=
|
32
|
+
wolfhece/eikonal.py,sha256=bIlLBJkE3fYGRwDDO6OV9Zjmi2-O3Z6oTSqTOjfm0VU,23189
|
33
33
|
wolfhece/flow_SPWMI.py,sha256=XDAelwAY-3rYOR0WKW3fgYJ_r8DU4IP6Y5xULW421tk,20956
|
34
34
|
wolfhece/friction_law.py,sha256=MtZJLo-pTj3-Fw-w12z1LSgSIDrH-JGR0iD9wer_fpQ,5498
|
35
35
|
wolfhece/gpuview.py,sha256=Jql8pLZ0PpvZ_ScT-U4jsXANZ9j4-m_RWhsLA2HISuQ,24544
|
@@ -38,28 +38,29 @@ wolfhece/import_ascfiles.py,sha256=6Zl8qBR9c6VtyziookQ8YE9KC0GtW_J9WFt5ubyGp-s,4
|
|
38
38
|
wolfhece/ins.py,sha256=uUeLMS1n3GPnfJhxl0Z2l-UXpmPUgthuwct282OOEzk,36184
|
39
39
|
wolfhece/irm_qdf.py,sha256=DMdDEAYbgYxApObm6w-dZbBmA8ec6PghBLXR2lUEZLc,27457
|
40
40
|
wolfhece/ismember.py,sha256=fkLvaH9fhx-p0QrlEzqa6ySO-ios3ysjAgXVXzLgSpY,2482
|
41
|
+
wolfhece/lagrange_multiplier.py,sha256=0G-M7b2tGzLx9v0oNYYq4_tLAiHcs_39B4o4W3TUVWM,6567
|
41
42
|
wolfhece/matplotlib_fig.py,sha256=vnFI6sghw9N9jKhR8X1Z4aWli_5fPNylZQtFuujFJDY,84075
|
42
43
|
wolfhece/multiprojects.py,sha256=Sd6Bl6YP33jlR79A6rvSLu23vq8sqbFYL8lWuVPkEpE,21549
|
43
44
|
wolfhece/picc.py,sha256=0X_pzhSBoVxgtTfJ37pkOQO3Vbr9yurPaD1nVeurx8k,8531
|
44
45
|
wolfhece/pidcontroller.py,sha256=PHYenOdzfyPK2pXAhyRolCxMSMRd2AFza0eVMafpPHk,5205
|
45
46
|
wolfhece/pyGui1D.py,sha256=9g7OS3YiKsqy--6y0cBD7x2gaqTTYFXWkxImpgnTA20,121937
|
46
|
-
wolfhece/pybridges.py,sha256=
|
47
|
+
wolfhece/pybridges.py,sha256=bFAqjL4ColeJtwvyCPGQ8VllWoq1RbVWXxFrdfrvqm8,65954
|
47
48
|
wolfhece/pydike.py,sha256=hPBQsmSTW4QAp1wcOzb-TL3L7eet2WT1sJx2q-WNQ-Q,2241
|
48
49
|
wolfhece/pylogging.py,sha256=4TI8hgBB65z-zpvU5Rfa2jkPXPhJaqXjHVPwbcdzTNc,4528
|
49
|
-
wolfhece/pypolygons_scen.py,sha256=
|
50
|
+
wolfhece/pypolygons_scen.py,sha256=WubNPQEk4fC--4qIHZK6mJqQnRs4mAWUpmjRL8q33Sw,46069
|
50
51
|
wolfhece/pyshields.py,sha256=6YncgmcA6QvbyIl4jbFRf24uJVjhiSplQKWtZH42lXI,24108
|
51
52
|
wolfhece/pyviews.py,sha256=5Hqqo9MRw1eiomYkmc7QywNu1KmEkytLJG-wH_aG38Y,13748
|
52
53
|
wolfhece/pywalous.py,sha256=mWB7UxlYMIbPxNUDlONQEjcOOy9VSaRU9aYWZ5IFLu8,19164
|
53
54
|
wolfhece/rain_SPWMI.py,sha256=qCfcmF7LajloOaCwnTrrSMzyME03YyilmRUOqrPrv3U,13846
|
54
55
|
wolfhece/textpillow.py,sha256=map7HsGYML_o5NHRdFg2s_TVQed_lDnpYNDv27MM0Vw,14130
|
55
56
|
wolfhece/tools_mpl.py,sha256=gQ3Jg1iuZiecmMqa5Eli2ZLSkttu68VXL8YmMDBaEYU,564
|
56
|
-
wolfhece/wolf_array.py,sha256=
|
57
|
+
wolfhece/wolf_array.py,sha256=R8P1xlVFR2D9DG_5TGZcsC_gEwVM_9vmeWfKwQ2aFG0,485301
|
57
58
|
wolfhece/wolf_hist.py,sha256=7jeVrgSkM3ErJO6SRMH_PGzfLjIdw8vTy87kesldggk,3582
|
58
59
|
wolfhece/wolf_texture.py,sha256=ecoXXmmcLuyG1oPqU2dB_k03qMTCLTVQoSq1xi1EalU,17359
|
59
60
|
wolfhece/wolf_tiles.py,sha256=v-HohqaWuMYdn75XLnA22dlloAG90iwnIqrgnB0ASQ4,10488
|
60
61
|
wolfhece/wolf_vrt.py,sha256=wbxXVN7TL9zgdyF79S-4e3pje6wJEAgBEfF_Y8kkzxs,14271
|
61
62
|
wolfhece/wolf_zi_db.py,sha256=baE0niMCzybWGSvPJc5FNxo9ZxsGfU4p-FmfiavFHAs,12967
|
62
|
-
wolfhece/wolfresults_2D.py,sha256=
|
63
|
+
wolfhece/wolfresults_2D.py,sha256=X8Dsu9FTqKwgnYOQPD95XDLfRzr4a4uFQ9XKGALew5E,212066
|
63
64
|
wolfhece/xyz_file.py,sha256=1pzLFmmdHca4yBVR9Jitic6N82rY28mRytGC1zMbY28,6615
|
64
65
|
wolfhece/acceptability/Parallels.py,sha256=njrJFH_tTdQUg2px-QqQR6VdhImP1TEujLhpM3JEKNo,4001
|
65
66
|
wolfhece/acceptability/__init__.py,sha256=hfgoPKLDpX7drN1Vpvux-_5Lfyc_7feT2C2zQr5v-Os,258
|
@@ -81,7 +82,7 @@ wolfhece/apps/curvedigitizer.py,sha256=lEJJwgAfulrrWQc-U6ij6sj59hWN3SZl4Yu1kQxVz
|
|
81
82
|
wolfhece/apps/hydrometry.py,sha256=lhhJsFeb4zGL4bNQTs0co85OQ_6ssL1Oy0OUJCzhfYE,656
|
82
83
|
wolfhece/apps/isocurrent.py,sha256=dagmGR8ja9QQ1gwz_8fU-N052hIw-W0mWGVkzLu6C7I,4247
|
83
84
|
wolfhece/apps/splashscreen.py,sha256=SrustmIQeXnsiD-92OzjdGhBi-S7c_j-cSvuX4T6rtg,2929
|
84
|
-
wolfhece/apps/version.py,sha256=
|
85
|
+
wolfhece/apps/version.py,sha256=bTot2RdHq2MShlNmumJbDtXhE0SckmKwrhnLgJVMixc,389
|
85
86
|
wolfhece/apps/wolf.py,sha256=j_CgvsL8rwixbVvVD5Z0s7m7cHZ86gmFLojKGuetMls,729
|
86
87
|
wolfhece/apps/wolf2D.py,sha256=4z_OPQ3IgaLtjexjMKX9ppvqEYyjFLt1hcfFABy3-jU,703
|
87
88
|
wolfhece/apps/wolf_logo.bmp,sha256=ruJ4MA51CpGO_AYUp_dB4SWKHelvhOvd7Q8NrVOjDJk,3126
|
@@ -104,7 +105,7 @@ wolfhece/blender/quads.py,sha256=2XwQqm-K2tvekP1qpYOMi2yz7IThU0CZnn0UaTwDJv0,120
|
|
104
105
|
wolfhece/clientserver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
105
106
|
wolfhece/clientserver/clientserver.py,sha256=sNJ8STw0kqUjCB4AerqZNbzCtl5WRe_JRvhe7whNoSE,2798
|
106
107
|
wolfhece/coupling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
107
|
-
wolfhece/coupling/hydrology_2d.py,sha256=
|
108
|
+
wolfhece/coupling/hydrology_2d.py,sha256=QBIcgujfOX1xX3ARF2PQz6Uqwu3j6EaRw0QlGjG_H7k,53090
|
108
109
|
wolfhece/eva/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
109
110
|
wolfhece/eva/bootstrap.py,sha256=Ys4xTDIvG_QtxCKWLYzb3_XAZU441jGX7fHIbd9Mvr0,840
|
110
111
|
wolfhece/eva/hydrogramme_mono.py,sha256=uZFIgJJ-JogMFzt7D7OnyVaHvgxCQJPZz9W9FgnuthA,8138
|
@@ -117,22 +118,22 @@ wolfhece/fonts/helvetica.ttf,sha256=X4Zd3zdUmuRGMLE6UB-BMIbirpdK3Ia5czfNnuSx5P8,
|
|
117
118
|
wolfhece/fonts/sanserif.ttf,sha256=Nvv5eMgTl5-bWgV37B7E1-vZpAZPNJwjtJSzMNDrl9A,42696
|
118
119
|
wolfhece/ftp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
119
120
|
wolfhece/ftp/downloader.py,sha256=NANzxSzdcp25dFMYin5QA9UnFexNe6-W2AqqTzUE4f4,5223
|
120
|
-
wolfhece/hydrology/Catchment.py,sha256=
|
121
|
-
wolfhece/hydrology/Comparison.py,sha256=
|
121
|
+
wolfhece/hydrology/Catchment.py,sha256=gyj4GtbTbs0L_bBFoQvX1fCdSxfPWBt8hsV46c-lUsM,144461
|
122
|
+
wolfhece/hydrology/Comparison.py,sha256=WBG-NbbtNYgNmCCl9SPTcHf-2XtjRVY-9ohpC2XGkaI,84480
|
122
123
|
wolfhece/hydrology/Dumping.py,sha256=SHGYXr30nMOGPSLArMvAzVxGyLywLf4i267166oUHhQ,2403
|
123
|
-
wolfhece/hydrology/Optimisation.py,sha256=
|
124
|
+
wolfhece/hydrology/Optimisation.py,sha256=soT2TsM443uzqUFYOVDhj2oyLPF6Ob5YhRefSQLKkUM,149243
|
124
125
|
wolfhece/hydrology/Outlet.py,sha256=jdjYN2gIolQJ5prf1wVfxm7cp_YguwQ0JMRsC9ks-Tg,10519
|
125
|
-
wolfhece/hydrology/PostProcessHydrology.py,sha256=
|
126
|
-
wolfhece/hydrology/PyWatershed.py,sha256=
|
127
|
-
wolfhece/hydrology/RetentionBasin.py,sha256=
|
128
|
-
wolfhece/hydrology/SubBasin.py,sha256=
|
126
|
+
wolfhece/hydrology/PostProcessHydrology.py,sha256=GS2dm9ahDb856apXvTM-oyusTn0xj-ySNpKbHa_jQdw,7419
|
127
|
+
wolfhece/hydrology/PyWatershed.py,sha256=a26M6tVe4hrQ-a8FyAx7H9-RZcVCU5BBzFff4_YT0UU,97665
|
128
|
+
wolfhece/hydrology/RetentionBasin.py,sha256=vFvpnomo5h8ZWq3Hq-YlxRnyqyQqHrojABMKzu3RP6E,83358
|
129
|
+
wolfhece/hydrology/SubBasin.py,sha256=wFPehJ0vbZM9nZjEdttuch3Dmt8LzDtRVsF5E8pxM4E,178326
|
129
130
|
wolfhece/hydrology/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
130
|
-
wolfhece/hydrology/constant.py,sha256=
|
131
|
-
wolfhece/hydrology/cst_exchanges.py,sha256=
|
131
|
+
wolfhece/hydrology/constant.py,sha256=0o6l8zwLESlW6G9vYNFlUJV4YhcDq6_jnCN28DNchmU,1634
|
132
|
+
wolfhece/hydrology/cst_exchanges.py,sha256=w83FyI1gOQ5EjTWb9usLfakQAJwv52u8_Hap2Nih570,39593
|
132
133
|
wolfhece/hydrology/data_treatment.py,sha256=vHNtEvXHJOdGHjaNjbTTvVoFQjVee-AdspJEesxVNuQ,34967
|
133
134
|
wolfhece/hydrology/forcedexchanges.py,sha256=MrzMqKISX6G6t3XwkyFQa6tVFfTTC8ifm_nSvrOy5-8,2259
|
134
|
-
wolfhece/hydrology/plot_hydrology.py,sha256=
|
135
|
-
wolfhece/hydrology/read.py,sha256=
|
135
|
+
wolfhece/hydrology/plot_hydrology.py,sha256=nIOPPa_91z6wllCRC8BsEijK_4XMzC7lZHy_OvzesNc,35704
|
136
|
+
wolfhece/hydrology/read.py,sha256=BaaIp1x44wPQz2LkWtzu7ZNKx3Gw_WDtAw-B4y_C2IU,9553
|
136
137
|
wolfhece/hydrology/slope_manager.py,sha256=vlek0z8qcqB61eleiksyOe3QR1vpbtwfeowy6ms7_Fg,5580
|
137
138
|
wolfhece/hydrology/wolfMap_treatment.py,sha256=eAxr24zJGwmDof1aZpcxewVvv_bWDvoO8t9Wwf99Mlo,10606
|
138
139
|
wolfhece/hydrometry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -185,7 +186,7 @@ wolfhece/lazviewer/viewer/qt.conf,sha256=uzoy7MmKYo_uTrNsfMuQ84LgBI5pVOeWXK_rXYM
|
|
185
186
|
wolfhece/lazviewer/viewer/viewer.exe,sha256=pF5nwE8vMWlEzkk-SOekae9zpOsPhTWhZbqaJntumJc,202240
|
186
187
|
wolfhece/lazviewer/viewer/viewer.py,sha256=5igxFDFZMnnnhF3oFbEHKLfgiK4TUgXEZHsgOJbtNY4,25319
|
187
188
|
wolfhece/libs/MSVCP140.dll,sha256=2GrBWBI6JFuSdZLIDMAg_qKcjErdwURGbEYloAypx3o,565640
|
188
|
-
wolfhece/libs/WolfDll.dll,sha256=
|
189
|
+
wolfhece/libs/WolfDll.dll,sha256=iGTdK8Hb4OKxh3xCOuYrK2KCfDlUJGl50FGUP160ddQ,134159360
|
189
190
|
wolfhece/libs/__init__.py,sha256=x7QvPd7hjL-Xl7RjlA8y6rcvKCkYu3JpFE3YnzUJeCY,3326
|
190
191
|
wolfhece/libs/api-ms-win-crt-heap-l1-1-0.dll,sha256=r0euvgZa8vBFoZ8g7H5Upuc8DD6aUQimMJWnIyt1OBo,19720
|
191
192
|
wolfhece/libs/api-ms-win-crt-math-l1-1-0.dll,sha256=ol0GVN6wzqGu8Ym6IXTQ8TvfUvCY06nsNtFeS_swxJk,27912
|
@@ -224,7 +225,7 @@ wolfhece/mar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
224
225
|
wolfhece/mar/commontools.py,sha256=SiSxpv5BFYEBCEydsE4ZmBuot3KTy0UYMx2aa-4fbuQ,52549
|
225
226
|
wolfhece/mar/interface_MAR_WOLF.py,sha256=MWeXaHLDT4Eo9jZOAvz013lmpgGYT1v9VUYGAgBgSRU,21454
|
226
227
|
wolfhece/math_parser/__init__.py,sha256=Mi7YTrlJtcflyrRdZHHgE-uNPUFfOWmsf8FsOwKBRPI,27961
|
227
|
-
wolfhece/math_parser/calculator.py,sha256=
|
228
|
+
wolfhece/math_parser/calculator.py,sha256=Avyx-ikIwsficqd-Q4erX6U0zGQ3cAWfADyq6_uHpB0,7493
|
228
229
|
wolfhece/mesh2d/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
229
230
|
wolfhece/mesh2d/bc_manager.py,sha256=fKED0RhUjCmd0xd0lcOeZqiga5Glqs1ag1boYhXlq0k,54232
|
230
231
|
wolfhece/mesh2d/cell_tracker.py,sha256=mPmnD5lEf3gLPuLqtAIo-Gp-ipAwQdPxzjWOGt0b7jM,8958
|
@@ -264,7 +265,7 @@ wolfhece/pythonfortran/example_makendarray.py,sha256=FNPp6lsU9Mv0O8VLN3JHWk5Qn1z
|
|
264
265
|
wolfhece/pythonfortran/example_numpy_memory.py,sha256=o3hzJDw7YtE4v0FXI3-l2VzupCk5xF7-uqlb_Ay8FUQ,3660
|
265
266
|
wolfhece/pythonfortran/tools.py,sha256=oYh9MguRYEGNGKVbHqQW2V9okZJLs3n4Qs-vLWPmBe4,2462
|
266
267
|
wolfhece/radar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
267
|
-
wolfhece/radar/wolfradar.py,sha256=
|
268
|
+
wolfhece/radar/wolfradar.py,sha256=LM2jfdlclBN5fycL6i1wI2ipIsTfG6wor1A5IwE7JPs,12983
|
268
269
|
wolfhece/rem/REMMaker.py,sha256=zkiAo36MmusPhgv1qJmpDgtoTWbh_eJ6qJqtCfeC1M8,31480
|
269
270
|
wolfhece/rem/RasterViz.py,sha256=fnyMfAJZDoS-rjagsNRGLndS-UYNUzMY4DgenjD3Y_4,29068
|
270
271
|
wolfhece/rem/__init__.py,sha256=S2-J5uEGK_VaMFjRUYFIdSScJjZyuXH4RmMmnG3OG7I,19
|
@@ -287,6 +288,8 @@ wolfhece/shaders/simple_vertex_shader.glsl,sha256=crJlvIx-nNcUpKyK4KpJWR789xG-Rq
|
|
287
288
|
wolfhece/shaders/simple_vertex_shader_mvp.glsl,sha256=4uMy9GFutnVkdwrfe9BdoPVAaFjdKwcX4eKVakug3zg,229
|
288
289
|
wolfhece/shaders/simple_vertex_shader_wo_mvp.glsl,sha256=CT5dr1s0kdL90MtZi22DelFzFVns-w0XcrVbPan6yOc,122
|
289
290
|
wolfhece/shaders/vertex_shader_texture.glsl,sha256=8CmklD7-H57iPWhf5nQpGpqIW1uXvcz2kTBVZh-1F8Q,214
|
291
|
+
wolfhece/shapes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
292
|
+
wolfhece/shapes/circle.py,sha256=UNCgSX-Xa_s64gJdWyouaiXCd2q-7WXvL-GbXAIRKQE,10136
|
290
293
|
wolfhece/sigmoid/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
291
294
|
wolfhece/sigmoid/circle_jax.py,sha256=3CrOViLTvt6ZtQPY_1rOe0Qp_AgwdOKhWwpbG5vBki0,4305
|
292
295
|
wolfhece/sigmoid/circle_jax_copilot.py,sha256=fF8vwY_q_i8_u-anGpVXJ5aZEdx3KC3kuYsZZlaGZwE,5952
|
@@ -300,8 +303,8 @@ wolfhece/ui/wolf_multiselection_collapsiblepane.py,sha256=8PlMYrb_8jI8h9F0_EagpM
|
|
300
303
|
wolfhece/ui/wolf_times_selection_comparison_models.py,sha256=ORy7fz4dcp691qKzaOZHrRLZ0uXNhL-LIHxmpDGL6BI,5007
|
301
304
|
wolfhece/wintab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
302
305
|
wolfhece/wintab/wintab.py,sha256=8A-JNONV6ujgsgG3lM5Uw-pVgglPATwKs86oBzzljoc,7179
|
303
|
-
wolfhece-2.1.
|
304
|
-
wolfhece-2.1.
|
305
|
-
wolfhece-2.1.
|
306
|
-
wolfhece-2.1.
|
307
|
-
wolfhece-2.1.
|
306
|
+
wolfhece-2.1.129.dist-info/METADATA,sha256=RFHPYSX_-2KsN3-nviEAZbMzvwmC2z1aXOjGR1E24BA,2558
|
307
|
+
wolfhece-2.1.129.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
308
|
+
wolfhece-2.1.129.dist-info/entry_points.txt,sha256=ZZ-aSfbpdcmo-wo84lRFzBN7LaSnD1XRGSaAKVX-Gpc,522
|
309
|
+
wolfhece-2.1.129.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
|
310
|
+
wolfhece-2.1.129.dist-info/RECORD,,
|
File without changes
|
File without changes
|