如何绘制天空图?天空

2023-09-11 22:36:12 作者:一身痞味儿

我如何绘制星图像这个?

我有:

在星数据库坐标(赤经,赤纬) 在观察坐标(纬度,经度) 在观测时

我需要它认为这些参数的公式。

解决方案

恒星数据库

谷歌的:

在BSC(明亮的星表)〜10K星达+6.5 MAG(裸眼) 依巴谷〜118K星高达+12 MAG(望远镜),并还具有视差(3D坐标)和多 依巴谷是我的最爱。两者都可以自由地以ASCII格式许多Astornomy服务器下载只是谷歌...

行星(机构)

您可以编译从众多网站所需要的轨道参数。您将需要所有的这些 Orbital_elements 的例子的这里有一些

模拟(计算时间的位置)

有关行星这只是获得行星/卫星的ephemerids可以由计算开普勒方程来完成

M = E-E *罪(E)

其中:

M 是平均角度(就像地球有圆形轨迹和定速) 电子是椭圆中心实际角度(与开普勒定律考虑) 手绘天空图片

您可以解决这个问题是这样的:

的(E = M,Q = 0,Q小于20,Q ++)E = M + E *罪(E);

现在你知道电子任何 M 这就是你所需要的。刚计算上椭圆的位置与由倾斜旋转。该 M 的计算也仅仅只是你需要知道时间 T0 当地球交叉角0,然后:

M =(T-T0)* DM

其中, DM 围绕太阳旋转如果时间是在天,然后 DM [弧度/日] 。对于地球是 2.0 * PI / tropical_year 。这将导致你所有的行星全球位置(相对于太阳)

有关详细信息请看这里如何来计算行星的位置

地球视图

所以你需要地球自转DAYLY添加到您的模拟

Equatoreal坐标是相对于地球。只要创建转换矩阵,一个轴由旋转23.5度在正确的方向,此轴旋转添加。另外补充旋转到你的地理位置。在此之后翻译这个矩阵来计算地球\的立场。从这个是很容易的所有全局坐标转换成你的地球视图,以便您可以绘制现在数据图像/屏幕什么都。

[注意事项]

小心你用什么自转周期!

在地球上的 tropical_year =365.242195601852天 在地球的天循环 DM = 0.0172021242603194弧度/天

一天平均太阳日!就像Julian日期...

总是与其他软件或真实的东西校准数据。有一些库是做到这一切在那里只是谷歌。为了提高精度实现垂头,precession和轨道参数随时间而改变。

How do I draw a star chart like this?

I have:

A star database with coordinates (right ascension and declination) Observer coordinates (latitude, longitude) Time of observation

I need a formula which considered these parameters.

解决方案

stellar database

google for:

BSC (Bright star catalog) ~10K stars up to +6.5 mag (naked eye) Hipparcos ~118K stars up to +12 mag (telescopes) and also has parallax (3D coordinates) and many more Hipparcos is mine favorite. both can be downloaded freely in ASCII format from many Astornomy server just google ...

planets (bodies)

You can compile the orbital parameters needed from many sites. You will need all of these Orbital_elements for example here are some

simulation (compute the position in time)

For planets is this just obtaining the ephemerids of planets/satellites which can be done by computing Kepler equation

M=E-e*sin(E)

where:

M is mean angle (as if the planet has circular trajectory and constant speed) E is real angle from ellipse center (with Kepler's law taken into account)

you can solve it like this:

for (E=M,q=0;q<20;q++) E=M+e*sin(E);

Now you know E for any M which is all you need. Just compute the position on ellipse and rotate it by inclination. The M is computed also simply just you need to know the time t0 when planet cross angle 0. Then:

M = (t-t0) * dM

where dM is rotation around Sun. If time is in days then dM is in [rad/day]. For Earth it is 2.0*pi/tropical_year. This will lead you to all planets global positions (relative to Sun)

For more information look here How to compute planetary positions

Earth view

Equatoreal coordinates are relative to Earth so you need to add dayly rotation of Earth to your simulation. Just create transformation matrix with one axis rotated by 23.5 deg in the "right" direction and add rotation by this axis. Also add rotation to your geo location. After this translate this matrix to computed Earth\s position. From this is easy to convert all global coordinates to your Earth's view so you can plot now the data to image/screen what ever.

[Notes]

Be careful what rotation period you use !!!

Earth's tropical_year = 365.242195601852 days Earth's day rotation dM = 0.0172021242603194 rad/day

day is mean solar day !!! just like Julian date ...

Always calibrate your data with other software or the real thing. There are some libs that do all of this out there just google. To improve accuracy implement nutation,precession and orbital parameters change with time.