wolfhece 2.2.1__py3-none-any.whl → 2.2.2__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 +1 -1
- wolfhece/PyHydrographs.py +2 -3
- wolfhece/PyParams.py +2 -3
- wolfhece/PyVertex.py +7 -7
- wolfhece/PyVertexvectors.py +1 -0
- wolfhece/acceptability/Parallels.py +25 -19
- wolfhece/acceptability/acceptability_gui.py +62 -33
- wolfhece/acceptability/func.py +11 -5
- wolfhece/apps/version.py +1 -1
- wolfhece/wolf_array.py +24 -22
- {wolfhece-2.2.1.dist-info → wolfhece-2.2.2.dist-info}/METADATA +1 -1
- {wolfhece-2.2.1.dist-info → wolfhece-2.2.2.dist-info}/RECORD +15 -15
- {wolfhece-2.2.1.dist-info → wolfhece-2.2.2.dist-info}/WHEEL +0 -0
- {wolfhece-2.2.1.dist-info → wolfhece-2.2.2.dist-info}/entry_points.txt +0 -0
- {wolfhece-2.2.1.dist-info → wolfhece-2.2.2.dist-info}/top_level.txt +0 -0
wolfhece/PyDraw.py
CHANGED
@@ -9704,7 +9704,7 @@ class WolfMapViewer(wx.Frame):
|
|
9704
9704
|
with open(filename,'r') as f:
|
9705
9705
|
text=f.read().splitlines()
|
9706
9706
|
tmphead=''
|
9707
|
-
for i in range(4):
|
9707
|
+
for i in range(min(4, len(text))):
|
9708
9708
|
tmphead += text[i].replace('\t','\\t') +'\n'
|
9709
9709
|
|
9710
9710
|
dlg = wx.MessageDialog(None,_('Is there a file header (one upper line containing column names)?') + '\n\n' + tmphead,style=wx.YES_NO|wx.NO_DEFAULT)
|
wolfhece/PyHydrographs.py
CHANGED
@@ -55,14 +55,13 @@ class Hydrograph(pd.Series):
|
|
55
55
|
dtype=None,
|
56
56
|
name='Discharge',
|
57
57
|
copy=None,
|
58
|
-
file_path:str =''
|
59
|
-
fastpath=False) -> None:
|
58
|
+
file_path:str ='') -> None:
|
60
59
|
if file_path != '':
|
61
60
|
data =self.read_from_wolf_file(file_path)
|
62
61
|
elif isinstance(data, str):
|
63
62
|
data = self.read_from_wolf_file(data)
|
64
63
|
|
65
|
-
super().__init__(data,index,dtype, name, copy
|
64
|
+
super().__init__(data,index,dtype, name, copy)
|
66
65
|
|
67
66
|
def write_as_wolf_file(self,
|
68
67
|
file_path:str,
|
wolfhece/PyParams.py
CHANGED
@@ -721,15 +721,14 @@ class Wolf_Param(wx.Frame):
|
|
721
721
|
#essai pour voir si le groupe existe ou non dans les params actifs
|
722
722
|
if not self.is_in_active(groupname):
|
723
723
|
page_active.Append(pg.PropertyCategory(groupname))
|
724
|
+
self.myparams[groupname] = {}
|
724
725
|
|
725
726
|
#teste si param existe
|
726
727
|
activeprop = self.prop.GetPropertyByName(groupname + paramname)
|
727
728
|
if activeprop is None:
|
728
729
|
#si non existant --> on ajoute, si existant --> rien à faire
|
729
730
|
self._insert_elem_to_page(page_active, groupname, param_def)
|
730
|
-
|
731
|
-
# #si non existant --> on ajoute, si existant --> rien à faire
|
732
|
-
# self._add_elem_to_page(page_active, groupname, param_def)
|
731
|
+
self.myparams[groupname][paramname] = param_def.copy()
|
733
732
|
|
734
733
|
else:
|
735
734
|
#recopiage de la valeur par défaut
|
wolfhece/PyVertex.py
CHANGED
@@ -630,12 +630,12 @@ class cloud_vertices(Element_To_Draw):
|
|
630
630
|
elif ';' in curhead:
|
631
631
|
# séparateur tabulation
|
632
632
|
sep = ';'
|
633
|
-
elif ' ' in curhead:
|
634
|
-
# séparateur espace
|
635
|
-
sep = ' '
|
636
633
|
elif ',' in curhead:
|
637
634
|
# séparateur espace
|
638
635
|
sep = ','
|
636
|
+
elif ' ' in curhead:
|
637
|
+
# séparateur espace
|
638
|
+
sep = ' '
|
639
639
|
headers = curhead.split(sep)
|
640
640
|
nbcols = len(headers)
|
641
641
|
else:
|
@@ -647,14 +647,14 @@ class cloud_vertices(Element_To_Draw):
|
|
647
647
|
elif ';' in curline:
|
648
648
|
# séparateur point-virgule
|
649
649
|
sep = ';'
|
650
|
-
elif ' ' in curline:
|
651
|
-
# séparateur espace
|
652
|
-
sep = ' '
|
653
|
-
curline = re.sub(' +', ' ', curline)
|
654
650
|
elif ',' in curline:
|
655
651
|
# séparateur virgule
|
656
652
|
sep = ','
|
657
653
|
curline = re.sub(' +', ' ', curline)
|
654
|
+
elif ' ' in curline:
|
655
|
+
# séparateur espace
|
656
|
+
sep = ' '
|
657
|
+
curline = re.sub(' +', ' ', curline)
|
658
658
|
|
659
659
|
curval = curline.split(sep)
|
660
660
|
nbcols = len(curval)
|
wolfhece/PyVertexvectors.py
CHANGED
@@ -15,14 +15,14 @@ from functools import partial
|
|
15
15
|
import os
|
16
16
|
from pathlib import Path
|
17
17
|
|
18
|
-
def parallel_gpd_clip(layer:list[str],
|
19
|
-
file_path:str,
|
20
|
-
Study_Area:str,
|
21
|
-
output_dir:str,
|
18
|
+
def parallel_gpd_clip(layer:list[str],
|
19
|
+
file_path:str,
|
20
|
+
Study_Area:str,
|
21
|
+
output_dir:str,
|
22
22
|
number_procs:int = 1):
|
23
|
-
"""
|
23
|
+
"""
|
24
24
|
Clip the layers to the study area.
|
25
|
-
|
25
|
+
|
26
26
|
Process the layers in parallel.
|
27
27
|
|
28
28
|
FIXME: The GPKG driver is it totally parallel compliant?
|
@@ -50,13 +50,15 @@ def parallel_gpd_clip(layer:list[str],
|
|
50
50
|
Study_Area=Study_Area,
|
51
51
|
output_dir=output_dir)
|
52
52
|
result_list = pool.map(prod_x, layer)
|
53
|
+
pool.close()
|
54
|
+
pool.join()
|
53
55
|
|
54
56
|
def parallel_v2r(manager:Accept_Manager,
|
55
|
-
attribute:str,
|
57
|
+
attribute:str,
|
56
58
|
pixel:float,
|
57
59
|
number_procs:int = 1,
|
58
60
|
convert_to_sparse:bool = False):
|
59
|
-
"""
|
61
|
+
"""
|
60
62
|
Convert the vector layers to raster.
|
61
63
|
|
62
64
|
Process the layers in parallel.
|
@@ -69,7 +71,7 @@ def parallel_v2r(manager:Accept_Manager,
|
|
69
71
|
:param number_procs: The number of processors to use
|
70
72
|
|
71
73
|
"""
|
72
|
-
|
74
|
+
|
73
75
|
attribute = str(attribute)
|
74
76
|
layers = manager.get_layers_in_codevulne()
|
75
77
|
|
@@ -81,18 +83,20 @@ def parallel_v2r(manager:Accept_Manager,
|
|
81
83
|
else:
|
82
84
|
pool = multiprocessing.Pool(processes=number_procs)
|
83
85
|
prod_x=partial(vector_to_raster,
|
84
|
-
manager=manager,
|
85
|
-
attribute=attribute,
|
86
|
+
manager=manager,
|
87
|
+
attribute=attribute,
|
86
88
|
pixel_size=pixel,
|
87
|
-
convert_to_sparse=convert_to_sparse)
|
88
|
-
|
89
|
+
convert_to_sparse=convert_to_sparse)
|
90
|
+
|
89
91
|
result_list = pool.map(prod_x, layers)
|
92
|
+
pool.close()
|
93
|
+
pool.join()
|
90
94
|
|
91
|
-
def parallel_datamod(manager:Accept_Manager,
|
95
|
+
def parallel_datamod(manager:Accept_Manager,
|
92
96
|
picc:gpd.GeoDataFrame,
|
93
97
|
capa:gpd.GeoDataFrame,
|
94
98
|
number_procs:int = 1):
|
95
|
-
"""
|
99
|
+
"""
|
96
100
|
Apply the data modification to the layers.
|
97
101
|
|
98
102
|
Process the layers in parallel.
|
@@ -103,7 +107,7 @@ def parallel_datamod(manager:Accept_Manager,
|
|
103
107
|
:param number_procs: The number of processors to use
|
104
108
|
|
105
109
|
"""
|
106
|
-
|
110
|
+
|
107
111
|
layers = manager.get_layers_in_clipgdb()
|
108
112
|
|
109
113
|
if number_procs == 1:
|
@@ -113,8 +117,10 @@ def parallel_datamod(manager:Accept_Manager,
|
|
113
117
|
pool = multiprocessing.Pool(processes=number_procs)
|
114
118
|
prod_x=partial(data_modification,
|
115
119
|
manager=manager,
|
116
|
-
picc=picc,
|
117
|
-
capa=capa)
|
118
|
-
|
120
|
+
picc=picc,
|
121
|
+
capa=capa)
|
122
|
+
|
119
123
|
result_list = pool.map(prod_x, layers)
|
124
|
+
pool.close()
|
125
|
+
pool.join()
|
120
126
|
|
@@ -60,6 +60,9 @@ def read_export_z_bin(fn_read, fn_write, fn_laststep):
|
|
60
60
|
wd.array = wd.array + top.array
|
61
61
|
fn_write = fn_write.with_suffix('.bin')
|
62
62
|
wd.write_all(fn_write)
|
63
|
+
fn_write = fn_write.with_suffix('.tif')
|
64
|
+
wd.write_all(fn_write)
|
65
|
+
top.write_all(fn_write.parent / fn_write.stem / "_dem.tif")
|
63
66
|
shutil.rmtree(fn_temp)
|
64
67
|
|
65
68
|
def riverbed_trace(fn_read_simu, fn_output, threshold):
|
@@ -964,6 +967,8 @@ class AcceptabilityGui(wx.Frame):
|
|
964
967
|
logging.error('No hydraulic scenario selected.')
|
965
968
|
else:
|
966
969
|
logging.error('No folder found / selected. Please try again.')
|
970
|
+
return
|
971
|
+
|
967
972
|
self._check_listbox.Clear()
|
968
973
|
self.sims = {}
|
969
974
|
for subdir in hydraulic_scen.iterdir():
|
@@ -1077,6 +1082,7 @@ class AcceptabilityGui(wx.Frame):
|
|
1077
1082
|
LAST_STEP_EXTRACTED using the fast marching
|
1078
1083
|
interpolation routine holes.exe, by creating a batch file
|
1079
1084
|
while performing multiple checks on the required input files."""
|
1085
|
+
|
1080
1086
|
if not hasattr(self, 'file_paths'):
|
1081
1087
|
with wx.MessageDialog(self,
|
1082
1088
|
f"Please, first load gpu simulations via the previous button.",
|
@@ -1170,49 +1176,72 @@ class AcceptabilityGui(wx.Frame):
|
|
1170
1176
|
os.remove(path_bat_file)
|
1171
1177
|
path_code = os.path.join(self._manager.IN_WATER_DEPTH, "holes.exe")
|
1172
1178
|
|
1173
|
-
A=[]
|
1174
|
-
for path in checked_paths:
|
1175
|
-
parts = path.name.split("sim_")
|
1176
|
-
A.extend([os.path.join(path_LastSteps, g) for g in os.listdir(path_LastSteps) if g.endswith(f"{parts[1]}.bin")])
|
1177
|
-
B = [os.path.join(path_Interp, os.path.splitext(os.path.basename(f))[0]) for f in A]
|
1178
|
-
if not A or not B or not C or not D:
|
1179
|
-
logging.info("Missing files.")
|
1180
|
-
with wx.MessageDialog(self, f"The interpolation cannot go on, as some files are missing (see logs): please check the DEM_FILES or the EXTRACTED_LAST_STEP_WD folders.",
|
1181
|
-
"Missing files.", wx.OK | wx.ICON_INFORMATION) as dlg:
|
1182
|
-
dlg.ShowModal()
|
1183
|
-
with open(path_bat_file, "w") as bat_file:
|
1184
|
-
for a, b in zip(A, B):
|
1185
|
-
line = f'"{path_code}" filling in="{a}" out="{b}" mask="{C}" dem="{D} avoid_last=1"\n'
|
1186
|
-
bat_file.write(line)
|
1187
|
-
logging.info(message_info)
|
1188
|
-
|
1189
|
-
empty_folder(self._manager.IN_SA_INTERP)
|
1190
|
-
path_bat_file = os.path.join(self._manager.IN_SCEN_DIR, "process_files.bat")
|
1191
1179
|
|
1180
|
+
renamed_files = []
|
1192
1181
|
if True:
|
1182
|
+
A=[]
|
1183
|
+
for path in checked_paths:
|
1184
|
+
parts = path.name.split("sim_")
|
1185
|
+
A.extend([os.path.join(path_LastSteps, g) for g in os.listdir(path_LastSteps) if g.endswith(f"{parts[1]}.bin")])
|
1186
|
+
B = [os.path.join(path_Interp, os.path.splitext(os.path.basename(f))[0]) for f in A]
|
1187
|
+
if not A or not B or not C or not D:
|
1188
|
+
logging.info("Missing files.")
|
1189
|
+
with wx.MessageDialog(self, f"The interpolation cannot go on, as some files are missing (see logs): please check the DEM_FILES or the EXTRACTED_LAST_STEP_WD folders.",
|
1190
|
+
"Missing files.", wx.OK | wx.ICON_INFORMATION) as dlg:
|
1191
|
+
dlg.ShowModal()
|
1192
|
+
with open(path_bat_file, "w") as bat_file:
|
1193
|
+
for a, b in zip(A, B):
|
1194
|
+
line = f'"{path_code}" filling in="{a}" out="{b}" mask="{C}" dem="{D} avoid_last=1"\n'
|
1195
|
+
bat_file.write(line)
|
1196
|
+
logging.info(message_info)
|
1197
|
+
|
1198
|
+
empty_folder(self._manager.IN_SA_INTERP)
|
1199
|
+
path_bat_file = os.path.join(self._manager.IN_SCEN_DIR, "process_files.bat")
|
1200
|
+
|
1193
1201
|
# FORTRAN HOLES.EXE
|
1194
1202
|
subprocess.run([path_bat_file], check=True)
|
1203
|
+
path_fichier=self._manager.IN_SA_INTERP
|
1204
|
+
for file in path_fichier.glob("*.tif"):
|
1205
|
+
if "_h" in file.name:
|
1206
|
+
new_name = file.stem.split("_h")[0].replace(".bin", "") + ".tif"
|
1207
|
+
file.rename(file.with_name(new_name))
|
1208
|
+
renamed_files.append(new_name)
|
1209
|
+
#deleting the other
|
1210
|
+
for file in path_fichier.glob("*.tif"):
|
1211
|
+
if "_combl" in file.name or file.name not in renamed_files:
|
1212
|
+
file.unlink()
|
1195
1213
|
else:
|
1196
1214
|
#Python eikonal model
|
1197
1215
|
from ..eikonal import inpaint_array, inpaint_waterlevel
|
1198
|
-
|
1216
|
+
|
1217
|
+
dtm = WolfArray(D)
|
1218
|
+
|
1219
|
+
A=[]
|
1220
|
+
for path in checked_paths:
|
1221
|
+
parts = path.name.split("sim_")
|
1222
|
+
A.extend([os.path.join(path_LastSteps, g) for g in os.listdir(path_LastSteps) if g.endswith(f"{parts[1]}.tif")])
|
1223
|
+
if not A or not C or not D:
|
1224
|
+
logging.info("Missing files.")
|
1225
|
+
with wx.MessageDialog(self, f"The interpolation cannot go on, as some files are missing (see logs): please check the DEM_FILES or the EXTRACTED_LAST_STEP_WD folders.",
|
1226
|
+
"Missing files.", wx.OK | wx.ICON_INFORMATION) as dlg:
|
1227
|
+
dlg.ShowModal()
|
1228
|
+
|
1229
|
+
empty_folder(self._manager.IN_SA_INTERP)
|
1230
|
+
|
1231
|
+
for a in A:
|
1232
|
+
a = Path(a)
|
1199
1233
|
in_wa = WolfArray(a)
|
1200
|
-
|
1201
|
-
|
1202
|
-
inpaint_array(in_wa.array, mask_wa.array, dem_wa.array, avoid_last=1)
|
1203
|
-
in_wa.write_all(b)
|
1234
|
+
dem_wa = WolfArray(a.parent / a.stem / "_dem.tif")
|
1235
|
+
_t, _wse, _wd = inpaint_waterlevel(in_wa.array, dem_wa.array.data, dtm.array.data, ignore_last_patches=1)
|
1204
1236
|
|
1205
|
-
|
1206
|
-
|
1207
|
-
for file in path_fichier.glob("*.tif"):
|
1208
|
-
if "_h" in file.name:
|
1209
|
-
new_name = file.stem.split("_h")[0].replace(".bin", "") + ".tif"
|
1210
|
-
file.rename(file.with_name(new_name))
|
1237
|
+
b = os.path.join(path_Interp, os.path.splitext(os.path.basename(a))[0])
|
1238
|
+
new_name = Path(b).with_suffix('.tif')
|
1211
1239
|
renamed_files.append(new_name)
|
1212
|
-
|
1213
|
-
|
1214
|
-
|
1215
|
-
|
1240
|
+
|
1241
|
+
in_wa.array.data[:,:] = _wd
|
1242
|
+
in_wa.array.mask[:,:] = _wd == 0.
|
1243
|
+
in_wa.write_all(new_name)
|
1244
|
+
|
1216
1245
|
logging.info("Filling completed.")
|
1217
1246
|
with wx.MessageDialog(self, f"Filling completed. Created files : {renamed_files}",
|
1218
1247
|
"Redirecting", wx.OK | wx.ICON_INFORMATION) as dlg:
|
wolfhece/acceptability/func.py
CHANGED
@@ -982,14 +982,18 @@ class Accept_Manager():
|
|
982
982
|
|
983
983
|
def check_nodata(self, name, path_baseline):
|
984
984
|
""" Check nodata in a path """
|
985
|
+
from ..wolf_array import WOLF_ARRAY_FULL_INTEGER8
|
985
986
|
list_tif = Accept_Manager.select_name_tif(self, path_baseline, self.IN_CH_SA_SC, name)
|
986
987
|
for cur_lst in list_tif:
|
987
988
|
curarray:WolfArray = WolfArray(cur_lst)
|
988
|
-
if curarray.
|
989
|
-
curarray.nullvalue
|
990
|
-
|
991
|
-
|
992
|
-
|
989
|
+
if curarray.wolftype != WOLF_ARRAY_FULL_INTEGER8:
|
990
|
+
if curarray.nullvalue != 99999.:
|
991
|
+
curarray.nullvalue = 99999.
|
992
|
+
curarray.set_nullvalue_in_mask()
|
993
|
+
curarray.write_all()
|
994
|
+
logging.warning(_('nodata changed in favor of 99999. value for file {} !'.format(cur_lst)))
|
995
|
+
else:
|
996
|
+
logging.info(_('nodata value is {} for file {} !'.format(curarray.nullvalue, cur_lst)))
|
993
997
|
|
994
998
|
def create_vrtIfExists(self, fn_baseline, fn_scenario, fn_vrt, name):
|
995
999
|
""" Create a vrt file from a path """
|
@@ -1569,6 +1573,8 @@ def compute_acceptability(manager:Accept_Manager,
|
|
1569
1573
|
points_accept["h-1"][idx_pts],
|
1570
1574
|
points_accept["h-2.5"][idx_pts]]
|
1571
1575
|
|
1576
|
+
accept_pts = list(accept_pts).copy()
|
1577
|
+
|
1572
1578
|
update_accept(accept, model_h, ij, bounds, accept_pts)
|
1573
1579
|
|
1574
1580
|
if save_to_file:
|
wolfhece/apps/version.py
CHANGED
wolfhece/wolf_array.py
CHANGED
@@ -10,13 +10,15 @@ copying or distribution of this file, via any medium, is strictly prohibited.
|
|
10
10
|
|
11
11
|
import os
|
12
12
|
import sys
|
13
|
+
|
14
|
+
import numpy as np
|
15
|
+
import numpy.ma as ma
|
16
|
+
|
13
17
|
from typing import Union, Literal
|
14
18
|
from matplotlib.axis import Axis
|
15
19
|
from matplotlib.figure import Figure
|
16
20
|
import matplotlib.pyplot as plt
|
17
21
|
from matplotlib.colors import Colormap
|
18
|
-
import numpy as np
|
19
|
-
import numpy.ma as ma
|
20
22
|
import math as m
|
21
23
|
import logging
|
22
24
|
import json
|
@@ -40,7 +42,6 @@ import re
|
|
40
42
|
import wx
|
41
43
|
from scipy.interpolate import interp2d, griddata
|
42
44
|
from scipy.ndimage import laplace, label, sum_labels
|
43
|
-
import pygltflib
|
44
45
|
from shapely.geometry import Point, LineString, MultiLineString, Polygon, MultiPolygon, MultiPoint
|
45
46
|
from shapely.ops import linemerge, substring, polygonize_full
|
46
47
|
from shapely import contains, contains_properly, contains_xy, touches, prepare, destroy_prepared, is_prepared
|
@@ -56,12 +57,6 @@ except ImportError as e:
|
|
56
57
|
print(e)
|
57
58
|
raise Exception(_('Error importing modules'))
|
58
59
|
|
59
|
-
try:
|
60
|
-
from osgeo import gdal
|
61
|
-
except ImportError as e:
|
62
|
-
print(e)
|
63
|
-
raise Exception(_('Error importing GDAL library'))
|
64
|
-
|
65
60
|
try:
|
66
61
|
from .Coordinates_operations import reproject_and_resample_raster
|
67
62
|
except ImportError as e:
|
@@ -132,6 +127,13 @@ VERSION_RGB = 3
|
|
132
127
|
|
133
128
|
from numba import jit
|
134
129
|
|
130
|
+
try:
|
131
|
+
from osgeo import gdal, osr
|
132
|
+
gdal.UseExceptions()
|
133
|
+
except ImportError as e:
|
134
|
+
print(e)
|
135
|
+
raise Exception(_('Error importing GDAL library'))
|
136
|
+
|
135
137
|
@jit(nopython=True)
|
136
138
|
def custom_gradient(array: np.ndarray):
|
137
139
|
""" Calculate the gradient manually """
|
@@ -878,7 +880,7 @@ class header_wolf():
|
|
878
880
|
locpath = Path(filename)
|
879
881
|
|
880
882
|
if filename.endswith('.tif') or filename.endswith('.tiff') :
|
881
|
-
from osgeo import gdal
|
883
|
+
# from osgeo import gdal
|
882
884
|
|
883
885
|
raster:gdal.Dataset
|
884
886
|
raster = gdal.Open(filename)
|
@@ -932,7 +934,7 @@ class header_wolf():
|
|
932
934
|
|
933
935
|
elif filename.endswith('.vrt'):
|
934
936
|
# Virtual raster
|
935
|
-
from osgeo import gdal
|
937
|
+
# from osgeo import gdal
|
936
938
|
|
937
939
|
raster:gdal.Dataset
|
938
940
|
raster = gdal.Open(filename)
|
@@ -6099,7 +6101,7 @@ class WolfArray(Element_To_Draw, header_wolf):
|
|
6099
6101
|
:param extent: suffix to add to the filename before the extension '.tif' (only if outdir is provided)
|
6100
6102
|
:param EPSG: EPSG code, by default 31370 (Lambert 72)
|
6101
6103
|
"""
|
6102
|
-
from osgeo import gdal, osr, gdalconst
|
6104
|
+
# from osgeo import gdal, osr, gdalconst
|
6103
6105
|
|
6104
6106
|
outdir = str(outdir)
|
6105
6107
|
extent = str(extent)
|
@@ -6378,7 +6380,7 @@ class WolfArray(Element_To_Draw, header_wolf):
|
|
6378
6380
|
:param which: band to import
|
6379
6381
|
:param crop: crop the data - [xmin, xmax, ymin, ymax]
|
6380
6382
|
"""
|
6381
|
-
from osgeo import gdal, osr, gdalconst
|
6383
|
+
# from osgeo import gdal, osr, gdalconst
|
6382
6384
|
|
6383
6385
|
if fn !='':
|
6384
6386
|
pass
|
@@ -7831,9 +7833,9 @@ class WolfArray(Element_To_Draw, header_wolf):
|
|
7831
7833
|
|
7832
7834
|
if type(other) == float:
|
7833
7835
|
if other != 0.:
|
7834
|
-
newArray.array = np.ma.masked_array(self.array + other, self.array.mask)
|
7836
|
+
newArray.array = np.ma.masked_array(self.array + other, self.array.mask, dtype=self.array.dtype)
|
7835
7837
|
else:
|
7836
|
-
newArray.array = np.ma.masked_array(self.array + other.array, self.array.mask)
|
7838
|
+
newArray.array = np.ma.masked_array(self.array + other.array, self.array.mask, dtype=self.array.dtype)
|
7837
7839
|
newArray.count()
|
7838
7840
|
|
7839
7841
|
assert newArray.array.dtype == self.array.dtype, _('Bad dtype')
|
@@ -7860,9 +7862,9 @@ class WolfArray(Element_To_Draw, header_wolf):
|
|
7860
7862
|
|
7861
7863
|
if type(other) == float:
|
7862
7864
|
if other != 0.:
|
7863
|
-
newArray.array = np.ma.masked_array(self.array * other, self.array.mask)
|
7865
|
+
newArray.array = np.ma.masked_array(self.array * other, self.array.mask, dtype=self.array.dtype)
|
7864
7866
|
else:
|
7865
|
-
newArray.array = np.ma.masked_array(self.array * other.array, self.array.mask)
|
7867
|
+
newArray.array = np.ma.masked_array(self.array * other.array, self.array.mask, dtype=self.array.dtype)
|
7866
7868
|
newArray.count()
|
7867
7869
|
|
7868
7870
|
assert newArray.array.dtype == self.array.dtype, _('Bad dtype')
|
@@ -7889,9 +7891,9 @@ class WolfArray(Element_To_Draw, header_wolf):
|
|
7889
7891
|
|
7890
7892
|
if type(other) == float:
|
7891
7893
|
if other != 0.:
|
7892
|
-
newArray.array = np.ma.masked_array(self.array - other, self.array.mask)
|
7894
|
+
newArray.array = np.ma.masked_array(self.array - other, self.array.mask, dtype=self.array.dtype)
|
7893
7895
|
else:
|
7894
|
-
newArray.array = np.ma.masked_array(self.array - other.array, self.array.mask)
|
7896
|
+
newArray.array = np.ma.masked_array(self.array - other.array, self.array.mask, dtype=self.array.dtype)
|
7895
7897
|
newArray.count()
|
7896
7898
|
|
7897
7899
|
assert newArray.array.dtype == self.array.dtype, _('Bad dtype')
|
@@ -7916,7 +7918,7 @@ class WolfArray(Element_To_Draw, header_wolf):
|
|
7916
7918
|
newArray.origz = self.origz
|
7917
7919
|
newArray.translz = self.translz
|
7918
7920
|
|
7919
|
-
newArray.array = np.ma.masked_array(self.array ** other, self.array.mask)
|
7921
|
+
newArray.array = np.ma.masked_array(self.array ** other, self.array.mask, dtype=self.array.dtype)
|
7920
7922
|
newArray.count()
|
7921
7923
|
|
7922
7924
|
assert newArray.array.dtype == self.array.dtype, _('Bad dtype')
|
@@ -7943,9 +7945,9 @@ class WolfArray(Element_To_Draw, header_wolf):
|
|
7943
7945
|
|
7944
7946
|
if type(other) == float:
|
7945
7947
|
if other != 0.:
|
7946
|
-
newArray.array = np.ma.masked_array(self.array / other, self.array.mask)
|
7948
|
+
newArray.array = np.ma.masked_array(self.array / other, self.array.mask, dtype=self.array.dtype)
|
7947
7949
|
else:
|
7948
|
-
newArray.array = np.ma.masked_array(np.where(other == 0., 0., self.array / other.array), self.array.mask)
|
7950
|
+
newArray.array = np.ma.masked_array(np.where(other == 0., 0., self.array / other.array), self.array.mask, dtype=self.array.dtype)
|
7949
7951
|
newArray.count()
|
7950
7952
|
|
7951
7953
|
assert newArray.array.dtype == self.array.dtype, _('Bad dtype')
|
@@ -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=wmBEYPkPiuk5sywCpKS1frEEirHDryVpF8P1G9wwuJA,603350
|
11
11
|
wolfhece/PyGui.py,sha256=B7-pAQ0tOkXVIb_3BSjNVROFF9s23lGCSBaQD5NxvOQ,145093
|
12
12
|
wolfhece/PyGuiHydrology.py,sha256=sKafpOopBg50L5llZCI_fZtbebVTDtxvoRI6-osUwhg,14745
|
13
|
-
wolfhece/PyHydrographs.py,sha256=
|
13
|
+
wolfhece/PyHydrographs.py,sha256=1P5XAURNqCvtSsMQXhOn1ihjTpr725sRsZdlCEhhk6M,3730
|
14
14
|
wolfhece/PyPalette.py,sha256=mTknZlfioRGX7iJVoKG1Yc0pQooZA_KYyFsAzvLY4Rk,34344
|
15
|
-
wolfhece/PyParams.py,sha256=
|
15
|
+
wolfhece/PyParams.py,sha256=Dh9C_WYICMjo3m9roRySsu8ZgFzzYhSr6RpbaXZni0M,99423
|
16
16
|
wolfhece/PyPictures.py,sha256=m1kY0saW6Y9Q0bDCo47lW6XxDkBrbQG-Fd8uVn8G5ic,2514
|
17
17
|
wolfhece/PyTranslate.py,sha256=4appkmNeHHZLFmUtaA_k5_5QL-5ymxnbVN4R2OblmtE,622
|
18
|
-
wolfhece/PyVertex.py,sha256=
|
19
|
-
wolfhece/PyVertexvectors.py,sha256=
|
18
|
+
wolfhece/PyVertex.py,sha256=PDKpLFPqE1ORzfi36xKIjuKsxR8DR0iNMsLhAGw11rY,45205
|
19
|
+
wolfhece/PyVertexvectors.py,sha256=0lt0YyHIz_IxgXqdqPlTDruDwjeP6L1Dw6B2Q35a8kQ,325801
|
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
|
@@ -55,7 +55,7 @@ wolfhece/rain_SPWMI.py,sha256=qCfcmF7LajloOaCwnTrrSMzyME03YyilmRUOqrPrv3U,13846
|
|
55
55
|
wolfhece/textpillow.py,sha256=map7HsGYML_o5NHRdFg2s_TVQed_lDnpYNDv27MM0Vw,14130
|
56
56
|
wolfhece/tools2d_dll.py,sha256=oU0m9XYAf4CZsMoB68IuKeE6SQh-AqY7O5NVED8r9uw,13125
|
57
57
|
wolfhece/tools_mpl.py,sha256=gQ3Jg1iuZiecmMqa5Eli2ZLSkttu68VXL8YmMDBaEYU,564
|
58
|
-
wolfhece/wolf_array.py,sha256=
|
58
|
+
wolfhece/wolf_array.py,sha256=Q5dXKhs3gtQXGHFUaN9AfJnc0FpAUJTLKnpbjB7CcQo,485619
|
59
59
|
wolfhece/wolf_hist.py,sha256=7jeVrgSkM3ErJO6SRMH_PGzfLjIdw8vTy87kesldggk,3582
|
60
60
|
wolfhece/wolf_texture.py,sha256=ecoXXmmcLuyG1oPqU2dB_k03qMTCLTVQoSq1xi1EalU,17359
|
61
61
|
wolfhece/wolf_tiles.py,sha256=v-HohqaWuMYdn75XLnA22dlloAG90iwnIqrgnB0ASQ4,10488
|
@@ -63,13 +63,13 @@ wolfhece/wolf_vrt.py,sha256=wbxXVN7TL9zgdyF79S-4e3pje6wJEAgBEfF_Y8kkzxs,14271
|
|
63
63
|
wolfhece/wolf_zi_db.py,sha256=baE0niMCzybWGSvPJc5FNxo9ZxsGfU4p-FmfiavFHAs,12967
|
64
64
|
wolfhece/wolfresults_2D.py,sha256=5Ser0lcfoGbsHLASx_1UtxmanYDGSuOCMgaadSNTHzs,218154
|
65
65
|
wolfhece/xyz_file.py,sha256=1pzLFmmdHca4yBVR9Jitic6N82rY28mRytGC1zMbY28,6615
|
66
|
-
wolfhece/acceptability/Parallels.py,sha256=
|
66
|
+
wolfhece/acceptability/Parallels.py,sha256=2wVkfJYor4yl7VYiAZiGGTFwtAab2z66ZfRtBliVweE,4088
|
67
67
|
wolfhece/acceptability/__init__.py,sha256=hfgoPKLDpX7drN1Vpvux-_5Lfyc_7feT2C2zQr5v-Os,258
|
68
68
|
wolfhece/acceptability/_add_path.py,sha256=nudniS-lsgHwXXq5o626XRDzIeYj76GoGKYt6lcu2Nc,616
|
69
69
|
wolfhece/acceptability/acceptability.py,sha256=dLsYVwPiYH33M7y2vVzlLVd9q8dLgDIeTuJ8f20L4ig,28006
|
70
|
-
wolfhece/acceptability/acceptability_gui.py,sha256=
|
70
|
+
wolfhece/acceptability/acceptability_gui.py,sha256=z_g1Ip7-H67KawR_EA_QeVtFXpMaoGKIKSmujVRz3Q0,75899
|
71
71
|
wolfhece/acceptability/cli.py,sha256=ul_GmDnSgKSgA7z5ZIzeA_MlS2uqo-Xi48bqmWUS-Qk,19141
|
72
|
-
wolfhece/acceptability/func.py,sha256=
|
72
|
+
wolfhece/acceptability/func.py,sha256=NHUoYPxQg-WP6K1uOAoXrwofVZfn4VX-jSl9fHt07qM,68593
|
73
73
|
wolfhece/apps/ManageParams.py,sha256=9okXHGHKEayA9iKTnv8jsVYCP2up5kr6hDaKO_fMCaQ,748
|
74
74
|
wolfhece/apps/Optimisation_hydro.py,sha256=ySIaVsFNEx4PaHFLlT2QW9BiwChVcTNd2TBnW1aICsI,810
|
75
75
|
wolfhece/apps/WolfPython.png,sha256=K3dcbeZUiJCFNwOAAlGMaRGLJ56yM8WD2I_0bk0xT1g,104622
|
@@ -83,7 +83,7 @@ wolfhece/apps/curvedigitizer.py,sha256=lEJJwgAfulrrWQc-U6ij6sj59hWN3SZl4Yu1kQxVz
|
|
83
83
|
wolfhece/apps/hydrometry.py,sha256=lhhJsFeb4zGL4bNQTs0co85OQ_6ssL1Oy0OUJCzhfYE,656
|
84
84
|
wolfhece/apps/isocurrent.py,sha256=dagmGR8ja9QQ1gwz_8fU-N052hIw-W0mWGVkzLu6C7I,4247
|
85
85
|
wolfhece/apps/splashscreen.py,sha256=SrustmIQeXnsiD-92OzjdGhBi-S7c_j-cSvuX4T6rtg,2929
|
86
|
-
wolfhece/apps/version.py,sha256=
|
86
|
+
wolfhece/apps/version.py,sha256=pfJCxRPgSHvPoFtUBh1y_UjYF4wpkW6f7GnMs9a_h9g,387
|
87
87
|
wolfhece/apps/wolf.py,sha256=j_CgvsL8rwixbVvVD5Z0s7m7cHZ86gmFLojKGuetMls,729
|
88
88
|
wolfhece/apps/wolf2D.py,sha256=4z_OPQ3IgaLtjexjMKX9ppvqEYyjFLt1hcfFABy3-jU,703
|
89
89
|
wolfhece/apps/wolf_logo.bmp,sha256=ruJ4MA51CpGO_AYUp_dB4SWKHelvhOvd7Q8NrVOjDJk,3126
|
@@ -305,8 +305,8 @@ wolfhece/ui/wolf_multiselection_collapsiblepane.py,sha256=8PlMYrb_8jI8h9F0_EagpM
|
|
305
305
|
wolfhece/ui/wolf_times_selection_comparison_models.py,sha256=ORy7fz4dcp691qKzaOZHrRLZ0uXNhL-LIHxmpDGL6BI,5007
|
306
306
|
wolfhece/wintab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
307
307
|
wolfhece/wintab/wintab.py,sha256=8A-JNONV6ujgsgG3lM5Uw-pVgglPATwKs86oBzzljoc,7179
|
308
|
-
wolfhece-2.2.
|
309
|
-
wolfhece-2.2.
|
310
|
-
wolfhece-2.2.
|
311
|
-
wolfhece-2.2.
|
312
|
-
wolfhece-2.2.
|
308
|
+
wolfhece-2.2.2.dist-info/METADATA,sha256=rzjoOd8XS0mz80a0NdAokfYYiKOC5R2btg6qXj-4-ZE,2694
|
309
|
+
wolfhece-2.2.2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
310
|
+
wolfhece-2.2.2.dist-info/entry_points.txt,sha256=ZZ-aSfbpdcmo-wo84lRFzBN7LaSnD1XRGSaAKVX-Gpc,522
|
311
|
+
wolfhece-2.2.2.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
|
312
|
+
wolfhece-2.2.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|