tilupy 0.1.5__py3-none-any.whl → 1.0.0__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.

Potentially problematic release.


This version of tilupy might be problematic. Click here for more details.

tilupy/utils.py CHANGED
@@ -11,45 +11,47 @@ import matplotlib.pyplot as plt
11
11
  import shapely.geometry as geom
12
12
  import shapely.ops
13
13
 
14
+
14
15
  def CSI(pred, obs):
15
-
16
- ipred = pred>0
17
- iobs = obs>0
18
-
19
- TP = np.sum(ipred*iobs)
20
- FP = np.sum(ipred*~iobs)
21
- FN = np.sum(~ipred*iobs)
22
-
23
- return TP/(TP+FP+FN)
24
-
25
- def diff_runout(x_contour, y_contour, point_ref, section=None,
26
- orientation='W-E'):
27
-
16
+ ipred = pred > 0
17
+ iobs = obs > 0
18
+
19
+ TP = np.sum(ipred * iobs)
20
+ FP = np.sum(ipred * ~iobs)
21
+ FN = np.sum(~ipred * iobs)
22
+
23
+ return TP / (TP + FP + FN)
24
+
25
+
26
+ def diff_runout(
27
+ x_contour, y_contour, point_ref, section=None, orientation="W-E"
28
+ ):
28
29
  npts = len(x_contour)
29
- contour = geom.LineString([(x_contour[i],y_contour[i])
30
- for i in range(npts)])
30
+ contour = geom.LineString(
31
+ [(x_contour[i], y_contour[i]) for i in range(npts)]
32
+ )
31
33
  point = geom.Point(point_ref)
32
34
  if section is None:
33
35
  return point.distance(contour)
34
36
  elif isinstance(section, np.ndarray):
35
37
  section = geom.LineString(section)
36
-
37
- assert(isinstance(section, geom.LineString))
38
+
39
+ assert isinstance(section, geom.LineString)
38
40
  section = revert_line(section, orientation)
39
41
  intersections = section.intersection(contour)
40
42
  if isinstance(intersections, geom.MultiPoint):
41
43
  intersections = geom.LineString(section.intersection(contour))
42
44
  intersections = np.array(intersections.coords)
43
- if orientation == 'W-E':
44
- i = np.argmax(intersections[:,0])
45
- if orientation == 'E-W':
46
- i = np.argmin(intersections[:,0])
47
- if orientation == 'S-N':
48
- i = np.argmax(intersections[:,1])
49
- if orientation == 'N-S':
50
- i = np.argmin(intersections[:,1])
51
- intersection = geom.Point(intersections[i,:])
52
-
45
+ if orientation == "W-E":
46
+ i = np.argmax(intersections[:, 0])
47
+ if orientation == "E-W":
48
+ i = np.argmin(intersections[:, 0])
49
+ if orientation == "S-N":
50
+ i = np.argmax(intersections[:, 1])
51
+ if orientation == "N-S":
52
+ i = np.argmin(intersections[:, 1])
53
+ intersection = geom.Point(intersections[i, :])
54
+
53
55
  #######
54
56
  # plt.figure()
55
57
  # cont = np.array(contour.coords)
@@ -61,71 +63,97 @@ def diff_runout(x_contour, y_contour, point_ref, section=None,
61
63
  # pt[:,0], pt[:,1], 'o',
62
64
  # inter[:,0], inter[:,1],'x')
63
65
  #######
64
-
66
+
65
67
  return section.project(intersection) - section.project(point)
66
-
67
- def revert_line(line, orientation='W-E'):
68
-
68
+
69
+
70
+ def revert_line(line, orientation="W-E"):
69
71
  pt_init = line.coords[0]
70
72
  pt_end = line.coords[-1]
71
- if orientation == 'W-E':
72
- if pt_init[0]>pt_end[0]:
73
+ if orientation == "W-E":
74
+ if pt_init[0] > pt_end[0]:
73
75
  line = shapely.ops.substring(line, 1, 0, normalized=True)
74
- elif orientation == 'E-W':
75
- if pt_init[0]<pt_end[0]:
76
+ elif orientation == "E-W":
77
+ if pt_init[0] < pt_end[0]:
76
78
  line = shapely.ops.substring(line, 1, 0, normalized=True)
77
- if orientation == 'S-N':
78
- if pt_init[1]>pt_end[1]:
79
+ if orientation == "S-N":
80
+ if pt_init[1] > pt_end[1]:
79
81
  line = shapely.ops.substring(line, 1, 0, normalized=True)
80
- elif orientation == 'N-S':
81
- if pt_init[1]<pt_end[1]:
82
+ elif orientation == "N-S":
83
+ if pt_init[1] < pt_end[1]:
82
84
  line = shapely.ops.substring(line, 1, 0, normalized=True)
83
-
85
+
84
86
  return line
85
87
 
86
- def get_contour(x,y,z,zlevels,indstep=1,maxdist=30, closed_contour=True):
87
-
88
- #Add sup_value at the border of the array, to make sure contour
89
- #lines are closed
88
+
89
+ def get_contour(x, y, z, zlevels, indstep=1, maxdist=30, closed_contour=True):
90
+ # Add sup_value at the border of the array, to make sure contour
91
+ # lines are closed
90
92
  if closed_contour:
91
93
  z2 = z.copy()
92
94
  ni = z2.shape[0]
93
95
  nj = z2.shape[1]
94
96
  z2 = np.vstack([np.zeros((1, nj)), z2, np.zeros((1, nj))])
95
- z2 = np.hstack([np.zeros((ni+2, 1)), z2, np.zeros((ni+2, 1))])
96
- dxi = x[1]-x[0]
97
- dxf = x[-1]-x[-2]
97
+ z2 = np.hstack([np.zeros((ni + 2, 1)), z2, np.zeros((ni + 2, 1))])
98
+ dxi = x[1] - x[0]
99
+ dxf = x[-1] - x[-2]
98
100
  dyi = y[1] - y[0]
99
101
  dyf = y[-1] - y[-2]
100
- x2 = np.insert(np.append(x, x[-1]+dxf), 0, x[0]-dxi)
101
- y2 = np.insert(np.append(y, y[-1]+dyf), 0, y[0]-dyi)
102
+ x2 = np.insert(np.append(x, x[-1] + dxf), 0, x[0] - dxi)
103
+ y2 = np.insert(np.append(y, y[-1] + dyf), 0, y[0] - dyi)
102
104
  else:
103
105
  x2, y2, z2 = x, y, z
104
-
106
+
105
107
  backend = plt.get_backend()
106
- plt.switch_backend('Agg')
108
+ plt.switch_backend("Agg")
107
109
  plt.figure()
108
- ax=plt.gca()
109
- cs=ax.contour(x2, y2, np.flip(z2, 0), zlevels)
110
- nn1=1
111
- v1=np.zeros((1,2))
112
- xcontour={}
113
- ycontour={}
110
+ ax = plt.gca()
111
+ cs = ax.contour(x2, y2, np.flip(z2, 0), zlevels)
112
+ nn1 = 1
113
+ v1 = np.zeros((1, 2))
114
+ xcontour = {}
115
+ ycontour = {}
114
116
  for indlevel in range(len(zlevels)):
115
117
  for p in cs.collections[indlevel].get_paths():
116
- if (p.vertices.shape[0]>nn1):
117
- v1=p.vertices
118
- nn1=p.vertices.shape[0]
119
- xc = [v1[::indstep,0]]
120
- yc = [v1[::indstep,1]]
118
+ if p.vertices.shape[0] > nn1:
119
+ v1 = p.vertices
120
+ nn1 = p.vertices.shape[0]
121
+ xc = [v1[::indstep, 0]]
122
+ yc = [v1[::indstep, 1]]
121
123
  if maxdist is not None and not closed_contour:
122
- ddx=np.abs(v1[0,0]-v1[-1,0])
123
- ddy=np.abs(v1[0,1]-v1[-1,1])
124
- dd=np.sqrt(ddx**2+ddy**2)
125
- if (dd>maxdist) :
126
- xc[0]=None
127
- yc[0]=None
128
- xcontour[zlevels[indlevel]]=xc[0]
129
- ycontour[zlevels[indlevel]]=yc[0]
124
+ ddx = np.abs(v1[0, 0] - v1[-1, 0])
125
+ ddy = np.abs(v1[0, 1] - v1[-1, 1])
126
+ dd = np.sqrt(ddx**2 + ddy**2)
127
+ if dd > maxdist:
128
+ xc[0] = None
129
+ yc[0] = None
130
+ xcontour[zlevels[indlevel]] = xc[0]
131
+ ycontour[zlevels[indlevel]] = yc[0]
130
132
  plt.switch_backend(backend)
131
- return xcontour,ycontour
133
+ return xcontour, ycontour
134
+
135
+
136
+ def format_path_linux(path):
137
+ """
138
+ Change a Windows-type path to a path formatted for Linux. \\ are changed
139
+ to /, and partitions like "C:" are changed to "/mnt/c/"
140
+
141
+ Parameters
142
+ ----------
143
+ path : string
144
+ String with the path to be modified.
145
+
146
+ Returns
147
+ -------
148
+ path2 : string
149
+ Formatted path.
150
+
151
+ """
152
+ if path[1] == ":":
153
+ path2 = "/mnt/{:s}/".format(path[0].lower()) + path[2:]
154
+ else:
155
+ path2 = path
156
+ path2 = path2.replace("\\", "/")
157
+ if " " in path2:
158
+ path2 = '"' + path2 + '"'
159
+ return path2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tilupy
3
- Version: 0.1.5
3
+ Version: 1.0.0
4
4
  Summary: Thin-layer models unified processing tool
5
5
  Author-email: Marc Peruzzetto <m.peruzzetto@brgm.fr>
6
6
  License: CeCILL-C FREE SOFTWARE LICENSE AGREEMENT
@@ -1,26 +1,26 @@
1
1
  tilupy/__init__.py,sha256=4r-aUNht-u_rUoYIyz3BOFEew11xCURWpSRYEfc8Dis,515
2
2
  tilupy/calibration.py,sha256=AGZq1YMI60d0RYzto1xdXglZ8DfSRCfo5gCAHzvwfwg,3318
3
- tilupy/cmd.py,sha256=A_Xv9rq0e6vx4QIBQx_EunjDBKITXrZpQjQpjWu6tKA,4260
3
+ tilupy/cmd.py,sha256=Ly5HArNtgpZJ1IBBwjgpgJjcvMc_Pf9iQz2azEZZtk8,4046
4
4
  tilupy/compare.py,sha256=5PkDmMen_-yJImowvFJYB3IV0x0xs9WSFAYhX81wFLg,6294
5
5
  tilupy/download_data.py,sha256=D_R9l5XtgsmxEoKOXXPlWFV6q3e9SMa7asRRy-blQvw,1057
6
6
  tilupy/initdata.py,sha256=3vk-pw5IzCOKimBrGiT1iBxtqp2aJ9uqAY3GN7LFPYw,2579
7
7
  tilupy/make_mass.py,sha256=XM4HzwVLho_QDZzoXxVQCVJwNeMWawg-nRaDxiN9vW0,3442
8
8
  tilupy/make_topo.py,sha256=6fby5Zkl657pNgPFNWFF37-sORQvyBKsYn9atKESB_I,14302
9
- tilupy/notations.py,sha256=s4p9jsz0n2nXNxxVG5SU14j37b2kqYoIcTKvSehNOOI,3509
10
- tilupy/plot.py,sha256=awffgtd_X2ChltgnucIngVSeTNrwZ2YALLEhxYqxHdw,18044
9
+ tilupy/notations.py,sha256=nSv49NbhlhD-zMBWFE6vk1UojCMH1R05oqrV8_6bCqk,10390
10
+ tilupy/plot.py,sha256=O4eF71mYfX0YmzqsBvwIQTFVLhg4HZCFq4NedeqFyxs,21252
11
11
  tilupy/raster.py,sha256=4d_-RWGHHO0ZXkjwaHPEOBxPjb36HW8ISq_7z32sgQg,3605
12
- tilupy/read.py,sha256=vyhbqBeh3ade8sXcCZK8ZZIjjVX7Dr9E7h1JhwY8mZw,12602
13
- tilupy/utils.py,sha256=P4OyIGggrUVC0aKqTlZuwGhUN-nyORI870S9QFWWJAA,4118
12
+ tilupy/read.py,sha256=Z93_zbaJ1bhnSibyQHA_aCWWge62zZy9WPTGKM5TPNA,27178
13
+ tilupy/utils.py,sha256=N3qGhjOvVoQl9ySqxNsUzpE0W0gin1v6z94v-2Mya0Q,4705
14
14
  tilupy/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  tilupy/models/ravaflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  tilupy/models/ravaflow/initsimus.py,sha256=VCr_k2HuYecbX7KYS54FtY109OCzlslJ9pY1J1_iWNQ,5104
17
17
  tilupy/models/ravaflow/read.py,sha256=xKuMFRHyC0SV6QubMOcQ9EpJ3c843g2RKViDq7g-yHY,7900
18
18
  tilupy/models/shaltop/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
- tilupy/models/shaltop/initsimus.py,sha256=bezToIzFE25pk6qHRyGcnMQ5Du-s_MVP_KjVZI8KVwI,4601
20
- tilupy/models/shaltop/read.py,sha256=LetbNT19KvOJx0gdMOnlHxr0KlAg8TN3FmfBB9NIct0,9209
21
- tilupy-0.1.5.dist-info/LICENSE,sha256=bNrodROEaIAk5t7X7Db_7d2CjDfHBp_FjweStZO2gZk,21863
22
- tilupy-0.1.5.dist-info/METADATA,sha256=LGpV1Uqymnq-BNbSGsZt9VHxkBP4heel40BObjEtzxA,41875
23
- tilupy-0.1.5.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
24
- tilupy-0.1.5.dist-info/entry_points.txt,sha256=jf71F8J1P5s-zVt5BIxKZDmCIaoUqryMCtT7tc3BkkA,104
25
- tilupy-0.1.5.dist-info/top_level.txt,sha256=jhJY_A8Vzmqub_dVy0wPSfelUqFPjHMZOaepGVcrpxA,7
26
- tilupy-0.1.5.dist-info/RECORD,,
19
+ tilupy/models/shaltop/initsimus.py,sha256=lmAr_rKozsv1CW0hfHsIi7me_X0ZuwG36F1cBdN0emE,8597
20
+ tilupy/models/shaltop/read.py,sha256=w6c-1eh-SEQ73_W9Gr2jUOGf0L2ElV6nRxncVsI4O3w,13161
21
+ tilupy-1.0.0.dist-info/LICENSE,sha256=bNrodROEaIAk5t7X7Db_7d2CjDfHBp_FjweStZO2gZk,21863
22
+ tilupy-1.0.0.dist-info/METADATA,sha256=_7us2zgoWLJ0LI9gSApA4AEHZnqNUqSEIEu6-oS8R18,41875
23
+ tilupy-1.0.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
24
+ tilupy-1.0.0.dist-info/entry_points.txt,sha256=jf71F8J1P5s-zVt5BIxKZDmCIaoUqryMCtT7tc3BkkA,104
25
+ tilupy-1.0.0.dist-info/top_level.txt,sha256=jhJY_A8Vzmqub_dVy0wPSfelUqFPjHMZOaepGVcrpxA,7
26
+ tilupy-1.0.0.dist-info/RECORD,,
File without changes