Язык Wolfram Language

Единицы измерения и даты

Визуализация расположения планет

Смешанные величины присутствуют во многих контекстах: деньги, время, расстояние, вес, углы и т.д.

In[1]:=
Click for copyable input
Quantity[MixedMagnitude[{2, 35, 21.2}], MixedUnit[{"Hours", "Minutes", "Seconds"}]]
Out[1]=
In[2]:=
Click for copyable input
UnitConvert[Quantity[75.562, "AngularDegrees"], MixedUnit[{"AngularDegrees", "ArcMinutes", "ArcSeconds"}]]
Out[2]=
In[3]:=
Click for copyable input
Quantity[MixedMagnitude[{5, 11}], MixedUnit[{"Feet", "Inches"}]]
Out[3]=
In[4]:=
Click for copyable input
Quantity[MixedMagnitude[{5, 11}], MixedUnit[{"Feet", "Inches"}]]; % + Quantity[2.5, "Feet"]
Out[4]=

Функция SiderealTime рассчитывает смешанные величины. В качестве иллюстрации, найдем текущее звёздное время в в заданноой местности.

In[5]:=
Click for copyable input
stime = SiderealTime[]
Out[5]=

Получите текущее положение Солнца в экваториальных координатах.

In[6]:=
Click for copyable input
sunpos = SunPosition[CelestialSystem -> "Equatorial"]
Out[6]=

Рассчитайте позицию Луны в этой же системе координат.

In[7]:=
Click for copyable input
moonpos = MoonPosition[CelestialSystem -> "Equatorial"]
Out[7]=

Найдите координаты прямого восхождения планет.

In[8]:=
Click for copyable input
planetpos = QuantityMagnitude[ DeleteMissing[ EntityValue[EntityClass["Planet", All], EntityProperty["Planet", "RightAscension"]]], "HoursOfRightAscension"]
Out[8]=

Объедините различные измерения положений в список прямых восхождений для каждого небесного тела.

In[9]:=
Click for copyable input
ascensions = Join[ {0, moonpos[[1, 1]] - sunpos[[1, 1]]}, planetpos];
код на языке Wolfram Language целиком
In[10]:=
Click for copyable input
gp = Sequence[GeoRange -> "World", GeoProjection -> {"AzimuthalEquidistant", "Centering" -> {-90, 0}}]; globe = GeoGraphics[{Thick, Black, Arrow[{{0, 0}, $GeoLocation}]}, gp, GeoBackground -> GeoStyling["ReliefMap"]][[1, 1]]; cross = {Thickness[.005], Opacity[.5], Line[9.5 {-#, #}]} & /@ {{0, 1}, {1, 0}}; shade = GeoGraphics[{Opacity[.5], GeoDisk[{-sunpos[[2, 1]], 180}, 10018758]}, gp, GeoBackground -> None][[1, 1]];

Создайте графический вид положения планет, Солнца и Луны, обозримый с южного полюса.

код на языке Wolfram Language целиком
In[11]:=
Click for copyable input
Rasterize[ Graphics[{globe, cross, shade, MapThread[ Text[Style[#3, #2, 24, FontWeight -> Bold], {0, 3.5}.RotationMatrix[(#1) \[Pi]/12]] &, {ascensions, {Yellow, White, Orange, Lighter[Blue], Red, Lighter[Purple], Orange, Cyan, Lighter[Blue]}, {"☼", "\[Moon]", "\[Mercury]", "\[Venus]", "\[Mars]", "\[Jupiter]", "\[Saturn]", "♅", "\[Neptune]"}}]}, Background -> GrayLevel[0.2], PlotRange -> 4, PlotLabel -> #, LabelStyle -> {Bold, White}, Axes -> None] &@stime, RasterSize -> 600, ImageSize -> 450]
Out[11]=

Родственные примеры