PA readswash black reformat
This commit is contained in:
parent
f27f44bbb6
commit
2092789aa2
1 changed files with 108 additions and 80 deletions
|
@ -1,83 +1,111 @@
|
||||||
import numpy as np
|
import numpy as np
|
||||||
def readswash(filename,xlen,nlay):
|
|
||||||
with open('test.txt', 'r') as f:
|
|
||||||
content = f.readlines()
|
|
||||||
fsurf = []
|
|
||||||
klay = np.zeros((7203,11,300))
|
|
||||||
brkp = []
|
|
||||||
Vxfield = np.zeros((7203,11,300))
|
|
||||||
Vyfield = np.zeros((7203,11,300))
|
|
||||||
Vzfield = np.zeros((7203,11,300))
|
|
||||||
ts = []
|
|
||||||
t = 0
|
|
||||||
for i in range(len(content)):
|
|
||||||
if content[i][33:93] == 'Layer interface k=00' :
|
|
||||||
layint0 = content[i+7].split('.')
|
|
||||||
layint1 = content[i+12].split('.')
|
|
||||||
surftemp = [float(layint0[0].split()[1])]+layint0[1:-1]+[float(layint1[0].split()[1])]+layint1[1:-1]
|
|
||||||
j = 0
|
|
||||||
while j < len(surftemp):
|
|
||||||
surftemp[j] = float(surftemp[j])
|
|
||||||
j+=1
|
|
||||||
fsurf.append(np.asarray(surftemp)/10)
|
|
||||||
if content[i][33:56] == 'Flow velocity per layer' :
|
|
||||||
k = int(content[i][83:85])
|
|
||||||
layint0 = content[i+7].split('.')
|
|
||||||
layint1 = content[i+12].split('.')
|
|
||||||
vktemp = [float(layint0[0].split()[1])]+layint0[1:-1]+[float(layint1[0].split()[1])]+layint1[1:-1]
|
|
||||||
j = 0
|
|
||||||
while j < len(vktemp):
|
|
||||||
try :
|
|
||||||
vktemp[j] = float(vktemp[j])
|
|
||||||
except :
|
|
||||||
#vktemp[j] = float(vktemp[j][-5:])
|
|
||||||
vktemp[j]=0
|
|
||||||
j+=1
|
|
||||||
if content[i][87:88] == 'X':
|
|
||||||
Vxfield[t,k,:] = np.asarray(vktemp)/1000
|
|
||||||
else:
|
|
||||||
Vyfield[t,k,:] = np.asarray(vktemp)/1000
|
|
||||||
if content[i][33:56] == 'Velocity in z-direction' :
|
|
||||||
k = int(content[i][91:93])
|
|
||||||
layint0 = content[i+7].split('.')
|
|
||||||
layint1 = content[i+12].split('.')
|
|
||||||
vktemp = [float(layint0[0].split()[1])]+layint0[1:-1]+[float(layint1[0].split()[1])]+layint1[1:-1]
|
|
||||||
j = 0
|
|
||||||
while j < len(vktemp):
|
|
||||||
try:
|
|
||||||
vktemp[j] = float(vktemp[j])
|
|
||||||
except:
|
|
||||||
vktemp[j] = 0.0
|
|
||||||
j+=1
|
|
||||||
Vzfield[t,k,:len(vktemp)] = np.asarray(vktemp)/1000
|
|
||||||
Vzfield[t,k,len(vktemp):] = np.zeros(300-len(vktemp))
|
|
||||||
if content[i][33:48] == 'Layer interface' :
|
|
||||||
k = int(content[i][91:93])
|
|
||||||
layint0 = content[i+7].split('.')
|
|
||||||
layint1 = content[i+12].split('.')
|
|
||||||
layktemp = [float(layint0[0].split()[1])]+layint0[1:-1]+[float(layint1[0].split()[1])]+layint1[1:-1]
|
|
||||||
j = 0
|
|
||||||
while j < len(layktemp):
|
|
||||||
layktemp[j] = float(layktemp[j])
|
|
||||||
j+=1
|
|
||||||
klay[t,k,:] = np.asarray(layktemp)/10
|
|
||||||
if content[i][33:52] == 'wave breaking point' :
|
|
||||||
br0 = content[i+7].split('.')
|
|
||||||
br1 = content[i+12].split('.')
|
|
||||||
brtemp = [float(br0[0].split()[1])]+br0[1:-1]+[float(br1[0].split()[1])]+br1[1:-1]
|
|
||||||
j = 0
|
|
||||||
while j < len(brtemp):
|
|
||||||
brtemp[j] = float(brtemp[j])
|
|
||||||
j+=1
|
|
||||||
brkp.append(np.asarray(brtemp))
|
|
||||||
if content[i][33:68] == 'Time in seconds from reference time' :
|
|
||||||
ts.append(float(content[i+1][7:16]))
|
|
||||||
t+=1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return fsurf, Vxfield, Vyfield, Vzfield, brkp, klay
|
|
||||||
|
|
||||||
|
def readswash(filename, nx, nlay):
|
||||||
|
with open(filename, "r") as f:
|
||||||
|
content = f.readlines()
|
||||||
|
fsurf = []
|
||||||
|
klay = np.zeros((7203, nlay+1, nx))
|
||||||
|
brkp = []
|
||||||
|
Vxfield = np.zeros((7203, nlay+1, nx))
|
||||||
|
Vyfield = np.zeros((7203, nlay+1, nx))
|
||||||
|
Vzfield = np.zeros((7203, nlay+1, nx))
|
||||||
|
ts = []
|
||||||
|
t = 0
|
||||||
|
for i in range(len(content)):
|
||||||
|
if (
|
||||||
|
content[i][33:93]
|
||||||
|
== "Layer interface k=00"
|
||||||
|
):
|
||||||
|
layint0 = content[i + 7].split(".")
|
||||||
|
layint1 = content[i + 12].split(".")
|
||||||
|
surftemp = (
|
||||||
|
[float(layint0[0].split()[1])]
|
||||||
|
+ layint0[1:-1]
|
||||||
|
+ [float(layint1[0].split()[1])]
|
||||||
|
+ layint1[1:-1]
|
||||||
|
)
|
||||||
|
j = 0
|
||||||
|
while j < len(surftemp):
|
||||||
|
surftemp[j] = float(surftemp[j])
|
||||||
|
j += 1
|
||||||
|
fsurf.append(np.asarray(surftemp) / 10)
|
||||||
|
if content[i][33:56] == "Flow velocity per layer":
|
||||||
|
k = int(content[i][83:85])
|
||||||
|
layint0 = content[i + 7].split(".")
|
||||||
|
layint1 = content[i + 12].split(".")
|
||||||
|
vktemp = (
|
||||||
|
[float(layint0[0].split()[1])]
|
||||||
|
+ layint0[1:-1]
|
||||||
|
+ [float(layint1[0].split()[1])]
|
||||||
|
+ layint1[1:-1]
|
||||||
|
)
|
||||||
|
j = 0
|
||||||
|
while j < len(vktemp):
|
||||||
|
try:
|
||||||
|
vktemp[j] = float(vktemp[j])
|
||||||
|
except:
|
||||||
|
# vktemp[j] = float(vktemp[j][-5:])
|
||||||
|
vktemp[j] = 0
|
||||||
|
j += 1
|
||||||
|
if content[i][87:88] == "X":
|
||||||
|
Vxfield[t, k, :] = np.asarray(vktemp) / 1000
|
||||||
|
else:
|
||||||
|
Vyfield[t, k, :] = np.asarray(vktemp) / 1000
|
||||||
|
if content[i][33:56] == "Velocity in z-direction":
|
||||||
|
k = int(content[i][91:93])
|
||||||
|
layint0 = content[i + 7].split(".")
|
||||||
|
layint1 = content[i + 12].split(".")
|
||||||
|
vktemp = (
|
||||||
|
[float(layint0[0].split()[1])]
|
||||||
|
+ layint0[1:-1]
|
||||||
|
+ [float(layint1[0].split()[1])]
|
||||||
|
+ layint1[1:-1]
|
||||||
|
)
|
||||||
|
j = 0
|
||||||
|
while j < len(vktemp):
|
||||||
|
try:
|
||||||
|
vktemp[j] = float(vktemp[j])
|
||||||
|
except:
|
||||||
|
vktemp[j] = 0.0
|
||||||
|
j += 1
|
||||||
|
Vzfield[t, k, : len(vktemp)] = np.asarray(vktemp) / 1000
|
||||||
|
Vzfield[t, k, len(vktemp) :] = np.zeros(nx - len(vktemp))
|
||||||
|
if content[i][33:48] == "Layer interface":
|
||||||
|
k = int(content[i][91:93])
|
||||||
|
layint0 = content[i + 7].split(".")
|
||||||
|
layint1 = content[i + 12].split(".")
|
||||||
|
layktemp = (
|
||||||
|
[float(layint0[0].split()[1])]
|
||||||
|
+ layint0[1:-1]
|
||||||
|
+ [float(layint1[0].split()[1])]
|
||||||
|
+ layint1[1:-1]
|
||||||
|
)
|
||||||
|
j = 0
|
||||||
|
while j < len(layktemp):
|
||||||
|
layktemp[j] = float(layktemp[j])
|
||||||
|
j += 1
|
||||||
|
klay[t, k, :] = np.asarray(layktemp) / 10
|
||||||
|
if content[i][33:52] == "wave breaking point":
|
||||||
|
br0 = content[i + 7].split(".")
|
||||||
|
br1 = content[i + 12].split(".")
|
||||||
|
brtemp = (
|
||||||
|
[float(br0[0].split()[1])]
|
||||||
|
+ br0[1:-1]
|
||||||
|
+ [float(br1[0].split()[1])]
|
||||||
|
+ br1[1:-1]
|
||||||
|
)
|
||||||
|
j = 0
|
||||||
|
while j < len(brtemp):
|
||||||
|
brtemp[j] = float(brtemp[j])
|
||||||
|
j += 1
|
||||||
|
brkp.append(np.asarray(brtemp))
|
||||||
|
if content[i][33:68] == "Time in seconds from reference time":
|
||||||
|
ts.append(float(content[i + 1][7:16]))
|
||||||
|
t += 1
|
||||||
|
|
||||||
|
return fsurf, Vxfield, Vyfield, Vzfield, brkp, klay
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
print(readswash("test.txt", 1250, 10))
|
||||||
|
|
Loading…
Reference in a new issue