Page 1 of 2

New satellite information in ssc form

Posted: 26.12.2008, 23:23
by jdavies
Hi all,
There was a request some time ago for being ablle to get up-to-date satellite location information for Celestia, because satellite orbits changed fairly requently and new satellites are always being introduced. I have add this capability to the StarBridge application that I'm working on, but I have a few questions to ask you, the potential users, about how you want to access this information.

Right now I can parse all of the satellit information from the NORAD site: http://celestrak.com/NORAD/elements/. This results in 1160 distinct satelites being writen to the noradsatellites.ssc file. You can download that file from http://jeffdavies.org/starbridge/noradsatellites.ssc. Put that file into your celestia\extras folder and you now have access to all of the latest information on 1160 satellites when you right-click on the earch and select Satellites -> Spacecraft from the popup menu.

The problem of course is that few pwoplw will probably want access to all 1160 satelllites from within Celestia. So here is my question: For those of you that observe satellites, how would you like to be able to select them? Would you want to select them by name and create and maintain your own list of satellites that you wish to track. Or, would you like to select satellites by some other criteria. The Norad information on the CelesTrack site organizes this information in the following general categories and sub categories:

  • Special Interest
    • Last 30 Days
    • 100 Brightest
    • Space Station
    • FENGYUN 1C Debris
  • Weather and Earth Resource
    • Weather
    • NOAA
    • GOES
    • Earth Resources
    • Search and Rescue (SARSAT)
    • Disaster Monitoring
    • Tracking and Data Relay Satellite System (TDRSS)
  • Communication
    • Geostationary
    • IntelSat
    • Gorizont
    • Raduga
    • Molniya
    • Iridium
    • Orbcomm
    • Globalstar
    • Amateur Radio
    • Experimental
    • Other
  • Navigation
    • GPS Operational
    • Glonass Operational
    • Galileo
    • Satellite Based Augmentation System
    • Navy Navigation Satellite System
    • Russian LEO Navigation
  • Scientific
    • Space and Earth Science
    • Geodetic
    • Engineering
    • Education
  • Misc
    • Misc Military
    • Radar Calibration
    • CubeSats
    • Other

I'm sure there are other ways to categorize these satellites too. So I'm looking for suggestion on how you would want to manage it. The next release of the StarBridge application will have a GUI so you can easily interact with the system, create your preferences, etc.

How do you select a satelllite for observation?
How many satellites do you observe?
What limits your ability to observe satellites?
What can a software program do to help you?

One last thing. For those of you that might be interested in where that toolpouch is that was dropped from the ISS, here it is:

Code: Select all

"ISS DEB [TOOLBAG]" "Sol/Earth" {
 Class "spacecraft"
 # Mesh
 Radius 0.004999999888241291

 EllipticalOrbit {
  Epoch 2454825.75119353
  Period 0.06350313388251475
  SemiMajorAxis 6723.544849809185
  Eccentricity 0.00040740
  Inclination 51.6439
  AscendingNode 116.743
  ArgOfPericenter 124.4732
  MeanAnomaly 235.6888
 }
 Obliquity 51.64390182495117
 EquatorAscendingNode 116.74299621582031
 RotationOffset 233.90015417289737
 # Orientation []
}

Thanks in advance for your consideration and guidance!

- Jeff

Re: New satellite information in ssc form

Posted: 04.01.2009, 23:44
by JarC
Hi Jeff,

First of all thank you for adding this feature, being completely ignorant in these matters, I would not have managed otherwise.

What I would like to see added is a selection based on the type of orbit, i.e. polar, geo-stationary, etc.

or a different type of subgrouping. For instance, the communication satellites are now grouped by (?), if this is possible then I would like to select on the type of communication such as military only, broadcasting, etc.

or specific types of research they are used for...like those which are primarily used in cartography or other types of ongoing research

EDIT: I could even get the orbit data for the ISS Toolbag :) but as I said, I am a complete amateur in these matters, and from what I gathered from the news its orbit would be similar to that of ISS , to my surprise it is however at an orbit which crosses that of the ISS station at an angle of almost 90 degrees? How come their orbits deviate so much?

Regards
Raj

Re: New satellite information in ssc form

Posted: 05.01.2009, 02:39
by jdavies
Hi Raj,
You can get the geostationary orbits be selecting the comm.geostationary subgroup. I have just released version 0.5 which now includes a GUI to make life easier when it comes to selecting satellites. If you want a quick peek at the new GUI screens, check out the online user-guide at http://jeffdavies.org/starbridge/userguide. It shows the new screen.

If you want to view military satellites, then the Miscellaneous group in the new GUI has a Military checkbox, plus plenty of other categories.

As for the toolbag, I have no idea on why it's orbit is what it is (I'm just a software guy). But if you would like external confirmation on the orbit of the toolbag, check out http://www.n2yo.com/?s=33442. It also tracks the toolbag but provides a nice web interface.

Re: New satellite information in ssc form

Posted: 05.01.2009, 23:22
by Chuft-Captain
Jeff,

I have identified a quirky side-effect of this addon.
Note that I am using the original noradsatellites.ssc, but this is almost certainly a problem with StarBridge as well, as it's to do with the satellite ID's themselves.

The crux of the problem is that the satellite ID's which you are picking up from Norad have embedded "/"'s (forward slashes).
The forward slash has a special purpose in Celestia SSC's as I'm sure you know. (The SSC parser uses the "/" as a delimiter inside quoted strings to determine object / parent relationships).
eg: "<object>" "<parent>"
== "IOR-W (EGNOS/PRN 126)" "Sol/Earth"

It appears that the parser catches these delimiters in the <object> string as well as the <parent> string.

This causes some annoying behaviour in the object selection (ENTER) menu.

eg.
I'm at Enceladus and I want to travel to Io:
<ENTER><TAB><TAB>
jdavies-selectprob01.jpg

So far, so good, but watch what happens next:
<TAB>
jdavies-selectprob02.jpg

Notice the concatenation of the partial satellite name with the next object (Io) tabbed to.
Then...<ENTER> fails to select Io, because it has constructed an object name that doesn't exist.
It's also not possible to select any satellite with an embedded "/" in it's name, such as "IOR-W (EGNOS/PRN 126".

A possible solution to this I have found is to transform the embedded "/"'s in the satellite ID's to some other character which is not a parser token (I used a comma in this specific case and that fixed it).

I personally can't think of any reason why the SSC parser needs to recognise "/"'s as tokens in the <object> string (apart from reasons of simplicity).
It may be worth your while to have a chat with Chris with regards to modifying the SSC parser to ignore "/"'s in that first <object> string, however it's not going to be quite as straight-foward as that, because if ever a satellite was required to be a parent to another object, then it's ID would then "break" the <parent> string.
I also know that Chris will not be keen to make any fundamental changes to the SSC parser as there's a risk of breaking it in some other scenario.
EDIT: An alternative would be to modify the "ENTER Menu" code rather than the SSC parser, but we'd still have to contend with the issue of how to make one of these satellites a <parent> without breaking the SSC.

I suspect the best solution will have to involve you transforming the names into a "Celestia friendly" format.
EDIT: Again, speak to Chris about suitable choices for the transformed character.

CC

Re: New satellite information in ssc form

Posted: 06.01.2009, 01:39
by jdavies
Chuft-Captain,
Thanks a ton for your detailed description of the problem. In my opinion, we need both a short-term fix and a long-term fix for this.

The short-term fix is for me to modify StarBridge and substitute the offending slash character with some other character. At the moment, I'm thinking a dash (-) character.

According to the Celestia entry in Wikibooks (http://en.wikibooks.org/wiki/Celestia/S ... definition) the current implementation should work. The long term fix is up for debate of course, since all of the work is not in my hands. One possible solution is to add a bit of code to the Celestia ssc parser that would allow the original slash character to be "escaped" with a backslash, like other special characters are in C strings. For example, the original line from the ssc file would change from:
"IOR-W (EGNOS/PRN 126)" "Sol/Earth"
to become
"IOR-W (EGNOS\/PRN 126)" "Sol/Earth"
in the ssc file. This would allow the ssc parser to continue to work as intended with regard to the meaning of the forward slash character, and allow the current ssc functionality for satellites to be parents of other objects (i.e. the following would work as intended):

"FooBar" "Sol/Earth/IOR-W (EGNOS\/PRN 126)"

This approach would, IMHO, remain true to the original ssc parser design. I'll see if I can find a simple solution by implementing it in my Celestia code image. If I find something simple, I'll propose it on the Dev or Bugs message forums.

- Jeff

Re: New satellite information in ssc form

Posted: 06.01.2009, 10:32
by Chuft-Captain
jdavies wrote:Chuft-Captain,
The short-term fix is for me to modify StarBridge and substitute the offending slash character with some other character. At the moment, I'm thinking a dash (-) character.
Yep, I'd go ahead and do that. I'm pretty sure a "-" (hyphen) is nothing special to the parser, however if you want to be absolutely sure just ask the DEVs or examine the parser code yourself.

jdavies wrote:According to the Celestia entry in Wikibooks (http://en.wikibooks.org/wiki/Celestia/S ... definition) the current implementation should work.
So perhaps there IS a bug in the [ENTER MENU] code. Still, there's the additional issue of allowing secondaries.
FWIW, I tried the "fraction slash" technique mentioned in that wikibook, which works fine, except that it displays as a "?" in the running Celestia.

Code: Select all

"IOR-W (EGNOS?PRN 126)" "Sol/Earth" {
The "|" character works fine as well (and displays properly, as well as being able to be entered from the keyboard :lol: ).
So any of these 3 characters should be fine. Either the hyphen or "|" IMO would be easier and safer than using a special character like the "fraction slash" (which makes editing the ssc with a text editor a little dangerous).


jdavies wrote:The long term fix is up for debate of course, since all of the work is not in my hands. One possible solution is to add a bit of code to the Celestia ssc parser that would allow the original slash character to be "escaped" with a backslash, ... This approach would, IMHO, remain true to the original ssc parser design. I'll see if I can find a simple solution by implementing it in my Celestia code image. If I find something simple, I'll propose it on the Dev or Bugs message forums.
Yes, I thought of the escape approach too, but this solution carries some level of risk depending on the chosen escape character (ie. if any existing addons already use the chosen escape character in a literal sense in their object names, then they'd be broken when the parser was changed of course).

CC

Re: New satellite information in ssc form

Posted: 06.01.2009, 18:02
by jdavies
CC,
The "\" escape character is already supported by Celestia for key characters and is a standard mechanism in a wide variety of languages for denoting special characters. For example using a \u (an escaped u) indicates that a Unicode character is going to follow (handy for alphabets that use extended character sets).

I have identified the section of code (Tokenizer.cpp) that needs to recognize this new escape character, but I don't know where the code is that parses the search parameter when you hit the ENTER key. I'll see if I can work on it tonight after work.

- Jeff

Re: New satellite information in ssc form

Posted: 06.01.2009, 18:59
by jdavies
I also noticed that the satellite names had additonal text in parenthesis. These are additional names that needed to be formatted according to the Celestia object naming rules (i.e. seperated by a colon). I have updated the http://jeffdavies.org/starbridge/noradsatellites.ssc file to use dashes instead of slashes and to account for the fact that some satellites have multiple names. The code that generated the ssc file will be included in the next release of StarBridge.

- Jeff

Re: New satellite information in ssc form

Posted: 08.01.2009, 13:13
by duds26
It would be handy to define groups, and be able to make groups with own interests.
Make custom classifications with custom groups and structure.
And then be able to save the current classification in a list that can hold many of them.
EDIT: Mean profiles that can be saved as .txt files and used, changed,shared.
This way people can make their own classification and groups.
With all the available criteria there are.
(being able to share them would be nice to)

Re: New satellite information in ssc form

Posted: 08.01.2009, 16:37
by Chuft-Captain
Jeff,

I was wondering if the "Select by NAME" box in the GUI will have pattern matching?

Regular expressions would be good :wink:
eg. It might be useful to be able to select all the GOES satellites with a single digit suffix followed by a "[-]" , but not a "[+]" or a "[P]"

CC

Re: New satellite information in ssc form

Posted: 08.01.2009, 23:17
by jdavies
Good idea, CC. I'll see if I can get that in for the next release (hopefully this weekend).

- Jeff

Re: New satellite information in ssc form

Posted: 10.01.2009, 05:39
by Chuft-Captain
Jeff,
I have begun adding some satellite models to your addon.
Video:
http://www.youtube.com/watch?v=jeX9miuSDZc

Re: New satellite information in ssc form

Posted: 11.01.2009, 02:53
by jdavies
That is very cool Chuft! And you have read my mind. I'm about to post the new version of Starbridge (0.6.0) in the main thread. One of the things I added is a way to map models to specific satellites, or groups of satellites. In the new config/ directory of StarBridge is a file called starbridge.satmeshmap. It defines a default model for all satellites, and then allows the user to map specific models.
Here is the current version of the starbridge.satmeshmap file:

Code: Select all

# This file contains a mapping of satellite names to their meshes.
default=satellite.3ds

# Use the goes.3ds model for ALL GOES satellite types
goes=goes.3ds

# This shows how to set a specific model for a specific satellite
goes_8=goes.3ds


I don't have any docs written on this feature yet, but I think you can probably work out the details from the sample file. I would love to be able to see different models for different satellites. I have created some simple (read: crappy) models for this release as an example. However, I'm a systemds engineer with ZERO artistic talent. In the ReadMe.html file I've put out the call for real modelers to contribute what they can and they will receive credit in the ReadMe.html file and the applications About dialog. I'm happy to include an files for model specific licensing also to help the modelers protect their work.

As always, if you have any questions, let me know.

- Jeff

Re: New satellite information in ssc form

Posted: 11.01.2009, 03:22
by jdavies
duds26 wrote:It would be handy to define groups, and be able to make groups with own interests.
Make custom classifications with custom groups and structure.
And then be able to save the current classification in a list that can hold many of them
This way people can make their own classification and groups.
With all the available criteria there are.
(being able to share them would be nice to)

I like the idea. Let me think on it for a while and figure out how to best implement it. Creating a group is as simple as defining a name for it. Deciding which satellites go into each group is going to take a bit of work. However, I suppose we could always allow the user to define a list of explicit satellite names for each group and also be able to create a set of regular expressions to select satellites by name. If you have any guidance for me on how you would like to define a group, let me know. In the mean time, I think I might have a few ideas.... :wink:

- Jeff

Re: New satellite information in ssc form

Posted: 11.01.2009, 06:33
by Chuft-Captain
jdavies wrote:That is very cool Chuft! And you have read my mind. I'm about to post the new version of Starbridge (0.6.0) in the main thread. One of the things I added is a way to map models to specific satellites, or groups of satellites. In the new config/ directory of StarBridge is a file called starbridge.satmeshmap. It defines a default model for all satellites, and then allows the user to map specific models.
Here is the current version of the starbridge.satmeshmap file:

Code: Select all

# This file contains a mapping of satellite names to their meshes.
default=satellite.3ds

# Use the goes.3ds model for ALL GOES satellite types
goes=goes.3ds

# This shows how to set a specific model for a specific satellite
goes_8=goes.3ds


I don't have any docs written on this feature yet, but I think you can probably work out the details from the sample file. I would love to be able to see different models for different satellites. I have created some simple (read: crappy) models for this release as an example. However, I'm a systemds engineer with ZERO artistic talent. In the ReadMe.html file I've put out the call for real modelers to contribute what they can and they will receive credit in the ReadMe.html file and the applications About dialog. I'm happy to include an files for model specific licensing also to help the modelers protect their work.

As always, if you have any questions, let me know.

- Jeff
That looks like a good idea for default simple static models Jeff. I assume the definitions in the starbridge.satmeshmap is used by starbridge to generate the "Mesh" directives in the final SSC file.
Unfortunately, for *functioning* models such as that depicted by my video, this simplistic approach won't work as those types of models involve multiple related components and meshes, so cannot be defined with a single Mesh statement, or even a single SSC object.
You should expect to see more and more of these types of models in versions of Celestia from 1.5 upwards.

Your StarBridge program is still a very useful tool for generating the initial SSC though. :)

As the design of models is getting considerably more complex and customised than in the past, one thing you might like to consider is just generating the "positions" as ReferencePoints (ie. Your starbridge program would generate "points" in space only, and not worry about the actual objects)
The generation or definition of Spacecraft SSC's could then be treated as a separate task, thus separating the simple task of generating the orbits from the complex task of spaccraft design. In OO-speak, the definition of Spacecraft and meshes in your SSC creates a tight coupling between the two. Generating a position and then referencing that from the other SSCs creates a loose coupling.

Separate SSC's would relate spacecraft (of any level of complexity) with those points.)
(You could of course still generate those default SSC's for those simple spacecraft, but they would reference the position defined in the noradsatellites.scc for example).
Spacecraft modelers such as myself could then modify or override those ssc's to their hearts content in order to replace your default craft with more complex beasts (but this would have no impact on your noradsatellites.ssc because it's loosely coupled and only cares about the reference point.

You might want to read about and/or download my Lagrange Points addon: http://shatters.net/forum/viewtopic.php?f=6&t=11670, which demonstrates one way of doing this. There are however better ways to do it.

To give you something tangible... here is an experiment I've conducted so far:

1. Modified your noradsatellites.ssc as follows:

Code: Select all

""GLOBALSTAR M001" "Sol/Earth" {
 Class "Invisible"
 #Mesh
 Radius 0.010   #0.004999999888241291

 EllipticalOrbit {
...
...
 }
 Obliquity 52.0010986328125
 EquatorAscendingNode 204.46270751953125
 RotationOffset 77.81138909530637
 # Orientation []
}

(This would be the output of your program). Note the Class "Invisible".

You could also generate a noradspacecraft.ssc which would make use of your starbridge.satmeshmap file, and would define one spacecraft for each invisible object in the "satellites" file.
It would look something like the following, :

Code: Select all

"GLOBALSTAR M001 Body" "Sol/Earth/GLOBALSTAR M001" {
 Class "spacecraft"
 Mesh "Globalstar.3ds"
 Radius 0.005

FixedPosition [ 0 0 0 ]

BodyFrame {
    TwoVector {
        Center "Sol/Earth/GLOBALSTAR M001/GLOBALSTAR M001 Body"
        Primary {
            Axis "z"
            RelativePosition { Target "Sol/Earth" }
        }
        Secondary {
            Axis "x"
            RelativeVelocity { Target "Sol/Earth" }
        }
    }
}

FixedRotation {}
}



Then, if I wish, I can replace your default spacecraft with my more complex version "GLOBALSTAR M001.ssc" as follows...

Code: Select all

Replace "GLOBALSTAR M001 Body" "Sol/Earth/GLOBALSTAR M001" {
 Class "spacecraft"
 Mesh "GlobalstarBody.3ds"
 Radius 0.0013   #0.004999999888241291

FixedPosition [ 0 0 0 ]
...
...
...
}

"GLOBALSTAR M001 Panel LHS" "Sol/Earth/GLOBALSTAR M001/GLOBALSTAR M001 Body" {
 Class "component"
# Clickable "false"
 Mesh "GlobalstarPanel-LHS.cmod"
 Radius 0.003

FixedPosition [ -0.00048 0.00009 -0.00056 ]
....
....

}


"GLOBALSTAR M001 Panel RHS" "Sol/Earth/GLOBALSTAR M001/GLOBALSTAR M001 Body" {
 Class "component"
# Clickable false
 Mesh "GlobalstarPanel-RHS.cmod"
 Radius 0.003

FixedPosition [ 0.00048 0.00009 -0.00056 ]
...
...
...
}

etc...

If this version is disabled, it would revert to your generated spacecraft definition.

I hope you can see, that there are too many scenarios in spacecraft modeling for it to be practical to generate anything more than the simple case, and IMO this should be de-coupled from the orbit generation.
I need to do some further work on this, and I'd like to see what others think (particularly Chris, Selden, etc), but I think (barring serious issues) that this is a good approach.

EDIT: Another point to consider, is that if you're generating definitions for 1100 spacecraft, the default mesh should have as few polygons as possible. Celestia *generally* tries to render every polygon in the field-of-view. (with some culling I think)
1100 x 100 polys/mesh = 110,000 polys
1100 x 1000 polys/mesh = 1,100,000 polys

FYI, that simple model I'm using is comprised of 966 polys.


CC

Re: New satellite information in ssc form

Posted: 11.01.2009, 21:18
by jdavies
CC,
Wow, give me some time to get my head wrapped around all of that. It looks very interesting.

Duds,
As for creating custom groups I was thinking of defining them in an XML file so we get an easy way to manage hierarchies of groups. Ultimately I could provide a GUI editor for those grouping files, but to start it would be manual. However, I think the structure of the file is pretty simple. Here is the format I'm thinking of. Please let me know what you think about it.

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<SatGroup name="My Custom Group" xmlns="http://jeffdavies.org/starbridge/satgroup">
   <group name="Favorites">
      <selector name="GPS" expression="^GEOS" />
      <selector name="Intl. Space Station" expression="^ISS" />
   </group>
   <group name="Debris">
      <selector name="All debris" expression="[.]*DEB[.]*" />
      <group name="COSMOS">
         <selector name="COSMOS Debris" expression="^COSMOS[.]*DEB[.]*" />
      </group>
   </group>
</SatGroup>


This would be presented to the user in the GUI using a Tree control of checkboxes. You could then select the everything, any of the lower level group names or even specific selectors. I hope my description is adequate. I haven't taken the time to write any sample code for a screenshot yet.

- Jeff

Re: New satellite information in ssc form

Posted: 12.01.2009, 17:00
by Chuft-Captain
Jeff,

There are quite a number of duplicates in your noradsatellites file.
You may have already found a way to avoid generating duplicates in StarBridge (I don't know, I'm not running it), if not, I think you'll need to look into it.

eg. These 2 are identical in every respect...

Code: Select all

"CUTE-1:CO-55" "Sol/Earth" {
   Class "spacecraft"
#   Mesh "satellite.3ds"
   Radius 0.005

   EllipticalOrbit {
      Epoch "2009 1 5 22:20:10"
      Period 0.07039202284709943
      SemiMajorAxis 7201.403830040932
      Eccentricity 0.00090720
      Inclination 98.7155
      AscendingNode 17.3762
      ArgOfPericenter 250.4701
      MeanAnomaly 109.5485
   }
   FixedRotation [ 0 0 0 ]
   Albedo 0.8
   # Orientation []
}

Code: Select all

"CO-55 [+]" "Sol/Earth" {
   Class "spacecraft"
#   Mesh "satellite.3ds"
   Radius 0.005

   EllipticalOrbit {
      Epoch "2009 1 5 22:20:10"
      Period 0.07039202284709943
      SemiMajorAxis 7201.403830040932
      Eccentricity 0.00090720
      Inclination 98.7155
      AscendingNode 17.3762
      ArgOfPericenter 250.4701
      MeanAnomaly 109.5485
   }
   FixedRotation [ 0 0 0 ]
   Albedo 0.8
   # Orientation []
}


CC

Re: New satellite information in ssc form

Posted: 12.01.2009, 17:58
by jdavies
Thanks Chuft,
I am removing some duplictaes already. These are slipping through because the names "CO-55" and "CO-55 [+]" are not exactly the same. I take it that I should ignore the [+] and [-] text decorations in the names. Can you tell me what they mean though? I also see [P], [B], [S], [TETHERED] and [TOOLBAG].

- Jeff

Re: New satellite information in ssc form

Posted: 12.01.2009, 18:12
by jdavies
Looks like the most reliable way to check for duplicates is the NORAD ID. I'll make that change for the next release. You can download the updated file: http://jeffdavies.org/starbridge/norad_satellites.ssc. It no longer duplicates the CO-55 satellite (or any other, in theory), but it does include all of the Fengyun debris listings, which are numerous.

Re: New satellite information in ssc form

Posted: 12.01.2009, 19:12
by Chuft-Captain
jdavies wrote:I take it that I should ignore the [+] and [-] text decorations in the names. Can you tell me what they mean though? I also see [P], [B], [S], [TETHERED] and [TOOLBAG].
Sorry, no idea. Maybe [TETHERED] refers to a satellite that's tethered to a space shuttle.
There was a toolbox that was lost by one of the ISS astronauts on an EVA. That's probably what [TOOLBAG] refers to. You probably know this already though.