2009-03-28

Stellar Data

A week or so ago I slipped out a file format page, adapting Marc Miller's article in Challenge #26 describing the first standard sector data file format. It's pretty bare bones at the moment - just what's in the article so it is preserved for posterity - but I plan to grow this over time to document other sector data file formats that have appeared over the years. Call this "Version 1.0".

(Honestly, posting it was inspired by site users wondering what the various base codes in the data meant. But everyone seems to love file format discussions...)

Then, inspired by Yet Another Thread on sector data file formats on CotI I decided to finally tackle stellar data.

  • Stellar data now output by SEC.aspx API when present in source data. The following grammar is used:

// Basic:
// system ::= star ( w+ star )*
//
// Extended: (Malenfant's Revised Stellar Generation Rules)
//
// system ::= unit ( w+ companion )*
// companion ::= near | far
// near ::= unit
// far ::= "[" system "]"
// unit ::= star | pair
// pair ::= "(" star w+ star ")"
//
// star ::= type tenths w* size main?
// | dwarf
// | unknown
// type ::= "O" | "B" | "A" | "F" | "G" | "K" | "M"
// tenths ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
// size ::= "D" | "Ia" | "Ib" | "II" | "III" | "IV" | "V" | "VI" | "VII"
// dwarf ::= "DB" | "DA" | "DF" | "DG" | "DK" | "DM" | "D"
// unknown ::= "Un"
//
// main ::= "*"
//
// w ::= " "


  • "Un" in stellar data is from Mendan 0221 in Challenge #46 (by Mike Mikesh). That could be a typo, but I'm interpreting it as "Unknown" (mysteries abound!). Note that the world is an Amber zone, so it's a navigational hazard at least!
  • Like other SEC.aspx output, the data is normalized - that is, it's been parsed and then re-output. In some cases this may filter the data. You get what you pay for. In particular, although Malenfant's revised stellar generation data is now consumed by my site, only basic star data is output. Anyone have a link to Malenfant's rules?
  • SEC.aspx output now has a sector header, similar to the GEnie data. The field lengths are NOT guaranteed to remain fixed, however. Consumers that rely on fixed width fields (rather than Regular Expression or Grammar-based parsers) should parse this header to determine the field lengths.

1-25: Name
27-30: HexNbr
32-40: UWP
42: Bases
44-68: Codes & Comments
70: Zone
72-74: PBG
76-77: Allegiance
79-98: Stellar Data


  • I tidied up some bogus stellar data: Night (Core 0839) "K8 VI M4" to "K8 VI M4 D" (presumably a truncation); and Tender Mercy (Ley 0314) "2 V A6 D" to "K2 D M6 D" (ditto); in both cases I used older GEnie data as the source
  • While I was there, I fixed a couple of O/0 (oh/zero) typos: Kaskar (Vland 1933) stellar "MO V K6 D" to "M0 V K6 D", and Zdienjbats (Far Frontiers 1801) PBG "BO4" to "B04". The latter actually inhibited the world from showing up on the map - oops!
That's it for now! Ω

5 comments:

BeRKA said...

Good ideas! When can we see a new "starchart" rendering style?

rob said...

Seems that dwarf stars never had numbers after their color... am I imagining that?

BeRKA said...

I loved the update You added yesterday. :-) LOL!

Checkout this thread!.

Joshua Bell said...

@BeRKA: What are you envisioning by by "starchart"?

Long term I'd love to have enough data that you can zoom into a system map and then to a world map, but almost no systems have that much data (Terra, Regina, ... ?)

Joshua Bell said...

@rob: All of these are used:

M5D
M5 D
DM