Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Make AstronomicalCalculations an abstract class
  • Loading branch information
dickermoshe committed Jul 9, 2023
commit 47854f1cd89a51f9b9686fdb4d2184ade8368dab
18 changes: 16 additions & 2 deletions zmanim/util/astronomical_calculations.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
import math
from datetime import date
from typing import Optional
from abc import ABC, abstractmethod

from zmanim.util.geo_location import GeoLocation

class AstronomicalCalculations:


class AstronomicalCalculations(ABC):
GEOMETRIC_ZENITH = 90.0

def __init__(self):
Expand All @@ -15,4 +21,12 @@ def elevation_adjustment(self, elevation: float) -> float:
def adjusted_zenith(self, zenith: float, elevation: float) -> float:
if zenith != self.GEOMETRIC_ZENITH:
return zenith
return zenith + self.solar_radius + self.refraction + self.elevation_adjustment(elevation)
return zenith + self.solar_radius + self.refraction + self.elevation_adjustment(elevation)

@abstractmethod
def utc_sunrise(self, target_date: date, geo_location: GeoLocation, zenith: float, adjust_for_elevation: bool = False) -> Optional[float]:
pass

@abstractmethod
def utc_sunset(self, target_date: date, geo_location: GeoLocation, zenith: float, adjust_for_elevation: bool = False) -> Optional[float]:
pass