diff --git a/map2loop/project.py b/map2loop/project.py index 73b741ab..cf5840d1 100644 --- a/map2loop/project.py +++ b/map2loop/project.py @@ -247,6 +247,7 @@ def __init__( self.thickness_calculator = [InterpolatedStructure( dtm_data=self.map_data.get_map_data(Datatype.DTM), bounding_box=self.bounding_box, + is_strike=False )] @@ -610,7 +611,7 @@ def calculate_stratigraphic_order(self, take_best=False): @beartype.beartype def set_thickness_calculator( - self, thickness_calculator: Union['ThicknessCalculator', List['ThicknessCalculator']] + self, thickness_calculator: Union['ThicknessCalculator', List['ThicknessCalculator']], is_strike: bool = False ) -> None: """ Sets the thickness_calculator attribute for the object. @@ -628,6 +629,7 @@ def set_thickness_calculator( ThicknessCalculator or a list of such instances. """ if isinstance(thickness_calculator, ThicknessCalculator): + thickness_calculator.is_strike = is_strike thickness_calculator = [thickness_calculator] # Now check if thickness_calculator is a list of valid instances @@ -639,6 +641,8 @@ def set_thickness_calculator( ) # Finally, set the calculators + for tc in thickness_calculator: + tc.is_strike = is_strike self.thickness_calculator = thickness_calculator def get_thickness_calculator(self) -> List[str]: diff --git a/map2loop/thickness_calculator.py b/map2loop/thickness_calculator.py index 2f5da940..13a1b806 100644 --- a/map2loop/thickness_calculator.py +++ b/map2loop/thickness_calculator.py @@ -39,7 +39,8 @@ def __init__( self, dtm_data: Optional[gdal.Dataset] = None, bounding_box: Optional[dict] = None, - max_line_length: Optional[float] = None + max_line_length: Optional[float] = None, + is_strike: Optional[bool] = False, ): """ Initialiser of for ThicknessCalculator @@ -48,6 +49,7 @@ def __init__( self.max_line_length = max_line_length self.dtm_data = dtm_data self.bounding_box = bounding_box + self.is_strike = is_strike def type(self): """ @@ -221,12 +223,13 @@ def __init__( self, dtm_data: Optional[gdal.Dataset] = None, bounding_box: Optional[dict] = None, - max_line_length: Optional[float] = None + max_line_length: Optional[float] = None, + is_strike: Optional[bool] = False ): """ Initialiser for interpolated structure version of the thickness calculator """ - super().__init__(dtm_data, bounding_box, max_line_length) + super().__init__(dtm_data, bounding_box, max_line_length, is_strike) self.thickness_calculator_label = "InterpolatedStructure" self.lines = None @@ -475,13 +478,14 @@ def __init__( self, dtm_data: Optional[gdal.Dataset] = None, bounding_box: Optional[dict] = None, - max_line_length: Optional[float] = None + max_line_length: Optional[float] = None, + is_strike: Optional[bool] = False ): - super().__init__(dtm_data, bounding_box, max_line_length) + super().__init__(dtm_data, bounding_box, max_line_length, is_strike) self.thickness_calculator_label = "StructuralPoint" self.strike_allowance = 30 self.lines = None - + @beartype.beartype def compute( @@ -575,7 +579,10 @@ def compute( # find unit and strike litho_in = measurement['unit_name'] - strike = (measurement['DIPDIR'] - 90) % 360 + if self.is_strike: + strike = measurement['DIPDIR'] + else: + strike = (measurement['DIPDIR'] - 90) % 360 # find bounding box of the lithology bbox_poly = geology[geology['UNITNAME'] == litho_in][['minx', 'miny', 'maxx', 'maxy']] diff --git a/tests/thickness/InterpolatedStructure/test_interpolated_structure.py b/tests/thickness/InterpolatedStructure/test_interpolated_structure.py index 12d0c87c..164ce2f7 100644 --- a/tests/thickness/InterpolatedStructure/test_interpolated_structure.py +++ b/tests/thickness/InterpolatedStructure/test_interpolated_structure.py @@ -1683,7 +1683,8 @@ def test_calculate_thickness_InterpolatedStructure(): "top": 3000, } thickness_calculator = InterpolatedStructure(dtm_data=md.get_map_data(Datatype.DTM), - bounding_box=md.bounding_box) + bounding_box=md.bounding_box, + is_strike=False) result = thickness_calculator.compute( units=st_units, diff --git a/tests/thickness/StructurePoint/test_ThicknessStructuralPoint.py b/tests/thickness/StructurePoint/test_ThicknessStructuralPoint.py index f528b0ee..74c7851d 100644 --- a/tests/thickness/StructurePoint/test_ThicknessStructuralPoint.py +++ b/tests/thickness/StructurePoint/test_ThicknessStructuralPoint.py @@ -1660,7 +1660,7 @@ def check_thickness_values(result, column, description): def test_calculate_thickness_structural_point(): # Run the calculation - thickness_calculator = StructuralPoint() + thickness_calculator = StructuralPoint(is_strike=False) md = MapData() md.sampled_contacts = s_c