├── README.md ├── bin ├── __init__.py └── cp_gen ├── cp_gen ├── __init__.py ├── generate_ecl_files.py ├── generate_grid.py └── interpolate_vector.py ├── requirements.txt ├── setup.py └── tests ├── __init__.py ├── test_data ├── fault_depth.csv ├── fault_line.csv ├── height.csv └── res_depths.csv └── test_gen_grid.py /README.md: -------------------------------------------------------------------------------- 1 | ## Synopsis 2 | 3 | This project was created in order to generate Eclipse corner point grid files from Universal Transverse Mercator (UTM) points. The UTM points should be obtained from reservoir structure maps and a net reservoir map to obtain top depth and reservoir height respectively. 4 | 5 | The program generates COORD and ZCORN inputs for the Eclipse Reservoir Simulator. 6 | 7 | At the top of the file there should be a short introduction and/ or overview that explains **what** the project is. This description should match descriptions added for package managers (Gemspec, package.json, etc.) 8 | 9 | ## Usage 10 | 11 | Show what the library does as concisely as possible, developers should be able to figure out **how** your project solves their problem by looking at the code example. Make sure the API you are showing off is obvious, and that your code is short and concise. 12 | 13 | ## Motivation 14 | 15 | A short description of the motivation behind the creation and maintenance of the project. This should explain **why** the project exists. 16 | 17 | ## Installation 18 | 19 | ``` 20 | python setup.py install 21 | ``` 22 | 23 | ## Tests 24 | 25 | Describe and show how to run the tests with code examples. 26 | 27 | ## Contributors 28 | 29 | Let people know how they can dive into the project, include important links to things like issue trackers, irc, twitter accounts if applicable. 30 | 31 | ## License 32 | 33 | This program is released under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. -------------------------------------------------------------------------------- /bin/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chewson/ecl-cornerpoint/5fded55d7dc24eb75ac6871ad7d29ae38e2884a6/bin/__init__.py -------------------------------------------------------------------------------- /bin/cp_gen: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chewson/ecl-cornerpoint/5fded55d7dc24eb75ac6871ad7d29ae38e2884a6/bin/cp_gen -------------------------------------------------------------------------------- /cp_gen/__init__.py: -------------------------------------------------------------------------------- 1 | from .generate_grid import GenerateGridPoints 2 | from .interpolate_vector import InterpretMapValues 3 | from .generate_ecl_files import GenerateGridFiles -------------------------------------------------------------------------------- /cp_gen/generate_ecl_files.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | class GenerateGridFiles(object): 4 | 5 | def __init__(self, grid_vector, grid_interpolate, east_bound, north_bound): 6 | 7 | self.grid_vector = grid_vector 8 | self.grid_interpolate = grid_interpolate 9 | 10 | self.nx = self.grid_vector.nx 11 | self.ny = self.grid_vector.ny 12 | self.nz = self.grid_vector.nz 13 | 14 | self.coord_vector = list() 15 | self.zcorn_vector = list() 16 | self.delta_z = list() 17 | 18 | self.coord_file = 'COORD.in' 19 | self.zcorn_file = 'ZCORN.in' 20 | self.actnum_file = 'ACTNUM.in' 21 | 22 | self.east_bound = east_bound 23 | self.north_bound = north_bound 24 | 25 | def calc_elevation(self, easting, northing, height=False): 26 | 27 | self.grid_interpolate.check_fault_side(easting, northing, height) 28 | self.grid_interpolate.find_new_pts(easting, northing) 29 | 30 | return float(self.grid_interpolate.new_value) 31 | 32 | def generate_coord_vector(self): 33 | 34 | for j in range(self.ny + 1): 35 | for i in range(self.nx + 1): 36 | idx = (self.nx*j) + i 37 | coordinates = self.grid_vector.grid_vector[idx] 38 | x1 = coordinates[0] 39 | y1 = coordinates[1] 40 | z1 = self.calc_elevation(x1,y1) 41 | 42 | x2 = x1 43 | y2 = y1 44 | h = self.calc_elevation(x1,y1, height=True) 45 | if h < 0: 46 | h = 0 47 | z2 = z1 + h 48 | self.delta_z.append(h/self.ny) 49 | self.coord_vector.append([x1,y1,z1,x2,y2,z2]) 50 | 51 | def print_coord_vector(self): 52 | 53 | header = 'COORD \n' 54 | 55 | f = open(self.coord_file, 'w') 56 | 57 | f.writelines(header) 58 | 59 | for rows in self.coord_vector: 60 | for vals in rows: 61 | f.write(str(vals) + ' ') 62 | 63 | f.write('\n') 64 | 65 | f.write('/') 66 | f.close() 67 | 68 | def generate_zcorn_vector(self): 69 | 70 | if len(self.delta_z) == 0: 71 | self.generate_coord_vector() 72 | 73 | for k in range(self.nz): 74 | 75 | # Top Surface 76 | for j in range(self.ny + 1): 77 | tmp_vector = list() 78 | for i in range(self.nx + 1): 79 | idx = (self.nx*j) + i 80 | if i < (self.nx): 81 | z1 = self.coord_vector[idx][2] + (k * self.delta_z[idx]) 82 | z2 = self.coord_vector[idx+1][2] + (k * self.delta_z[idx+1]) 83 | tmp_vector.append(z1) 84 | tmp_vector.append(z2) 85 | 86 | self.zcorn_vector.append(tmp_vector) 87 | if j == 0 or j == self.ny: 88 | pass 89 | else: 90 | self.zcorn_vector.append(tmp_vector) 91 | 92 | # Bottom Surface 93 | for j in range(self.ny + 1): 94 | tmp_vector = list() 95 | for i in range(self.nx + 1): 96 | idx = (self.nx * j) + i 97 | if i < (self.nx): 98 | z1 = self.coord_vector[idx][2] + ((k + 1) * self.delta_z[idx]) 99 | z2 = self.coord_vector[idx + 1][2] + ((k + 1) * self.delta_z[idx + 1]) 100 | tmp_vector.append(z1) 101 | tmp_vector.append(z2) 102 | 103 | self.zcorn_vector.append(tmp_vector) 104 | if j == 0 or j == self.ny: 105 | pass 106 | else: 107 | self.zcorn_vector.append(tmp_vector) 108 | 109 | def print_zcorn_vector(self): 110 | 111 | header = 'ZCORN \n' 112 | 113 | f = open(self.zcorn_file, 'w') 114 | 115 | f.writelines(header) 116 | 117 | row_counter = 0 118 | 119 | for rows in self.zcorn_vector: 120 | for vals in rows: 121 | f.write(str(vals) + ' ') 122 | f.write('\n') 123 | row_counter += 1 124 | 125 | if row_counter == (2*self.ny): 126 | f.write('\n') 127 | row_counter = 0 128 | 129 | f.write('/') 130 | f.close() 131 | 132 | def generate_actnum_vector(self): 133 | 134 | self.actnum = list() 135 | 136 | for k in range(self.nz): 137 | for j in range(self.ny): 138 | for i in range(self.nx): 139 | idx = (self.nx * j) + i 140 | coordinates = self.grid_vector.grid_vector[idx] 141 | 142 | easting = coordinates[0] 143 | northing = coordinates[1] 144 | 145 | if easting > self.east_bound: 146 | self.actnum.append(1) 147 | else: 148 | self.actnum.append(0) 149 | 150 | def print_actnum_vector(self): 151 | 152 | header = 'ACTNUM \n' 153 | 154 | f = open(self.actnum_file, 'w') 155 | 156 | f.writelines(header) 157 | 158 | row_counter = 0 159 | 160 | for vals in self.actnum: 161 | f.write(str(vals) + ' ') 162 | f.write('\n') 163 | row_counter += 1 164 | 165 | if row_counter == (self.nx): 166 | f.write('\n') 167 | row_counter = 0 168 | 169 | f.write('\n') 170 | f.write('/') 171 | f.close() 172 | -------------------------------------------------------------------------------- /cp_gen/generate_grid.py: -------------------------------------------------------------------------------- 1 | from math import radians, cos, sqrt 2 | 3 | 4 | class GenerateGridPoints(object): 5 | 6 | def __init__(self, dx, dy, nx, ny, nz, x0, y0, theta): 7 | 8 | self.dx = dx 9 | self.dy = dy 10 | self.nx = nx 11 | self.ny = ny 12 | self.nz = nz 13 | self.x0 = x0 14 | self.y0 = y0 15 | self.theta_i = radians(90-theta) 16 | self.theta_j = radians(theta) 17 | self.grid_vector = list() 18 | 19 | def calc_i_new(self, x0, y0): 20 | x1 = (x0 + self.dx * cos(self.theta_i)) 21 | 22 | y1 = y0 - sqrt(self.dx ** 2 - (x1 - x0) ** 2) 23 | 24 | return x1, y1 25 | 26 | def calc_j_new(self, x0, y0): 27 | x1 = (x0 - self.dy * cos(self.theta_j)) 28 | 29 | y1 = y0 - sqrt(self.dy ** 2 - (x1 - x0) ** 2) 30 | 31 | return x1, y1 32 | 33 | def gen_grid_vector(self): 34 | y_vector = list() 35 | x0 = self.x0 36 | y0 = self.y0 37 | y_vector.append([x0, y0]) 38 | 39 | for idx in range(self.ny): 40 | x0, y0 = self.calc_j_new(x0, y0) 41 | y_vector.append([x0, y0]) 42 | 43 | for x0, y0 in y_vector: 44 | self.grid_vector.append([x0, y0]) 45 | x1 = x0 46 | y1 = y0 47 | for idx in range(self.nx): 48 | x1, y1 = self.calc_i_new(x1, y1) 49 | self.grid_vector.append([x1, y1]) 50 | -------------------------------------------------------------------------------- /cp_gen/interpolate_vector.py: -------------------------------------------------------------------------------- 1 | from scipy.interpolate import interp2d 2 | from math import sqrt 3 | import csv 4 | from heapq import nsmallest 5 | 6 | 7 | class InterpretMapValues(object): 8 | 9 | def __init__(self, fault_line_file,fault_elevation_file,res_file,height_file,map_type): 10 | 11 | self.fault_line_file = fault_line_file 12 | self.fault_elevation_file = fault_elevation_file 13 | self.res_file = res_file 14 | self.height_file = height_file 15 | 16 | if map_type == 'open': 17 | self.num_repeats = 0 18 | elif map_type == 'closed': 19 | self.num_repeats = 1 20 | 21 | self.file_name = str() 22 | self.new_value = float() 23 | 24 | @staticmethod 25 | def distance_between_pts(new_e, new_n, easting, northing): 26 | distance = list() 27 | 28 | for idx,check_e in enumerate(easting): 29 | east_d = new_e - check_e 30 | north_d = new_n - northing[idx] 31 | d = sqrt(east_d**2 + north_d**2) 32 | distance.append(d) 33 | return distance 34 | 35 | @staticmethod 36 | def read_csv_file(filename): 37 | easting = list() 38 | northing = list() 39 | value = list() 40 | 41 | with open(filename, 'rb') as f: 42 | reader = csv.reader(f, delimiter=',') 43 | for row in reader: 44 | easting.append(float(row[0])) 45 | northing.append(float(row[1])) 46 | value.append(float(row[2])) 47 | 48 | return easting, northing, value 49 | 50 | def check_fault_side(self, new_e, new_n, height=False): 51 | easting, northing, value = self.read_csv_file(self.fault_line_file) 52 | distance = self.distance_between_pts(new_e, new_n, easting, northing) 53 | 54 | f_eidx = distance.index(min(distance)) 55 | 56 | f_e = easting[f_eidx] 57 | if height: 58 | self.file_name = self.height_file 59 | else: 60 | if (f_e - new_e) < 0: 61 | self.file_name = self.res_file 62 | elif (f_e - new_e) > 0: 63 | self.file_name = self.fault_elevation_file 64 | else: 65 | self.file_name = self.fault_elevation_file 66 | 67 | def check_side(self, north, east, new_north, new_east): 68 | side = str() 69 | if north > new_north: 70 | side = side + 'top' 71 | if north < new_north: 72 | side = side + 'bottom' 73 | if east > new_east: 74 | side = side + 'right' 75 | if east < new_east: 76 | side = side + 'left' 77 | return side 78 | 79 | def find_new_pts(self, new_e, new_n): 80 | 81 | filename = self.file_name 82 | easting, northing, value = self.read_csv_file(filename) 83 | 84 | distance = self.distance_between_pts(new_e, new_n, easting, northing) 85 | 86 | chosen_values = list() 87 | chosen_easting = list() 88 | chosen_northing = list() 89 | smallest = nsmallest(len(distance), enumerate(distance), key=lambda x: x[1]) 90 | 91 | for val_idx in smallest: 92 | i = val_idx[0] 93 | if len(chosen_northing) == 0: 94 | chosen_values.append(value[i]) 95 | chosen_easting.append(easting[i]) 96 | chosen_northing.append(northing[i]) 97 | elif len(chosen_northing) < 4: 98 | if chosen_values.count(value[i]) > (self.num_repeats): 99 | pass 100 | else: 101 | chosen_values.append(value[i]) 102 | chosen_easting.append(easting[i]) 103 | chosen_northing.append(northing[i]) 104 | else: 105 | break 106 | 107 | interp_func = interp2d(chosen_easting, chosen_northing, chosen_values) 108 | 109 | new_value = interp_func(new_e,new_n) 110 | 111 | if new_value < min(chosen_values): 112 | self.new_value = min(chosen_values) 113 | elif new_value > max(chosen_values): 114 | self.new_value = max(chosen_values) 115 | else: 116 | self.new_value = new_value -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | scipy -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | import os.path 3 | 4 | setup( 5 | name='cp_gen', 6 | 7 | version='2018.03', 8 | 9 | packages=['cp_gen'], 10 | 11 | package_data={}, 12 | 13 | url='', 14 | 15 | license='Reservoir Concepts', 16 | 17 | author='chewson', 18 | 19 | author_email='chris.hewson@reservoirconcepts.com', 20 | 21 | description="Corner Point Grid Generating Tool", 22 | 23 | scripts=[os.path.join('bin', 'cp_gen')], 24 | 25 | install_requires=['scipy'] 26 | ) -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chewson/ecl-cornerpoint/5fded55d7dc24eb75ac6871ad7d29ae38e2884a6/tests/__init__.py -------------------------------------------------------------------------------- /tests/test_data/fault_depth.csv: -------------------------------------------------------------------------------- 1 | 366613.3427,6248316.475,473 2 | 366594.1636,6248292.617,473.12 3 | 366562.4445,6248248.259,473.24 4 | 366537.8795,6248215.831,473.36 5 | 366503.0092,6248167.478,473.48 6 | 366471.276,6248131.648,473.6 7 | 366442.8716,6248061.786,473.72 8 | 366442.306,6248085.981,473.84 9 | 366406.6702,6248022.766,473.96 10 | 366400.5456,6248059.559,474.08 11 | 366370.9499,6248022.323,474.2 12 | 366363.4288,6247968.286,474.32 13 | 366328.5193,6247923.334,474.44 14 | 366300.0644,6247872.598,474.56 15 | 366265.251,6247831.447,474.68 16 | 366235.2446,6247773.304,474.8 17 | 366210.133,6247740.17,474.92 18 | 366176.7659,6247701.116,475.04 19 | 366150.7678,6247646.084,475.16 20 | 366122.8972,6247608.338,475.28 21 | 366100.299,6247564.656,475.4 22 | 366079.4474,6247590.202,475.52 23 | 366059.6847,6247522.684,475.64 24 | 366024.2057,6247476.986,475.76 25 | 365989.9787,6247436.666,475.88 26 | 365949.2179,6247402.624,476 27 | 365909.3366,6247379.701,476.12 28 | 365882.4851,6247311.064,476.24 29 | 365869.4077,6247354.55,476.36 30 | 365851.6751,6247259.529,476.48 31 | 365819.5308,6247217.759,476.6 32 | 365789.947,6247175.259,476.72 33 | 365761.6428,6247131.407,476.84 34 | 365739.4526,6247078.111,476.96 35 | 365702.3371,6247037.682,477.08 36 | 365663.5122,6247016.861,477.2 37 | 365660.3878,6246985.562,477.32 38 | 365648.9494,6246950.639,477.44 39 | 365622.0431,6246922.006,477.56 40 | 365597.178,6246870.067,477.68 41 | 365565.3412,6246829.121,477.8 42 | 365534.1441,6246785.928,477.92 43 | 365505.3693,6246729.041,478.04 44 | 365472.4461,6246701.098,478.16 45 | 365434.9979,6246662.372,478.28 46 | 365426.6886,6246614.854,478.4 47 | 365394.9591,6246611.491,478.52 48 | 365370.3937,6246569.443,478.64 49 | 365348.7174,6246593.598,478.76 50 | 365335.3243,6246496.704,478.88 51 | 365313.0859,6246442.337,479 52 | 365289.613,6246404.403,479.12 53 | 365261.947,6246360.333,479.24 54 | 365231.8568,6246318.729,479.36 55 | 365203.0349,6246274.841,479.48 56 | 365172.156,6246160.247,479.6 57 | 365171.2332,6246226.678,479.72 58 | 365143.1629,6246164.653,479.84 59 | 365126.4098,6246104.965,479.96 60 | 365102.4983,6246132.211,480.08 61 | 365066.7069,6246079.876,480.2 62 | 365058.4651,6246136.74,480.32 63 | 365039.6976,6246037.81,480.44 64 | 365008.3119,6245994.715,480.56 65 | 364978.7828,6245951.195,480.68 66 | 364949.201,6245908.658,480.8 67 | 364915.877,6245856.178,480.92 68 | 364877.2543,6245809.761,481.04 69 | 364839.892,6245743.455,481.16 70 | 364837.6143,6245795.542,481.28 71 | 364809.4648,6245749.738,481.4 72 | 364802.838,6245707.76,481.52 73 | 364783.0318,6245677.422,481.64 74 | 364768.4784,6245720.484,481.76 75 | 364750.5914,6245628.345,481.88 76 | 364721.8607,6245582.757,482 77 | 364684.7153,6245538.378,482.12 78 | 364643.0559,6245489.936,482.24 79 | 364613.6922,6245419.795,482.36 80 | 364592.1419,6245385.647,482.48 81 | 364563.1847,6245344.286,482.6 82 | 364534.267,6245302.188,482.72 83 | 364505.0829,6245259.868,482.84 84 | 364479.8708,6245216.832,482.96 85 | 364451.39,6245176.278,483.08 86 | 364421.9667,6245130.782,483.2 87 | 364390.6927,6245085.602,483.32 88 | 364386.0336,6245014.264,483.44 89 | 364362.6353,6245036.004,483.56 90 | 364330.2583,6244991.146,483.68 91 | 364294.7873,6244955.679,483.8 92 | 364267.8205,6244924.501,483.92 93 | 364249.0545,6244879.942,484.04 94 | 364213.4795,6244816.64,484.16 95 | 364209.8636,6244861.756,484.28 96 | 364187.5584,6244777.704,484.4 97 | 364154.8037,6244723.886,484.52 98 | 364151.6467,6244750.489,484.64 99 | 364115.1775,6244705.899,484.76 100 | 364095.6442,6244638.646,484.88 101 | 364064.7468,6244602.69,485 102 | 365682.8365145363, 6248915.008395322, 468.1 103 | 365215.8558421309, 6248031.980946889, 458.8 104 | 366035.21592009097, 6247937.2594916355, 468.2 105 | 365208.839438038, 6247362.95382329, 461 106 | 364960.9264934221, 6246390.662122787, 450.2 107 | -------------------------------------------------------------------------------- /tests/test_data/fault_line.csv: -------------------------------------------------------------------------------- 1 | 366613.3427,6248316.475,473 2 | 366594.1636,6248292.617,473.12 3 | 366562.4445,6248248.259,473.24 4 | 366537.8795,6248215.831,473.36 5 | 366503.0092,6248167.478,473.48 6 | 366471.276,6248131.648,473.6 7 | 366442.8716,6248061.786,473.72 8 | 366442.306,6248085.981,473.84 9 | 366406.6702,6248022.766,473.96 10 | 366400.5456,6248059.559,474.08 11 | 366370.9499,6248022.323,474.2 12 | 366363.4288,6247968.286,474.32 13 | 366328.5193,6247923.334,474.44 14 | 366300.0644,6247872.598,474.56 15 | 366265.251,6247831.447,474.68 16 | 366235.2446,6247773.304,474.8 17 | 366210.133,6247740.17,474.92 18 | 366176.7659,6247701.116,475.04 19 | 366150.7678,6247646.084,475.16 20 | 366122.8972,6247608.338,475.28 21 | 366100.299,6247564.656,475.4 22 | 366079.4474,6247590.202,475.52 23 | 366059.6847,6247522.684,475.64 24 | 366024.2057,6247476.986,475.76 25 | 365989.9787,6247436.666,475.88 26 | 365949.2179,6247402.624,476 27 | 365909.3366,6247379.701,476.12 28 | 365882.4851,6247311.064,476.24 29 | 365869.4077,6247354.55,476.36 30 | 365851.6751,6247259.529,476.48 31 | 365819.5308,6247217.759,476.6 32 | 365789.947,6247175.259,476.72 33 | 365761.6428,6247131.407,476.84 34 | 365739.4526,6247078.111,476.96 35 | 365702.3371,6247037.682,477.08 36 | 365663.5122,6247016.861,477.2 37 | 365660.3878,6246985.562,477.32 38 | 365648.9494,6246950.639,477.44 39 | 365622.0431,6246922.006,477.56 40 | 365597.178,6246870.067,477.68 41 | 365565.3412,6246829.121,477.8 42 | 365534.1441,6246785.928,477.92 43 | 365505.3693,6246729.041,478.04 44 | 365472.4461,6246701.098,478.16 45 | 365434.9979,6246662.372,478.28 46 | 365426.6886,6246614.854,478.4 47 | 365394.9591,6246611.491,478.52 48 | 365370.3937,6246569.443,478.64 49 | 365348.7174,6246593.598,478.76 50 | 365335.3243,6246496.704,478.88 51 | 365313.0859,6246442.337,479 52 | 365289.613,6246404.403,479.12 53 | 365261.947,6246360.333,479.24 54 | 365231.8568,6246318.729,479.36 55 | 365203.0349,6246274.841,479.48 56 | 365172.156,6246160.247,479.6 57 | 365171.2332,6246226.678,479.72 58 | 365143.1629,6246164.653,479.84 59 | 365126.4098,6246104.965,479.96 60 | 365102.4983,6246132.211,480.08 61 | 365066.7069,6246079.876,480.2 62 | 365058.4651,6246136.74,480.32 63 | 365039.6976,6246037.81,480.44 64 | 365008.3119,6245994.715,480.56 65 | 364978.7828,6245951.195,480.68 66 | 364949.201,6245908.658,480.8 67 | 364915.877,6245856.178,480.92 68 | 364877.2543,6245809.761,481.04 69 | 364839.892,6245743.455,481.16 70 | 364837.6143,6245795.542,481.28 71 | 364809.4648,6245749.738,481.4 72 | 364802.838,6245707.76,481.52 73 | 364783.0318,6245677.422,481.64 74 | 364768.4784,6245720.484,481.76 75 | 364750.5914,6245628.345,481.88 76 | 364721.8607,6245582.757,482 77 | 364684.7153,6245538.378,482.12 78 | 364643.0559,6245489.936,482.24 79 | 364613.6922,6245419.795,482.36 80 | 364592.1419,6245385.647,482.48 81 | 364563.1847,6245344.286,482.6 82 | 364534.267,6245302.188,482.72 83 | 364505.0829,6245259.868,482.84 84 | 364479.8708,6245216.832,482.96 85 | 364451.39,6245176.278,483.08 86 | 364421.9667,6245130.782,483.2 87 | 364390.6927,6245085.602,483.32 88 | 364386.0336,6245014.264,483.44 89 | 364362.6353,6245036.004,483.56 90 | 364330.2583,6244991.146,483.68 91 | 364294.7873,6244955.679,483.8 92 | 364267.8205,6244924.501,483.92 93 | 364249.0545,6244879.942,484.04 94 | 364213.4795,6244816.64,484.16 95 | 364209.8636,6244861.756,484.28 96 | 364187.5584,6244777.704,484.4 97 | 364154.8037,6244723.886,484.52 98 | 364151.6467,6244750.489,484.64 99 | 364115.1775,6244705.899,484.76 100 | 364095.6442,6244638.646,484.88 101 | 364064.7468,6244602.69,485 -------------------------------------------------------------------------------- /tests/test_data/height.csv: -------------------------------------------------------------------------------- 1 | 364937.6808,6244875.209,10 2 | 364798.6653,6244916.575,10 3 | 364716.9784,6245039.997,10 4 | 364691.6357,6245189.131,10 5 | 364736.8465,6245377.448,10 6 | 364836.6793,6245492.874,10 7 | 364930.0226,6245636.78,10 8 | 365002.2983,6245774.565,10 9 | 365074.205,6245891.221,10 10 | 365139.0071,6246001.141,10 11 | 365239.0859,6246130.653,10 12 | 365297.1525,6246254.968,10 13 | 365397.2313,6246384.48,10 14 | 365483.3471,6246514.607,10 15 | 365554.6386,6246596.048,10 16 | 365633.4038,6246705.353,10 17 | 365691.1014,6246808.538,10 18 | 365783.5835,6246903.143,10 19 | 365883.1703,6247004.482,10 20 | 365989.2464,6247077.342,10 21 | 366093.4772,6247044.557,10 22 | 366084.2813,6246918.09,10 23 | 366039.4396,6246750.902,10 24 | 365946.0963,6246606.997,10 25 | 365859.7345,6246462.783,10 26 | 365758.6715,6246276.927,10 27 | 365693.2543,6246131.791,10 28 | 365669.3571,6245963.681,10 29 | 365687.1031,6245779.639,10 30 | 365740.0028,6245608.146,10 31 | 365708.8781,6245426.257,10 32 | 365664.4055,6245280.199,10 33 | 365592.6218,6245170.586,10 34 | 365507.1212,6245075.674,10 35 | 365393.2024,6244953.82,10 36 | 365217.1879,6244876.993,10 37 | 365035.1761,6244856.817,10 38 | 364937.5037,6245224.104,12 39 | 364937.9885,6245164.573,12 40 | 364943.6187,6245120.289,12 41 | 364948.6503,6245102.84,12 42 | 364961.5699,6245353.677,12 43 | 364970.4454,6245311.882,12 44 | 364967.5431,6245267.925,12 45 | 364957.5602,6245215.769,12 46 | 364980.5783,6245097.665,12 47 | 365004.3888,6245321.266,12 48 | 365014.3693,6245076.943,12 49 | 365023.5523,6245419.364,12 50 | 365032.9416,6245356.993,12 51 | 365049.3677,6245064.243,12 52 | 365058.4969,6245403.583,12 53 | 365084.4788,6245057.998,12 54 | 365079.2211,6245398.559,12 55 | 365120.7871,6245059.188,12 56 | 365142.9676,6245522.477,12 57 | 365155.8997,6245063.204,12 58 | 365169.9977,6245554.627,12 59 | 365188.9081,6245598.513,12 60 | 365191.7687,6245077.945,12 61 | 365188.0211,6245669.936,12 62 | 365217.5906,6245713.046,12 63 | 365222.577,6245631.902,12 64 | 365223.2068,6245096.477,12 65 | 365252.6513,6245728.352,12 66 | 365243.6155,6245644.876,12 67 | 365276.7224,6245811.063,12 68 | 365261.0511,6245123.56,12 69 | 365275.8668,6245763.961,12 70 | 365275.7256,6245695.95,12 71 | 365298.6427,6245724.818,12 72 | 365289.844,6245156.933,12 73 | 365309.8537,6245835.061,12 74 | 365309.185,6245781.97,12 75 | 365333.1312,6245877.685,12 76 | 365321.1687,6245777.122,12 77 | 365327.2487,6245173.758,12 78 | 365337.9408,6245820.796,12 79 | 365352.54,6245923.38,12 80 | 365372.6342,6245959.837,12 81 | 365361.6398,6245204.851,12 82 | 365395.4712,6245998.222,12 83 | 365392.9192,6245236.735,12 84 | 365418.9363,6246034.018,12 85 | 365445.2787,6246067.774,12 86 | 365424.2837,6245264.77,12 87 | 365462.134,6246148.557,12 88 | 365446.1841,6245308.749,12 89 | 365473.0238,6246096.062,12 90 | 365467.424,6245351.58,12 91 | 365497.1012,6246134.074,12 92 | 365488.2552,6245383.232,12 93 | 365512.4961,6246098.905,12 94 | 365508.7046,6246065.144,12 95 | 365509.8713,6245426.921,12 96 | 365525.6731,6245471.445,12 97 | 365538.3793,6246093.908,12 98 | 365542.4375,6246050.501,12 99 | 365535.5079,6245517.812,12 100 | 365543.6069,6245563.683,12 101 | 365550.9884,6246011.27,12 102 | 365550.6614,6245974.22,12 103 | 365549.257,6245655.523,12 104 | 365554.5558,6245940.546,12 105 | 365552.6233,6245903.234,12 106 | 365551.743,6245596.212,12 107 | 365555.1574,6245865.008,12 108 | 365555.8359,6245722.704,12 109 | 365534.7096,6245354.269,12 110 | 365558.3455,6245824.227,12 111 | 365558.2422,6245784.982,12 112 | 365553.6193,6245764.729,12 113 | 365552.2427,6245624.82,12 114 | 365577.6123,6245564.956,12 115 | 365589.0849,6245534.371,12 116 | 366796.0895,6249269.111,2 117 | 366658.0583,6249366.822,2 118 | 366513.2916,6249478.926,2 119 | 366402.3252,6249526.105,2 120 | 366193.7406,6249584.633,2 121 | 366033.4115,6249605.793,2 122 | 365865.8548,6249613.175,2 123 | 365733.2058,6249619.018,2 124 | 365495.0958,6249587.217,2 125 | 365424.1733,6249526.905,2 126 | 365454.7751,6249278.861,2 127 | 365515.5175,6249156.361,2 128 | 365631.1279,6248975.057,2 129 | 365733.1443,6248815.497,2 130 | 365835.7758,6248691.152,2 131 | 365979.5584,6248522.703,2 132 | 366193.2792,6248358.222,2 133 | 366302.8923,6248233.569,2 134 | 366348.5644,6248048.298,2 135 | 366283.2702,6247910.205,2 136 | 366170.0895,6247830.609,2 137 | 365993.0909,6247697.437,2 138 | 365859.0886,6247625.808,2 139 | 365710.7542,6247533.664,2 140 | 365534.3707,6247435.707,2 141 | 365456.0976,6247354.574,2 142 | 365336.0584,6247282.329,2 143 | 365215.035,6247153.739,2 144 | 365080.1716,6247032.808,2 145 | 364980.2158,6246910.339,2 146 | 364873.5245,6246802.264,2 147 | 364724.0829,6246646.733,2 148 | 364623.266,6246474.963,2 149 | 364564.9533,6246336.562,2 150 | 364485.204,6246170.913,2 151 | 364398.5961,6246012.613,2 152 | 364291.1667,6245862.28,2 153 | 364197.7004,6245711.331,2 154 | 364104.6031,6245581.512,2 155 | 364004.1552,6245430.871,2 156 | 363917.3013,6245258.485,2 157 | 363851.515,6245092.22,2 158 | 363778.7472,6244926.263,2 159 | 363739.1647,6244660.165,2 160 | 363762.9081,6244419.472,2 161 | 363836.0142,6244204.798,2 162 | 363952.7318,6244086.88,2 163 | 366919.2966,6249122.715,2 164 | 367084.7619,6248995.602,2 165 | 367229.2826,6248869.411,2 166 | 367408.0958,6248706.468,2 167 | 367587.032,6248550.568,2 168 | 367744.0395,6248339.246,2 169 | 367901.416,6248149.053,2 170 | 367954.1927,6247970.517,2 171 | 367949.8869,6247724.01,2 172 | 367924.0214,6247443.211,2 173 | 367884.1929,6247163.028,2 174 | 367930.4801,6247012.971,2 175 | 367894.25,6247338.796,2 176 | 368005.3085,6246896.899,2 177 | 368114.9216,6246772.247,2 178 | 368209.7104,6246598.908,2 179 | 368303.146,6246348.096,2 180 | 368384.2179,6246189.458,2 181 | 368498.9671,6245958.853,2 182 | 368636.1065,6245410.08,2 183 | 368637.798,6245106.922,2 184 | 368570.2894,6244842.054,2 185 | 368489.5559,6244620.06,2 186 | 368302.8692,6244332.249,2 187 | 368402.702,6244447.675,2 188 | 368161.2703,6244225.711,2 189 | 367931.372,6244264.033,2 190 | 367715.6828,6244315.825,2 191 | 367425.4112,6244497.776,2 192 | 367224.9153,6244619.383,2 193 | 367165.034,6244791.184,2 194 | 367027.2488,6244902.981,2 195 | 366888.1104,6244937.304,2 196 | 366884.0814,6245106.645,2 197 | 366936.6428,6245315.783,2 198 | 367003.0442,6245517.263,2 199 | 367077.0422,6245753.651,2 200 | 367142.4594,6245898.787,2 201 | 367060.0343,6245979.951,2 202 | 366941.3484,6245985.179,2 203 | 366863.1983,6245911.089,2 204 | 366776.4675,6245745.747,2 205 | 366732.1178,6245606.731,2 206 | 366644.2798,6245378.002,2 207 | 366521.411,6245143.767,2 208 | 366426.4684,6244908.302,2 209 | 366303.7227,6244681.11,2 210 | 366152.8048,6244441.062,2 211 | 365980.6964,6244187.851,2 212 | 365740.7409,6244050.404,2 213 | 365488.1757,6243991.046,2 214 | 365019.4292,6243955.308,2 215 | 364537.7038,6243976.529,2 216 | 364230.7627,6244004.148,2 217 | 365885.0771,6249513.649,4 218 | 366030.951,6249464.933,4 219 | 366197.1545,6249380.078,4 220 | 366341.7982,6249260.93,4 221 | 366500.774,6249162.297,4 222 | 366646.0328,6249078.365,4 223 | 366763.3656,6248995.663,4 224 | 366852.8952,6248921.235,4 225 | 366983.4528,6248795.659,4 226 | 367100.4165,6248691.828,4 227 | 367258.1621,6248522.765,4 228 | 367168.8785,6248611.279,4 229 | 367361.5318,6248440.678,4 230 | 367457.7969,6248351.856,4 231 | 367539.7299,6248242.519,4 232 | 367642.6074,6248132.26,4 233 | 367689.3867,6248010.376,4 234 | 367701.2584,6247890.029,4 235 | 367691.4474,6247728.347,4 236 | 367682.3745,6247608.923,4 237 | 367665.4589,6247440.505,4 238 | 367669.8569,6247292.293,4 239 | 367715.652,6247114.065,4 240 | 367797.216,6246983.599,4 241 | 367864.9399,6246860.792,4 242 | 367940.3834,6246779.935,4 243 | 368056.3629,6246619.76,4 244 | 368117.1052,6246497.261,4 245 | 368164.1306,6246389.462,4 246 | 368231.6084,6246252.569,4 247 | 368285.0002,6246109.248,4 248 | 368373.2996,6245964.389,4 249 | 368432.4427,6245750.329,4 250 | 368458.1544,6245622.324,4 251 | 368489.3714,6245409.495,4 252 | 368477.1306,6245508.713,4 253 | 368473.3169,6245290.379,4 254 | 368464.244,6245170.955,4 255 | 368427.245,6245052.761,4 256 | 368404.3321,6244940.995,4 257 | 368359.7364,6244787.894,4 258 | 368322.2453,6244641.527,4 259 | 368271.7753,6244552.121,4 260 | 368207.3423,6244463.329,4 261 | 368136.2968,6244395.975,4 262 | 368031.2048,6244379.459,4 263 | 367926.7279,6244398.158,4 264 | 367822.7431,6244445.03,4 265 | 367746.5615,6244483.628,4 266 | 367657.1548,6244565.1,4 267 | 367587.9547,6244603.39,4 268 | 367519.2466,6244669.853,4 269 | 367408.8954,6244752.248,4 270 | 367305.7718,6244848.421,4 271 | 367231.4354,6244992.664,4 272 | 367206.954,6245191.1,4 273 | 367209.6605,6245346.047,4 274 | 367233.4346,6245507.114,4 275 | 367285.6269,6245695.123,4 276 | 367344.6777,6245875.782,4 277 | 367361.8393,6246058.285,4 278 | 367295.4687,6246258.566,4 279 | 367170.7854,6246320.446,4 280 | 367031.0318,6246319.555,4 281 | 366911.4847,6246275.482,4 282 | 366805.1625,6246188.536,4 283 | 366718.9237,6246051.365,4 284 | 366674.9431,6245933.479,4 285 | 366616.1384,6245766.907,4 286 | 366541.8943,6245516.433,4 287 | 366565.1763,6245649.328,4 288 | 366412.6591,6245317.721,4 289 | 366289.9134,6245090.529,4 290 | 366089.3867,6244810.376,4 291 | 366175.5025,6244940.503,4 292 | 366002.7789,6244652.077,4 293 | 365887.9989,6244480.922,4 294 | 365703.1576,6244298.756,4 295 | 365788.2891,6244372.539,4 296 | 365553.716,6244143.225,4 297 | 365349.5294,6244053.541,4 298 | 365077.1268,6244058.493,4 299 | 370461.945,6245139.338,4 300 | 364937.0041,6244036.472,4 301 | 364769.4475,6244043.853,4 302 | 364587.3127,6244016.635,4 303 | 364384.8484,6244025.554,4 304 | 364176.3867,6244091.125,4 305 | 364032.9732,6244280.702,4 306 | 363930.3417,6244405.047,4 307 | 363904.876,6244547.138,4 308 | 363888.1142,6244787.524,4 309 | 363968.8477,6245009.519,4 310 | 364041.6156,6245175.476,4 311 | 364142.9246,6245375.418,4 312 | 364237.4982,6245589.754,4 313 | 364359.0136,6245746.516,4 314 | 364466.32,6245889.806,4 315 | 364531.6142,6246027.899,4 316 | 364632.1851,6246185.583,4 317 | 364712.5496,6246386.448,4 318 | 364798.5423,6246509.532,4 319 | 364919.6887,6246645.164,4 320 | 364991.4724,6246754.777,4 321 | 365105.3912,6246876.631,4 322 | 365212.2055,6246991.749,4 323 | 365332.6138,6247085.124,4 324 | 365432.2005,6247186.463,4 325 | 365588.2545,6247320.558,4 326 | 365709.0319,6247435.061,4 327 | 365835.8066,6247492.912,4 328 | 365990.8765,6247570.663,4 329 | 366131.6142,6247627.899,4 330 | 366251.6534,6247700.144,4 331 | 366358.3447,6247808.219,4 332 | 366458.3005,6247930.688,4 333 | 366482.5667,6248119.927,4 334 | 366415.7039,6248292.036,4 335 | 366326.7894,6248401.68,4 336 | 366196.2318,6248527.255,4 337 | 366085.6346,6248595.563,4 338 | 365989.4925,6248691.428,4 339 | 365893.4734,6248794.337,4 340 | 365783.7373,6248911.946,4 341 | 365709.0319,6249035.061,4 342 | 365606.8925,6249187.578,4 343 | 365554.1158,6249366.115,4 344 | 365597.8503,6249469.915,4 345 | 365745.4466,6249519.801,4 346 | 367006.1812,6248096.861,6 347 | 367074.5202,6248009.269,6 348 | 367071.6907,6247847.279,6 349 | 367034.3226,6247707.956,6 350 | 366948.3299,6247584.872,6 351 | 366862.0911,6247447.702,6 352 | 366775.7293,6247303.489,6 353 | 366675.5275,6247166.934,6 354 | 366554.7501,6247052.43,6 355 | 366441.6925,6246979.878,6 356 | 366334.6321,6246850.673,6 357 | 366248.3933,6246713.503,6 358 | 366238.9514,6246572.95,6 359 | 366257.6815,6246445.253,6 360 | 366297.7254,6246337.762,6 361 | 366344.2586,6246201.791,6 362 | 366418.964,6246078.676,6 363 | 366444.6757,6245950.672,6 364 | 366420.7786,6245782.561,6 365 | 366383.7796,6245664.367,6 366 | 366296.8027,6245484.939,6 367 | 366217.5454,6245347.461,6 368 | 366130.1995,6245146.904,6 369 | 366050.6962,6244995.34,6 370 | 365929.3037,6244845.622,6 371 | 365857.151,6244714.88,6 372 | 365749.5986,6244557.503,6 373 | 365558.6369,6244424.946,6 374 | 365388.0047,6244256.252,6 375 | 365246.8978,6244177.886,6 376 | 365016.1384,6244166.907,6 377 | 364792.2374,6244148.576,6 378 | 364505.8718,6244154.143,6 379 | 364290.4286,6244220.022,6 380 | 364181.3076,6244372.846,6 381 | 364122.0415,6244579.862,6 382 | 364119.3658,6244826.676,6 383 | 364179.5238,6245070.722,6 384 | 364330.6877,6245324.856,6 385 | 364237.7134,6245202.08,6 386 | 364418.0337,6245525.413,6 387 | 364497.2909,6245662.891,6 388 | 364619.1755,6245840.782,6 389 | 364561.97,6245765.769,6 390 | 364705.9064,6246006.124,6 391 | 364662.91,6245944.582,6 392 | 364742.7824,6246117.275,6 393 | 364807.2154,6246206.066,6 394 | 364894.3153,6246392.538,6 395 | 364980.6771,6246536.751,6 396 | 365066.0548,6246624.62,6 397 | 365137.4693,6246713.104,6 398 | 365229.9515,6246807.708,6 399 | 365329.5382,6246909.048,6 400 | 365422.1434,6247010.695,6 401 | 365535.2011,6247083.247,6 402 | 365620.7017,6247178.159,6 403 | 365719.7964,6247251.327,6 404 | 365846.9401,6247330.307,6 405 | 365973.5918,6247381.116,6 406 | 366059.2155,6247483.071,6 407 | 366249.193,6247559.283,6 408 | 366178.6396,6247520.1,6 409 | 366348.4106,6247639.494,6 410 | 366483.2741,6247760.425,6 411 | 366582.9838,6247868.808,6 412 | 366703.7612,6247983.311,6 413 | 366831.151,6248076.377,6 414 | 364874.0781,6244433.958,8 415 | 364727.22,6244426.33,8 416 | 364609.7643,6244501.989,8 417 | 364513.7452,6244604.898,8 418 | 364474.4395,6244754.647,8 419 | 364478.0072,6244958.895,8 420 | 364480.7137,6245113.842,8 421 | 364519.0659,6245309.509,8 422 | 364619.7598,6245474.236,8 423 | 364699.6322,6245646.929,8 424 | 364772.154,6245798.8,8 425 | 364885.9498,6245913.611,8 426 | 364966.4373,6246121.519,8 427 | 365060.3957,6246300.64,8 428 | 365160.8436,6246451.281,8 429 | 365289.0946,6246593.649,8 430 | 365418.2067,6246785.318,8 431 | 365367.3676,6246674.782,8 432 | 365496.1107,6246845.322,8 433 | 365560.1747,6246912.984,8 434 | 365652.6568,6247007.589,8 435 | 365759.1021,6247101.578,8 436 | 365858.3197,6247181.789,8 437 | 365978.1129,6247239.947,8 438 | 366069.8569,6247292.293,8 439 | 366168.3364,6247330.246,8 440 | 366273.7975,6247367.891,8 441 | 366378.1513,6247342.148,8 442 | 366404.8472,6247270.488,8 443 | 366395.4052,6247129.935,8 444 | 366323.6216,6247020.321,8 445 | 366237.7519,6246904.28,8 446 | 366158.3716,6246759.76,8 447 | 366092.5853,6246593.495,8 448 | 366042.1153,6246504.088,8 449 | 365976.5751,6246351.909,8 450 | 365945.9425,6246198.193,8 451 | 365892.889,6245960.882,8 452 | 365889.9365,6245791.849,8 453 | 365900.2089,6245579.943,8 454 | 365891.0129,6245453.476,8 455 | 365881.817,6245327.009,8 456 | 365816.2768,6245174.83,8 457 | 365764.5766,6245014.993,8 458 | 365664.3747,6244878.438,8 459 | 365592.9602,6244789.954,8 460 | 365492.8813,6244660.442,8 461 | 365386.5591,6244573.496,8 462 | 365266.2739,6244487.165,8 463 | 365069.6839,6244432.389,8 464 | 363716.2825,6249750.16,0 465 | 363911.7653,6249741.549,0 466 | 364058.3774,6249735.09,0 467 | 364232.9156,6249727.401,0 468 | 364372.4231,6249714.207,0 469 | 364532.8752,6249700.09,0 470 | 364728.604,6249705.565,0 471 | 364917.1052,6249697.261,0 472 | 365063.5943,6249683.759,0 473 | 365217.4339,6249691.079,0 474 | 365349.9599,6249678.192,0 475 | 365587.5779,6249681.821,0 476 | 365468.6459,6249672.964,0 477 | 365664.3747,6249678.438,0 478 | 365804.0053,6249672.287,0 479 | 365964.4574,6249658.17,0 480 | 366167.0447,6249656.294,0 481 | 366299.6937,6249650.45,0 482 | 366411.3982,6249645.53,0 483 | 366585.9363,6249637.841,0 484 | 366767.333,6249622.801,0 485 | 366921.0497,6249623.078,0 486 | 367081.6248,6249616.004,0 487 | 367318.9967,6249605.547,0 488 | 367172.3846,6249612.006,0 489 | 367444.6642,6249600.011,0 490 | 367612.2209,6249592.63,0 491 | 367751.8514,6249586.479,0 492 | 367856.5743,6249581.865,0 493 | 367961.2972,6249577.252,0 494 | 368149.6755,6249561.905,0 495 | 368303.2691,6249555.139,0 496 | 368442.8996,6249548.988,0 497 | 368561.3395,6249529.673,0 498 | 368721.7916,6249515.556,0 499 | 368902.8193,6249479.388,0 500 | 369026.5184,6249361.163,0 501 | 369185.1252,6249241.401,0 502 | 369322.6643,6249115.518,0 503 | 369446.8556,6249025.465,0 504 | 369613.305,6248954.697,0 505 | 369737.9883,6248892.816,0 506 | 369820.4134,6248811.652,0 507 | 369817.8299,6248663.748,0 508 | 369836.4371,6248529.008,0 509 | 369841.0812,6248394.883,0 510 | 369839.4819,6248303.323,0 511 | 369844.6181,6248197.37,0 512 | 369848.278,6248006.9,0 513 | 369843.0188,6248105.811,0 514 | 369839.9432,6247929.735,0 515 | 369837.9749,6247817.046,0 516 | 369843.6031,6247739.265,0 517 | 369841.7578,6247633.619,0 518 | 369839.5434,6247506.845,0 519 | 369851.6611,6247400.584,0 520 | 369870.5143,6247279.93,0 521 | 369868.792,6247181.327,0 522 | 369867.0697,6247082.725,0 523 | 369872.2059,6246976.772,0 524 | 369890.567,6246827.945,0 525 | 369866.5468,6246652.792,0 526 | 369875.1277,6246744.044,0 527 | 369871.56,6246539.796,0 528 | 369876.3271,6246412.713,0 529 | 369860.0266,6246279.511,0 530 | 369877.7726,6246095.469,0 531 | 369854.7367,6245976.66,0 532 | 369851.169,6245772.412,0 533 | 369848.8316,6245638.594,0 534 | 369838.7745,6245462.826,0 535 | 369805.4354,6245154.162,0 536 | 369795.7474,6244999.523,0 537 | 369777.9706,6244781.804,0 538 | 369740.3565,6244628.395,0 539 | 369667.4657,6244455.394,0 540 | 369622.5009,6244281.164,0 541 | 369578.3974,6244156.234,0 542 | 369433.9689,6243887.707,0 543 | 369348.2223,6243778.709,0 544 | 369491.5435,6243983.849,0 545 | 369548.6259,6244051.819,0 546 | 369229.5363,6243783.938,0 547 | 369138.7764,6243787.936,0 548 | 369020.0905,6243793.164,0 549 | 368901.4045,6243798.393,0 550 | 368691.9587,6243807.619,0 551 | 368831.7122,6243808.511,0 552 | 368517.1744,6243801.222,0 553 | 368593.9713,6243797.839,0 554 | 368300.8701,6243817.8,0 555 | 368419.5561,6243812.571,0 556 | 368175.2026,6243823.336,0 557 | 367993.8059,6243838.375,0 558 | 367861.0339,6243837.176,0 559 | 367833.1078,6243838.406,0 560 | 367666.4123,6243895.088,0 561 | 367742.3479,6243842.404,0 562 | 367540.6218,6243893.581,0 563 | 367435.2837,6243862.98,0 564 | 367302.6347,6243868.823,0 565 | 367218.8564,6243872.514,0 566 | 366953.9274,6243905.33,0 567 | 366891.3397,6243922.184,0 568 | 366674.9124,6243931.718,0 569 | 366486.5342,6243947.065,0 570 | 366396.2664,6243979.236,0 571 | 366270.5989,6243984.772,0 572 | 366138.0729,6243997.658,0 573 | 366088.4641,6243957.553,0 574 | 365871.9137,6243960.044,0 575 | 365717.828,6243938.638,0 576 | 363618.818,6245370.313,0 577 | 363615.2811,6245567.825,0 578 | 363618.2336,6245736.858,0 579 | 363634.9031,6245891.19,0 580 | 363638.1017,6246074.309,0 581 | 363648.7739,6246285.293,0 582 | 363651.9725,6246468.412,0 583 | 363749.8677,6246872.91,0 584 | 363747.315,6247126.767,0 585 | 363635.9181,6247949.295,0 586 | 363787.5126,6247428.08,0 587 | 363713.7913,6247607.539,0 588 | 363773.0882,6247802.283,0 589 | 363718.3739,6246669.892,0 590 | 363756.4494,6248049.712,0 591 | 363795.4168,6248280.595,0 592 | 363820.7902,6248533.222,0 593 | 363823.7427,6248702.254,0 594 | 363825.219,6248786.771,0 595 | 363794.2481,6249013.686,0 596 | 363796.0934,6249119.332,0 597 | 363791.4493,6249253.457,0 598 | 363786.1901,6249352.367,0 599 | 363773.7033,6249437.498,0 600 | 363770.5355,6249656.14,0 601 | 363775.1796,6249522.015,0 -------------------------------------------------------------------------------- /tests/test_data/res_depths.csv: -------------------------------------------------------------------------------- 1 | 366461.2068,6248033.509,415 2 | 366508.4551,6248019.534,415 3 | 366551.706,6248012.289,415 4 | 366594.957,6248005.044,415 5 | 366637.9778,6248002.094,415 6 | 366681.0849,6247997.533,415 7 | 366723.9332,6247997.805,415 8 | 366766.3787,6248005.593,415 9 | 366808.5271,6248018.93,415 10 | 366850.4165,6248037.099,415 11 | 366892.3731,6248054.015,415 12 | 366934.253,6248072.363,415 13 | 366976.4013,6248085.7,415 14 | 367018.6743,6248096.71,415 15 | 367061.0527,6248105.752,415 16 | 367102.4597,6248117.339,415 17 | 367102.1176,6248066.575,415 18 | 367145.6466,6248126.877,415 19 | 367188.4181,6248128.58,415 20 | 367231.4965,6248124.557,415 21 | 367274.7954,6248116.416,415 22 | 367318.5736,6248099.328,415 23 | 367362.5341,6248078.838,415 24 | 367407.041,6248048.148,415 25 | 367451.5576,6248017.278,415 26 | 367496.1703,6247984.613,415 27 | 367525.1694,6247943.897,415 28 | 367561.168,6247939.657,415 29 | 367608.6646,6247921.351,415 30 | 367644.111,6247841.58,415 31 | 367652.9894,6247894.061,415 32 | 367687.2469,6247872.851,415 33 | 367722.0509,6247841.439,415 34 | 367870.9699,6247752.882,415 35 | 367913.4538,6247687.218,415 36 | 367958.3059,6247650.084,415 37 | 368000.3926,6247612.617,415 38 | 368036.1458,6247579.073,415 39 | 368191.073,6247426.853,415 40 | 368217.2698,6247434.883,415 41 | 368296.7006,6247370.543,415 42 | 368341.361,6247336.989,415 43 | 368385.8295,6247307.014,415 44 | 368430.1543,6247279.724,415 45 | 368474.2778,6247256.192,415 46 | 368518.2382,6247235.702,415 47 | 368562.1219,6247216.645,415 48 | 368603.9861,6247204.114,415 49 | 368594.0496,6247275.294,415 50 | 368612.8859,6247170.987,415 51 | 368657.3008,6247185.657,415 52 | 368700.734,6247175.011,415 53 | 368743.9178,6247169.019,415 54 | 368786.231,6247172.003,415 55 | 368829.4225,6247173.141,415 56 | 368872.2324,6247174.129,415 57 | 368903.3623,6247174.932,415 58 | 369001.7839,6247228.889,415 59 | 369043.7788,6247245.089,415 60 | 369083.9952,6247258.12,415 61 | 366098.9315,6247526.538,420 62 | 366138.545,6247505.362,420 63 | 366182.5342,6247484.335,420 64 | 366226.4947,6247463.846,420 65 | 366270.5318,6247441.925,420 66 | 366314.5498,6247420.362,420 67 | 366358.7979,6247394.503,420 68 | 366402.9309,6247370.792,420 69 | 366446.8434,6247351.198,420 70 | 366465.8082,6247288.135,420 71 | 366490.7292,6247332.102,420 72 | 366508.6239,6247301.137,420 73 | 366550.2966,6247311.229,420 74 | 366597.1852,6247303.969,420 75 | 366628.5302,6247310.801,420 76 | 366663.8953,6247277.709,420 77 | 366703.1882,6247271.021,420 78 | 366744.3013,6247276.296,420 79 | 366789.8786,6247275.981,420 80 | 366786.5085,6247229.785,420 81 | 366832.4968,6247280.548,420 82 | 366874.7793,6247291.379,420 83 | 366906.9515,6247309.096,420 84 | 366970.3897,6247470.548,420 85 | 366984.1263,6247544.244,420 86 | 366987.862,6247508.082,420 87 | 367024.4749,6247552.01,420 88 | 367035.1884,6247606.604,420 89 | 367049.9116,6247549.982,420 90 | 367071.0752,6247627.717,420 91 | 367139.7092,6247643.691,420 92 | 367159.7024,6247673.567,420 93 | 367182.2084,6247636.151,420 94 | 367218.4316,6247673.798,420 95 | 367251.594,6247676.665,420 96 | 367249.328,6247646.227,420 97 | 367307.7873,6247646.041,420 98 | 367352.3134,6247614.993,420 99 | 367393.3236,6247564.002,420 100 | 367397.108,6247578.933,420 101 | 367441.9083,6247542.765,420 102 | 367482.5179,6247512.088,420 103 | 367519.6507,6247546.311,420 104 | 367527.6757,6247469.247,420 105 | 367544.5621,6247436.9,420 106 | 367547.2926,6247539.488,420 107 | 367588.2886,6247419.161,420 108 | 367633.315,6247388.472,420 109 | 367673.6153,6247345.385,420 110 | 367815.0725,6247305.194,420 111 | 367844.0567,6247236.946,420 112 | 367888.88,6247200.349,420 113 | 367904.2973,6247174.412,420 114 | 367946.1485,6247149.654,420 115 | 367991.0293,6247111.984,420 116 | 368031.6894,6247080.364,420 117 | 368032.0175,6247037.871,420 118 | 368149.5602,6247025.848,420 119 | 368188.4352,6246882.075,420 120 | 368225.3485,6246833.111,420 121 | 368261.4076,6246792.819,420 122 | 368304.6194,6246768.12,420 123 | 368339.9646,6246723.736,420 124 | 368323.422,6246799.006,420 125 | 368383.538,6246695.157,420 126 | 368370.7414,6246643.08,420 127 | 368428.0186,6246683.142,420 128 | 368469.8002,6246685.141,420 129 | 368484.0478,6246637.396,420 130 | 368512.7156,6246684.159,420 131 | 368556.1059,6246679.907,420 132 | 368598.134,6246689.893,420 133 | 368643.4161,6246695.089,420 134 | 368683.2457,6246701.354,420 135 | 368667.6653,6246664.87,420 136 | 368725.7679,6246707.71,420 137 | 368768.2614,6246714.604,420 138 | 368810.822,6246720.245,420 139 | 368853.3922,6246725.707,420 140 | 368895.8761,6246732.78,420 141 | 368938.4463,6246738.241,420 142 | 368981.0836,6246742.451,420 143 | 369023.7593,6246745.944,420 144 | 369066.6651,6246745.142,420 145 | 369109.7818,6246740.402,420 146 | 369153.0519,6246732.799,420 147 | 369196.4946,6246721.974,420 148 | 369240.2249,6246705.78,420 149 | 369284.0415,6246687.975,420 150 | 369310.8951,6246655.458,420 151 | 369348.1653,6246654.789,420 152 | 369374.5383,6246728.223,420 153 | 369392.4517,6246628.214,420 154 | 369402.937,6246723.436,420 155 | 369436.9107,6246598.418,420 156 | 369481.5998,6246564.327,420 157 | 369526.3752,6246528.625,420 158 | 369571.2082,6246491.849,420 159 | 369616.1274,6246453.462,420 160 | 369661.3535,6246409.348,420 161 | 369706.5699,6246365.413,420 162 | 369743.5011,6246330.664,420 163 | 369833.9353,6246242.769,420 164 | 369879.1614,6246198.655,420 165 | 365735.7859,6247044.297,425 166 | 365778.3666,6247027.741,425 167 | 365822.6147,6247001.883,425 168 | 365866.8628,6246976.024,425 169 | 365911.1205,6246949.987,425 170 | 365955.4644,6246922.338,425 171 | 365999.8276,6246894.332,425 172 | 366044.0852,6246868.295,425 173 | 366088.2086,6246844.763,425 174 | 366132.38,6246820.336,425 175 | 366176.5897,6246795.194,425 176 | 366220.6269,6246773.272,425 177 | 366264.4339,6246755.647,425 178 | 366286.5699,6246733.402,425 179 | 366328.0879,6246731.23,425 180 | 366371.9237,6246713.067,425 181 | 366415.5677,6246698.484,425 182 | 366459.2885,6246682.469,425 183 | 366503.0571,6246665.559,425 184 | 366546.9121,6246647.038,425 185 | 366575.1005,6246557.277,425 186 | 366665.3712,6246557.294,425 187 | 366709.3884,6246523.623,425 188 | 366752.4062,6246481.562,425 189 | 366799.6487,6246438.975,425 190 | 366847.2159,6246401.515,425 191 | 366889.3241,6246365.244,425 192 | 366934.0804,6246329.9,425 193 | 366923.5273,6246284.434,425 194 | 366978.6353,6246298.314,425 195 | 367023.2669,6246265.297,425 196 | 367067.793,6246234.248,425 197 | 367111.9931,6246209.284,425 198 | 367155.9056,6246189.69,425 199 | 367200.3152,6246166.412,425 200 | 367232.2503,6246155.681,425 201 | 367261.4251,6246147.521,425 202 | 367341.8434,6246137.484,425 203 | 367382.4903,6246135.206,425 204 | 367430.4973,6246139.396,425 205 | 367454.8686,6246137.05,425 206 | 367665.1852,6246138.932,425 207 | 367708.0046,6246139.74,425 208 | 367751.0446,6246136.433,425 209 | 367793.9121,6246136.346,425 210 | 367836.6357,6246138.945,425 211 | 367879.1483,6246145.48,425 212 | 367921.8623,6246148.258,425 213 | 367964.5284,6246151.93,425 214 | 368007.089,6246157.571,425 215 | 368049.9277,6246158.021,425 216 | 368092.9965,6246154.176,425 217 | 368134.3097,6246146.733,425 218 | 368192.2742,6246155.782,425 219 | 368624.5678,6246123.725,425 220 | 368667.3106,6246125.966,425 221 | 368709.5658,6246121.722,425 222 | 368751.9237,6246146.733,425 223 | 368794.4267,6246153.448,425 224 | 368837.112,6246156.762,425 225 | 368880.0082,6246156.139,425 226 | 368923.1536,6246150.862,425 227 | 368966.6059,6246139.859,425 228 | 369007.1325,6246110.731,425 229 | 369007.1275,6246122.947,425 230 | 369054.6227,6246097.09,425 231 | 369034.584,6246180.198,425 232 | 369095.7857,6246039.919,425 233 | 369099.323,6246062.79,425 234 | 369132.6593,6246034.531,425 235 | 369204.069,6245994.144,425 236 | 369240.5213,6245989.043,425 237 | 369272.741,6245947.278,425 238 | 369272.2532,6245998.813,425 239 | 369317.9635,6245909.292,425 240 | 369362.7005,6245874.306,425 241 | 369407.4567,6245838.962,425 242 | 369452.05,6245806.66,425 243 | 369496.6912,6245773.464,425 244 | 369524.8284,6245757.394,425 245 | 369630.7777,6245670.832,425 246 | 369675.7065,6245632.267,425 247 | 369701.7136,6245619.59,425 248 | 365139.0275,6246087.646,430 249 | 365183.055,6246065.904,430 250 | 365226.9484,6246046.668,430 251 | 365270.7938,6246028.326,430 252 | 365314.62,6246010.342,430 253 | 365358.4174,6245992.896,430 254 | 365402.1382,6245976.881,430 255 | 365445.8301,6245961.403,430 256 | 365489.5988,6245944.493,430 257 | 365533.2429,6245929.91,430 258 | 365576.791,6245917.116,430 259 | 365620.1187,6245908.439,430 260 | 365663.3312,6245901.91,430 261 | 365697.048,6245890.794,430 262 | 365737.3976,6245901.338,430 263 | 365764.3779,6245906.863,430 264 | 365996.8937,6246003.519,430 265 | 366037.8339,6246039.406,430 266 | 366081.0492,6246079.585,430 267 | 366113.4727,6246109.496,430 268 | 366157.3117,6246136.734,430 269 | 366198.2165,6246173.283,430 270 | 366181.2878,6246125.601,430 271 | 366238.9973,6246212.148,430 272 | 366280.484,6246237.834,430 273 | 366322.2393,6246258.509,430 274 | 366364.6369,6246267.192,430 275 | 366407.1879,6246273.012,430 276 | 366449.9594,6246274.715,430 277 | 366493.057,6246270.334,430 278 | 366536.5476,6246258.614,430 279 | 366580.4026,6246240.093,430 280 | 366624.574,6246215.667,430 281 | 366668.7357,6246191.419,430 282 | 366712.9742,6246165.739,430 283 | 366733.1532,6246126.772,430 284 | 366763.4113,6246133.459,430 285 | 366839.11,6246096.355,430 286 | 366873.7842,6246062.238,430 287 | 366884.1179,6246098.743,430 288 | 366915.1603,6246012.279,430 289 | 366924.7979,6246018.26,430 290 | 366945.5523,6246006.653,430 291 | 367004.2445,6245965.749,430 292 | 367097.2661,6245829.556,430 293 | 367141.4471,6245804.951,430 294 | 367185.6856,6245779.271,430 295 | 367229.6268,6245759.14,430 296 | 367273.8845,6245733.102,430 297 | 367319.2067,6245719.924,430 298 | 367340.1559,6245732.562,430 299 | 367362.5628,6245677.985,430 300 | 367402.5219,6245659.45,430 301 | 367486.8601,6245612.611,430 302 | 367536.5349,6245606.682,430 303 | 367562.7962,6245613.508,430 304 | 367798.5526,6245540.565,430 305 | 367841.7652,6245534.035,430 306 | 367884.8915,6245529.117,430 307 | 367927.8548,6245527.241,430 308 | 367970.751,6245526.618,430 309 | 368013.7238,6245524.563,430 310 | 368056.5913,6245524.476,430 311 | 368099.4203,6245525.106,430 312 | 368142.2494,6245525.736,430 313 | 368184.8388,6245530.839,430 314 | 368209.9926,6245534.091,430 315 | 368567.0213,6245670.452,430 316 | 368608.5273,6245695.78,430 317 | 368649.7552,6245726.298,430 318 | 368690.8584,6245759.143,430 319 | 368732.452,6245782.835,430 320 | 368774.1292,6245804.967,430 321 | 368816.3734,6245816.514,430 322 | 368858.7614,6245825.376,430 323 | 368901.2837,6245831.733,430 324 | 368944.6209,6245822.877,430 325 | 368988.6581,6245800.956,430 326 | 369032.8965,6245775.276,430 327 | 369076.6844,6245758.008,430 328 | 369121.0603,6245729.765,430 329 | 369151.2603,6245706.361,430 330 | 369173.343,6245699.399,430 331 | 369411.5124,6245472.309,430 332 | 369448.345,6245439.4,430 333 | 369479.5254,6245392.5,430 334 | 369526.4424,6245363.582,430 335 | 369565.1474,6245332.087,430 336 | 369573.097,6245292.801,430 337 | 369641.8133,6245246.623,430 338 | 369682.841,6245208.143,430 339 | 369715.6428,6245177.737,430 340 | 364955.199,6245809.53,435 341 | 364999.3129,6245786.178,435 342 | 365043.4363,6245762.646,435 343 | 365069.2469,6245753.638,435 344 | 365364.1701,6245594.564,435 345 | 365407.4978,6245585.887,435 346 | 365450.9405,6245575.062,435 347 | 365494.0859,6245569.785,435 348 | 365533.3479,6245569.113,435 349 | 365580.3769,6245559.232,435 350 | 365623.647,6245551.629,435 351 | 365668.3944,6245546.756,435 352 | 365709.5992,6245547.4,435 353 | 365752.3835,6245548.865,435 354 | 365794.9057,6245555.221,435 355 | 365837.6293,6245557.82,435 356 | 365880.0749,6245565.608,435 357 | 365922.1082,6245581.093,435 358 | 365964.1031,6245597.293,435 359 | 366005.9254,6245616.715,435 360 | 366047.4889,6245640.969,435 361 | 366089.0236,6245665.76,435 362 | 366130.4049,6245693.415,435 363 | 366171.7575,6245721.606,435 364 | 366212.8032,6245755.525,435 365 | 366250.1341,6245786.049,435 366 | 366417.3415,6245938.005,435 367 | 366460.4865,6245948.049,435 368 | 366502.2709,6245952.866,435 369 | 366545.7801,6245940.801,435 370 | 366589.7412,6245920.299,435 371 | 366634.181,6245890.861,435 372 | 366678.8126,6245857.844,435 373 | 366723.7414,6245819.278,435 374 | 366766.8706,6245777.937,435 375 | 366805.2183,6245731.293,435 376 | 366847.636,6245688.685,435 377 | 366890.9311,6245644.248,435 378 | 366919.3043,6245601.952,435 379 | 366962.0139,6245566.018,435 380 | 367008.444,6245523.674,435 381 | 367053.2769,6245486.898,435 382 | 367097.8702,6245454.597,435 383 | 367142.4442,6245422.653,435 384 | 367187.4402,6245382.835,435 385 | 367227.7548,6245348.571,435 386 | 367261.9313,6245316.144,435 387 | 367305.0643,6245296.553,435 388 | 367341.1805,6245277.016,435 389 | 367417.3768,6245236.686,435 390 | 367441.0876,6245230.505,435 391 | 367743.7674,6245181.221,435 392 | 367786.9896,6245174.512,435 393 | 367830.0967,6245169.952,435 394 | 367873.108,6245167.181,435 395 | 367916.0137,6245166.379,435 396 | 367959.0346,6245163.429,435 397 | 368001.8828,6245163.7,435 398 | 368044.3092,6245171.847,435 399 | 368086.5917,6245182.678,435 400 | 368128.7497,6245195.836,435 401 | 368171.1089,6245205.235,435 402 | 368213.2477,6245218.751,435 403 | 368255.3289,6245233.34,435 404 | 368297.2471,6245250.972,435 405 | 368339.1557,6245268.783,435 406 | 368380.9493,6245288.742,435 407 | 368417.2732,6245313.82,435 408 | 368460.1165,6245338.43,435 409 | 368504.1676,6245366.603,435 410 | 368540.9471,6245399.495,435 411 | 368583.3879,6245437.68,435 412 | 368623.5934,6245473.644,435 413 | 368662.6029,6245522.842,435 414 | 368701.5393,6245559.766,435 415 | 368743.5873,6245584.674,435 416 | 368762.0053,6245622.134,435 417 | 368801.3883,6245641.629,435 418 | 368844.4924,6245660.904,435 419 | 368884.825,6245664.032,435 420 | 368929.0406,6245677.288,435 421 | 368972.397,6245668.074,435 422 | 369014.9039,6245638.349,435 423 | 369039.3564,6245581.956,435 424 | 369160.7925,6245481.09,435 425 | 369198.4687,6245441.323,435 426 | 369223.0266,6245408.419,435 427 | 369261.0796,6245370.913,435 428 | 369300.1808,6245332.024,435 429 | 369343.7453,6245282.558,435 430 | 369387.0221,6245238.461,435 431 | 369425.9241,6245203.291,435 432 | 369469.9181,6245159.794,435 433 | 369494.229,6245150.245,435 434 | 369520.7855,6245105.492,435 435 | 369541.3515,6245085.278,435 436 | 369627.6616,6245001.63,435 437 | 369672.3316,6244967.897,435 438 | 369709.0888,6244936.394,435 439 | 364720.3343,6245538.513,440 440 | 364764.381,6245516.413,440 441 | 364808.0826,6245500.756,440 442 | 364852.0238,6245480.625,440 443 | 364895.9651,6245460.493,440 444 | 364939.9831,6245438.93,440 445 | 364983.7805,6245421.483,440 446 | 365027.7026,6245401.71,440 447 | 365071.5192,6245383.905,440 448 | 365115.5755,6245361.626,440 449 | 365159.2196,6245347.043,440 450 | 365202.7294,6245334.965,440 451 | 365245.9803,6245327.72,440 452 | 365289.145,6245322.086,440 453 | 365333.0575,6245302.491,440 454 | 365376.3851,6245293.814,440 455 | 365419.684,6245285.674,440 456 | 365462.7336,6245282.187,440 457 | 365505.6777,6245280.669,440 458 | 365548.6985,6245277.719,440 459 | 365591.6139,6245276.738,440 460 | 365634.4909,6245276.473,440 461 | 365680.9293,6245272.074,440 462 | 365720.0244,6245280.059,440 463 | 365762.2494,6245291.964,440 464 | 365804.6183,6245301.184,440 465 | 365847.0351,6245309.51,440 466 | 365889.2122,6245322.309,440 467 | 365931.4468,6245334.035,440 468 | 365973.6814,6245345.761,440 469 | 366015.6092,6245363.215,440 470 | 366057.585,6245379.773,440 471 | 366099.4552,6245398.3,440 472 | 366141.2488,6245418.259,440 473 | 366183.1958,6245435.354,440 474 | 366225.0948,6245453.344,440 475 | 366267.1377,6245468.649,440 476 | 366309.5545,6245476.975,440 477 | 366352.3196,6245472.736,440 478 | 366394.4458,6245474.364,440 479 | 366438.9813,6245461.324,440 480 | 366483.2294,6245435.466,440 481 | 366525.271,6245382.907,440 482 | 366562.8031,6245353.912,440 483 | 366606.1912,6245322.284,440 484 | 366650.7585,6245290.468,440 485 | 366695.2654,6245259.777,440 486 | 366739.7052,6245230.339,440 487 | 366784.0013,6245203.586,440 488 | 366828.6808,6245169.674,440 489 | 366872.9289,6245143.815,440 490 | 366917.2556,6245116.489,440 491 | 366949.2172,6245089.643,440 492 | 366994.7713,6245084.261,440 493 | 367003.6117,6245044.105,440 494 | 367043.9427,6245048.07,440 495 | 367089.8547,6245022.324,440 496 | 367133.4412,6245008.814,440 497 | 367177.0757,6244994.41,440 498 | 367220.643,6244981.259,440 499 | 367264.3254,6244965.96,440 500 | 367266.1711,6244931.507,440 501 | 367347.0113,6244949.964,440 502 | 367376.8056,6244939.329,440 503 | 367437.3879,6244925.491,440 504 | 367463.2883,6244925.197,440 505 | 367716.3844,6244892.264,440 506 | 367759.5491,6244886.63,440 507 | 367802.5699,6244883.68,440 508 | 367845.399,6244884.309,440 509 | 367888.2281,6244884.939,440 510 | 367931.0859,6244885.032,440 511 | 367974.03,6244883.514,440 512 | 368017.1467,6244878.774,440 513 | 368059.0819,6244868.114,440 514 | 368103.3514,6244869.832,440 515 | 368146.4681,6244865.092,440 516 | 368189.067,6244870.017,440 517 | 368231.829,6244871.9,440 518 | 368274.1115,6244882.731,440 519 | 368316.5475,6244890.698,440 520 | 368358.9355,6244899.561,440 521 | 368401.0455,6244913.613,440 522 | 368443.05,6244929.635,440 523 | 368484.9491,6244947.625,440 524 | 368526.7331,6244967.762,440 525 | 368568.7088,6244984.321,440 526 | 368609.8217,6245016.987,440 527 | 368651.1167,6245046.252,440 528 | 368692.45,6245074.801,440 529 | 368734.119,6245097.087,440 530 | 368775.6249,6245122.415,440 531 | 368818.2143,6245127.519,440 532 | 368860.6982,6245134.591,440 533 | 368903.2588,6245140.232,440 534 | 368924.1779,6245149.794,440 535 | 368969.9425,6245131.996,440 536 | 369013.6249,6245116.697,440 537 | 369057.5086,6245097.64,440 538 | 369105.4982,6245080.272,440 539 | 369129.6517,6245096.601,440 540 | 369146.6424,6245034.021,440 541 | 369179.6271,6245009.293,440 542 | 369219.2946,6244987.111,440 543 | 369263.6673,6244958.926,440 544 | 369308.1646,6244928.414,440 545 | 369353.2852,6244886.269,440 546 | 369397.6483,6244858.262,440 547 | 369442.3279,6244824.35,440 548 | 369468.3158,6244812.031,440 549 | 369574.8899,6244750.175,440 550 | 369619.5119,6244717.336,440 551 | 369651.7119,6244698.166,440 552 | 364643.66,6245369.555,445 553 | 364687.63,6245348.887,445 554 | 364731.5425,6245329.293,445 555 | 364775.3399,6245311.846,445 556 | 364819.0511,6245296.01,445 557 | 364864.4395,6245281.596,445 558 | 364906.1187,6245270.96,445 559 | 364950.3955,6245244.565,445 560 | 364994.2313,6245226.402,445 561 | 365038.0096,6245209.313,445 562 | 365081.7495,6245192.94,445 563 | 365125.4319,6245177.641,445 564 | 365169.0567,6245163.416,445 565 | 365212.7487,6245147.938,445 566 | 365256.3161,6245134.786,445 567 | 365299.6725,6245125.572,445 568 | 365343.3453,6245110.452,445 569 | 365386.8167,6245099.091,445 570 | 365430.1539,6245090.235,445 571 | 365473.3378,6245084.242,445 572 | 365516.3202,6245082.008,445 573 | 365559.274,6245080.311,445 574 | 365602.3619,6245076.109,445 575 | 365645.2964,6245074.77,445 576 | 365690.4659,6245078.472,445 577 | 365730.7724,6245079.429,445 578 | 365773.5535,6245080.954,445 579 | 365816.4305,6245080.688,445 580 | 365859.2404,6245081.676,445 581 | 365902.0216,6245083.2,445 582 | 365944.7068,6245086.515,445 583 | 365987.1811,6245093.766,445 584 | 366029.5116,6245103.703,445 585 | 366071.775,6245114.892,445 586 | 366114.0096,6245126.618,445 587 | 366156.1292,6245140.491,445 588 | 366198.2008,6245155.26,445 589 | 366240.2533,6245170.386,445 590 | 366282.2386,6245186.766,445 591 | 366312.8048,6245198.092,445 592 | 366399.3067,6245183.602,445 593 | 366443.1089,6245166.065,445 594 | 366486.1108,6245151.346,445 595 | 366533.1197,6245142.648,445 596 | 366554.8509,6245153.216,445 597 | 366610.9575,6245071.677,445 598 | 366641.4792,6245072.719,445 599 | 366707.6338,6245028.901,445 600 | 366751.6517,6245007.338,445 601 | 366791.776,6244985.721,445 602 | 366844.8843,6244939.945,445 603 | 367127.7556,6244823.998,445 604 | 367171.5051,6244807.447,445 605 | 367215.082,6244794.116,445 606 | 367261.0154,6244775.966,445 607 | 367298.487,6244764.697,445 608 | 367342.0639,6244751.367,445 609 | 367385.6504,6244737.858,445 610 | 367429.6013,6244717.547,445 611 | 367473.2645,6244702.606,445 612 | 367516.851,6244689.097,445 613 | 367554.5522,6244676.342,445 614 | 367855.658,6244620.071,445 615 | 367898.4136,6244622.072,445 616 | 367941.1532,6244624.372,445 617 | 367983.7329,6244629.655,445 618 | 368026.4278,6244632.791,445 619 | 368068.882,6244634.355,445 620 | 368111.8462,6244638.524,445 621 | 368154.4164,6244643.986,445 622 | 368197.0154,6244648.911,445 623 | 368239.5856,6244654.373,445 624 | 368282.0791,6244661.267,445 625 | 368324.3808,6244671.74,445 626 | 368366.5579,6244684.54,445 627 | 368408.6295,6244699.308,445 628 | 368450.6724,6244714.613,445 629 | 368492.744,6244729.382,445 630 | 368534.7294,6244745.761,445 631 | 368576.9065,6244758.561,445 632 | 368619.0644,6244771.719,445 633 | 368661.4812,6244780.044,445 634 | 368703.8308,6244789.623,445 635 | 368746.2476,6244797.948,445 636 | 368788.4727,6244809.853,445 637 | 368827.9747,6244810.241,445 638 | 368873.5843,6244821.314,445 639 | 368916.3462,6244823.196,445 640 | 368959.3767,6244820.067,445 641 | 369002.5221,6244814.791,445 642 | 369045.8881,6244805.398,445 643 | 369087.7076,6244788.505,445 644 | 369356.267,6244612.397,445 645 | 369400.4384,6244587.97,445 646 | 369444.3701,6244568.018,445 647 | 369486.2874,6244549.3,445 648 | 369588.5401,6244485.673,445 649 | 369632.5131,6244474.648,445 650 | 369676.7612,6244448.789,445 651 | 369700.5008,6244442.072,445 652 | 364501.4621,6245187.178,450 653 | 364545.5184,6245164.899,450 654 | 364589.4501,6245144.946,450 655 | 364633.0654,6245130.9,450 656 | 364676.9107,6245112.559,450 657 | 364720.7465,6245094.396,450 658 | 364764.6111,6245075.696,450 659 | 364808.6003,6245054.67,450 660 | 364852.5128,6245035.076,450 661 | 364896.3486,6245016.913,450 662 | 364940.1269,6244999.824,450 663 | 364983.8764,6244983.272,450 664 | 365027.5971,6244967.257,450 665 | 365071.2891,6244951.779,450 666 | 365114.9236,6244937.375,450 667 | 365158.6443,6244921.36,450 668 | 365202.3459,6244905.703,450 669 | 365245.9132,6244892.552,450 670 | 365289.423,6244880.474,450 671 | 365308.2344,6244965.749,450 672 | 365332.8465,6244870.008,450 673 | 365376.0112,6244864.373,450 674 | 365419.3388,6244855.696,450 675 | 365462.6089,6244848.093,450 676 | 365505.879,6244840.49,450 677 | 365549.0437,6244834.855,450 678 | 365592.2371,6244828.684,450 679 | 365635.2483,6244825.913,450 680 | 365678.2212,6244823.858,450 681 | 365721.056,6244824.38,450 682 | 365763.7547,6244827.444,450 683 | 365806.3537,6244832.369,450 684 | 365848.991,6244836.578,450 685 | 365891.2448,6244847.946,450 686 | 365933.4986,6244859.314,450 687 | 365975.7811,6244870.145,450 688 | 366017.8911,6244884.198,450 689 | 366059.886,6244900.398,450 690 | 366101.9768,6244914.808,450 691 | 366144.2786,6244925.282,450 692 | 366185.547,6244927.067,450 693 | 366229.0355,6244943.364,450 694 | 366271.4714,6244951.332,450 695 | 366306.5069,6244951.968,450 696 | 366413.6501,6244915.857,450 697 | 366467.4717,6244893.135,450 698 | 366561.7661,6244837.44,450 699 | 366600.2091,6244826.078,450 700 | 366633.74,6244844.409,450 701 | 366734.4031,6244747.417,450 702 | 366778.4403,6244725.496,450 703 | 366822.3911,6244705.185,450 704 | 366866.2269,6244687.023,450 705 | 366910.1298,6244667.607,450 706 | 366953.9465,6244649.803,450 707 | 366997.7247,6244632.714,450 708 | 367041.4647,6244616.341,450 709 | 367085.31,6244597.999,450 710 | 367129.05,6244581.626,450 711 | 367146.0068,6244545.655,450 712 | 367183.3285,6244556.436,450 713 | 367228.2654,6244548.027,450 714 | 367275.3316,6244531.909,450 715 | 367315.3425,6244522.798,450 716 | 367361.7963,6244505.773,450 717 | 367402.6693,6244492.91,450 718 | 367443.3142,6244488.371,450 719 | 367489.7173,6244468.224,450 720 | 367533.2655,6244455.431,450 721 | 367576.6219,6244446.217,450 722 | 367619.892,6244438.614,450 723 | 367663.1429,6244431.368,450 724 | 367706.3939,6244424.123,450 725 | 367749.5873,6244417.952,450 726 | 367792.8574,6244410.348,450 727 | 367836.1371,6244402.566,450 728 | 367879.273,6244397.469,450 729 | 367922.5143,6244390.402,450 730 | 367965.679,6244384.768,450 731 | 368008.5464,6244384.682,450 732 | 368051.3179,6244386.385,450 733 | 368093.9936,6244389.878,450 734 | 368136.1803,6244402.499,450 735 | 368178.4724,6244413.151,450 736 | 368220.7837,6244423.445,450 737 | 368262.7883,6244439.467,450 738 | 368305.1188,6244449.403,450 739 | 368347.3726,6244460.771,450 740 | 368389.4634,6244475.182,450 741 | 368431.8706,6244483.686,450 742 | 368474.2969,6244491.833,450 743 | 368516.7713,6244499.084,450 744 | 368559.0442,6244510.094,450 745 | 368601.4035,6244519.494,450 746 | 368643.8203,6244527.819,450 747 | 368686.4672,6244531.849,450 748 | 368729.2867,6244532.658,450 749 | 368772.1637,6244532.393,450 750 | 368815.1749,6244529.622,450 751 | 368847.6241,6244496.101,450 752 | 368890.8807,6244498.447,450 753 | 368933.8569,6244496.33,450 754 | 368967.5775,6244485.143,450 755 | 369069.4551,6244438.217,450 756 | 369113.3101,6244419.697,450 757 | 369153.1755,6244402.912,450 758 | 364378.9091,6245006.63,455 759 | 364426.878,6244979.204,455 760 | 364470.9151,6244957.283,455 761 | 364514.7509,6244939.12,455 762 | 364558.6538,6244919.705,455 763 | 364602.4129,6244902.974,455 764 | 364646.1145,6244887.317,455 765 | 364690.1324,6244865.754,455 766 | 364734.1696,6244843.833,455 767 | 364778.5902,6244814.753,455 768 | 364822.2918,6244799.096,455 769 | 364865.9263,6244784.691,455 770 | 364909.5128,6244771.182,455 771 | 364952.9075,6244761.252,455 772 | 364996.5132,6244747.385,455 773 | 365040.3778,6244728.685,455 774 | 365084.0602,6244713.386,455 775 | 365127.6946,6244698.982,455 776 | 365171.3387,6244684.399,455 777 | 365214.8772,6244671.784,455 778 | 365258.3583,6244660.244,455 779 | 365301.8777,6244647.987,455 780 | 365345.2916,6244637.7,455 781 | 365388.4946,6244631.349,455 782 | 365431.525,6244628.22,455 783 | 365474.7664,6244621.154,455 784 | 365517.605,6244621.605,455 785 | 365560.2999,6244624.74,455 786 | 365603.196,6244624.117,455 787 | 365646.0347,6244624.567,455 788 | 365691.6384,6244623.761,455 789 | 365730.0473,6244626.237,455 790 | 365774.2247,6244632.004,455 791 | 365797.2835,6244637.994,455 792 | 365863.2961,6244642.286,455 793 | 365903.3409,6244651.247,455 794 | 365934.6012,6244656.89,455 795 | 366218.8723,6244696.655,455 796 | 366262.1137,6244689.589,455 797 | 366305.4605,6244680.554,455 798 | 366348.8456,6244670.803,455 799 | 366392.4513,6244656.936,455 800 | 366436.0378,6244643.427,455 801 | 366479.8353,6244625.98,455 802 | 366523.719,6244606.922,455 803 | 366567.6986,6244586.075,455 804 | 366606.4832,6244549.461,455 805 | 366647.6712,6244547.992,455 806 | 366691.459,6244530.724,455 807 | 366738.675,6244506.039,455 808 | 366775.7922,6244488.828,455 809 | 366805.2288,6244480.022,455 810 | 366915.0197,6244430.857,455 811 | 366958.8938,6244411.978,455 812 | 367002.7392,6244393.637,455 813 | 367030.8573,6244377.924,455 814 | 364239.2048,6244772.857,460 815 | 364283.2227,6244751.294,460 816 | 364327.1736,6244730.983,460 817 | 364371.4792,6244704.051,460 818 | 364415.3533,6244685.172,460 819 | 364459.6398,6244658.598,460 820 | 364503.7824,6244634.708,460 821 | 364541.4282,6244615.712,460 822 | 364583.5823,6244599.847,460 823 | 364627.5907,6244578.462,460 824 | 364672.1566,6244552.265,460 825 | 364715.0801,6244545.538,460 826 | 364757.8536,6244547.205,460 827 | 364770.7193,6244502.874,460 828 | 364809.9394,6244490.208,460 829 | 364849.4411,6244474.151,460 830 | 365206.0756,6244326.924,460 831 | 365249.3361,6244319.5,460 832 | 365292.6062,6244311.897,460 833 | 365335.6654,6244308.231,460 834 | 365378.7629,6244303.849,460 835 | 365422.0714,6244295.53,460 836 | 365465.399,6244286.853,460 837 | 365508.439,6244283.546,460 838 | 365551.4311,6244281.133,460 839 | 365594.241,6244282.12,460 840 | 365637.0125,6244283.824,460 841 | 365679.784,6244285.527,460 842 | 365715.5,6244281.543,460 843 | 365714.0703,6244227.412,460 844 | 365783.64,6244310.778,460 845 | 365828.4841,6244334.408,460 846 | 365859.7952,6244343.952,460 847 | 366098.1129,6244405.04,460 848 | 366140.8941,6244406.564,460 849 | 366183.7902,6244405.941,460 850 | 366226.7631,6244403.886,460 851 | 366269.8223,6244400.22,460 852 | 366312.8815,6244396.555,460 853 | 366348.1813,6244392.256,460 854 | 366477.2561,6244310.44,460 855 | 366521.5439,6244283.84,460 856 | 366565.9824,6244254.427,460 857 | 366589.7604,6244246.993,460 858 | 366613.3427,6248316.475,473 859 | 366594.1636,6248292.617,473.12 860 | 366562.4445,6248248.259,473.24 861 | 366537.8795,6248215.831,473.36 862 | 366503.0092,6248167.478,473.48 863 | 366471.276,6248131.648,473.6 864 | 366442.8716,6248061.786,473.72 865 | 366442.306,6248085.981,473.84 866 | 366406.6702,6248022.766,473.96 867 | 366400.5456,6248059.559,474.08 868 | 366370.9499,6248022.323,474.2 869 | 366363.4288,6247968.286,474.32 870 | 366328.5193,6247923.334,474.44 871 | 366300.0644,6247872.598,474.56 872 | 366265.251,6247831.447,474.68 873 | 366235.2446,6247773.304,474.8 874 | 366210.133,6247740.17,474.92 875 | 366176.7659,6247701.116,475.04 876 | 366150.7678,6247646.084,475.16 877 | 366122.8972,6247608.338,475.28 878 | 366100.299,6247564.656,475.4 879 | 366079.4474,6247590.202,475.52 880 | 366059.6847,6247522.684,475.64 881 | 366024.2057,6247476.986,475.76 882 | 365989.9787,6247436.666,475.88 883 | 365949.2179,6247402.624,476 884 | 365909.3366,6247379.701,476.12 885 | 365882.4851,6247311.064,476.24 886 | 365869.4077,6247354.55,476.36 887 | 365851.6751,6247259.529,476.48 888 | 365819.5308,6247217.759,476.6 889 | 365789.947,6247175.259,476.72 890 | 365761.6428,6247131.407,476.84 891 | 365739.4526,6247078.111,476.96 892 | 365702.3371,6247037.682,477.08 893 | 365663.5122,6247016.861,477.2 894 | 365660.3878,6246985.562,477.32 895 | 365648.9494,6246950.639,477.44 896 | 365622.0431,6246922.006,477.56 897 | 365597.178,6246870.067,477.68 898 | 365565.3412,6246829.121,477.8 899 | 365534.1441,6246785.928,477.92 900 | 365505.3693,6246729.041,478.04 901 | 365472.4461,6246701.098,478.16 902 | 365434.9979,6246662.372,478.28 903 | 365426.6886,6246614.854,478.4 904 | 365394.9591,6246611.491,478.52 905 | 365370.3937,6246569.443,478.64 906 | 365348.7174,6246593.598,478.76 907 | 365335.3243,6246496.704,478.88 908 | 365313.0859,6246442.337,479 909 | 365289.613,6246404.403,479.12 910 | 365261.947,6246360.333,479.24 911 | 365231.8568,6246318.729,479.36 912 | 365203.0349,6246274.841,479.48 913 | 365172.156,6246160.247,479.6 914 | 365171.2332,6246226.678,479.72 915 | 365143.1629,6246164.653,479.84 916 | 365126.4098,6246104.965,479.96 917 | 365102.4983,6246132.211,480.08 918 | 365066.7069,6246079.876,480.2 919 | 365058.4651,6246136.74,480.32 920 | 365039.6976,6246037.81,480.44 921 | 365008.3119,6245994.715,480.56 922 | 364978.7828,6245951.195,480.68 923 | 364949.201,6245908.658,480.8 924 | 364915.877,6245856.178,480.92 925 | 364877.2543,6245809.761,481.04 926 | 364839.892,6245743.455,481.16 927 | 364837.6143,6245795.542,481.28 928 | 364809.4648,6245749.738,481.4 929 | 364802.838,6245707.76,481.52 930 | 364783.0318,6245677.422,481.64 931 | 364768.4784,6245720.484,481.76 932 | 364750.5914,6245628.345,481.88 933 | 364721.8607,6245582.757,482 934 | 364684.7153,6245538.378,482.12 935 | 364643.0559,6245489.936,482.24 936 | 364613.6922,6245419.795,482.36 937 | 364592.1419,6245385.647,482.48 938 | 364563.1847,6245344.286,482.6 939 | 364534.267,6245302.188,482.72 940 | 364505.0829,6245259.868,482.84 941 | 364479.8708,6245216.832,482.96 942 | 364451.39,6245176.278,483.08 943 | 364421.9667,6245130.782,483.2 944 | 364390.6927,6245085.602,483.32 945 | 364386.0336,6245014.264,483.44 946 | 364362.6353,6245036.004,483.56 947 | 364330.2583,6244991.146,483.68 948 | 364294.7873,6244955.679,483.8 949 | 364267.8205,6244924.501,483.92 950 | 364249.0545,6244879.942,484.04 951 | 364213.4795,6244816.64,484.16 952 | 364209.8636,6244861.756,484.28 953 | 364187.5584,6244777.704,484.4 954 | 364154.8037,6244723.886,484.52 955 | 364151.6467,6244750.489,484.64 956 | 364115.1775,6244705.899,484.76 957 | 364095.6442,6244638.646,484.88 958 | 364064.7468,6244602.69,485 -------------------------------------------------------------------------------- /tests/test_gen_grid.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | import os 3 | from cp_gen import GenerateGridPoints, InterpretMapValues, GenerateGridFiles 4 | 5 | 6 | class TestCpGen(unittest.TestCase): 7 | 8 | def test_gridpoint_gen(self): 9 | current_dir = os.path.dirname(__file__) 10 | easting = 367947.315968816 11 | northing = 6246378.058582101 12 | fault_line_file = os.path.join(current_dir,'test_data','fault_line.csv') 13 | fault_elevation_file = os.path.join(current_dir, 'test_data', 'res_depths.csv') 14 | res_file = os.path.join(current_dir, 'test_data', 'res_depths.csv') 15 | height_file = os.path.join(current_dir, 'test_data', 'height.csv') 16 | grid_interpret = InterpretMapValues(fault_line_file,fault_elevation_file,res_file,height_file,'open') 17 | grid_interpret.check_fault_side(easting, northing) 18 | grid_interpret.find_new_pts(easting, northing) 19 | 20 | #assert (int(grid_interpret.new_value) == 424) 21 | 22 | easting_2 = 365638.3992886146 23 | northing_2 = 6248144.503279194 24 | grid_interpret.check_fault_side(easting_2, northing_2) 25 | grid_interpret.find_new_pts(easting_2, northing_2) 26 | 27 | #assert (int(grid_interpret.new_value) == 462) 28 | 29 | easting_3 = 367268.3422021029 30 | northing_3 = 6247105.576070392 31 | 32 | grid_interpret.check_fault_side(easting_3, northing_3, height=True) 33 | grid_interpret.find_new_pts(easting_3, northing_3) 34 | #assert (int(grid_interpret.new_value) == 4) 35 | 36 | def test_interpret_map_values(self): 37 | dx = 80 38 | dy = 100 39 | nx = 75 40 | ny = 56 41 | nz = 6 42 | x0 = 366046.90992691246 43 | y0 = 6249318.971364301 44 | theta = 56.7 45 | grid_points = GenerateGridPoints(dx, dy, nx, ny, nz, x0, y0, theta) 46 | 47 | grid_points.gen_grid_vector() 48 | 49 | #assert (len(grid_points.grid_vector)==((nx+1)*(ny+1))) 50 | 51 | def test_generate_coord(self): 52 | current_dir = os.path.dirname(__file__) 53 | fault_line_file = os.path.join(current_dir, 'test_data', 'fault_line.csv') 54 | fault_elevation_file = os.path.join(current_dir, 'test_data', 'fault_depth.csv') 55 | res_file = os.path.join(current_dir, 'test_data', 'res_depths.csv') 56 | height_file = os.path.join(current_dir, 'test_data', 'height.csv') 57 | 58 | east_bound = 366374.02 59 | north_bound = 6249077.40 60 | 61 | dx = 80 62 | dy = 100 63 | nx = 75 64 | ny = 56 65 | nz = 6 66 | x0 = 366046.90992691246 67 | y0 = 6249318.971364301 68 | theta = 56.7 69 | 70 | grid_interpret = InterpretMapValues(fault_line_file, fault_elevation_file, res_file, height_file, 'open') 71 | 72 | grid_points = GenerateGridPoints(dx, dy, nx, ny, nz, x0, y0, theta) 73 | 74 | grid_points.gen_grid_vector() 75 | 76 | coord = GenerateGridFiles(grid_points, grid_interpret, east_bound, north_bound) 77 | 78 | coord.generate_coord_vector() 79 | coord.print_coord_vector() 80 | 81 | coord.generate_zcorn_vector() 82 | coord.print_zcorn_vector() 83 | 84 | coord.generate_actnum_vector() 85 | coord.print_actnum_vector() 86 | 87 | 88 | if __name__ == '__main__': 89 | unittest.main() --------------------------------------------------------------------------------