From e125bd2225324880e0824ec4ea6c98ad36a4adbf Mon Sep 17 00:00:00 2001 From: jcamiloangarita Date: Mon, 23 Oct 2023 14:36:06 +0200 Subject: [PATCH] integrating inc, azi and dls for all interpolated points --- setup.py | 2 +- well_profile/equations.py | 6 ++++++ well_profile/load_trajectory.py | 8 +++++++- well_profile/tests/test_well.py | 5 +++-- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 89a0add..b7e13b5 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setup( name='well_profile', packages=['well_profile'], - version='0.7.3', + version='0.8.0', license='LGPL v3', description='Well Profile Builder', long_description=long_description, diff --git a/well_profile/equations.py b/well_profile/equations.py index ad74445..c96b468 100644 --- a/well_profile/equations.py +++ b/well_profile/equations.py @@ -263,9 +263,12 @@ def interp_hold(inner_point, md, p1, p2): dn = (p2['north']-p1['north']) / (p2['md'] - p1['md']) de = (p2['east'] - p1['east']) / (p2['md'] - p1['md']) dv = (p2['tvd'] - p1['tvd']) / (p2['md'] - p1['md']) + inner_point['dls'] = 0 inner_point['north'] = p1['north'] + (md - p1['md']) * dn inner_point['east'] = p1['east'] + (md - p1['md']) * de inner_point['tvd'] = p1['tvd'] + (md - p1['md']) * dv + inner_point['inc'] = p1['inc'] + inner_point['azi'] = p1['azi'] inner_point['pointType'] = 'interpolated' inner_point['sectionType'] = 'hold' @@ -273,9 +276,12 @@ def interp_hold(inner_point, md, p1, p2): def interp_vertical(inner_point, md, p1): + inner_point['dls'] = 0 inner_point['north'] = p1['north'] inner_point['east'] = p1['east'] inner_point['tvd'] = p1['tvd'] + (md - p1['md']) + inner_point['inc'] = p1['inc'] + inner_point['azi'] = p1['azi'] inner_point['pointType'] = 'interpolated' inner_point['sectionType'] = 'vertical' diff --git a/well_profile/load_trajectory.py b/well_profile/load_trajectory.py index 133d611..5724d39 100644 --- a/well_profile/load_trajectory.py +++ b/well_profile/load_trajectory.py @@ -110,7 +110,13 @@ def load(data, **kwargs): az[a] += change_azimuth # CREATING TRAJECTORY POINTS - trajectory = [{'md': 0, 'inc': 0, 'azi': 0, 'dl': 0, 'tvd': 0, 'sectionType': 'vertical', 'pointType': 'survey'}] + # if the first survey point is at MD=0, use it as the initial point + if md[0] == 0: + trajectory = [{'md': 0, 'inc': inc[0], 'azi': az[0], 'dl': 0, 'tvd': 0, 'sectionType': 'vertical', + 'pointType': 'survey'}] + else: + trajectory = [ + {'md': 0, 'inc': 0, 'azi': 0, 'dl': 0, 'tvd': 0, 'sectionType': 'vertical', 'pointType': 'survey'}] trajectory[-1].update(initial_point) inner_pts += 2 diff --git a/well_profile/tests/test_well.py b/well_profile/tests/test_well.py index 699e7d2..40ee2dc 100644 --- a/well_profile/tests/test_well.py +++ b/well_profile/tests/test_well.py @@ -22,8 +22,9 @@ def test_get_point(self): # interpolating vertical section p = well.get_point(100) - self.assertTrue(p == {'md': 100, 'dl': 0.0, 'north': 0, 'east': 0, 'tvd': 100, 'pointType': 'interpolated', - 'sectionType': 'vertical'}) + self.assertTrue(p == {'md': 100, 'dl': 0.0, 'dls': 0, 'north': 0, 'east': 0, 'tvd': 100, + 'inc': 0, 'azi': 0, + 'pointType': 'interpolated', 'sectionType': 'vertical'}) # getting two survey points p1 = well.get_point(3722.9) p2 = well.get_point(3761.8)