星表星图控件
一 星表控件
小行星轨道根数元件
class PACKAGE TAsteroidCtl : public TComponent
调用:
void Setdatdir(AnsiString fname) 设置数据文件名称路径
long int compilecatalog(AnsiString fsource, AnsiString foutput) 将Skymap格式的小行星轨道根数文件亮于15等部分转换为编译星表csd文件和索引idx文件。返回记录数量。
csd文件格式是依次排列的astorbit结构数据:
truct astorbit {
long double epoch; //根数历元
double i; //轨道倾角
double W; //升交点黄经
double w; //近点角
double a; //半长径
double ecc;//偏心率
double M; //平近点角
double equinox;//春分点和黄道历元
float mag; //距离地日均1个天文单位时的目视星等
float magH; //亮度系数
};
idx文件是小行星名称的列表
bool getdata(long int astindex, astorbit & aobt) 读取csd文件第astindex个记录的数据。成功返回true,否则false。
彗星轨道根数元件
class PACKAGE TCometCTL : public TComponent
调用
void Setdatdir(AnsiString fname) 设置数据文件名称路径
long int compilecatalog(AnsiString fsource, AnsiString foutput) 将Skymap格式的彗星轨道根数文件转换为编译星表csd文件和索引idx文件。返回记录数量。
csd文件格式是依次排列的cmtorbit结构数据:
struct cmtorbit {
long double epoch; /* epoch of orbital elements */
double i; /* inclination */
double W; /* longitude of the ascending node */
double w; /* argument of the perihelion */
double q; //近日距
double ecc; /* eccentricity */
double equinox; /* epoch of equinox and ecliptic */
float mag; /* visual magnitude at 1AU from earth and sun */
float magH; //fading factor
}
idx文件是彗星名称的列表
bool getdata(long int cmtindex, cmtorbit & cobt) 读取csd文件第cmtindex个记录的数据。成功返回true,否则false。
星表类
class TCatalog
调用:
catalog data 编译星表格式变量
struct catalog {
long int ra;
long int dec;
short int m;
};
int findregionid(long int ira, long int idec) 返回给定坐标的天区编号
catalog findregioncenter(int id) 返回给定编号天区的中心坐标
天区编号方案
自北天极到南天极,赤纬每2度一个条带,赤经方向根据赤纬按不同度数分区。共有10582个区,依次编号。
星表文件类型
csd:按原星表顺序编译的catalog结构数据
ssd:按天区顺序、同一天区内按原星表顺序排列的catalog结构数据
idx:在ssd内每个天区的起始位置,即每个天区之前的所有天区的记录总数,最后为总数
lkt:索引文件,其中(排序输出ssd后)
ssdidx:按csd顺序对应的ssd内位置
lktidx:按ssd顺序对应的csd位置
SAO星表元件
class PACKAGE TSAO : public TComponent
调用:
TCatalog data 变量
void Setdatdir(AnsiString fname) 设置数据文件名称路径
long int compilecatalog(AnsiString fsource, AnsiString foutput, bool bsort) 将文本星表(ftp://data.bao.ac.cn/cats/I/131A/)编译成csd星表,返回总记录数
bsort=false 不排序,输出:csd,idx及lkt
lkt:saolkt结构的索引文件
struct saolkt {
long int ssdidx;
long int lktidx;
};
ssdidx:按csd顺序对应的天区编号
lktidx均置0
bsort=true 排序,输出:csd,ssd,idx,lkt
bool getdata(long int saoindex, catalog & ctl) 读取ssd文件,SAO星表编号saoindex的数据。成功返回true,否则false。
变星总表元件
class PACKAGE TGCVS : public TComponent
调用:
void Setdatdir(AnsiString fname) 设置数据文件名称路径
long int getnamelist(unsigned char constell,TStringList* namelist) 查询指定编号星座内的所有记录,返回该星座在lkt文件内的起始位置
long int compilecatalog(AnsiString fsource, AnsiString foutput, bool bsort) 将文本星表(http://cdsweb.u-strasbg.fr/viz-bin/Cat?II/250)编译成csd星表,返回总记录数
bsort=false 不排序,输出:csd(按星座顺序),idx及lkt
lkt:gcvslkt结构的索引文件
struct gcvslkt {
char name[10];
unsigned char constell;
int minmag;//极小亮度
unsigned char magflag;//十位表示极大亮度星等含义:0 数值,1幅度;个位:最暗星等含义
long double epoch;
long double period;
long int ssdidx;
long int lktidx;
};
ssdidx:按csd顺序对应的天区编号
lktidx置0
bsort=true 排序,输出:csd,ssd,idx,lkt
bool getdata(long int lktindex, gcvslkt & lkt, catalog & ctl) 读取ssd,lkt文件,GCVS星表编号gcvsindex的数据。成功返回true,否则false。
TychoII星表元件
class PACKAGE TTychoII : public TComponent
调用:
TCatalog data 变量
void Setdatdir(AnsiString fname) 设置数据文件名称路径
long int compilecatalog(AnsiString fsource, AnsiString foutput, bool bsort)将文本星表编译成csd星表,返回总记录数
bsort=false 不排序,输出:csd,idx及lkt
lkt:tycholkt结构的索引文件
struct tycholkt {
short int tyc1;
short int tyc2;
short int tyc3;
long int ssdidx;
long int lktidx;
};
ssdidx:按csd顺序对应的天区编号
lktidx置0
bsort=true 排序,输出:csd,ssd,idx,lkt
bool getdata(tycholkt & lkt, catalog & ctl) 读取ssd,lkt文件,Tycho星表编号lkt的数据(lkt返回最接近的编号)。成功返回true,否则false
亮星星表元件
class PACKAGE TBSC : public TComponent
ssd:仅包括有Bayer或/和Flamsteed命名的恒星。按星座顺序(星座编号同GCVS)、同一星座内按亮度顺序排列的catalog结构数据。
idx:在ssd内每个星座的起始位置,即每个天区之前的所有星座内的记录总数。1-88:星座(有Bayer或/和Flamsteed命名的恒星)89:无Bayer和Flamsteed命名的恒星 90:其他天体(无坐标等)
lkt:索引文件,其中(排序输出ssd后)
ssdidx:按csd顺序对应的ssd内位置
lktidx:按ssd顺序对应的csd位置
调用:
void Setdatdir(AnsiString fname) 设置数据文件名称路径
long int getnamelist(unsigned char constell,TStringList* namelist) 查询指定编号星座内的所有记录,返回该星座在ssd文件内的起始位置
long int compilecatalog(AnsiString fsource, AnsiString foutput, bool bsort) 将文本星表(ftp://cdsarc.u-strasbg.fr/pub/cats/V/50/)编译成csd星表,返回总记录数
bsort=false 不排序,输出:csd,idx及lkt
lkt:gcvslkt结构的索引文件
struct gcvslkt {
char name[10];
long int ssdidx;
long int lktidx;
};
ssdidx:按csd顺序对应的星座编号1-88。名称内不含星座的置-1
lktidx置0
bsort=true 排序,输出:csd,ssd,idx,lkt
不含在ssd内的纪录ssdidx=-1
bool getdata(long int bscindex, catalog & ctl) 读取ssd第bscindex个纪录。成功返回true,否则false。
2007-3-10
二 星图控件
class PACKAGE TStarChart : public TCustomPanel
功能:
主窗口显示2度天区SAO星图。
显示6度天区SAO星图,显示2度天区TYCHO星图。
调用:
double epoch; 从2000年起算的年数(岁差改正)
void setradec(long int ra, long int dec) 当前历元的星图中心坐标
void settarget2k(long int rat, long int dect); J2000的目标天体坐标
__property AnsiString pathofdata = { write=Setpathofdata };设置星表文件目录,启动星图。
|