手机Stellarium数据修正

手机Stellarium里的深空天体数据错误很多,以及精度很差。

另外系统很low,只绑定了ngcic天体,像M45这种强行绑定了一个错误的NGC编号。这样就也不能显示煤袋星云以及各种没有NGC编号的Cr天体等等了。

我就自己整了一个新的版本。

download:

数据来源:目前最正确的NGCIC数据

http://www.klima-luft.de/steinicke/ngcic/ngcic_e.htm

经过本人整理之后生成了新的NGCIC目录数据。相对以前的版本,修复了所有DSO的时角+赤纬+星等+尺寸+类型,新增了2574个NGC/IC,关联了Mel/Cr(可直接搜索),去除了重复编号的DSO。

我还新增了192个没有NGCIC编号的疏散星团, 64个碳星。既然只能靠NGCIC索引的,那只能使用IC剩余的空白编号来对应。使用的编号范围 IC9000 - IC9255 。

对碳星的说明:

例如R2-1B是指推荐2寸口径观测,越大星等越暗,在2寸观测目录中小编号排第1,B是评级,说明如下。

评级 表现
SS 欣德深红星
S 红色或较深橘红色,推荐
A 较浅橘红色
B 较深橘黄色/橘色,不红
C 较浅橘黄色

示例如下(来自刀锋兄整理的极红星星表):

1586532971225

附:生成ngc2000.dat的代码(Qt源码):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <QDebug>
#include <QFile>
#include <QString>
#include <QtCore/qmath.h>
QString csvfile = "ngcic.csv";

bool dumpNGC(const QString& catNGC)
{

bool isIc;
int nb;
float ra, dec;
unsigned int type;
float mag; // Apparent magnitude
float angularSize; // Angular size in degree


int totalRecords=0;

const QString FILE_PATH(csvfile);
QFile csvFile(FILE_PATH);
QStringList CSVList;
CSVList.clear();

if (csvFile.open(QIODevice::ReadWrite))
{
QTextStream stream(&csvFile);

while (!stream.atEnd())
{
CSVList.push_back(stream.readLine());
}

csvFile.close();
}

/**/
QFile in(catNGC);
if (!in.open(QIODevice::WriteOnly))
return false;
QDataStream ins(&in);
ins.setVersion(QDataStream::Qt_4_5);
/**/

Q_FOREACH(QString str, CSVList)
{
isIc = str.split(",")[0] == "NGC" ? false : true;
nb = str.split(",")[1].toInt();
ra = str.split(",")[2].toFloat();
dec = str.split(",")[3].toFloat();
mag = str.split(",")[4].toFloat();
angularSize = str.split(",")[5].toFloat();
type = str.split(",")[6].toInt();

ins << isIc << nb << ra << dec << mag << angularSize << type;

// qDebug()<< isIc << nb << ra << dec << mag << angularSize << type;
++totalRecords;
}


in.close();
//qDebug() << "Dumped" << totalRecords << "NGC records";
return true;
}

void MainWindow::on_pushButton_2_clicked()
{
dumpNGC("ngc2000.dat");
}