الاستطالة الزاوية السطحية بين كوكب الزهرة ومذنب تسوتشينشان-أطلس
حساب الاستطالة الزاوية السطحية بين كوكب الزهرة ومذنب تسوتشينشان-أطلس الساعة 6:30 من مساء يوم الاحد الموافق 13 تشرين أول/ أكتوبر من مشاهد في مدينة عمان وضواحيها
عمار السكجي، فيزياء نظرية
يمكن اشتقاق المعادلة العامة لحساب المسافة الزاوية بين اي جسمين في السماء، بالنسبة لمشاهد في اي منطقة على سطح الارض:
حيث ان
لاضافة تاثيرات الغلاف الجوي مثل تصحيح الانكسار الجوي: ينطبق هذا بشكل أساسي على
الأجسام القريبة من الأفق ويعتمد على زاوية الارتفاع للأجسام، كما هو وضع
كوكب الزهرة ومذنب تسوتشينشان-أطلس الساعة 6:30 من مساء يوم الاحد الموافق
13 تشرين أول/ أكتوبر، من مشاهد في مدينة عمان وضواحيها
احسب المسافة الزاوية باستخدام المعادلة
اعلاه دون افتراض استطالة صغيرة.ثم قم بتطبيق تصحيح الانكسار الجوي على الانحرافات
قبل حساب المسافة الزاوية.
تأثيرات الغلاف الجوي، يمكن استخدام
المعادلة التالية حيث h هو الارتفاع،
وباستخدم كود بايثون ، نستطيع تطبيقها على
النحو التالي:
Python code for the angular separation of
two object with atmospheric correction, Ammar Sakaji
import math
def
refraction_correction(altitude):
"""
Calculate the atmospheric refraction
correction for an object at a given altitude.
Parameters:
altitude : float : Altitude of the object
in degrees.
Returns:
refraction : float : The refraction
correction in degrees.
"""
if altitude > 15:
return 0 # Minimal refraction for high altitude
objects
else:
# Formula for refraction correction in
degrees
return 1.02 /
math.tan(math.radians(altitude + 10.3 / (altitude + 5.11)))
def
altitude_from_declination_and_latitude(dec, lat, ha):
"""
Calculate the altitude of a celestial
object based on its declination, latitude, and hour angle.
Parameters:
dec : float : Declination of the object in
degrees.
lat : float : Observer's latitude in
degrees.
ha : float : Hour angle of the object in
degrees.
Returns:
altitude : float : Altitude of the object
in degrees.
"""
dec = math.radians(dec)
lat = math.radians(lat)
ha = math.radians(ha)
altitude = math.asin(math.sin(dec) *
math.sin(lat) + math.cos(dec) * math.cos(lat) * math.cos(ha))
return math.degrees(altitude)
def
angular_separation_with_refraction(ra1, dec1, ra2, dec2, lat, ha1, ha2):
"""
Calculate the angular separation between
two objects in the sky, including atmospheric refraction.
Parameters:
ra1, dec1 : float : Right Ascension and
Declination of object 1 (in degrees)
ra2, dec2 : float : Right Ascension and
Declination of object 2 (in degrees)
lat : float : Observer's latitude in
degrees
ha1, ha2 : float : Hour angles of object 1
and object 2 in degrees
Returns:
Angular separation in degrees, including
atmospheric refraction.
"""
# Calculate altitudes for both objects
alt1 =
altitude_from_declination_and_latitude(dec1, lat, ha1)
alt2 =
altitude_from_declination_and_latitude(dec2, lat, ha2)
# Apply refraction correction to both
altitudes
ref1 = refraction_correction(alt1)
ref2 = refraction_correction(alt2)
# Adjust declinations for atmospheric
refraction
dec1_corrected = dec1 + ref1
dec2_corrected = dec2 + ref2
# Now calculate angular separation using
corrected declinations
ra1 = math.radians(ra1)
dec1_corrected =
math.radians(dec1_corrected)
ra2 = math.radians(ra2)
dec2_corrected =
math.radians(dec2_corrected)
# Difference in right ascension
delta_ra = ra2 - ra1
# Numerator and denominator of the arctan
formula
numerator =
math.sqrt((math.cos(dec2_corrected) * math.sin(delta_ra))**2 +
(math.cos(dec1_corrected) * math.sin(dec2_corrected) -
math.sin(dec1_corrected) * math.cos(dec2_corrected) * math.cos(delta_ra))**2)
denominator = (math.sin(dec1_corrected) *
math.sin(dec2_corrected) +
math.cos(dec1_corrected) *
math.cos(dec2_corrected) * math.cos(delta_ra))
# Compute the angular separation
theta = math.atan2(numerator, denominator)
# Convert the result to degrees
return math.degrees(theta)
# Example usage:
ra1 = 88.7929 # Right Ascension of Betelgeuse (in degrees)
dec1 = 7.4071 # Declination of Betelgeuse (in degrees)
ra2 = 78.6345 # Right Ascension of Rigel (in degrees)
dec2 = -8.2016 # Declination of Rigel (in degrees)
lat = 34.0 # Observer's latitude in degrees (example: 34
degrees north)
ha1 = 0 # Hour angle of Betelgeuse (in degrees)
ha2 = 0 # Hour angle of Rigel (in degrees)
angular_sep_corrected
= angular_separation_with_refraction(ra1, dec1, ra2, dec2, lat, ha1, ha2)
print(f"Angular separation with refraction correction: {angular_sep_corrected:.4f
Comments
Post a Comment