Advertisement
boolit

Fast get_measured_intervals

Jul 28th, 2020
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.23 KB | None | 0 0
  1. #по каждой каротажке получаем интервалы где есть измерение (начало исследования, и длина непрерывной записи)
  2. def get_measured_intervals(well_logs, mnimonic, depth_key):
  3.     ints = []
  4.     pair = []
  5.     nan = 'nan'#'-9999.0'#'nan'
  6.     col = np.array(well_logs[mnimonic], dtype = np.float64)
  7.     dep = np.array(well_logs[depth_key], dtype = np.float64)
  8.     if(col[~np.isnan(col)].shape[0] == col.shape[0]):
  9.         a = col[0]
  10.         pair.append(a)
  11.         b = dep[-1]
  12.         pair.append(b-a)
  13.         ints.append(tuple(pair))
  14.         pair = []
  15.        
  16.        
  17.     elif (col[0].astype(str) == nan):  
  18.         for i in range(well_logs.shape[0]-1):
  19.             if(col[i].astype(str) == nan and col[i+1].astype(str) != nan):#i+1 начало интервала
  20.                 a = dep[i+1]
  21.                 pair.append(a)
  22.             elif(col[i].astype(str) != nan and col[i+1].astype(str) == nan):#i конец интервала
  23.                 b = dep[i]
  24.                 pair.append(b-a)
  25.                 ints.append(tuple(pair))
  26.                 pair = []
  27.             #добавил
  28.             elif(col[i].astype(str) != nan and col[i+1].astype(str) != nan and i == well_logs.shape[0]-2):#i конец интервала
  29.                 b = dep[i]
  30.                 pair.append(b-a)
  31.                 ints.append(tuple(pair))
  32.                 pair = []
  33.  
  34.     elif(col[0].astype(str) != nan):
  35.         a = dep[0]
  36.         pair.append(a)
  37.         for i in range(1, well_logs.shape[0]-1):
  38.             if(col[i].astype(str) != nan and col[i+1].astype(str) == nan):#i конец интервала
  39.                 b = dep[i]
  40.                 pair.append(b-a)
  41.                 ints.append(tuple(pair))
  42.                 pair = []
  43.             elif(col[i].astype(str) != nan and col[i+1].astype(str) != nan and i == well_logs.shape[0]-2):#i конец интервала
  44.                 b = dep[i]
  45.                 pair.append(b-a)
  46.                 ints.append(tuple(pair))
  47.                 pair = []
  48.             elif(col[i].astype(str) == nan and col[i+1].astype(str) != nan):
  49.                 a = dep[i+1]
  50.                 pair.append(a)
  51.                
  52.     return(ints)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement