wolfhece 2.1.45__py3-none-any.whl → 2.1.46__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 CHANGED
@@ -7508,6 +7508,8 @@ class WolfMapViewer(wx.Frame):
7508
7508
  if self.active_array.nb_blocks > 0:
7509
7509
  txt += ' ; Nb blocks : {:d}'.format(self.active_array.nb_blocks)
7510
7510
 
7511
+ txt += ' ; Type : ' + self.active_array.dtype_str
7512
+
7511
7513
  self.StatusBar.SetStatusText(txt)
7512
7514
 
7513
7515
 
@@ -8393,6 +8395,8 @@ class WolfMapViewer(wx.Frame):
8393
8395
  if not altdown:
8394
8396
  newarray.mask_outsidepoly(self.active_vector)
8395
8397
 
8398
+ newarray.nullify_border(width=1)
8399
+
8396
8400
  self.add_object('array', newobj = newarray, id = self.active_array.idx + '_crop')
8397
8401
 
8398
8402
  self.Refresh()
wolfhece/apps/version.py CHANGED
@@ -5,7 +5,7 @@ class WolfVersion():
5
5
 
6
6
  self.major = 2
7
7
  self.minor = 1
8
- self.patch = 45
8
+ self.patch = 46
9
9
 
10
10
  def __str__(self):
11
11
 
@@ -746,6 +746,7 @@ class Config_Manager_2D_GPU:
746
746
  new_zones.add_zone(new_zone)
747
747
 
748
748
  curarray = WolfArray(curtif)
749
+ curarray.nullify_border(width=1)
749
750
  sux, sux, curvect, interior = curarray.suxsuy_contour()
750
751
  new_zone.add_vector(curvect, forceparent=True)
751
752
  curvect.set_legend_to_centroid(curtif.name)
@@ -1481,6 +1482,10 @@ class UI_Manager_2D_GPU():
1481
1482
  logging.info(_('Creating vecz ...'))
1482
1483
  mydata = self._treelist.GetItemData(self._selected_item)
1483
1484
 
1485
+ if not 'path' in mydata:
1486
+ logging.error(_('Please select a scenario to analyze !'))
1487
+ return
1488
+
1484
1489
  # création du fichier vrt
1485
1490
  new_zones = self._parent.create_vec(mydata['path'])
1486
1491
  logging.info(_('... done !'))
wolfhece/wolf_array.py CHANGED
@@ -4613,6 +4613,36 @@ class WolfArray(Element_To_Draw, header_wolf):
4613
4613
 
4614
4614
  return dtype
4615
4615
 
4616
+ @property
4617
+ def dtype_str(self):
4618
+ """
4619
+ Return the numpy dtype corresponding to the WOLF type, as a string
4620
+
4621
+ Pay ettention to the difference between :
4622
+ - LOGICAL : Fortran and VB6
4623
+ - Bool : Python
4624
+
4625
+ In VB6, logical is stored as int16
4626
+ In Fortran, there are Logical*1, Logical*2, Logical*4, Logical*8
4627
+ In Python, bool is one byte
4628
+ In Numpy, np.bool_ is one byte
4629
+ """
4630
+
4631
+ if self.wolftype in [WOLF_ARRAY_FULL_DOUBLE, WOLF_ARRAY_SYM_DOUBLE, WOLF_ARRAY_CSR_DOUBLE]:
4632
+ dtype = _('float64 - 8 bytes poer values')
4633
+ elif self.wolftype in [WOLF_ARRAY_FULL_SINGLE, WOLF_ARRAY_FULL_SINGLE_3D, WOLF_ARRAY_MB_SINGLE]:
4634
+ dtype = _('float32 - 4 bytes per values')
4635
+ elif self.wolftype in [WOLF_ARRAY_FULL_INTEGER, WOLF_ARRAY_MB_INTEGER, WOLF_ARRAY_MNAP_INTEGER]:
4636
+ dtype = _('int32 - 4 bytes per values')
4637
+ elif self.wolftype in [WOLF_ARRAY_FULL_INTEGER16, WOLF_ARRAY_FULL_INTEGER16_2]:
4638
+ dtype = _('int16 - 2 bytes per values')
4639
+ elif self.wolftype == WOLF_ARRAY_FULL_INTEGER8:
4640
+ dtype = _('int8 - 1 byte per values')
4641
+ elif self.wolftype == WOLF_ARRAY_FULL_LOGICAL:
4642
+ dtype = _('int16 - 2 bytes per values')
4643
+
4644
+ return dtype
4645
+
4616
4646
  def loadnap_and_apply(self):
4617
4647
  """
4618
4648
  Load a mask file (aka nap) and apply it to the array;
@@ -7940,22 +7970,33 @@ class WolfArray(Element_To_Draw, header_wolf):
7940
7970
 
7941
7971
  def map_values(self, keys_vals:dict, default:float=None):
7942
7972
  """
7943
- Apply a mapping to the array
7973
+ Mapping array values to new values defined by a dictionnary.
7974
+
7975
+ First, check if all values are in keys_vals. If not, set to default.
7976
+ If default is None, set to nullvalue.
7977
+
7978
+ :param keys_vals: dictionary of values to map
7979
+ :param default: default value if key not found
7944
7980
  """
7945
7981
 
7946
7982
  vals = self.get_unique_values()
7947
7983
 
7948
- if default is not None:
7949
- self.array.data[:,:] = default
7950
-
7984
+ def_keys = []
7951
7985
  for val in vals:
7952
7986
  if val not in keys_vals:
7953
- logging.warning(f"Value {val} not in keys_vals")
7987
+ logging.warning(_(f"Value {val} not in keys_vals -- Will be set to default or NullValue"))
7988
+ def_keys.append(val)
7954
7989
  continue
7955
7990
 
7956
7991
  for key, val in keys_vals.items():
7957
7992
  self.array.data[self.array.data == key] = val
7958
7993
 
7994
+ if default is None:
7995
+ default = self.nullvalue
7996
+
7997
+ for key in def_keys:
7998
+ self.array.data[self.array.data == key] = default
7999
+
7959
8000
  self.mask_data(self.nullvalue)
7960
8001
 
7961
8002
  self.reset_plot()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wolfhece
3
- Version: 2.1.45
3
+ Version: 2.1.46
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
@@ -6,7 +6,7 @@ wolfhece/ManageParams.py,sha256=EeuUI5Vvh9ixCvYf8YShMC1s1Yacc7OxOCN7q81gqiQ,517
6
6
  wolfhece/Model1D.py,sha256=uL1DJVmDI2xVSE7H6n3icn3QbsPtTHeg8E-6wkDloKw,476914
7
7
  wolfhece/PyConfig.py,sha256=FB8u0belXOXTb03Ln6RdVWvMgjzi3oGPCmw2dWa3lNg,8332
8
8
  wolfhece/PyCrosssections.py,sha256=FnmM9DWY_SAF2EDH9Gu2PojXNtSTRF4-aYQuAAJXBh4,112771
9
- wolfhece/PyDraw.py,sha256=mMPowIkidxWrEqQwvsFG__HADLjIu-nVRX0ChllpAUA,390687
9
+ wolfhece/PyDraw.py,sha256=t3U7YQwBA5OYh-Pf0tffZCv9Ha9SH3S-XAhFXVOpeBs,390808
10
10
  wolfhece/PyGui.py,sha256=aRWv9tBpRl7sKEd2gHWj8Bss0ZOKbGlUYIehWHFm8WY,105008
11
11
  wolfhece/PyGuiHydrology.py,sha256=f60E8K9eGTnRq5RDF6yvt-ahf2AYegwQ9t25zZ2Mk1A,14946
12
12
  wolfhece/PyHydrographs.py,sha256=jwtSNMMACwarxrtN1UeQYth99UNrhwPx1IGgUwcooHA,3774
@@ -47,7 +47,7 @@ wolfhece/pywalous.py,sha256=yRaWJjKckXef1d9D5devP0yFHC9uc6kRV4G5x9PNq9k,18972
47
47
  wolfhece/rain_SPWMI.py,sha256=qCfcmF7LajloOaCwnTrrSMzyME03YyilmRUOqrPrv3U,13846
48
48
  wolfhece/textpillow.py,sha256=map7HsGYML_o5NHRdFg2s_TVQed_lDnpYNDv27MM0Vw,14130
49
49
  wolfhece/tools_mpl.py,sha256=gQ3Jg1iuZiecmMqa5Eli2ZLSkttu68VXL8YmMDBaEYU,564
50
- wolfhece/wolf_array.py,sha256=AUSGolqu-YfyQ2SJp5WCMVD1gppvddHULJ3GrUpBjB4,357128
50
+ wolfhece/wolf_array.py,sha256=8UwY94icIbz2BGHtBBdjoia0ijlriJsLcvuJ0Ji-DTg,358915
51
51
  wolfhece/wolf_hist.py,sha256=7jeVrgSkM3ErJO6SRMH_PGzfLjIdw8vTy87kesldggk,3582
52
52
  wolfhece/wolf_texture.py,sha256=DS5eobLxrq9ljyebYfpMSQPn8shkUAZZVfqrOKN_QUU,16951
53
53
  wolfhece/wolf_tiles.py,sha256=2Ho2I20rHRY81KXxjgLOYISdF4OkJ2d6omeY4shDoGI,10386
@@ -71,7 +71,7 @@ wolfhece/apps/check_install.py,sha256=SG024u18G7VRLKynbp7DKD1jImtHwuWwN4bJWHm-YH
71
71
  wolfhece/apps/curvedigitizer.py,sha256=_hRR2PWow7PU7rTHIbc6ykZ08tCXcK9uy7RFrb4EKkE,5196
72
72
  wolfhece/apps/isocurrent.py,sha256=MuwTodHxdc6PrqNpphR2ntYf1NLL2n9klTPndGrOHDQ,4109
73
73
  wolfhece/apps/splashscreen.py,sha256=SrustmIQeXnsiD-92OzjdGhBi-S7c_j-cSvuX4T6rtg,2929
74
- wolfhece/apps/version.py,sha256=ls80i8D7bLwHlLa8Q9f7hPR0HGZE2sGy0sqH0i67EBs,388
74
+ wolfhece/apps/version.py,sha256=NcO4o6jWbzNyEQy_q5jp-nVRYwCMSE9siAWq3vRNszg,388
75
75
  wolfhece/apps/wolf.py,sha256=mM6Tyi4DlKQILmO49cDUCip9fYVy-hLXkY3YhZgIeUQ,591
76
76
  wolfhece/apps/wolf2D.py,sha256=yPQGee7fsegoQ8GfWKrWEjX1Az_ApL-UWlBiqPvaIyY,565
77
77
  wolfhece/apps/wolf_logo.bmp,sha256=ruJ4MA51CpGO_AYUp_dB4SWKHelvhOvd7Q8NrVOjDJk,3126
@@ -254,7 +254,7 @@ wolfhece/report/reporting.py,sha256=JUEXovx_S4jpYkJEBU0AC-1Qw2OkkWyV3VAp6iOfSHc,
254
254
  wolfhece/report/wolf_report.png,sha256=NoSV58LSwb-oxCcZScRiJno-kxDwRdm_bK-fiMsKJdA,592485
255
255
  wolfhece/scenario/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
256
256
  wolfhece/scenario/check_scenario.py,sha256=w7_SST4n_uec-MUBK36gbJzz2KC8qT_bVJ_VNyp7cMo,4917
257
- wolfhece/scenario/config_manager.py,sha256=k5wPR58AQk_xSN1uzKR0DjGume26NrbBFZvAbgMIhlc,85287
257
+ wolfhece/scenario/config_manager.py,sha256=UzInaAtxmTLqUaXAHg17iLcUZRGTrPPLsj2D9kBs6wI,85468
258
258
  wolfhece/scenario/imposebc_void.py,sha256=PqA_99hKcaqK5zsK6IRIc5Exgg3WVpgWU8xpwNL49zQ,5571
259
259
  wolfhece/scenario/update_void.py,sha256=ay8C_FxfXN627Hx46waaAO6F3ovYmOCTxseUumKAY7c,7474
260
260
  wolfhece/shaders/fragment_shader_texture.glsl,sha256=w6h8d5mJqFaGbao0LGmjRcFFdcEQ3ICIl9JpuT71K5k,177
@@ -277,8 +277,8 @@ wolfhece/ui/wolf_multiselection_collapsiblepane.py,sha256=8PlMYrb_8jI8h9F0_EagpM
277
277
  wolfhece/ui/wolf_times_selection_comparison_models.py,sha256=ORy7fz4dcp691qKzaOZHrRLZ0uXNhL-LIHxmpDGL6BI,5007
278
278
  wolfhece/wintab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
279
279
  wolfhece/wintab/wintab.py,sha256=8A-JNONV6ujgsgG3lM5Uw-pVgglPATwKs86oBzzljoc,7179
280
- wolfhece-2.1.45.dist-info/METADATA,sha256=y63i_CDK02w9EiVXGhd2JlyrM_GCuI0iP7BTQfkmbAw,2488
281
- wolfhece-2.1.45.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
282
- wolfhece-2.1.45.dist-info/entry_points.txt,sha256=Q5JuIWV4odeIJI3qc6fV9MwRoz0ezqPVlFC1Ppm_vdQ,395
283
- wolfhece-2.1.45.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
284
- wolfhece-2.1.45.dist-info/RECORD,,
280
+ wolfhece-2.1.46.dist-info/METADATA,sha256=Me3fak5XA8FOqijhfnRwcDvv4O8CNe51c17L0oHxDsY,2488
281
+ wolfhece-2.1.46.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
282
+ wolfhece-2.1.46.dist-info/entry_points.txt,sha256=Q5JuIWV4odeIJI3qc6fV9MwRoz0ezqPVlFC1Ppm_vdQ,395
283
+ wolfhece-2.1.46.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
284
+ wolfhece-2.1.46.dist-info/RECORD,,