Для программ ,использующих SWISS EPHEMERIS ,обновилась библиотека swedll32.dll v.2.07
Для просмотра ссылки Войди или Зарегистрируйся
Changes from version 2.06 to 2.07
- Greatly enhanced performance of swe_rise_trans() with calculations of risings and settings of planets except for high geographic latitudes.
- New functions swe_fixstar2(), swe_fixstar2_ut(), and swe_fixstar2_mag() with greatly increased performance. Important additional remarks are given further below.
- Fixed stars data file sefstars.txt was updated with new data from SIMBAD database.
- swe_fixstar(): Distances (in AU) and daily motions of the stars have been added to the return array. The daily motions contain components of precession, nutation, aberration, parallax and the proper motions of the stars. The usage of correct fixed star distances leads to small changes in fixed star positions and calculations of occultations of stars by the Moon (in particular swe_lun_occult_when_glob()).
To transform the distances from AU into lightyears or parsec, please use the following defines, which are in swephexp.h:
#define AUNIT_TO_LIGHTYEAR (1.0/63241.077088071)
#define AUNIT_TO_PARSEC (1.0/206264.8062471)
- There was a bug with daily motions of planets in sidereal mode: They contained precession! (Nobody ever noticed or complained for almost 20 years!)
- In JPL Horizons mode, the Swiss Ephemeris now reproduces apparent position as provided by JPL Horizons with an accuracy of a few milliseconds of arc for its
whole time range. Until SE 2.06 this has been possible only after 1800. Please note, this applies to JPL Horizons mode only (SEFLG_JPLHOR and SEFLG_JPLHOR_APPROX together with an original JPL ephemeris file; or swetest -jplhor, swetest -jplhora). Our default astronomical methods are those of IERS Conventions 2010 and Astronomical Almanac,
not those of JPL Horizons.
- After consulting with sidereal astrologers, we have changed the behaviour of the function swe_get_ayanamsa_ex(). See programmer's documentation swephprg.htm, chap. 10.2. Note this change has no impact on the calculation of planetary positions, as long as you calculate them using the sidereal flag SEFLG_SIDEREAL.
- New ayanamsha added:
"Vedic" ayanamsha according to Sunil Sheoran (SE_SIDM_TRUE_SHEORAN)
It must be noted that in Sheoran's opinion 0 Aries = 3°20' Ashvini. The user has to carry the responsibility to correctly handle this problem. For calculating a planet's nakshatra position correctly, we recommend the use
of the function swe_split_deg() with parameter roundflag |= SE_SPLIT_DEG_NAKSHATRA or roundflag |= 1024. This will handle Sheoran’s ayanamsha correctly.
For more information about this and other ayanamshas, I refer to the general documentation chap. 2.7 or my article on ayanamshas here:
Для просмотра ссылки Войди или Зарегистрируйся
- Function swe_rise_trans() has two new flags:
SE_BIT_GEOCTR_NO_ECL_LAT 128 /* use geocentric (rather than topocentric) position of
object and ignore its ecliptic latitude */
SE_BIT_HINDU_RISING /* calculate risings according to Hindu astrology */
- Of course, as usual, leap seconds and Delta T have been updated.
- Calculation of heliacal risings using swe_heliacal_ut() now also works with Bayer designations, with an initial comma, e.g. “,alTau”.
- Problem left undone:
Janez Križaj noticed that in the remote past the ephemeris of the Sun has some unusual ecliptic latitude, which amounts to +-51 arcsec for the year -12998. This phenomenon is due to an intrinsic inaccuracy of the precession theory Vondrak 2011 and therefore we do not try to fix it. While the problem could be avoided by using some older precession theory such as Laskar 1986 or Owen 1990, we give preference to Vondrak 2011 because it is in very good agreement with precession IAU2006 for recent centuries. Also, the “problem” (a very small one) appears only in the very remote past, not in historical epochs.
Important additional information on the new function swe_fixstar2() and its derivatives with increased performance:
Some users had criticised that swe_fixstar() was very inefficient because it reopened and scanned the file sefstars.txt for each fixed star to be calculated. With version 2.07, the new function swe_fixstar2() reads the whole file the first time it is called and saves all stars in a sorted array of structs. Stars are searched in this list using the binary search function bsearch(). After a call of swe_close() the data will be lost. A new call of swe_fixstar2() will reload all stars from sefstars.txt.
The declaration of swe_fixstar2() is identical to old swe_fixstar(), but its behaviour is slightly different:
Fixed stars can be searched by
- full traditional name
- Bayer/Flamsteed designation
- traditional name with wildcard character '%'
(With previous versions, search string "aldeb" provided the star Aldebaran. This does not work anymore. For abbreviated search strings, a ‘%’ wildcard must, be added, e.g. "aldeb%".)
With the old swe_fixstar(), it was possible to use numbers as search keys. The function then returned the n-th star it found in the list. This functionality is still available in the new version of the function, but the star numbering does no longer follow the order of the stars in the file, but the order of the sorted Bayer designations. Nevertheless this feature is very practical if one wants to create a list of all stars.
for i=1; i<10000; i++) { // choose any number greater than number of lines (stars) in file
sprintf(star, "%d", i);
returncode = swe_fixstar2(star, tjd, ...);
… whatever you want to do with the star positons …
if (returncode == ERR)
break;