跳轉到內容

Celestia/參考系

來自華夏公益教科書,開放世界開放書籍

參考系

[編輯 | 編輯原始碼]

參考系是用於定義天體軌跡和方向的座標系的原點和座標軸集。原點是目錄檔案中定義的其他天體。有很多方法可以設定座標系軸。

用於定義天體軌跡和方向的參考系不需要相同。這在某些情況下很有用。例如,衛星的軌道可以用地心赤道座標系給出,而姿態可以用當地垂直-當地水平座標系給出。

所有參考系關鍵字都需要 Celestia 1.5。 它們會被早期版本忽略。

OrbitFrame 屬性

[編輯 | 編輯原始碼]

設定軌跡的參考系

預設值:對於以恆星為父天體的星體,軌道的預設參考系以恆星為中心。基本面是 J2000 地球黃道,首選方向(x 軸)是 J2000 春分點。對於所有其他天體,預設參考系是父天體的赤道系。

用法

OrbitFrame <reference frame>

BodyFrame 屬性

[編輯 | 編輯原始碼]

設定方向的參考系

預設值:對於以恆星為父天體的星體,方向的預設參考系是 J2000 黃道和春分點。對於所有其他天體,預設參考系是父天體的赤道系(這反過來可能預設為 J2000 黃道,依此類推)。

用法

BodyFrame <reference frame>

參考系物件

[編輯 | 編輯原始碼]

參考系是一個列表,包含一個屬性,該屬性是特定參考系型別之一。

用法

{
    <J2000 ecliptic frame> | 
    <J2000 equator frame> |
    <body mean equator frame> |
    <body-fixed frame> |
    <two-vector frame>
}


EclipticJ2000 屬性

[編輯 | 編輯原始碼]

EclipticJ2000 是一個參考系,其基本面是 J2000 曆元的地球黃道。x 軸指向 J2000 春分點,z 軸垂直於黃道指向北,y 軸完成右手系。

用法

EclipticJ2000
{
    Center <object name>
}


EquatorJ2000 屬性

[編輯 | 編輯原始碼]

EquatorJ2000 是一個參考系,其基本面是 J2000 曆元的地球赤道。x 軸指向 J2000 春分點,z 軸是平均北極,y 軸完成右手系。

用法

EquatorJ2000
{
    Center <object name>
}


MeanEquator 屬性

[編輯 | 編輯原始碼]

MeanEquator 定義了一個參考系,其中天體的當天赤道是 xy 平面。z 軸垂直於 xy 平面,指向天體逆時針旋轉的方向。x 軸是赤道平面在 J2000 黃道平面上的升交點。

用法

MeanEquator
{
    Center <object name>
    Object <object name>
    Freeze <date>
}

屬性

  • Object: 基本面是該天體的赤道平面
  • Freeze: 如果設定,則使用凍結曆元的赤道,而不是當天赤道

BodyFixed 屬性

[編輯 | 編輯原始碼]

BodyFixed 參考系與指定天體一起旋轉。

用法

BodyFixed
{
    Center <object name>
}


TwoVector 屬性

[編輯 | 編輯原始碼]

用法

TwoVector
{
    Center <object name>
    Primary <axis>
    Secondary <axis>
}


軸物件
[編輯 | 編輯原始碼]

軸物件是一個列表,包含一個方向屬性和一個軸標籤。

用法

{
    Axis "x" | "y" | "z" | "-x" | "-y" | "-z"
    <RelativePosition> | <RelativeVelocity> | <ConstantVector>
}


RelativePosition 屬性
[編輯 | 編輯原始碼]

用法

RelativePosition
{
    Observer <object name>
    Target <object name>
}

預設觀察者物件是座標系中心。目標物件沒有預設值,必須始終指定。


RelativeVelocity 屬性
[編輯 | 編輯原始碼]

用法

RelativeVelocity
{
    Observer <object name>
    Target <object name>
}

預設觀察者物件是座標系中心。目標物件沒有預設值,必須始終指定。

ConstantVector 屬性
[編輯 | 編輯原始碼]

用法

ConstantVector
{
    Vector <vector>
    Frame <reference frame>
}

示例

地球的北極旋轉軸

ConstantVector
{
    Vector [ 0 0 1 ]
    Frame {
        EquatorJ2000 { Center "Sol/Earth" }
    }
}

參考系示例

[編輯 | 編輯原始碼]

日心地球赤道

[編輯 | 編輯原始碼]
OrbitFrame {
    EquatorJ2000 { Center "Sol" }
}

地心太陽黃道

[編輯 | 編輯原始碼]

該參考系基於 SPICE Frames Required Reading 文件中的一個示例。原點是地球,xy 平面是地球的軌道平面,x 軸指向從地球到太陽的方向。

OrbitFrame {
    TwoVector {
        Center "Sol/Earth"
        Primary {
            Axis "x"
            RelativePosition { Target "Sol" }
        }
        Secondary {
            Axis "y"
            RelativeVelocity { Target "Sol" }
        }
    }
}
    

太陽鎖定

[編輯 | 編輯原始碼]

該參考系用於一個名為“Test”的繞太陽執行的天體,其 z 軸指向太陽,x 軸指向運動方向。在該參考系中具有固定方向的天體始終保持相同的一面朝向太陽。

BodyFrame {
    TwoVector {
        Center "Sol/Test"
        Primary {
            Axis "z"
            RelativePosition { Target "Sol" }
        }
        Secondary {
            Axis "x"
            RelativeVelocity { Target "Sol" }
        }
    }
}

JPL 太陽系動力學頁面

[編輯 | 編輯原始碼]

JPL 太陽系動力學頁面https://ssd.jpl.nasa.gov/?sat_elem 提供了使用各種參考系計算的行星衛星平均軌道引數。將這些引數輸入到solarsys.ssc可能會很困難。

  • 當給出平均黃道元素(對於“物體”的衛星)時
EllipticalOrbit {
...
}

OrbitFrame { EclipticJ2000 {
        Center "object"
} }


  • 當元素以主星赤道為參考時
EllipticalOrbit {
...
}

OrbitFrame { BodyMeanEquator {
   Center "object"
   Object "object"
   [Freeze <date>]
} }


  • 當元素以 ICRF 為參考時(非常接近地球赤道系)
EllipticalOrbit {
...
}

OrbitFrame { EquatorJ2000 {
    Center "object"
} }


  • 當元素以區域性拉普拉斯平面為參考時

這是最壞的情況。每個衛星的拉普拉斯平面由其極地赤經和赤緯(在赤道 J2000 系中)定義;這定義了局部拉普拉斯平面的升交點經度(90° 加上極地赤經)和傾角(餘赤緯,即 90° 減去赤緯)。

EllipticalOrbit {
...
}

OrbitFrame { TwoVector {
    Center "object"
    Primary { Axis "x"
        ConstantVector { Vector [<Laplace plane ascending node>] Frame { EquatorJ2000 { Center "object" } } }
    }
    Secondary { Axis "z"
        ConstantVector { Vector [<Laplace plane pole>] Frame { EquatorJ2000 { Center "object" } } }
    }
} }


其他示例

[編輯 | 編輯原始碼]

將多個物體相同地放置在地球表面上

[編輯 | 編輯原始碼]

以下是如何定義相對於地球的位置和方向的示例。然後,可以在放置多個模型時參考此定義,而不是為每個模型複製相同的定義:只需在一個位置修改位置修正,而不是多個位置。

請注意,此示例中包含的一些宣告可以省略,因為它們的預設值將適當地放置物體。

"Hale_position" "Sol/Earth"
{
 Class "invisible"
 Radius 0.0001

# Place the Hale Telescope on the peak of Mount Palomar

 OrbitFrame { BodyFixed { Center "Sol/Earth" }}
 FixedPosition  [ -2407.99 -4753.86 3507.91 ]

# Orient it appropriately with respect to the surface
 
 BodyFrame { BodyFixed { Center "Sol/Earth" }}
 FixedRotation { MeridianAngle -116.86 AscendingNode 90 }

}

"Hale_model" "Sol/Earth/Hale_position"
{
  Mesh "telescope.3ds"
  Radius 0.3

  OrbitFrame { BodyFixed { Center "Sol/Earth/Hale_position" }}
  FixedPosition  [ 0 0 0 ]

  BodyFrame { BodyFixed { Center "Sol/Earth/Hale_position" }}
  FixedRotation { }

  Albedo 0.1

}

"Dome_model" "Sol/Earth/Hale_position"
{
  Mesh "dome.3ds"
  Radius 0.3

  OrbitFrame { BodyFixed { Center "Sol/Earth/Hale_position" }}
  FixedPosition  [ 0 0 0 ]

  BodyFrame { BodyFixed { Center "Sol/Earth/Hale_position" }}
  FixedRotation { }

  Albedo 0.1

}
[編輯 | 編輯原始碼]
華夏公益教科書