wolfhece 2.0.17__py3-none-any.whl → 2.0.18__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.
Files changed (39) hide show
  1. wolfhece/CpGrid.py +10 -13
  2. wolfhece/PyCrosssections.py +18 -13
  3. wolfhece/PyHydrographs.py +2 -2
  4. wolfhece/PyParams.py +15 -27
  5. wolfhece/PyPictures.py +48 -45
  6. wolfhece/PyVertexvectors.py +14 -19
  7. wolfhece/apps/curvedigitizer.py +4 -1
  8. wolfhece/apps/wolfcompare2Darrays.py +11 -7
  9. wolfhece/clientserver/clientserver.py +62 -0
  10. wolfhece/friction_law.py +39 -34
  11. wolfhece/ftp/downloader.py +8 -7
  12. wolfhece/gpuview.py +14 -13
  13. wolfhece/hydrology/Catchment.py +2 -2
  14. wolfhece/hydrology/PyWatershed.py +2 -2
  15. wolfhece/hydrology/SubBasin.py +13 -11
  16. wolfhece/hydrometry/kiwis_gui.py +9 -9
  17. wolfhece/irm_qdf.py +12 -10
  18. wolfhece/mar/Interface_MAR_WOLF_objet.py +260 -161
  19. wolfhece/opengl/py3d.py +4 -4
  20. wolfhece/pyshields.py +4 -4
  21. wolfhece/pythonfortran/example_makendarray.py +46 -41
  22. wolfhece/pythonfortran/example_numpy_memory.py +87 -83
  23. wolfhece/pythonfortran/tools.py +1 -1
  24. wolfhece/scenario/imposebc_void.py +2 -3
  25. wolfhece/scenario/update_void.py +6 -6
  26. wolfhece/wolf_array.py +17 -16
  27. wolfhece/wolfresults_2D.py +2 -4
  28. {wolfhece-2.0.17.dist-info → wolfhece-2.0.18.dist-info}/METADATA +7 -1
  29. {wolfhece-2.0.17.dist-info → wolfhece-2.0.18.dist-info}/RECORD +33 -38
  30. wolfhece/apps/wolfBernoulli.py +0 -18
  31. wolfhece/bernoulli/ModelJockgrim.py +0 -226
  32. wolfhece/bernoulli/NetworkOpenGL.py +0 -6461
  33. wolfhece/bernoulli/ReadNeupotzData.py +0 -223
  34. wolfhece/bernoulli/opti_results_interactive_plot.py +0 -212
  35. wolfhece/debug.py +0 -8
  36. /wolfhece/{bernoulli → clientserver}/__init__.py +0 -0
  37. {wolfhece-2.0.17.dist-info → wolfhece-2.0.18.dist-info}/WHEEL +0 -0
  38. {wolfhece-2.0.17.dist-info → wolfhece-2.0.18.dist-info}/entry_points.txt +0 -0
  39. {wolfhece-2.0.17.dist-info → wolfhece-2.0.18.dist-info}/top_level.txt +0 -0
@@ -2,60 +2,65 @@ import numpy as np
2
2
  import ctypes as ct
3
3
  from tools import make_nd_array
4
4
 
5
- """
6
- Création d'un matrice numpy depui un buffer/adresse mémoire
7
- """
8
5
 
9
- a = np.zeros((10,10))
6
+ def main():
7
+ """
8
+ Création d'un matrice numpy depui un buffer/adresse mémoire
9
+ """
10
10
 
11
- # a.ctypes.data => int, buffer's memory address
12
- # see : https://numpy.org/doc/stable/reference/generated/numpy.ndarray.ctypes.html
13
- q = make_nd_array(a.ctypes.data, a.shape)
11
+ a = np.zeros((10,10))
14
12
 
15
- # récupération de la structure ct.pointer pointant vers l'espace de stockage de l'objet numpy "a"'
16
- p = a.ctypes.data_as(ct.POINTER(ct.c_double))
17
- # récupération de l'adresse mémoire dans la structure ctypes.pointer
18
- addr_p = list(p.contents._b_base_._objects.values())[0].value
19
- # mais il y a plus simple ...
20
- addr_p_2 = ct.addressof(p.contents)
13
+ # a.ctypes.data => int, buffer's memory address
14
+ # see : https://numpy.org/doc/stable/reference/generated/numpy.ndarray.ctypes.html
15
+ q = make_nd_array(a.ctypes.data, a.shape)
21
16
 
22
- assert addr_p == addr_p_2
17
+ # récupération de la structure ct.pointer pointant vers l'espace de stockage de l'objet numpy "a"'
18
+ p = a.ctypes.data_as(ct.POINTER(ct.c_double))
19
+ # récupération de l'adresse mémoire dans la structure ctypes.pointer
20
+ addr_p = list(p.contents._b_base_._objects.values())[0].value
21
+ # mais il y a plus simple ...
22
+ addr_p_2 = ct.addressof(p.contents)
23
23
 
24
- # comparaison avec l'adresse mémoire du buffer de a
25
- print(addr_p, a.ctypes.data)
26
- assert a.ctypes.data == addr_p, 'Not the same address'
24
+ assert addr_p == addr_p_2
27
25
 
28
- c=make_nd_array(addr_p, [10,10], dtype=np.float64, own_data=False, readonly=False, order='F')
29
- d=make_nd_array(addr_p, [10,10], dtype=np.float64, own_data=True , readonly=False, order='F')
26
+ # comparaison avec l'adresse mémoire du buffer de a
27
+ print(addr_p, a.ctypes.data)
28
+ assert a.ctypes.data == addr_p, 'Not the same address'
30
29
 
31
- e=make_nd_array(addr_p, [10,10], dtype=np.float64, own_data=False, readonly=True, order='F')
32
- f=make_nd_array(addr_p, [10,10], dtype=np.float64, own_data=True , readonly=True, order='F')
33
- g=make_nd_array(addr_p, [10,10], dtype=np.float64, own_data=True , readonly=False, order='F')
30
+ c=make_nd_array(addr_p, [10,10], dtype=np.float64, own_data=False, readonly=False, order='F')
31
+ d=make_nd_array(addr_p, [10,10], dtype=np.float64, own_data=True , readonly=False, order='F')
34
32
 
35
- assert c.ctypes.data == a.ctypes.data, 'Not the same address'
36
- assert d.ctypes.data != a.ctypes.data, 'Same address'
33
+ e=make_nd_array(addr_p, [10,10], dtype=np.float64, own_data=False, readonly=True, order='F')
34
+ f=make_nd_array(addr_p, [10,10], dtype=np.float64, own_data=True , readonly=True, order='F')
35
+ g=make_nd_array(addr_p, [10,10], dtype=np.float64, own_data=True , readonly=False, order='F')
37
36
 
38
- assert e.flags.writeable == False, 'Array "e" is in read/write mode'
39
- assert f.flags.writeable == False, 'Array "f" is in read/write mode'
40
- assert g.flags.writeable == True, 'Array "g" is in read only mode'
37
+ assert c.ctypes.data == a.ctypes.data, 'Not the same address'
38
+ assert d.ctypes.data != a.ctypes.data, 'Same address'
41
39
 
40
+ assert e.flags.writeable == False, 'Array "e" is in read/write mode'
41
+ assert f.flags.writeable == False, 'Array "f" is in read/write mode'
42
+ assert g.flags.writeable == True, 'Array "g" is in read only mode'
42
43
 
43
- # Initialisation d'une Numpy array as 'C' order or 'F' order
44
- a = np.zeros((10,10), dtype=np.float64, order='C') # default order == 'C'
45
- a[:,1:]=3.
46
44
 
47
- h=make_nd_array(a.ctypes.data, [10,1], dtype=np.float64, own_data=True , readonly=False, order='F') # première ligne
48
- # h = [0,3,3,3,3,3,3,3,3,3,3]
45
+ # Initialisation d'une Numpy array as 'C' order or 'F' order
46
+ a = np.zeros((10,10), dtype=np.float64, order='C') # default order == 'C'
47
+ a[:,1:]=3.
49
48
 
50
- assert h.shape==(10,1)
51
- assert (h == np.asarray([[0.],[3.],[3.],[3.],[3.],[3.],[3.],[3.],[3.],[3.]])).all()
49
+ h=make_nd_array(a.ctypes.data, [10,1], dtype=np.float64, own_data=True , readonly=False, order='F') # première ligne
50
+ # h = [0,3,3,3,3,3,3,3,3,3,3]
52
51
 
53
- a = np.zeros((10,10), dtype=np.float64, order='F')
54
- a[:,1:]=3.
52
+ assert h.shape==(10,1)
53
+ assert (h == np.asarray([[0.],[3.],[3.],[3.],[3.],[3.],[3.],[3.],[3.],[3.]])).all()
55
54
 
56
- i=make_nd_array(a.ctypes.data, [10,1], dtype=np.float64, own_data=True , readonly=False, order='F') # première colonne
57
- # i = [0,0,0,0,0,0,0,0,0,0]
55
+ a = np.zeros((10,10), dtype=np.float64, order='F')
56
+ a[:,1:]=3.
58
57
 
59
- assert i.shape==(10,1)
60
- assert (i == np.asarray([0.,0.,0.,0.,0.,0.,0.,0.,0.,0.])).all()
61
- assert (i == np.asarray([[0.],[0.],[0.],[0.],[0.],[0.],[0.],[0.],[0.],[0.]])).all()
58
+ i=make_nd_array(a.ctypes.data, [10,1], dtype=np.float64, own_data=True , readonly=False, order='F') # première colonne
59
+ # i = [0,0,0,0,0,0,0,0,0,0]
60
+
61
+ assert i.shape==(10,1)
62
+ assert (i == np.asarray([0.,0.,0.,0.,0.,0.,0.,0.,0.,0.])).all()
63
+ assert (i == np.asarray([[0.],[0.],[0.],[0.],[0.],[0.],[0.],[0.],[0.],[0.]])).all()
64
+
65
+ if __name__ == '__main__':
66
+ main()
@@ -2,117 +2,121 @@ import numpy as np
2
2
  import ctypes as ct
3
3
  from tools import make_nd_array
4
4
 
5
- """
6
- Les matrices Numpy gardent-elles le même espace mémoire (buffer) lors des opérations méthématiques ??
7
- Une tentative d'analyse sur base de quelques exemples simples ...
5
+ def main():
6
+ """
7
+ Les matrices Numpy gardent-elles le même espace mémoire (buffer) lors des opérations méthématiques ??
8
+ Une tentative d'analyse sur base de quelques exemples simples ...
8
9
 
9
- ATTENTION notammment à :
10
- - la diférence de comportement entre "a += 3" et "a = a + 3"
11
- - la diférence de comportement entre "a[:,:] = a[:,:] + 3" et "a = a + 3"
10
+ ATTENTION notammment à :
11
+ - la diférence de comportement entre "a += 3" et "a = a + 3"
12
+ - la diférence de comportement entre "a[:,:] = a[:,:] + 3" et "a = a + 3"
12
13
 
13
- Lire : https://numpy.org/doc/stable/reference/ufuncs.html
14
- """
15
- a = np.zeros((10,10))
16
- b = a # b is an alias --> share memory
17
- c = a.copy() # c is a copy --> not share memory
14
+ Lire : https://numpy.org/doc/stable/reference/ufuncs.html
15
+ """
16
+ a = np.zeros((10,10))
17
+ b = a # b is an alias --> share memory
18
+ c = a.copy() # c is a copy --> not share memory
18
19
 
19
- id_a = id(a) # memory address
20
- id_b = id(b) # memory address
21
- id_c = id(c) # memory address
20
+ id_a = id(a) # memory address
21
+ id_b = id(b) # memory address
22
+ id_c = id(c) # memory address
22
23
 
23
- if id(b) == id(a):
24
- print('1) a vs b - egalize -- Same memory address')
24
+ if id(b) == id(a):
25
+ print('1) a vs b - egalize -- Same memory address')
25
26
 
26
- if id(c) != id(a):
27
- print('2) a vs c - egalize copy -- Not the same memory address')
27
+ if id(c) != id(a):
28
+ print('2) a vs c - egalize copy -- Not the same memory address')
28
29
 
29
- c+=4
30
- a=c.copy()
31
- if id_a != id(c):
32
- print('3) a vs a (from c) - egalize copy -- Not the same memory address')
30
+ c+=4
31
+ a=c.copy()
32
+ if id_a != id(c):
33
+ print('3) a vs a (from c) - egalize copy -- Not the same memory address')
33
34
 
34
- # reset
35
- a=b
35
+ # reset
36
+ a=b
36
37
 
37
- a += 3
38
- id_newa = id(a) # memory address
39
- if id_newa == id_a:
40
- print('4) a vs a - += 3 -- Same memory address')
38
+ a += 3
39
+ id_newa = id(a) # memory address
40
+ if id_newa == id_a:
41
+ print('4) a vs a - += 3 -- Same memory address')
41
42
 
42
- a[:,:] = a[:,:] + 3
43
- id_newa = id(a) # memory address
43
+ a[:,:] = a[:,:] + 3
44
+ id_newa = id(a) # memory address
44
45
 
45
- if id_newa == id_a:
46
- print('5) a vs a - [:,:] + 3 -- Same memory address')
46
+ if id_newa == id_a:
47
+ print('5) a vs a - [:,:] + 3 -- Same memory address')
47
48
 
48
- a = a + 3
49
- id_newa2 = id(a) # memory address
50
- if id_newa2 != id_a:
51
- print('6) a vs new_a_2 - = +3 -- Not the same memory address')
49
+ a = a + 3
50
+ id_newa2 = id(a) # memory address
51
+ if id_newa2 != id_a:
52
+ print('6) a vs new_a_2 - = +3 -- Not the same memory address')
52
53
 
53
- b = a + 3
54
- if id(b) != id(a):
55
- print('7) a vs b - addition -- Not the same memory address')
54
+ b = a + 3
55
+ if id(b) != id(a):
56
+ print('7) a vs b - addition -- Not the same memory address')
56
57
 
57
- # Adresse mémoire
58
+ # Adresse mémoire
58
59
 
59
- a = np.zeros((10,10), dtype=np.float64)
60
- mem_a = a.ctypes.data
61
- a[:,1:]=3.
62
- assert mem_a == a.ctypes.data
60
+ a = np.zeros((10,10), dtype=np.float64)
61
+ mem_a = a.ctypes.data
62
+ a[:,1:]=3.
63
+ assert mem_a == a.ctypes.data
63
64
 
64
65
 
65
- # Créez deux matrices numpy distinctes avec des buffers mémoire séparés
66
- matrix1 = np.array([[1, 2], [3, 4]])
67
- matrix2 = np.array([[5, 6], [7, 8]])
66
+ # Créez deux matrices numpy distinctes avec des buffers mémoire séparés
67
+ matrix1 = np.array([[1, 2], [3, 4]])
68
+ matrix2 = np.array([[5, 6], [7, 8]])
68
69
 
69
- buf_m1 = matrix1.ctypes.data
70
- buf_m2 = matrix2.ctypes.data
70
+ buf_m1 = matrix1.ctypes.data
71
+ buf_m2 = matrix2.ctypes.data
71
72
 
72
- # Copiez le contenu de matrix1 dans matrix2 (les buffers de matrix2 ne sont pas affectés)
73
- matrix2[:] = matrix1
73
+ # Copiez le contenu de matrix1 dans matrix2 (les buffers de matrix2 ne sont pas affectés)
74
+ matrix2[:] = matrix1
74
75
 
75
- assert buf_m1 == matrix1.ctypes.data
76
- assert buf_m2 == matrix2.ctypes.data
77
- assert (matrix1 ==matrix2).all()
76
+ assert buf_m1 == matrix1.ctypes.data
77
+ assert buf_m2 == matrix2.ctypes.data
78
+ assert (matrix1 ==matrix2).all()
78
79
 
79
- matrix1 = np.array([[1, 2], [3, 4]])
80
- matrix2 = np.array([[5, 6], [7, 8]])
80
+ matrix1 = np.array([[1, 2], [3, 4]])
81
+ matrix2 = np.array([[5, 6], [7, 8]])
81
82
 
82
- buf_m1 = matrix1.ctypes.data
83
- buf_m2 = matrix2.ctypes.data
83
+ buf_m1 = matrix1.ctypes.data
84
+ buf_m2 = matrix2.ctypes.data
84
85
 
85
- # Copiez le contenu de matrix1 dans matrix2 (les buffers de matrix2 ne sont pas affectés)
86
- matrix2[:] = matrix1.copy()
86
+ # Copiez le contenu de matrix1 dans matrix2 (les buffers de matrix2 ne sont pas affectés)
87
+ matrix2[:] = matrix1.copy()
87
88
 
88
- assert buf_m1 == matrix1.ctypes.data
89
- assert buf_m2 == matrix2.ctypes.data
90
- assert (matrix1 ==matrix2).all()
89
+ assert buf_m1 == matrix1.ctypes.data
90
+ assert buf_m2 == matrix2.ctypes.data
91
+ assert (matrix1 ==matrix2).all()
91
92
 
92
- matrix1 = np.array([[1, 2], [3, 4]])
93
- matrix2 = np.array([[5, 6], [7, 8]])
93
+ matrix1 = np.array([[1, 2], [3, 4]])
94
+ matrix2 = np.array([[5, 6], [7, 8]])
94
95
 
95
- buf_m1 = matrix1.ctypes.data
96
- buf_m2 = matrix2.ctypes.data
96
+ buf_m1 = matrix1.ctypes.data
97
+ buf_m2 = matrix2.ctypes.data
97
98
 
98
- # Copiez le contenu de matrix1 dans matrix2 (les buffers de matrix2 SONT affectés)
99
- matrix2 = matrix1.copy()
99
+ # Copiez le contenu de matrix1 dans matrix2 (les buffers de matrix2 SONT affectés)
100
+ matrix2 = matrix1.copy()
100
101
 
101
- assert buf_m1 == matrix1.ctypes.data
102
- assert buf_m2 != matrix2.ctypes.data
103
- assert matrix2.ctypes.data != matrix1.ctypes.data
104
- assert (matrix1 ==matrix2).all()
102
+ assert buf_m1 == matrix1.ctypes.data
103
+ assert buf_m2 != matrix2.ctypes.data
104
+ assert matrix2.ctypes.data != matrix1.ctypes.data
105
+ assert (matrix1 ==matrix2).all()
105
106
 
106
- matrix1 = np.array([[1, 2], [3, 4]])
107
- matrix2 = np.array([[5, 6], [7, 8]])
107
+ matrix1 = np.array([[1, 2], [3, 4]])
108
+ matrix2 = np.array([[5, 6], [7, 8]])
108
109
 
109
- buf_m1 = matrix1.ctypes.data
110
- buf_m2 = matrix2.ctypes.data
110
+ buf_m1 = matrix1.ctypes.data
111
+ buf_m2 = matrix2.ctypes.data
111
112
 
112
- # Copiez le contenu de matrix1 dans matrix2 (les buffers de matrix2 SONT affectés)
113
- matrix2 = matrix1
113
+ # Copiez le contenu de matrix1 dans matrix2 (les buffers de matrix2 SONT affectés)
114
+ matrix2 = matrix1
114
115
 
115
- assert buf_m1 == matrix1.ctypes.data
116
- assert buf_m2 != matrix2.ctypes.data
117
- assert matrix2.ctypes.data == matrix1.ctypes.data
118
- assert (matrix1 ==matrix2).all()
116
+ assert buf_m1 == matrix1.ctypes.data
117
+ assert buf_m2 != matrix2.ctypes.data
118
+ assert matrix2.ctypes.data == matrix1.ctypes.data
119
+ assert (matrix1 ==matrix2).all()
120
+
121
+ if __name__ == "__main__":
122
+ main()
@@ -1,4 +1,4 @@
1
- import numpy as np
1
+ import numpy as np
2
2
  import ctypes as ct
3
3
 
4
4
 
@@ -24,7 +24,7 @@ class Impose_Boundary_Conditions:
24
24
  def impose_bc(self, simul:SimpleSimulation):
25
25
  """
26
26
  FR
27
- --
27
+
28
28
  Cette fonction doit être particularisée afin d'appliquer des conditions aux limites à la simulation.
29
29
  L'instance de simulation est passée en argument et ne doit pas être créee/modifiée.
30
30
 
@@ -37,7 +37,7 @@ class Impose_Boundary_Conditions:
37
37
  Les directions sont soit "LEFT" ou "BOTTOM". L'énumération d'une cellule (i,j) permet donc d'imposer la condition sur le bord gauche de la cellule (i-1/2,j) et sur le bord bas de la cellule (i,j-1/2).
38
38
 
39
39
  EN
40
- --
40
+
41
41
  This function must be specialized in order to apply boundary conditions to the simulation.
42
42
  The simulation is passed as an argument and must not be created/modified.
43
43
 
@@ -50,7 +50,6 @@ class Impose_Boundary_Conditions:
50
50
  The directions are either "LEFT" or "BOTTOM." Enumerating a cell (i, j) thus imposes the condition on the left edge of cell (i-1/2, j) and on the bottom edge of cell (i, j-1/2).
51
51
 
52
52
  Exemple :
53
- -------
54
53
 
55
54
  # Weak Normal Froude condition (value 0.3) on the left edge of the cell (3,997) -> (3,1002)
56
55
  for j in range(997,1003):
@@ -19,7 +19,7 @@ class Update_Sim:
19
19
  def update_topobathy(self, topobahty:WolfArray):
20
20
  """
21
21
  FR
22
- --
22
+
23
23
  Cette fonction doit être particularisée afin d'appliquer des modifications
24
24
  à la topographie du lit majeur ou à la bathymétrie du lit mineur.
25
25
 
@@ -33,7 +33,7 @@ class Update_Sim:
33
33
  Il n'est pas permis de remplacer la matrice (création d'une nouvelle matrice et/ou pointage d'una autre matrice). Toutes les operations doivent se faire dans l'esace alloué.
34
34
 
35
35
  EN
36
- --
36
+
37
37
  This function must be customized to apply modifications to the topography of the main bed or the bathymetry of the minor bed.
38
38
 
39
39
  The basic information is located in the 'topobahty' parameter ('WolfArray' class).
@@ -50,7 +50,7 @@ class Update_Sim:
50
50
  def update_manning(self, manning:WolfArray):
51
51
  """
52
52
  FR
53
- --
53
+
54
54
  Cette fonction doit être particularisée afin d'appliquer des modifications
55
55
  à la distribution du coefficient de Manning.
56
56
 
@@ -64,7 +64,7 @@ class Update_Sim:
64
64
  Il n'est pas permis de remplacer la matrice (création d'une nouvelle matrice et/ou pointage d'una autre matrice). Toutes les operations doivent se faire dans l'esace alloué.
65
65
 
66
66
  EN
67
- --
67
+
68
68
  This function must be customized to apply modifications to the Manning roughness parameter.
69
69
 
70
70
  The basic information is located in the 'manning' parameter ('WolfArray' class).
@@ -81,7 +81,7 @@ class Update_Sim:
81
81
  def update_infiltration(self, infiltration_zones:WolfArray):
82
82
  """
83
83
  FR
84
- --
84
+
85
85
  Cette fonction doit être particularisée afin d'appliquer des modifications
86
86
  à la distribution des zones d'infiltration (matrice en Int32)
87
87
 
@@ -95,7 +95,7 @@ class Update_Sim:
95
95
  Il n'est pas permis de remplacer la matrice (création d'une nouvelle matrice et/ou pointage d'una autre matrice). Toutes les operations doivent se faire dans l'esace alloué.
96
96
 
97
97
  EN
98
- --
98
+
99
99
  This function must be customized to apply modifications to the Infiltration zones parameter.
100
100
 
101
101
  The basic information is located in the 'infiltration_zones' parameter ('WolfArray' class).
wolfhece/wolf_array.py CHANGED
@@ -4825,8 +4825,8 @@ class WolfArray(Element_To_Draw, header_wolf):
4825
4825
  """
4826
4826
  Return the coordinates inside a polygon
4827
4827
 
4828
- :param myvect = target vector
4829
- :param usemask = limit potential nodes to unmaksed nodes
4828
+ :param myvect : target vector
4829
+ :param usemask : limit potential nodes to unmaksed nodes
4830
4830
  """
4831
4831
 
4832
4832
  myvect.find_minmax()
@@ -4848,8 +4848,8 @@ class WolfArray(Element_To_Draw, header_wolf):
4848
4848
  """
4849
4849
  Return the coordinates along a polyline
4850
4850
 
4851
- :param myvect = target vector
4852
- :param usemask = limit potential nodes to unmaksed nodes
4851
+ :param myvect : target vector
4852
+ :param usemask : limit potential nodes to unmaksed nodes
4853
4853
  """
4854
4854
 
4855
4855
  allij = self.get_ij_under_polyline(myvect, usemask)
@@ -4861,8 +4861,8 @@ class WolfArray(Element_To_Draw, header_wolf):
4861
4861
  """
4862
4862
  Return the indices inside a polygon
4863
4863
 
4864
- :param myvect = target vector
4865
- :param usemask = limit potential nodes to unmaksed nodes
4864
+ :param myvect : target vector
4865
+ :param usemask : limit potential nodes to unmaksed nodes
4866
4866
  """
4867
4867
 
4868
4868
  myvect.find_minmax()
@@ -4905,8 +4905,8 @@ class WolfArray(Element_To_Draw, header_wolf):
4905
4905
  """
4906
4906
  Récupération des valeurs contenues dans un polygone
4907
4907
 
4908
- usemask (optional) restreint les éléments aux éléments non masqués de la matrice
4909
- getxy (optional) retourne en plus les coordonnées des points
4908
+ :param usemask : (optional) restreint les éléments aux éléments non masqués de la matrice
4909
+ :param getxy : (optional) retourne en plus les coordonnées des points
4910
4910
  """
4911
4911
  mypoints = self.get_xy_inside_polygon(myvect, usemask)
4912
4912
  myvalues = np.asarray([self.get_value(cur[0], cur[1]) for cur in mypoints])
@@ -4920,8 +4920,8 @@ class WolfArray(Element_To_Draw, header_wolf):
4920
4920
  """
4921
4921
  Récupération des valeurs contenues sous une polyligne
4922
4922
 
4923
- usemask (optional) restreint les éléments aux éléments non masqués de la matrice
4924
- getxy (optional) retourne en plus les coordonnées des points
4923
+ :param usemask : (optional) restreint les éléments aux éléments non masqués de la matrice
4924
+ :param getxy : (optional) retourne en plus les coordonnées des points
4925
4925
  """
4926
4926
  mypoints = self.get_xy_under_polyline(myvect, usemask)
4927
4927
 
@@ -4936,8 +4936,8 @@ class WolfArray(Element_To_Draw, header_wolf):
4936
4936
  """
4937
4937
  Récupération de toutes les valeurs contenues dans un polygone
4938
4938
 
4939
- usemask (optional) restreint les éléments aux éléments non masqués de la matrice
4940
- getxy (optional) retourne en plus les coordonnées des points
4939
+ :param usemask : (optional) restreint les éléments aux éléments non masqués de la matrice
4940
+ :param getxy : (optional) retourne en plus les coordonnées des points
4941
4941
 
4942
4942
  ICI on retourne le résultat de get_values_insidepoly, car une seule matrice, mais une autre classe pourrait vouloir faure autre chose
4943
4943
  C'est le cas notamment de Wolfresults_2D
@@ -4949,8 +4949,8 @@ class WolfArray(Element_To_Draw, header_wolf):
4949
4949
  """
4950
4950
  Récupération de toutes les valeurs sous la polyligne
4951
4951
 
4952
- usemask (optional) restreint les éléments aux éléments non masqués de la matrice
4953
- getxy (optional) retourne en plus les coordonnées des points
4952
+ :param usemask : (optional) restreint les éléments aux éléments non masqués de la matrice
4953
+ :param getxy : (optional) retourne en plus les coordonnées des points
4954
4954
 
4955
4955
  ICI on retourne le résultat de get_values_underpoly, car une seule matrice, mais une autre classe pourrait vouloir faure autre chose
4956
4956
  C'est le cas notamment de Wolfresults_2D
@@ -6931,8 +6931,9 @@ class WolfArrayMNAP(WolfArrayMB):
6931
6931
  class WolfArray_Sim2D(WolfArray):
6932
6932
  """
6933
6933
  Surcharge de WolfArray pour les matrices fines de simulation
6934
- Objectif :
6935
- - lier la matrice de mask à une source commune
6934
+
6935
+ Objectif : lier la matrice de mask à une source commune
6936
+
6936
6937
  """
6937
6938
  def __init__(self,
6938
6939
  fname:str=None,
@@ -2723,10 +2723,8 @@ class Wolfresults_2D(Element_To_Draw):
2723
2723
 
2724
2724
  which_block : numéro du bloc; 1-based;
2725
2725
 
2726
- ***
2727
- ATTENTION :
2728
- Les indices sont passés comme WOLF --> en numérottaion Fortran (démarrage à 1 et non à 0)
2729
- ***
2726
+ ATTENTION : Les indices sont passés comme WOLF --> en numérottaion Fortran (démarrage à 1 et non à 0)
2727
+
2730
2728
  """
2731
2729
  k=-1
2732
2730
  e=-1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wolfhece
3
- Version: 2.0.17
3
+ Version: 2.0.18
4
4
  Author-email: Stéphane Champailler <stephane.champailler@uliege.be>, Pierre Archambeau <pierre.archambeau@uliege.be>
5
5
  Project-URL: Homepage, https://uee.uliege.be/hece
6
6
  Project-URL: Issues, https://uee.uliege.be/hece
@@ -53,6 +53,12 @@ Requires-Dist: h5py
53
53
  Requires-Dist: basemap
54
54
  Requires-Dist: exif
55
55
  Requires-Dist: pyglm
56
+ Requires-Dist: mqtt
57
+ Requires-Dist: wradlib
58
+ Requires-Dist: seaborn
59
+ Requires-Dist: autograd
60
+ Requires-Dist: plyfile
61
+ Requires-Dist: tabulate
56
62
 
57
63
  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.
58
64