তারিখ, সময় এবং অবস্থানের উপর ভিত্তি করে দৃশ্যমান নক্ষত্রপুঞ্জগুলি দেখানোর জন্য একটি ইন্টারেক্টিভ SVG রাতের আকাশের মানচিত্র তৈরি করুন। বৈশিষ্ট্যগুলি স্বয়ংক্রিয় সনাক্তকরণ বা ম্যানুয়াল সমন্বয় ইনপুট, নক্ষত্রপুঞ্জের নাম, তারা অবস্থান এবং অনুভূমিক রেখা।
নক্ষত্রপুঞ্জ দর্শক অ্যাপটি জ্যোতির্বিজ্ঞান অনুরাগী এবং তারা দেখার জন্য একটি শক্তিশালী টুল। এটি ব্যবহারকারীদের তাদের অবস্থান, তারিখ এবং সময়ের ভিত্তিতে রাতের আকাশের দৃশ্যমান নক্ষত্রপুঞ্জগুলি চিহ্নিত করতে সক্ষম করে। এই ইন্টারেক্টিভ অ্যাপ্লিকেশনটি একটি সহজ SVG রাতের আকাশের মানচিত্র প্রদান করে, যা নক্ষত্রপুঞ্জের নাম, মৌলিক নক্ষত্রের অবস্থান এবং একটি দিগন্ত রেখা প্রদর্শন করে, সবকিছু একটি একক পৃষ্ঠার ইন্টারফেসের মধ্যে।
অ্যাপটি আকাশীয় কোঅর্ডিনেট এবং সময় গণনার সংমিশ্রণ ব্যবহার করে নির্ধারণ করে কোন নক্ষত্রপুঞ্জগুলি রাতের আকাশে দৃশ্যমান:
ডান উত্থান (RA) এবং অবনমন (Dec): এগুলি যথাক্রমে দ্রাঘিমাংশ এবং অক্ষাংশের আকাশীয় সমতুল্য। RA ঘণ্টায় (0 থেকে 24) পরিমাপ করা হয়, এবং Dec ডিগ্রিতে (-90° থেকে +90°) পরিমাপ করা হয়।
স্থানীয় সিডেরিয়াল সময় (LST): এটি পর্যবেক্ষকের দ্রাঘিমাংশ এবং বর্তমান তারিখ ও সময় ব্যবহার করে গণনা করা হয়। LST নির্ধারণ করে কোন অংশ আকাশের গোলক বর্তমানে উপরে রয়েছে।
ঘণ্টার কোণ (HA): এটি মেরিডিয়ান এবং একটি আকাশীয় বস্তুর মধ্যে কোণীয় দূরত্ব, যা হিসাব করা হয়:
উচ্চতা (Alt) এবং আজিমুথ (Az): এগুলি নিম্নলিখিত সূত্রগুলি ব্যবহার করে গণনা করা হয়:
যেখানে Lat হল পর্যবেক্ষকের অক্ষাংশ।
অ্যাপটি দৃশ্যমান নক্ষত্রপুঞ্জগুলি নির্ধারণ এবং আকাশের মানচিত্র তৈরি করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করে:
নক্ষত্রপুঞ্জ দর্শক অ্যাপটির বিভিন্ন প্রয়োগ রয়েছে:
যদিও আমাদের নক্ষত্রপুঞ্জ দর্শক অ্যাপটি রাতের আকাশ দেখার জন্য একটি সহজ এবং প্রবেশযোগ্য উপায় প্রদান করে, তবে অন্যান্য টুলও উপলব্ধ রয়েছে:
নক্ষত্রপুঞ্জ ম্যাপিং এবং নক্ষত্রের মানচিত্রের ইতিহাস হাজার হাজার বছর আগে শুরু হয়েছিল:
অ্যাপটি একটি টাইপস্ক্রিপ্ট ফাইলে সংরক্ষিত একটি সরলীকৃত নক্ষত্রপুঞ্জ ডাটাবেস ব্যবহার করে:
1export interface Star {
2 ra: number; // ডান উত্থান ঘণ্টায়
3 dec: number; // অবনমন ডিগ্রিতে
4 magnitude: number; // নক্ষত্রের উজ্জ্বলতা
5}
6
7export interface Constellation {
8 name: string;
9 stars: Star[];
10}
11
12export const constellations: Constellation[] = [
13 {
14 name: "উর্সা মেজর",
15 stars: [
16 { ra: 11.062, dec: 61.751, magnitude: 1.79 },
17 { ra: 10.229, dec: 60.718, magnitude: 2.37 },
18 // ... আরও নক্ষত্র
19 ]
20 },
21 // ... আরও নক্ষত্রপুঞ্জ
22];
23
এই ডেটা স্ট্রাকচারটি নক্ষত্রপুঞ্জগুলির কার্যকর অনুসন্ধান এবং রেন্ডারিংয়ের অনুমতি দেয়।
অ্যাপটি SVG রাতের আকাশের মানচিত্র তৈরি করতে D3.js ব্যবহার করে। রেন্ডারিং প্রক্রিয়ার একটি সরলীকৃত উদাহরণ এখানে:
1import * as d3 from 'd3';
2
3function renderSkyMap(visibleConstellations, width, height) {
4 const svg = d3.create("svg")
5 .attr("width", width)
6 .attr("height", height)
7 .attr("viewBox", [0, 0, width, height]);
8
9 // আকাশের পটভূমি আঁকুন
10 svg.append("circle")
11 .attr("cx", width / 2)
12 .attr("cy", height / 2)
13 .attr("r", Math.min(width, height) / 2)
14 .attr("fill", "navy");
15
16 // নক্ষত্র এবং নক্ষত্রপুঞ্জ আঁকুন
17 visibleConstellations.forEach(constellation => {
18 const lineGenerator = d3.line()
19 .x(d => projectStar(d).x)
20 .y(d => projectStar(d).y);
21
22 svg.append("path")
23 .attr("d", lineGenerator(constellation.stars))
24 .attr("stroke", "white")
25 .attr("fill", "none");
26
27 constellation.stars.forEach(star => {
28 const { x, y } = projectStar(star);
29 svg.append("circle")
30 .attr("cx", x)
31 .attr("cy", y)
32 .attr("r", 5 - star.magnitude)
33 .attr("fill", "white");
34 });
35
36 // নক্ষত্রপুঞ্জের নাম যোগ করুন
37 const firstStar = projectStar(constellation.stars[0]);
38 svg.append("text")
39 .attr("x", firstStar.x)
40 .attr("y", firstStar.y - 10)
41 .text(constellation.name)
42 .attr("fill", "white")
43 .attr("font-size", "12px");
44 });
45
46 // দিগন্ত রেখা আঁকুন
47 svg.append("line")
48 .attr("x1", 0)
49 .attr("y1", height / 2)
50 .attr("x2", width)
51 .attr("y2", height / 2)
52 .attr("stroke", "green")
53 .attr("stroke-width", 2);
54
55 return svg.node();
56}
57
58function projectStar(star) {
59 // RA এবং Dec কে x, y কোঅর্ডিনেটে রূপান্তর করুন
60 // এটি একটি সরলীকৃত প্রকল্প এবং একটি সঠিক আকাশীয় প্রকল্পের সাথে প্রতিস্থাপন করা উচিত
61 const x = (star.ra / 24) * width;
62 const y = ((90 - star.dec) / 180) * height;
63 return { x, y };
64}
65
অ্যাপটি বিভিন্ন সময় অঞ্চল এবং অবস্থানগুলি পরিচালনা করে:
যদিও অ্যাপটি সরাসরি আলো দূষণকে বিবেচনায় নেয় না, ব্যবহারকারীদের মনে রাখা উচিত যে:
দিগন্ত রেখাটি পর্যবেক্ষকের অবস্থানের উপর ভিত্তি করে গণনা করা হয়:
অ্যাপটি দৃশ্যমান নক্ষত্রপুঞ্জগুলিতে মৌসুমী পরিবর্তনগুলি বিবেচনা করে:
আপনার কাজে দরকারী হতে পারে আরো টুল খুঁজে বের করুন