diff --git a/geomagio/residual/Calculation.py b/geomagio/residual/Calculation.py index 12d67b803bb75ff6c48edfab357f84c9c5ac9f35..5352676b752ce974ff81d852ead1ea4d4006da8d 100644 --- a/geomagio/residual/Calculation.py +++ b/geomagio/residual/Calculation.py @@ -38,7 +38,12 @@ def calculate(reading: Reading, adjust_reference: bool = True) -> Reading: ) corrected_f = f + reading.pier_correction # calculate absolutes, horizontal_component, vertical_component - absoluteH, absoluteZ, horizontal_component, vertical_component = calculate_HZ_absolutes( + ( + absoluteH, + absoluteZ, + horizontal_component, + vertical_component, + ) = calculate_HZ_absolutes( corrected_f=corrected_f, inclination=inclination, mean=i_mean, @@ -51,18 +56,17 @@ def calculate(reading: Reading, adjust_reference: bool = True) -> Reading: reference=reference, ) - d_computed=calculate_D_computed( + d_computed = calculate_D_computed( measurements=reading.measurements, h_baseline=absoluteH.baseline, ) - - r_computed=calculate_R_computed( - measurements=reading.measurements, + r_computed = calculate_R_computed( + measurements=reading.measurements, h_baseline=absoluteH.baseline, ) - magnetic_south_meridian=calculate_magnetic_south_meridian( + magnetic_south_meridian = calculate_magnetic_south_meridian( measurements=reading.measurements, ) @@ -77,31 +81,30 @@ def calculate(reading: Reading, adjust_reference: bool = True) -> Reading: ) mean_mark = calculate_mean_mark( - measurements=reading.measurements, + measurements=reading.measurements, ) - magnetic_azimuth_of_mark=calculate_magnetic_azimuth_of_mark( - mean_mark=mean_mark, - magnetic_south_meridian=magnetic_south_meridian + magnetic_azimuth_of_mark = calculate_magnetic_azimuth_of_mark( + mean_mark=mean_mark, magnetic_south_meridian=magnetic_south_meridian ) - ordinate_f=calculate_ordinate_f( + ordinate_f = calculate_ordinate_f( corrected_f=corrected_f, pier_correction=reading.pier_correction, ) - ordinate_d=calculate_ordinate_d( + ordinate_d = calculate_ordinate_d( absoluteD_absolute=absoluteD.absolute, absoluteD_baseline=absoluteD.baseline, ) - ordinate_h=calculate_ordinate_h( + ordinate_h = calculate_ordinate_h( absoluteH_absolute=absoluteH.absolute, absoluteH_baseline=absoluteH.baseline, ordinate_d=ordinate_d, ) - ordinate_z=calculate_ordinate_z( + ordinate_z = calculate_ordinate_z( absoluteZ_absolute=absoluteZ.absolute, absoluteZ_baseline=absoluteZ.baseline, ) @@ -121,7 +124,6 @@ def calculate(reading: Reading, adjust_reference: bool = True) -> Reading: ordinate_h=ordinate_h, ordinate_z=ordinate_z, r_computed=r_computed, - scale_value=scale_value, vertical_component=vertical_component, ) @@ -129,8 +131,9 @@ def calculate(reading: Reading, adjust_reference: bool = True) -> Reading: calculated = Reading( absolutes=[absoluteD, absoluteH, absoluteZ], diagnostics=diagnostics, + scale_value=scale_value, # copy other attributes - **reading.dict(exclude={"absolutes", "diagnostics"}), + **reading.dict(exclude={"absolutes", "diagnostics", "scale_value"}), ) return calculated @@ -236,8 +239,8 @@ def calculate_HZ_absolutes( # store the pre-shifted h_abs and the pre-shifted z_abs inclination_radians = np.radians(inclination) - horizontal_component=corrected_f * np.cos(inclination_radians) - vertical_component=corrected_f * np.sin(inclination_radians) + horizontal_component = corrected_f * np.cos(inclination_radians) + vertical_component = corrected_f * np.sin(inclination_radians) h_abs = corrected_f * np.cos(inclination_radians) z_abs = corrected_f * np.sin(inclination_radians) @@ -269,7 +272,7 @@ def calculate_HZ_absolutes( endtime=endtime, ), horizontal_component, - vertical_component + vertical_component, ) @@ -364,8 +367,7 @@ def calculate_scale_value( return scale_value -def calculate_magnetic_south_meridian( - measurements: List[Measurement]) -> float: +def calculate_magnetic_south_meridian(measurements: List[Measurement]) -> float: """Calculate magnetic_south_meridian. Parameters @@ -376,24 +378,19 @@ def calculate_magnetic_south_meridian( ------- Calculated magnetic_south_meridian. """ - # declination measurements + # declination measurements declination_measurements = [ average_measurement(measurements, [t]) for t in DECLINATION_TYPES ] - magnetic_south_meridian = np.average( - [ - m.angle - - for m in declination_measurements - ] - ) + magnetic_south_meridian = np.average([m.angle for m in declination_measurements]) return magnetic_south_meridian def calculate_D_computed( measurements: List[Measurement], - h_baseline: float,) -> float: + h_baseline: float, +) -> float: """Calculate d_computed. Parameters @@ -405,14 +402,14 @@ def calculate_D_computed( ------- Calculated d_computed. """ - # declination measurements + # declination measurements declination_measurements = [ average_measurement(measurements, [t]) for t in DECLINATION_TYPES ] - d_computed = np.average( - [np.degrees(np.arctan(m.e / (m.h + h_baseline))) + [ + np.degrees(np.arctan(m.e / (m.h + h_baseline))) for m in declination_measurements ] ) @@ -422,7 +419,8 @@ def calculate_D_computed( def calculate_R_computed( measurements: List[Measurement], - h_baseline: float,) -> float: + h_baseline: float, +) -> float: """Calculate r_computed. Parameters @@ -434,14 +432,14 @@ def calculate_R_computed( ------- Calculated r_computed. """ - # declination measurements + # declination measurements declination_measurements = [ average_measurement(measurements, [t]) for t in DECLINATION_TYPES ] - r_computed = np.average( - [ np.degrees( + [ + np.degrees( m.measurement_type.meridian * (np.arcsin(m.residual / np.sqrt((m.h + h_baseline) ** 2 + m.e**2))) ) @@ -453,8 +451,8 @@ def calculate_R_computed( def calculate_mean_mark( - measurements: List[Measurement], - ) -> float: + measurements: List[Measurement], +) -> float: """Calculate mean_mark. Parameters @@ -474,9 +472,9 @@ def calculate_mean_mark( def calculate_magnetic_azimuth_of_mark( - mean_mark: float, - magnetic_south_meridian:float, - ) -> float: + mean_mark: float, + magnetic_south_meridian: float, +) -> float: """Calculate magnetic_azimuth_of_mark. Parameters @@ -494,10 +492,11 @@ def calculate_magnetic_azimuth_of_mark( return magnetic_azimuth_of_mark + def calculate_ordinate_f( - corrected_f: float, - pier_correction:float, - ) -> float: + corrected_f: float, + pier_correction: float, +) -> float: """Calculate ordinate_f. Parameters @@ -515,10 +514,11 @@ def calculate_ordinate_f( return ordinate_f + def calculate_ordinate_d( - absoluteD_absolute: float, - absoluteD_baseline:float, - ) -> float: + absoluteD_absolute: float, + absoluteD_baseline: float, +) -> float: """Calculate ordinate_d. Parameters @@ -536,10 +536,11 @@ def calculate_ordinate_d( return ordinate_d + def calculate_ordinate_z( - absoluteZ_absolute: float, - absoluteZ_baseline:float, - ) -> float: + absoluteZ_absolute: float, + absoluteZ_baseline: float, +) -> float: """Calculate ordinate_z. Parameters @@ -557,11 +558,12 @@ def calculate_ordinate_z( return ordinate_z + def calculate_ordinate_h( - absoluteH_absolute: float, - absoluteH_baseline:float, - ordinate_d:float, - ) -> float: + absoluteH_absolute: float, + absoluteH_baseline: float, + ordinate_d: float, +) -> float: """Calculate ordinate_z. Parameters @@ -576,6 +578,6 @@ def calculate_ordinate_h( """ ordinate_e = absoluteH_absolute * np.sin(ordinate_d) - ordinate_h = np.sqrt(absoluteH_absolute**2 - ordinate_e**2) - absoluteH_baseline + ordinate_h = np.sqrt(absoluteH_absolute**2 - ordinate_e**2) - absoluteH_baseline - return ordinate_h \ No newline at end of file + return ordinate_h diff --git a/geomagio/residual/Diagnostics.py b/geomagio/residual/Diagnostics.py index 9634cd55a46914ab3b664e8694687038d0d7c55c..7844cb7b6b4dcc0ed1923b27c1404dd7a39330c7 100644 --- a/geomagio/residual/Diagnostics.py +++ b/geomagio/residual/Diagnostics.py @@ -40,5 +40,4 @@ class Diagnostics(BaseModel): ordinate_h: Optional[float] = None ordinate_z: Optional[float] = None r_computed: Optional[float] = None - scale_value: Optional[float] = None vertical_component: Optional[float] = None