1
$\begingroup$

I'm really new to the Mathematica, anyway my task is to write an application which would show position of ISS on the map but with manipulation/slider option to check position of ISS according to the time (24 hours range) like where it will +2 hours from current time.

So I have for the test a code written by another person to test if I can make it work.

    issLocationDisplay[] := Module[{pos, posline, country, city, distance}, 

{pos, posline} = SatelliteData[Entity["Satellite", "25544"], {"Position", "PositionLine"}];

  country = First[GeoNearest["Country", pos]];
  distance = Round[GeoDistance[pos, country], 0.1];

  Panel@Column[{Row[{"ISS Position: ", Style[If[distance <= Quantity[0., "Kilometers"], "Over " <> First[GeoNearest["City", pos]]["Name"] <> ", " <> 
          country["Name"], 
         ToString[
          Row[{"Over the sea ", distance, " od ", country["Name"]}]]],
         Darker[Blue]]}, 

      BaseStyle -> 
       Directive["FontFamily" -> "SansSerif", RGBColor["#497CA4"], 
        Larger, Bold]], 
     GeoGraphics[{Gray, Thickness[.005], 
       Arrowheads[{{0.05, 0.4}, {0.05, 0.13}}], Arrow @@ posline, Red,
        PointSize[.01], Point[pos], Opacity[.1], Black, 
       GeoVisibleRegion[pos]}, GeoCenter -> pos, GeoRange -> "World", 
      ImageSize -> 600]}]]

issLocationDisplay[]

My Question is how can I make Manipulation which will work with SatelliteData "Data" third argument. Do I need to create a List perhaps with 24 hours or there is a function which would help me to achieve it?

Edit: I'm sorry for not creating another thread for this one but I don't want create multiple threads about same problem.

I got the time increment option done but now I'm struggling with implementing my data into Geographics there would be a lot of errors if I try to go with EntityProperty like this:

"Satellite", "Position", "PositionLine", {"Date" -> DateObject[Now] [..]

On the other hand when I try different approach from documentation of SatelliteData function like this:

SatelliteData[Entity["Satellite", "25544"], {"Position", "PositionLine"}, {"Data" -> t}

It doesn't work either when I try to pass data from Position etc to Geographics both by using With or creating function with Module.

$\endgroup$
  • $\begingroup$ Be careful not to type "Data" when you mean "Date" $\endgroup$ – LouisB Dec 20 '19 at 0:38
2
$\begingroup$

Here is a simple example that displays the ISS position data inside a Manipulator that changes the time parameter:

Manipulate[

 SatelliteData[Entity["Satellite", "25544"], 
  EntityProperty["Satellite", "Position",
   {"Date" -> DateObject[Now] + Quantity[dt, "Minutes"]}]],

 {dt, -100, 100, 5, Appearance -> "Labeled"}]

enter image description here The salient points are the slider and the addition of DateObjects. This slider is bounded at +/-100 and increments in steps of 5. The time is incremented by adding a Quantity to a DateObject.

| improve this answer | |
$\endgroup$
  • $\begingroup$ I managed to create something like this I don't know if there is any critical difference Manipulate[SatelliteData[Entity["Satellite", "25544"], EntityProperty["Satellite", "Position", {"Date" -> t}]] DateString[ t], {t, DateObject[], DateObject[] + Quantity[24, "Hours"], Quantity[1, "Hours"]}] $\endgroup$ – Maki Nishikino Dec 19 '19 at 20:55
  • $\begingroup$ @MakiNishikino There are many ways to do it. Yours looks good. To display multiple lines, maybe use Column @ { SatelliteData[ ... ] , DateString[t] } inside the Manipulator. You can also add your Plot[ ... ] inside the Column $\endgroup$ – LouisB Dec 19 '19 at 21:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.