
حزمة بيثون لإنشاء مخططات نجمة علم الفلك الدائرية (الماضي والحاضر والمستقبل) مع الإسقاط الكروي لتصحيح التشوهات مع جميع النجوم التي تحمل اسم النجوم دقيقة أكثر
نجوم المؤامرة في نصف الكرة الجنوبي لعام 2024 (بدون علامات النجوم)
import star_chart_spherical_projection as scsp
scsp . plotStereographicProjection ( northOrSouth = "South" ,
displayStarNamesLabels = False ,
yearSince2000 = 24 )ارسم بعض النجوم المدمجة بالإضافة إلى نجمتين جديدتين من المستخدمين في نصف الكرة الشمالي لعام 1961 (2000-39) (مع ملصقات النجوم والأحمر). يستخدم هذا كلتا الطريقتين لتحديد الحركة المناسبة للنجوم الجديدة: بحركة وزاوية مناسبة معينة وبسرعة الحركة المناسبة في الانحراف والصعود الأيمن
import star_chart_spherical_projection as scsp
exalibur_star = scsp . newStar ( starName = "Exalibur" ,
ra = "14.04.23" ,
dec = 64.22 ,
properMotionSpeed = 12.3 ,
properMotionAngle = 83 ,
magnitudeVisual = 1.2 )
karaboudjan_star = scsp . newStar ( starName = "Karaboudjan" ,
ra = "3.14.15" ,
dec = 10.13 ,
properMotionSpeedRA = 57.6 ,
properMotionSpeedDec = 60.1 ,
magnitudeVisual = 0.3 )
scsp . plotStereographicProjection ( northOrSouth = "North" ,
builtInStars = [ "Vega" , "Arcturus" , "Altair" ],
userDefinedStars = [ exalibur_star , karaboudjan_star ],
displayStarNamesLabels = True ,
fig_plot_color = "red" ,
yearSince2000 = - 39 )إرجاع الموضع النهائي لـ Vega (يمكن أن يكون نجمًا واحدًا أو قائمة من النجوم) بعد 11500 عام عندما يكون Vega هو النجم الجديد North Pole (النجم الأقرب إلى +90 درجة)
import star_chart_spherical_projection as scsp
star_final_pos_dict = scsp . finalPositionOfStars ( builtInStars = [ "Vega" ],
yearSince2000 = 11500 ,
save_to_csv = "final_star_positions.csv" ) يعيد القاموس بنجمة وانحرافه والصعود الأيمن: {'Vega': {'Declination': 83.6899118156341, 'RA': '05.38.21'}}
يتم حفظ الموقف النهائي للنجوم في final_star_positions.csv مع الرؤوس ["اسم النجمة" ، "الصعود الأيمن (HH.MM.SS)" ، "delination (dd.ss)"]
تثبيت PYPI PIP على pypi.org/project/star-chart-spherical-projection/
pip install star-chart-spherical-projection
تتمثل الخطوة الأولى لرسم المجال السماوي على مؤامرة ثنائية الأبعاد في تعيين الصعود الأيمن للنجم كساعات على طول المؤامرة (قيمة ثيتا المماثلة القطبية) والانحدار كمسافة من وسط الدائرة (قيمة دائرة نصف قطرها في مؤامرة Matplotlib). ومع ذلك ، فإن محاولة تعيين الصعود الأيمن والانحراف مباشرة ستؤدي إلى تشويه لأن الزوايا بين النجوم على طول الانحراف لم تعد محفوظة. على اليسار ، تمتد كوكبة الخسارة الكبيرة إلى شكل غير مألوف بسبب هذا التشويه. من خلال حساب التحول الكروي ، يمكن تصحيح مخطط النجوم كما هو موضح على اليمين.
| بدون تصحيح | مع تصحيح |
|---|---|
![]() | ![]() |
يتم عرض المجال من القطب الجنوبي (عبر الإسقاط المجسم):
من وجهة نظر المراقب على سطح الأرض ، يبدو أن النجوم تجلس على طول سطح المجال السماوي-مجال وهمي من دائرة نصف قطرها التعسفي مع الأرض في مركزها. ستظهر جميع الأشياء الموجودة في السماء في المجال السماوي بغض النظر عن مسافةها الحقيقية من الأرض. يتم إعطاء موقف كل نجم من قيمتين. الانحراف هو المسافة الزاوية من خط الاستواء السماوي والصعود الأيمن هو المسافة من موضع الاعتدال الربة. خلال يوم كامل على مدار 24 ساعة ، يبدو أن النجوم تدور عبر السماء نتيجة لتناوب الأرض ، لكن وضعها ثابت. يتغير الموضع الفعلي للنجم مع مرور الوقت كنتيجة مشتركة للحركة الصغيرة للنجمة (الحركة المناسبة) وكذلك المحور الدوراني المتغير للأرض (المسبقة).
يمكن أن يتغلب الإسقاط الكروي على التشويه الزاوي عن طريق تحويل موضع الانحراف إلى:
# Projected from South Pole (Northern Hemisphere)
north_hemisphere_declination = tan(45° + (original_declination / 2))
# Projected from North Pole (Southern Hemisphere)
south_hemisphere_declination = tan(45° - (original_declination / 2))
حيث في نصف الكرة الشمالي ، تتشكل الإسقاطات من القطب الجنوبي: 
تأتي حزمة Chart Chart مع أكثر من مائة من ألمع النجوم كجزء من مكتبة مدمجة. ومع ذلك ، يمكن إضافة نجم جديد بسهولة للتخطيط أو الحسابات عن طريق إنشاء كائن Newstar. سيتطلب كائن Newstar بعض الميزات المهمة التي يمكن أن تقبلها الآن plotstereographicprojection () و FinalPositionofStars () كوسيطة إضافية.
هذا يسمح بإنشاء نجم جديد بطريقتين:
1. مع سرعة حركة مناسبة وزاوية الحركة المناسبة
كما رأينا في in-sky.org ل pollux
star_chart_spherical_projection.newStar(starName=None,
ra=None,
dec=None,
properMotionSpeed=None,
properMotionAngle=None,
magnitudeVisual=None)
مع سرعة الحركة المناسبة على طول الصعود الأيمن والانحراف
كما هو موضح في wikipeida.og ل Pollux
star_chart_spherical_projection.newStar(starName=None,
ra=None,
dec=None,
properMotionSpeedRA=None,
properMotionSpeedDec=None,
magnitudeVisual=None)
ملاحظة مهمة: سيتم تحويل الحركة المناسبة RA/DEC من السرعة على طول الصعود الأيمن والانحدار إلى سرعة حركة مناسبة ( properMotionSpeed ) وزاوية ( properMotionAngle ) لمزيد من الحسابات
plotstereographicprojection ()
مؤامرة النجوم على قطعة قطبية مجسمة
plotStereographicProjection(northOrSouth=None,
builtInStars=[],
declination_min=None,
yearSince2000=0,
displayStarNamesLabels=True,
displayDeclinationNumbers=True,
incrementBy=10,
isPrecessionIncluded=True,
maxMagnitudeFilter=None,
userDefinedStars=[],
onlyDisplayUserStars=False,
showPlot=True,
fig_plot_title=None,
fig_plot_color="C0",
figsize_n=12,
figsize_dpi=100,
save_plot_name=None)
| Northorsoth = "North" (-30 درجة إلى 90 درجة) (بدون ملصقات نجمة) | Northorsoth = "الجنوب" (30 درجة إلى -90 درجة) (بدون ملصقات نجمة) |
|---|---|
| BuildInstars = [] (يشمل جميع النجوم ، الافتراضي) | BuildInstars = ["Vega" ، "Arcturus" ، "Enif" ، "Caph" ، "Mimosa"] |
|---|---|
| reclination_min = -30 ° (افتراضي) | delation_min = 10 ° |
|---|---|
| سنوات 2000 = 0 (افتراضي) | yearince2000 = -3100 |
|---|---|
| DisplayStarnamesLabels = True (افتراضي) | DisplayStarnamesLabels = خطأ |
|---|---|
| DisplayDeclinationNumbers = true (افتراضي) (بدون علامات النجوم) | DisplayDeclinationNumbers = false (بدون علامات النجوم) |
|---|---|
| GerimentBy = 10 (افتراضي) (بدون ملصقات النجوم) | GerimentBy = 5 (بدون ملصقات النجوم) |
|---|---|
| isprecessionincluded = true (افتراضي) (yearinince2000 = 11500) | isprecessionincluded = false (yearinince2000 = 11500) |
|---|---|
| MaxMagnitudeFilter = لا شيء (افتراضي) | maxmagnitudefilter = 1 |
|---|---|
| userDefinedStars = [] (افتراضي) (مع "Vega" فقط) | userDefinedStars = [exalibur_star ، karaboudjan_star] (من QuickStart مع "Vega") |
|---|---|
| فقط displayuserstars = خطأ (افتراضي) مع userDefinedStars | OnlyDisplayUserstars = صحيح مع userdefinedstars = [exalibur_star ، karaboudjan_star] (من QuickStart) |
|---|---|
| FIG_PLOT_TITLE = (افتراضي) | FIG_PLOT_TITLE = "هذا هو عنوان مثال على مخطط النجوم" |
|---|---|
| FIG_PLOT_COLOR = "C0" (افتراضي) (بدون ملصقات النجوم) | FIG_PLOT_COLOR = "DarkorChid" (بدون ملصقات النجوم) |
|---|---|
النهائيات
إرجاع قاموسًا للمواقف النهائية للنجوم لمدة عام محدد في التنسيق: {'name name': {"delling": inlding (int) ، "ra": ra (str)}
finalPositionOfStars(builtInStars=[],
yearSince2000=0,
isPrecessionIncluded=True,
userDefinedStars=[],
onlyDisplayUserStars=False,
declination_min=None,
declination_max=None,
save_to_csv=None)
starpositionovertime ()
يعيد موقف نجم واحد بمرور الوقت
starPositionOverTime(builtInStarName=None,
newStar=None,
startYearSince2000=None,
endYearSince2000=None,
incrementYear=5,
isPrecessionIncluded=True,
save_to_csv=None)
Vega5 سنواتPredictpolestar
أعد نجمة القطب الشمالي/الجنوبي لعام معين منذ عام 2000
predictPoleStar(yearSince2000=0, northOrSouth="North")
North = 90 درجة South = -90 درجة ، الافتراضيات إلى North PlotStarpositationovertime ()
ارسم انحراف النجم وموضع الصعود الصحيح مع مرور الوقت
plotStarPositionOverTime(builtInStarName=None,
newStar=None,
startYearSince2000=None,
endYearSince2000=None,
incrementYear=10,
isPrecessionIncluded=True,
DecOrRA="D",
showPlot=True,
showYearMarker=True,
fig_plot_title=None,
fig_plot_color="C0",
figsize_n=12,
figsize_dpi=100,
save_plot_name=None)
VegaD أو الصعود الأيمن RA الافتراضية إلى D10 سنوات<STAR NAME> <DECLINATION/RA> (<With/Without> Precession) from <START BCE/CE> to <END BCE/CE>, every <YEAR INCREMENT> YearsC012100الانحراف بالسباق:
star_chart_spherical_projection . plotStarPositionOverTime ( builtInStarName = "Vega" ,
newStar = None ,
startYearSince2000 = - 15000 ,
endYearSince2000 = 15000 ,
isPrecessionIncluded = True ,
incrementYear = 5 ,
DecOrRA = "D" )الانحراف دون أن يسبق:
star_chart_spherical_projection . plotStarPositionOverTime ( builtInStarName = "Vega" ,
newStar = None ,
startYearSince2000 = - 15000 ,
endYearSince2000 = 15000 ,
isPrecessionIncluded = False ,
incrementYear = 5 ,
DecOrRA = "D" )الصعود الصحيح مع المسبق:
star_chart_spherical_projection . plotStarPositionOverTime ( builtInStarName = "Vega" ,
newStar = None ,
startYearSince2000 = - 15000 ,
endYearSince2000 = 15000 ,
isPrecessionIncluded = True ,
incrementYear = 5 ,
DecOrRA = "R" )الصعود الصحيح بدون مسبق:
star_chart_spherical_projection . plotStarPositionOverTime ( builtInStarName = "Vega" ,
newStar = None ,
startYearSince2000 = - 15000 ,
endYearSince2000 = 15000 ,
isPrecessionIncluded = False ,
incrementYear = 5 ,
DecOrRA = "R" )مخطط النجوم في نصف الكرة الشمالي (تركز على 90 درجة) بدون مقدمة
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="North",
displayStarNamesLabels=False,
yearSince2000=11500,
isPrecessionIncluded=False,
fig_plot_color="red")
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="North",
displayStarNamesLabels=True,
yearSince2000=11500,
isPrecessionIncluded=False,
fig_plot_color="red")
الرسم البياني النجم في نصف الكرة الشمالي (تركز على 90 درجة)
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="North",
displayStarNamesLabels=False,
yearSince2000=11500,
isPrecessionIncluded=True,
fig_plot_color="red")
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="North",
displayStarNamesLabels=True,
yearSince2000=11500,
isPrecessionIncluded=True,
fig_plot_color="red")
الرسم البياني النجم في نصف الكرة الجنوبي (تركز على -90 درجة) بدون مقدمة
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="South",
displayStarNamesLabels=False,
yearSince2000=11500,
isPrecessionIncluded=False,
fig_plot_color="cornflowerblue")
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="South",
displayStarNamesLabels=True,
yearSince2000=11500,
isPrecessionIncluded=False,
fig_plot_color="cornflowerblue")
الرسم البياني النجم في نصف الكرة الجنوبي (تركز على -90 درجة) مع الأماكن المسبقة
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="South",
displayStarNamesLabels=False,
yearSince2000=11500,
isPrecessionIncluded=True,
fig_plot_color="cornflowerblue")
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="South",
displayStarNamesLabels=True,
yearSince2000=11500,
isPrecessionIncluded=True,
fig_plot_color="cornflowerblue")
لتشغيل أو اختبار ضد Github/Fork star-chart-spherical-projection ، يمكن إنشاء بيئة تطوير عبر conda/miniconda
أولا ، تثبيت miniconda
بعد ذلك ، باستخدام environment.yml الحالية.
conda env create --file environment.yml
بمجرد بناء البيئة ، قم بتنشيط البيئة:
conda activate star_chart
لتشغيل الاختبارات الحالية والجديدة من دليل الجذر:
python -m pytest
تم تحديد النجوم المسمى بواسطة "كتالوج IAU لأسماء النجوم" مع موضع النجوم (الصعود الأيمن والانحراف) وكذلك زاوية وسرعة الحركة المناسبة من in-sky.org و Wikipedia حيث تم الإشارة إليها
نموذج المسبق: Vondrák ، J. ، وآخرون. "تعبيرات مسابقة جديدة ، صالحة لفترات زمنية طويلة." علم الفلك والفيزياء الفلكية ، المجلد. 534 ، 2011
تم تكييف رمز التمييز مع Python 3+ من نموذج Vondrak على المدى الطويل Github Repo 'Vondrak')
أرسل طلبًا أو سؤالًا أو سؤالًا أو ميزة كمسألة github أو إلى [email protected]