Albert Timashev invites you to join the Phaethon Developer's Program!
If you are an astrological or astronomical software developer, you may join the Phaethon Developer's Program.
For this reason, first, you must download Phaethon 1.3 demo.
Then you must incorporate the support of Phaethon Asteroids Database (files with extensions ODL and IDL)
into your program. After this, let Albert Timashev
know, that now your program supports the Phaethon Asteroids Database, and give to him
a demo, shareware or full version (free of charge) of your program with Phaethon Asteroids Database support.
In case you give full version of your program, you'll receive FREE CD-ROM with FULL up-to-date
Phaethon Asteroids Database and FREE license for using "Phaethon Asteroids Database™ Compatible"
words and Phaethon Asteroids Database Logo
in your product and its documentation.
In any case you may discuss with Albert Timashev
the terms of condition about including the full Phaethon Asteroids Database
directly into the distribution package of your product. Full Phaethon Asteroids Database
must be supplied on three CD-ROMs or DVD-R/Rw only, because it occupies over 1.5Gb
and includes orbital parameters of ALL numbered asteroids from 1500 to 2200 AD.
However, the files may be truncated or expanded to any shorter or longer time interval
or asteroids collection according to your needs.
Below you will find all details on Phaethon Asteroids Database files structure
that is required for developing of the Phaethon Asteroids Database™ support. Source is written in
Pascal/Delphi language
and may be converted to any other programming languages with ease.
If you have any questions, please, don't hesitate to ask Albert Timashev.
Please, pay attention, that from version
1.3 the diameter in kilometers instead of orbital period in years
is given in line number 6*n-1 of IDL files, if the diameter is known.
If the diameter is unknown, this line is empty.
Const
ODL_marker = 'OrbitLibrary0'; { Orbit Data Library file marker }
ODL_Extension = 'odl'; { Orbit Data Library extension }
IDL_Extension = 'idl'; { Information Data Library extension }
MaxOrbitsInLib = $FFFE DIV SizeOf(LongInt);
Type
{ -=- Orbit Data Library structure -=- }
{ first part of header }
ODL_header1 =
Record
FileMarker : Array [1..Length(ODL_marker)] of Char;
{ always equal to constant ODL_marker }
StepInDays : Single; { step between records in days }
FirstRecTime : Double; { first record Julian date/time }
LastRecTime : Double; { last record Julian date/time }
NOrbits : LongInt; { number of orbits stored in this library }
End ;
{ second part of header:
actual size equals to ODL_header1.NOrbits*SizeOf(LongInt) bytes
actual index range is 1..ODL_header1.NOrbits }
ODL_header2 = Array [1..MaxOrbitsInLib] of LongInt;
{ asteroid number according to catalogue }
{ orbital parameters on the epoch J2000.0 }
ODT_record =
Record
M_param, { mean anomaly in degrees }
w_param, { argument of perihelion in degrees }
o_param, { node longitude in degrees }
i_param, { inclination in degrees }
e_param, { eccentricity }
n_param, { daily motion in degrees }
a_param { large semi-axis in AU } : Single;
End ;
{ structure of the ODL file:
ODL_header1
ODL_header2 - actual size equals to
ODL_header1.NOrbits*SizeOf(LongInt) bytes
ODT_record for all orbits on ODL_header1.FirstRecTime (Julian date/time)
- actual size equals to
ODL_header1.NOrbits*SizeOf(ODT_record) bytes
ODT_record for all orbits on ODL_header1.FirstRecTime+ODL_header1.Step
- actual size equals to
ODL_header1.NOrbits*SizeOf(ODT_record) bytes
ODT_record for all orbits on ODL_header1.FirstRecTime+2*ODL_header1.Step
- actual size equals to
ODL_header1.NOrbits*SizeOf(ODT_record) bytes
..........................................................
ODT_record for all orbits on ODL_header1.LastRecTime
- actual size equals to
ODL_header1.NOrbits*SizeOf(ODT_record) bytes
}
{ -=- Information Data Library structure -=- }
{ structure of the IDL file (plain text):
line number 6*n-5: [<asteroid number according to catalogue>]
line number 6*n-4: <English name>
line number 6*n-3: <Russian name> - must be ignored by
non-Russian developers
line number 6*n-2: <style1> <style2> - must be ignored by
all developers
line number 6*n-1: <diameter in kilometers>
line number 6*n: ...blank line...
where n=1,2,3,...
}