Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New star catalog with Gaia DR3 #3992

Merged
merged 95 commits into from
Dec 25, 2024
Merged
Show file tree
Hide file tree
Changes from 87 commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
9f522b3
new Star1 and Star2 catalog model by storing RA/DEC, plx, magnitudes …
henrysky Nov 18, 2024
b310397
add Gaia ID in display for Star1 and Star2
henrysky Nov 19, 2024
0817e13
remove extra proper motion data because pmdata included in new star …
henrysky Nov 19, 2024
c2ebf1a
add parallax error in star catalog for Star1
henrysky Nov 19, 2024
f78af72
attempt to resolve HIP first
henrysky Nov 19, 2024
675c296
add searchGaia method which currently not implemented yet
henrysky Nov 19, 2024
d582356
gaia source_id check should be 0 not check -1
henrysky Nov 20, 2024
b5f5b96
remove getInternalMag()
henrysky Nov 20, 2024
99e40ea
add Parallax effect and 3D treatment, currently hard-coded to disable
henrysky Nov 20, 2024
b9873c2
display propagated pms and parallax in infostring
henrysky Nov 21, 2024
22cd3c8
fix full 6D astrometry propagation, display those info too
henrysky Nov 22, 2024
a4755d3
fix radial velocity display
henrysky Nov 22, 2024
94de598
cleanup a few constant
henrysky Nov 22, 2024
c872cee
fix distance error not calculated properly
henrysky Nov 22, 2024
aedf641
dynamically calculate apperant mag if parallax changes
henrysky Nov 22, 2024
be439cf
increase plx precision from 2 to 4 bytes
henrysky Nov 23, 2024
a69d18f
parallax now in 20uas unit in star catalog
henrysky Nov 23, 2024
d63820d
when drawing star1 and if too far away in the past/future, take magni…
henrysky Nov 24, 2024
8690ceb
use #define in a place to define star catalog epoch
henrysky Nov 24, 2024
69dff9f
check star catalog epoch when loading
henrysky Nov 25, 2024
b293555
update star catalog format and cleanup
henrysky Nov 25, 2024
58c0065
minor improvement on recomputing mag
henrysky Nov 25, 2024
1676f0e
bug fix on which calculation method to use for a star
henrysky Nov 25, 2024
57ca0e8
united into getFull6DSolution method
henrysky Nov 25, 2024
b3d52a5
update Star3
henrysky Nov 25, 2024
67ff391
display proper motion for star2
henrysky Nov 25, 2024
84e9e3c
fix magOffset can be inf sometimes
henrysky Nov 25, 2024
f238e5c
fix getPlx wrong unit
henrysky Nov 25, 2024
06eaf7e
fix the list of highpm stars
henrysky Nov 26, 2024
7c9cf51
display gaia id for Star3
henrysky Nov 26, 2024
8047582
fix Star3 not scaling mag properly
henrysky Nov 26, 2024
e33975b
consider memory alignment for Star123
henrysky Nov 26, 2024
4380184
embed componentID in HIP
henrysky Nov 27, 2024
8667027
Display parallax for Star2, only display parallax but no distance if …
henrysky Nov 27, 2024
408829d
fix total pm reported from Star1
henrysky Nov 28, 2024
15f16aa
also display object types stored in star catalogs
henrysky Nov 28, 2024
97778dc
check if HIP stars already in hipIndex, the one with lower componentI…
henrysky Nov 28, 2024
d06ce9f
fix stars look blue-ish because not converting to BV index properly
henrysky Nov 28, 2024
af83c10
BVIndex always return int between 0 to 128 (the colortable size) beca…
henrysky Nov 29, 2024
9558296
escape special character in search pattern because star name can star…
henrysky Nov 29, 2024
c26399c
update the model for Star3
henrysky Nov 30, 2024
7b9efd9
update the catalogs and their json config
henrysky Nov 30, 2024
3a4f94c
bump version StarCatalogFormatVersion
henrysky Nov 30, 2024
973744f
update URL in defaultStarsConfig.json
henrysky Nov 30, 2024
fc0c85c
fix getObjectTypeI18n not translating
henrysky Nov 30, 2024
3aba120
Cosmetic fixes for stars
alex-w Nov 30, 2024
77d493b
Fix using Velocity flag for displaying the radial velocity of stars
alex-w Nov 30, 2024
e406ab3
fix absolution magnitude wrongly computed because of wrong parallax s…
henrysky Nov 30, 2024
9a5095f
fix bright star catalogs
henrysky Dec 3, 2024
0a7c962
add absolute magnitude for `Star2`
henrysky Dec 3, 2024
8b0cb62
update JSON and star catalog 3
henrysky Dec 4, 2024
b508631
Fix permissions
alex-w Dec 4, 2024
66625e5
check every `Star1` if they are inside the screen (not by zone) when …
henrysky Dec 5, 2024
953fc0c
b_v is unsigned in `Star2`
henrysky Dec 7, 2024
a3556fa
add searching by Gaia source ID
henrysky Dec 7, 2024
d64f7d9
add a global zone at the end of each grid level
henrysky Dec 7, 2024
d8a7bc7
fix some objects are difficult to be selected if abbrevation is ON
henrysky Dec 8, 2024
3365291
put healpix related function in their own file
henrysky Dec 8, 2024
1340f96
add efficient searching of a Gaia ID by healpix lv12 location
henrysky Dec 8, 2024
8b91971
update star catalogs
henrysky Dec 8, 2024
87dccb8
use atan2 instead of asin for better numerical accurancy for position…
henrysky Dec 10, 2024
4b64880
remove star_position_scale because positions are not encoded by zone …
henrysky Dec 11, 2024
f0a78f6
remove min_mag and mag_range because Stars.hpp returns mag in absolut…
henrysky Dec 11, 2024
235b30d
commented out Zone's axis0, axis1, center because we don't need them …
henrysky Dec 11, 2024
db93471
update star catalogs
henrysky Dec 11, 2024
1fccb92
Fix StarCatalogFormatVersion value
alex-w Dec 11, 2024
5535e82
Cosmetic fixes
alex-w Dec 11, 2024
947b800
Fix permissions and switch to use GH CDN for star catalogs
alex-w Dec 11, 2024
099eaa4
push beyond star catalog min_mag by a bit because some stars can get …
henrysky Dec 12, 2024
6481031
global zone to include stars with big negative brightness changes in …
henrysky Dec 12, 2024
6dc8caf
update star catalogs
henrysky Dec 12, 2024
4c07826
fix return type of getGaia() to int64_t to ensure they are 64bit int
henrysky Dec 12, 2024
7a688f0
Disable Missing Stars plugin
alex-w Dec 12, 2024
68322e2
fix denormalizing radial proper motion with the wrong parallax
henrysky Dec 13, 2024
7643c50
Fix search stars by Gaia ID
alex-w Dec 13, 2024
b0d2a6a
re-arranging to avoid a few more trig functions in `getFull6DSolution()`
henrysky Dec 14, 2024
0d28c42
add tests on astrometry propagation
henrysky Dec 15, 2024
89191dd
remove hip component id file because it is not needed anymore
henrysky Dec 15, 2024
fe3029f
initial update on the guide about star catalogs and accurancy
henrysky Dec 16, 2024
0e8839a
update star catalogs
henrysky Dec 17, 2024
3033d4a
re-arange variables
henrysky Dec 18, 2024
747a383
put equation in docs on how to convert x012, dx012 to ra, dec, pmra, …
henrysky Dec 18, 2024
474539a
Merge branch 'master' into new_star_catalog
henrysky Dec 18, 2024
447c229
forgot to wrap RA
henrysky Dec 18, 2024
f270bc3
check if parallax is exactly zero in ``getFull6DSolution()`` to preve…
henrysky Dec 19, 2024
a672f74
update bright star catalogs to fix incorrect cross-match of 41 Ari, m…
henrysky Dec 19, 2024
ed1f928
Delete redundant blank line at the end of a code block
alex-w Dec 19, 2024
7b4bc03
A few cosmetic fixes
alex-w Dec 24, 2024
5316a0f
Moved stars/default to stars/hip_gaia3
alex-w Dec 24, 2024
02e98cc
Fix Guide
alex-w Dec 24, 2024
2ad44c9
I hope this is final fix of Guide
alex-w Dec 24, 2024
a789149
update star catalogs and update docs
henrysky Dec 24, 2024
16dc7e5
fix typo
henrysky Dec 24, 2024
d4df1a9
Fix CodeFactor suggestion for unit test code
alex-w Dec 24, 2024
d175e78
add trailing newlines
henrysky Dec 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -541,7 +541,7 @@ ADD_PLUGIN(Calendars 1)
ADD_PLUGIN(Exoplanets 1)
ADD_PLUGIN(EquationOfTime 1)
ADD_PLUGIN(MeteorShowers 1)
ADD_PLUGIN(MissingStars 1)
ADD_PLUGIN(MissingStars 0)
ADD_PLUGIN(NavStars 1)
ADD_PLUGIN(Novae 1)
ADD_PLUGIN(Observability 1)
Expand Down
44 changes: 19 additions & 25 deletions guide/app_accuracy.tex
Original file line number Diff line number Diff line change
Expand Up @@ -48,38 +48,32 @@ \chapter{Accuracy}
\section{Date Range}
\label{sec:Accuracy:DateRange}

The calendar dates are limited to a very wide interval of years, -100.000\ldots100.000.
The calendar dates are limited to a very wide interval of years, $-100,000\ldots100,000$.
This is mostly useful to visualize the effect of stellar proper motions or the wobbling
motion of Earth's axis known as precession.
If you observe the other planets, this is way beyond what current models are able to show!
Observe for example the Moon: you will find that it seems to run
on a polar orbit around +78.000 and even retrograde on a highly elongated orbit a few millennia after that.
This is obvious nonsense, caused by extrapolating mathematical models in inappropriate ways.

\section{Stellar Proper Motion}
\label{sec:Accuracy:ProperMotion}

Even though you can follow stellar proper motion for tens of thousands of years,
please note that the computation only takes the linear components $\Delta\alpha$, $\Delta\delta$ into account.
For times far from today, a true 3D computation would be required,
so that also changes in distance (and thus, brightness) could be simulated.
Still, the simulation here should give a good impression which close and/or fast stars
will move over time, and thus how constellations become deformed.

Note that due to the way the stars are stored in catalogs, zooming in on fast stars like Arcturus
may even cease to display such stars when their original area in the sky is no longer in view.

Also, binary stars seem to break apart because Stellarium does not store them as systems
revolving about their combined center of gravity.

These known deficits were also identified in a recent study
\citep{deLorenzis:2018}, which emphasized errors with Arcturus, Dubhe,
Sirius, Toliman and Vega which already deviate noticeably from their
correct locations around 2500BC. If you need accurate stellar
positions for earlier prehistory from a free and open-source program,
it seems only \program{Cartes du Ciel} currently can be recommended as
on a par with the best available solutions.

\section{Stellar Astrometry}
\label{sec:Accuracy:Astrometry}

Even though you can follow movements of stars on the sky for tens of thousands of years,
please note that the precision of these predictions are limited by the precision of the data we have at
the present time provided by Hipparcos for bright stars and Gaia. Most of the stars brighter than magnitude 10.5
have 3D position and 3D velocity data (i.e., 6D astrometry) in our star catalogs, thus their 6D astrometry are computed
at any epoch by assuming linear motion with constant velocity. These calculation provides arcseconds level accuracy
of stellar position, arcseconds per year level accuracy of proper motions, arcseconds level accuracy of parallax and km/s
level accuracy of radial velocity in the previous and next tens of thousands of years. For stars fainter than magnitude 10.5 but brighter
than magnitude 16.75, 2D computation is performed such that RA/DEC positions are computed from RA/DEC proper motions separately and assume
constant proper motion. For stars fainter than magnitude 16.75, no astrometry propagation is performed hence their RA/DEC stay constant at any epoch.

In the study of \citep{deLorenzis:2018}, which emphasized sky position errors with bright high proper motions star like Arcturus,
Dubhe, Sirius, Toliman and Vega which deviate noticeably from their correct locations even at around 2500BC with Stellarium
0.17.0 released on 21 Dec 2017. The star catalogs and astrometry propagation algorithms have been significantly improved in
December 2024, which has solved the problem outlined in the study. But binary stars seem to break apart because Stellarium does
not store them as systems revolving about their combined center of gravity.

\section{Planetary Positions}
\label{sec:Accuracy:Planets}
Expand Down
193 changes: 103 additions & 90 deletions guide/app_star_catalogue.tex

Large diffs are not rendered by default.

26 changes: 26 additions & 0 deletions guide/guide.bib
Original file line number Diff line number Diff line change
Expand Up @@ -2181,3 +2181,29 @@ @article{Adler:2002
month = sep,
pages = {94-98}
}

@BOOK{2012asas.book.....V,
author = {{van Altena}, William F.},
title = "{Astrometry for Astrophysics}",
year = 2012,
adsurl = {https://ui.adsabs.harvard.edu/abs/2012asas.book.....V},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

@ARTICLE{2016A&A...595A...1G,
author = {{Gaia Collaboration} and et al.},
title = "{The Gaia mission}",
journal = {Astronomy \& Astrophysics},
keywords = {space vehicles: instruments, Galaxy: structure, astrometry, parallaxes, proper motions, telescopes, Astrophysics - Instrumentation and Methods for Astrophysics},
year = 2016,
month = nov,
volume = {595},
eid = {A1},
pages = {A1},
doi = {10.1051/0004-6361/201629272},
archivePrefix = {arXiv},
eprint = {1609.04153},
primaryClass = {astro-ph.IM},
adsurl = {https://ui.adsabs.harvard.edu/abs/2016A&A...595A...1G},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
2 changes: 1 addition & 1 deletion plugins/RemoteControl/src/SimbadService.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class SimbadLookupTask :public QRunnable

loop.exec();
//at this point, the reply is finished
//and we can extract information using getReply
//and we can extract information using getResults
status = reply->getCurrentStatus();
statusString = reply->getCurrentStatusString();
errorString = reply->getErrorString();
Expand Down
5 changes: 3 additions & 2 deletions plugins/Satellites/src/Satellite.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -344,9 +344,10 @@ QString Satellite::getInfoString(const StelCore *core, const InfoStringGroup& fl
{
const int decimals = 2;
const float airmass = getAirmass(core);
oss << QString("%1: <b>%2</b>").arg(q_("Approx. magnitude"), QString::number(getVMagnitude(core), 'f', decimals));
const float mag=getVMagnitude(core);
oss << QString("%1: <b>%2</b>").arg(q_("Approx. magnitude"), QString::number(mag, 'f', decimals));
if (airmass>-1.f) // Don't show extincted magnitude much below horizon where model is meaningless.
oss << QString(" (%1 <b>%2</b> %3 <b>%4</b> %5)").arg(q_("reduced to"), QString::number(getVMagnitudeWithExtinction(core), 'f', decimals), q_("by"), QString::number(airmass, 'f', decimals), q_("Airmasses"));
oss << QString(" (%1 <b>%2</b> %3 <b>%4</b> %5)").arg(q_("reduced to"), QString::number(getVMagnitudeWithExtinction(core, mag), 'f', decimals), q_("by"), QString::number(airmass, 'f', decimals), q_("Airmasses"));
oss << "<br />";
}

Expand Down
4 changes: 2 additions & 2 deletions plugins/Supernovae/src/Supernova.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -114,14 +114,14 @@ QString Supernova::getMaxBrightnessDate(const StelCore *core, const double JD) c
return StelApp::getInstance().getLocaleMgr().getPrintableDateLocal(JD, core->getUTCOffset(JD));
}

QString Supernova::getMagnitudeInfoString(const StelCore *core, const InfoStringGroup& flags, const int decimals) const
QString Supernova::getMagnitudeInfoString(const StelCore *core, const InfoStringGroup& flags, const int decimals, const float& magOffset) const
{
const float maglimit = 21.f;
QString res;

if (flags&Magnitude)
{
if (getVMagnitude(core) <= maglimit)
if (getVMagnitude(core) + magOffset <= maglimit)
res = StelObject::getMagnitudeInfoString(core, flags, decimals);
else
{
Expand Down
2 changes: 1 addition & 1 deletion plugins/Supernovae/src/Supernova.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ class Supernova : public StelObject
QString getEnglishName(void) const override;

protected:
QString getMagnitudeInfoString(const StelCore *core, const InfoStringGroup& flags, const int decimals=1) const override;
QString getMagnitudeInfoString(const StelCore *core, const InfoStringGroup& flags, const int decimals=1, const float& magOffset=0.f) const override;

private:
bool initialized;
Expand Down
12 changes: 12 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ SET(stellarium_lib_SRCS
core/StelOpenGLArray.cpp
core/StelHips.hpp
core/StelHips.cpp
core/StelHealpix.hpp
core/StelHealpix.cpp
core/TextureAverageComputer.hpp
core/TextureAverageComputer.cpp

Expand Down Expand Up @@ -829,6 +831,16 @@ IF(ENABLE_TESTING)
ADD_TEST(testAirmass testAirmass)
SET_TARGET_PROPERTIES(testAirmass PROPERTIES FOLDER "src/tests")

SET(tests_testAstrometry_SRCS
tests/testAstrometry.hpp
tests/testAstrometry.cpp
)
ADD_EXECUTABLE(testAstrometry ${tests_testAstrometry_SRCS})
TARGET_LINK_LIBRARIES(testAstrometry ${TESTS_LIBRARIES})
ADD_DEPENDENCIES(buildTests testAstrometry)
ADD_TEST(testAstrometry testAstrometry)
SET_TARGET_PROPERTIES(testAstrometry PROPERTIES FOLDER "src/tests")

SET(tests_testGeomMath_SRCS
tests/testGeomMath.hpp
tests/testGeomMath.cpp
Expand Down
2 changes: 1 addition & 1 deletion src/core/SimbadSearcher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ SimbadLookupReply* SimbadSearcher::lookup(const QString& serverUrl, const QStrin
{
// Create the Simbad query
QString url(serverUrl);
QString query = "format object \"%COO(d;A D)\\n%IDLIST(HIP)\\n%IDLIST(1)\"\n";
QString query = "format object \"%COO(d;A D)\\n%IDLIST(HIP)\\n%IDLIST(Gaia DR3)\\n%IDLIST(1)\"\n";
query += QString("set epoch J2000\nset limit %1\n query id ").arg(maxNbResult);
query += objectName;
QByteArray ba = QUrl::toPercentEncoding(query, "", "");
Expand Down
2 changes: 1 addition & 1 deletion src/core/StelGeodesicGrid.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class StelGeodesicGrid

int getMaxLevel(void) const {return maxLevel;}

static int nrOfZones(int level) {return (20<<(level<<1));} // 20*4^level
static int nrOfZones(int level) {return ((20<<(level<<1)) + 1);} // 20*4^level local zones

int getNrOfZones(void) const {return nrOfZones(maxLevel);}

Expand Down
Loading
Loading