wolfhece 2.1.111__py3-none-any.whl → 2.1.113__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/wolf_array.py CHANGED
@@ -2623,7 +2623,7 @@ class Ops_Array(wx.Frame):
2623
2623
  def OnContourList(self, event:wx.MouseEvent):
2624
2624
  """ Create contour - list of values """
2625
2625
 
2626
- with wx.TextEntryDialog(None, 'List of specific values separated by comma or tuple (min;max;step)',
2626
+ with wx.TextEntryDialog(None, 'List of specific values separated by comma or tuple (min;max;step)\n\nValues in tuples must be separated by ";"',
2627
2627
  'List of values', f'{self.parentarray.array.min()}, {self.parentarray.array.max()}') as dlg:
2628
2628
 
2629
2629
  if dlg.ShowModal() == wx.ID_OK:
@@ -2640,6 +2640,13 @@ class Ops_Array(wx.Frame):
2640
2640
  maxval = float(cur[1])
2641
2641
  step = float(cur[2])
2642
2642
  self._levels.extend(np.arange(minval, maxval, step))
2643
+ else:
2644
+ logging.warning('Ignoring tuple with wrong number of values - {}'.format(cur))
2645
+ else:
2646
+ try:
2647
+ self._levels.append(float(cur))
2648
+ except:
2649
+ logging.error('Error in chain text to float - {}'.format(cur))
2643
2650
  elif '(' in txt:
2644
2651
  cur = txt.replace('(', '').replace(')', '')
2645
2652
  cur = cur.split(';')
@@ -2648,11 +2655,13 @@ class Ops_Array(wx.Frame):
2648
2655
  maxval = float(cur[1])
2649
2656
  step = float(cur[2])
2650
2657
  self._levels.extend(np.arange(minval, maxval, step))
2658
+ else:
2659
+ logging.warning('Ignoring tuple with wrong number of values - {}'.format(cur))
2651
2660
  else:
2652
2661
  try:
2653
- self._levels = float(txt)
2662
+ self._levels = [float(txt)]
2654
2663
  except:
2655
- logging.error('Error in chain text to float')
2664
+ logging.error('Error in chain text to float - {}'.format(txt))
2656
2665
  return
2657
2666
 
2658
2667
  if isinstance(self._levels, list):
@@ -3322,7 +3331,10 @@ class SelectionData():
3322
3331
  def nb(self) -> int:
3323
3332
  """ Number of selected nodes """
3324
3333
 
3325
- return len(self.myselection)
3334
+ if self.myselection == 'all':
3335
+ return self.parent.nbnotnull
3336
+ else:
3337
+ return len(self.myselection)
3326
3338
 
3327
3339
  def Unmasksel(self, resetplot:bool=True):
3328
3340
  """ Unmask selection """
@@ -5190,8 +5202,13 @@ class WolfArray(Element_To_Draw, header_wolf):
5190
5202
  if mapviewer is not None:
5191
5203
  mapviewer.add_object('array', newobj = newarray, ToCheck = True, id = self.idx + '_extracted')
5192
5204
 
5193
- def crop_array(self, bbox:list[list[float],list[float]]) -> "WolfArray":
5194
- """ Crop the data based on the bounding box """
5205
+ def crop_array(self, bbox:list[list[float],list[float]], setnull_trx_try:bool = False) -> "WolfArray":
5206
+ """ Crop the data based on the bounding box
5207
+
5208
+ :param bbox: bounding box [[xmin, xmax], [ymin, ymax]]
5209
+ :param setnull_trx_try: set the translation to 0 if True, origx and origy will be set to the lower left corner of the bbox. Default is False
5210
+ """
5211
+
5195
5212
  imin, jmin = self.get_ij_from_xy(bbox[0][0], bbox[1][0])
5196
5213
  imax, jmax = self.get_ij_from_xy(bbox[0][1], bbox[1][1])
5197
5214
 
@@ -5205,12 +5222,16 @@ class WolfArray(Element_To_Draw, header_wolf):
5205
5222
  newheader.nby = jmax-jmin
5206
5223
  newheader.dx = self.dx
5207
5224
  newheader.dy = self.dy
5208
- newheader.origx, newheader.origy = self.get_xy_from_ij(imin, jmin)
5225
+ newheader.origx, newheader.origy = self.get_xy_from_ij(imin, jmin, abs = setnull_trx_try)
5209
5226
  newheader.origx -= self.dx / 2.
5210
5227
  newheader.origy -= self.dy / 2.
5211
5228
  newheader.translx = self.translx
5212
5229
  newheader.transly = self.transly
5213
5230
 
5231
+ if setnull_trx_try:
5232
+ newheader.translx = 0.
5233
+ newheader.transly = 0.
5234
+
5214
5235
  newarray = WolfArray(srcheader=newheader)
5215
5236
 
5216
5237
  newarray.array[:,:] = self.array[imin:imax, jmin:jmax]
@@ -6173,17 +6194,34 @@ class WolfArray(Element_To_Draw, header_wolf):
6173
6194
 
6174
6195
  if self.mngselection is None:
6175
6196
  destxy = self.get_xy_inside_polygon(working_vector)
6197
+ if len(destxy)==0:
6198
+ logging.debug(_('No points to interpolate'))
6199
+ return
6200
+
6201
+ destij = self.xy2ij_np(destxy)
6202
+ elif self.mngselection.myselection == 'all':
6203
+ destij = np.where(self.array.mask == False)
6204
+ destij = np.array(destij).transpose()
6205
+
6206
+ if len(destij)==0:
6207
+ logging.debug(_('No points to interpolate'))
6208
+ return
6209
+
6210
+ destxy = self.ij2xy_np(destij)
6176
6211
  else:
6177
6212
  if self.SelectionData.nb == 0:
6178
6213
  destxy = self.get_xy_inside_polygon(working_vector)
6179
6214
  else:
6180
6215
  destxy = self.SelectionData.myselection
6181
6216
 
6182
- if len(destxy)==0:
6183
- logging.debug(_('No points to interpolate'))
6184
- return
6217
+ if len(destxy)==0:
6218
+ logging.debug(_('No points to interpolate'))
6219
+ return
6220
+
6221
+ destij = self.xy2ij_np(destxy)
6185
6222
 
6186
- destij = np.asarray([list(self.get_ij_from_xy(x, y)) for x, y in destxy])
6223
+ # if convert_xy2ij:
6224
+ # destij = np.asarray([list(self.get_ij_from_xy(x, y)) for x, y in destxy])
6187
6225
 
6188
6226
  xyz = working_vector.asnparray3d()
6189
6227
 
@@ -9414,15 +9452,16 @@ class WolfArray(Element_To_Draw, header_wolf):
9414
9452
  if hasattr(cs, 'collections'):
9415
9453
  # MATPLOTLIB <=3.8
9416
9454
  logging.debug('MATPLOTLIB <=3.8')
9417
- logging.info(_('DEPRECATED: MATPLOTLIB <=3.8 -- You should consider upgrading to a more recent version of Matplotlib'))
9455
+ logging.debug(_('DEPRECATED: MATPLOTLIB <=3.8 -- You should consider upgrading to a more recent version of Matplotlib'))
9456
+ logging.debug(_('Take care Basemap may not be available in recent versions of mpl_toolkits'))
9418
9457
  for collection, level in zip(cs.collections, cs.levels):
9419
9458
  zone_level = zone(name=f'Contour {level}')
9420
9459
  for idx, path in enumerate(collection.get_paths()):
9421
9460
  vector_level = vector(name=f'Contour {level} - {idx}')
9461
+ zone_level.add_vector(vector_level, forceparent=True)
9422
9462
  for vertices in path.to_polygons(closed_only=False):
9423
9463
  for vertex in vertices:
9424
9464
  vector_level.add_vertex(wolfvertex(vertex[0], vertex[1]))
9425
- zone_level.add_vector(vector_level, forceparent=True)
9426
9465
  zones.add_zone(zone_level, forceparent=True)
9427
9466
  else:
9428
9467
  # MATPLOTLIB >3.8
@@ -9431,9 +9470,9 @@ class WolfArray(Element_To_Draw, header_wolf):
9431
9470
  zone_level = zone(name=f'Contour {level}')
9432
9471
  for idx, vertices in enumerate(path.to_polygons(closed_only=False)):
9433
9472
  vector_level = vector(name=f'Contour {level} - {idx}')
9473
+ zone_level.add_vector(vector_level, forceparent=True)
9434
9474
  for vertex in vertices:
9435
9475
  vector_level.add_vertex(wolfvertex(vertex[0], vertex[1]))
9436
- zone_level.add_vector(vector_level, forceparent=True)
9437
9476
  zones.add_zone(zone_level, forceparent=True)
9438
9477
 
9439
9478
  return zones
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: wolfhece
3
- Version: 2.1.111
3
+ Version: 2.1.113
4
4
  Author-email: Pierre Archambeau <pierre.archambeau@uliege.be>
5
5
  License: Copyright (c) 2024 University of Liege. All rights reserved.
6
6
  Project-URL: Homepage, https://uee.uliege.be/hece
@@ -37,7 +37,7 @@ Requires-Dist: owslib
37
37
  Requires-Dist: beautifulsoup4
38
38
  Requires-Dist: requests
39
39
  Requires-Dist: notebook
40
- Requires-Dist: matplotlib==3.10.*
40
+ Requires-Dist: matplotlib
41
41
  Requires-Dist: mkl
42
42
  Requires-Dist: python-gettext
43
43
  Requires-Dist: shapely
@@ -61,7 +61,6 @@ Requires-Dist: opencv-python
61
61
  Requires-Dist: xarray
62
62
  Requires-Dist: rasterio
63
63
  Requires-Dist: h5py
64
- Requires-Dist: basemap
65
64
  Requires-Dist: exif
66
65
  Requires-Dist: pyglm
67
66
  Requires-Dist: mqtt
@@ -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=Bb1T8qjgKMChadJYDrHO9uo6CwItiAXScZpYkDXqZF8,11387
9
9
  wolfhece/PyCrosssections.py,sha256=FnmM9DWY_SAF2EDH9Gu2PojXNtSTRF4-aYQuAAJXBh4,112771
10
- wolfhece/PyDraw.py,sha256=upQGIk2ZZXot6jyPjfbIrommg1AHRvb24q-Rz1dySg0,497162
10
+ wolfhece/PyDraw.py,sha256=4VOvHsdTXUP3C0W4qH1mPtBrO31GS1BTb3aPUgkbTDM,497161
11
11
  wolfhece/PyGui.py,sha256=Ceaby7kyTFf-eZQy4b6sI_b6y2ssN37bSGWBqOcb5VM,144145
12
12
  wolfhece/PyGuiHydrology.py,sha256=f60E8K9eGTnRq5RDF6yvt-ahf2AYegwQ9t25zZ2Mk1A,14946
13
13
  wolfhece/PyHydrographs.py,sha256=jwtSNMMACwarxrtN1UeQYth99UNrhwPx1IGgUwcooHA,3774
@@ -35,7 +35,7 @@ wolfhece/gpuview.py,sha256=Jql8pLZ0PpvZ_ScT-U4jsXANZ9j4-m_RWhsLA2HISuQ,24544
35
35
  wolfhece/images_tiles.py,sha256=w5BX6kRqA0wW9TWyKrJUIRl-XyqHclq_kp5ET2VA0Sg,3227
36
36
  wolfhece/import_ascfiles.py,sha256=6Zl8qBR9c6VtyziookQ8YE9KC0GtW_J9WFt5ubyGp-s,4465
37
37
  wolfhece/ins.py,sha256=uUeLMS1n3GPnfJhxl0Z2l-UXpmPUgthuwct282OOEzk,36184
38
- wolfhece/irm_qdf.py,sha256=KyrIk0Gu50Q702EWxRpwKTWI2KGjtHA1l8CL-Y469O0,26394
38
+ wolfhece/irm_qdf.py,sha256=DMdDEAYbgYxApObm6w-dZbBmA8ec6PghBLXR2lUEZLc,27457
39
39
  wolfhece/ismember.py,sha256=fkLvaH9fhx-p0QrlEzqa6ySO-ios3ysjAgXVXzLgSpY,2482
40
40
  wolfhece/matplotlib_fig.py,sha256=nWhac23K6eQJGXhDFiakmT52j-QUzlMHQmZ2je56GVE,81119
41
41
  wolfhece/multiprojects.py,sha256=Sd6Bl6YP33jlR79A6rvSLu23vq8sqbFYL8lWuVPkEpE,21549
@@ -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=8CzabYInhFmOjr-Wwfse5L0Ylx3SsjkUylitOSOm4Oo,424148
55
+ wolfhece/wolf_array.py,sha256=FNUmNOFadluyJNrKgPfC5ImKdWjjN--REFvLwF9zCTA,425937
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=-YfTelZjpfgqZXd1yMsGFajz_oDISXkC0zB5fW-8MBY,10486
@@ -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=_E5zp4InRVxGzGtcse3-ynBytT7LFkwOrTupyZusKys,389
83
+ wolfhece/apps/version.py,sha256=4Q7M7OW1D3LcR-3enh9owCZ2qPjYd35kSJ83ScOS9r4,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
@@ -218,7 +218,7 @@ wolfhece/locales/base.po,sha256=meU93yWX-AlU13FlIYnuXNnYsxVB9k4O_QoBQ_h2W1I,1026
218
218
  wolfhece/locales/base.pot,sha256=laQ4oYGvdH5IaFtgx6TVjnr28_JX9bdSBZFcGndjuGk,1116
219
219
  wolfhece/mar/Interface_MAR_WOLF_objet.py,sha256=_PNOrZDr-7CR19x_XHqLB5Si2hk8e469sYCgv3sTJmk,53791
220
220
  wolfhece/mar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
221
- wolfhece/mar/commontools.py,sha256=vCmoNI2sMOco6Y4KPpKb7WORq45qFU_lSxbKGV9oZ8A,53824
221
+ wolfhece/mar/commontools.py,sha256=SiSxpv5BFYEBCEydsE4ZmBuot3KTy0UYMx2aa-4fbuQ,52549
222
222
  wolfhece/mar/interface_MAR_WOLF.py,sha256=MWeXaHLDT4Eo9jZOAvz013lmpgGYT1v9VUYGAgBgSRU,21454
223
223
  wolfhece/math_parser/__init__.py,sha256=Mi7YTrlJtcflyrRdZHHgE-uNPUFfOWmsf8FsOwKBRPI,27961
224
224
  wolfhece/math_parser/calculator.py,sha256=DgRJ5OgEK11Tb24zGvYZXiT3PpCTaXX_0IXxrZkyNIg,7449
@@ -293,8 +293,8 @@ wolfhece/ui/wolf_multiselection_collapsiblepane.py,sha256=8PlMYrb_8jI8h9F0_EagpM
293
293
  wolfhece/ui/wolf_times_selection_comparison_models.py,sha256=ORy7fz4dcp691qKzaOZHrRLZ0uXNhL-LIHxmpDGL6BI,5007
294
294
  wolfhece/wintab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
295
295
  wolfhece/wintab/wintab.py,sha256=8A-JNONV6ujgsgG3lM5Uw-pVgglPATwKs86oBzzljoc,7179
296
- wolfhece-2.1.111.dist-info/METADATA,sha256=2qEAB6gzSOu-t6WAFWuvDKlIbcjK-CghDSUnaL7E5sA,2619
297
- wolfhece-2.1.111.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
298
- wolfhece-2.1.111.dist-info/entry_points.txt,sha256=ZZ-aSfbpdcmo-wo84lRFzBN7LaSnD1XRGSaAKVX-Gpc,522
299
- wolfhece-2.1.111.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
300
- wolfhece-2.1.111.dist-info/RECORD,,
296
+ wolfhece-2.1.113.dist-info/METADATA,sha256=eG28qlf_YmdhD6F_H4PUBB_Pz2HBz2AFZAbiEyVid3w,2587
297
+ wolfhece-2.1.113.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
298
+ wolfhece-2.1.113.dist-info/entry_points.txt,sha256=ZZ-aSfbpdcmo-wo84lRFzBN7LaSnD1XRGSaAKVX-Gpc,522
299
+ wolfhece-2.1.113.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
300
+ wolfhece-2.1.113.dist-info/RECORD,,