diff --git a/geomagio/residual/Calculation.py b/geomagio/residual/Calculation.py index 37776f54ddc9fc4e505b95c9fa6ff4ff6c9276cb..5439186ca28066b0ac55c08c08ed815567402f66 100644 --- a/geomagio/residual/Calculation.py +++ b/geomagio/residual/Calculation.py @@ -34,7 +34,7 @@ def calculate(reading: Reading) -> Reading: inclination, f, mean = calculate_I( hemisphere=reading.hemisphere, measurements=reading.measurements ) - corrected_f = f + reading.pier_correction # TODO: should this be returned? + corrected_f = f + reading.pier_correction # calculate absolutes absoluteH, absoluteZ = calculate_HZ_absolutes( corrected_f=corrected_f, inclination=inclination, mean=mean, reference=reference @@ -46,11 +46,14 @@ def calculate(reading: Reading) -> Reading: reference=reference, ) # calculate scale - scale_value = calculate_scale_value( - corrected_f=corrected_f, - inclination=inclination, - measurements=reading[mt.NORTH_DOWN_SCALE], - ) + if len(reading[mt.NORTH_DOWN_SCALE]) > 0: + scale_value = calculate_scale_value( + corrected_f=corrected_f, + inclination=inclination, + measurements=reading[mt.NORTH_DOWN_SCALE], + ) + else: + scale_value = None # create new reading object calculated = Reading( absolutes=[absoluteD, absoluteH, absoluteZ], @@ -105,6 +108,8 @@ def calculate_D_absolute( for m in declination_measurements ] ) + if azimuth > 180: + azimuth -= 180 # add subtract average mark angle from average meridian angle and add # azimuth to get the declination baseline d_b = (meridian - average_mark) + azimuth diff --git a/geomagio/residual/Measurement.py b/geomagio/residual/Measurement.py index 27d98ed5c93837b2203521c29ef1d76be3870128..f31be455432700381c5c622df4d660cb147ba2fb 100644 --- a/geomagio/residual/Measurement.py +++ b/geomagio/residual/Measurement.py @@ -87,7 +87,7 @@ def measurement_index( def safe_average(l: List[Optional[float]]): values = l and [f for f in l if f] or None - return values and numpy.nanmean(values) or None + return values and numpy.nanmean(values) or 0.0 def safe_max(l: List[Optional[float]]):