Releases: observerly/astrometry
v0.41.0
What's Changed
🔭 This minor release adds the ability to calculate if any two planetary bodies are in conjunction with each other, e.g., Jupiter and Venus, with the isPlanetaryConjunction()
and findPlanetaryConjunction()
utilities. This lays the ground work for finding conjunctions between 2 or more planetary bodies, as well as the Moon and other bright astronomic objects, e.g., Sirius and Canopus. These changes will be drip fed through in the next few major releases.
🩵 This release also is the first that will start to report performance benchmarks for the heavier calculations.
Usage of the getAngularSeparation()
utility now includes a breaking change from v0.40.0, to make it agnostic to the coordinate system being used, e.g., Equatorial
, Horizontal
etc. The new API is as follows:
const separation = getAngularSeparation(
{
θ: sirius.alt, // or declination ...
φ: sirius.az // or right ascension ...
},
{
θ: betelgeuse.alt, // or declination ...
φ: betelgeuse.az // or right ascension ...
}
)
Breaking Changes
- refactor!: amend getAngularSeparation() usage in astrometry module in @observerly/astrometry by @michealroberts in #220
Features
- feat: add getObliquityOfEcliptic() to earth module in @observerly/astrometry. by @michealroberts in #210
- feat: add EclipseType enum to @observerly/astrometry by @michealroberts in #215
- feat: add getNextFullMoon() to moon module in @observerly/astrometry by @michealroberts in #217
- feat: add conjunction module to @observerly/astrometry by @michealroberts in #218
- feat: add SphericalCoordinate generic to common module in @opbserverly/astrometry by @michealroberts in #219
- feat: add isPlanetaryConjunction() utility to conjunction module in @observerly/astrometry by @michealroberts in #221
- feat: add Interval type to common module in @observerly/astrometry by @michealroberts in #222
- feat: add findPlanetaryConjunction() utility to conjunction module in @observerly/astrometry by @michealroberts in #223
Improvements
- fix: improve getLunarPhase() precision around Full Moon & New Moon in @observerly/astrometry by @michealroberts in #216
Chores & Performance
- feat: add tinybench Bench to workspace root in @observerly/astrometry by @michealroberts in #213
- chore: bump devDependencies vite => v5.3.3 & vitest => v2.0.2 across workspace in @observerly/astrometry by @michealroberts in #211
- chore: amend vite.config.ts { build.sourcemap } in @observerly/astrometry by @michealroberts in #212
- chore: amend jsr.json { version } in workspace root in @observerly/astrometry by @michealroberts in #214
Full Changelog: v0.40.0...v0.41.0
v0.40.0
What's Changed
This release mainly focuses on improvements to the Datetime
class, providing both getTT()
and getHJD
which returns the terrestrial time and the heliocentric Julian date, respectively.
Features
- feat: add Datetime.getTerrestrialTime() class method to time module in @observerly/astrometry. by @michealroberts in #204
- feat: add AU_IN_METERS to constants module in @observerly/astrometry. by @michealroberts in #205
- feat: add getSolarDistance() to sun module in @observerly/astrometry. by @michealroberts in #206
- feat: add SPEED_OF_LIGHT to constants module in @observerly/astrometry. by @michealroberts in #207
- feat: add getHeliocentricJulianDate() to sun module in @observerly/astrometry. by @michealroberts in #208
- feat: add Datetime.getHeliocentricJulianDate() class method to time module in @observerly/astrometry. by @michealroberts in #209
Full Changelog: v0.39.0...v0.40.0
v0.39.0
What's Changed
🔭 This release improves type allocations in a number of modules, making clear type assertions where they were previously missing.
🌌 A number of improvements to the constellations and nancy modules were also made, including the ConstellationName
(which provides all 88 (89) IAU constellation names as its own defined type) and NancyRomanRecord
types.
Features
- feat: add NancyRomanRecord type to nancy module in @observerly/astrometry. by @michealroberts in #200
- feat: add isNancyRomanRecord() assertion function to nancy module in @observerly/astrometry. by @michealroberts in #201
- feat: add ConstellationName type to constellations module in @observerly/astrometry. by @michealroberts in #202
Chores
- chore: amend type allocations in iers module in @observerly/astrometry. by @michealroberts in #195
- chore: amend type allocations in precession module in @observerly/astrometry. by @michealroberts in #196
- chore: amend type allocations in planets module in @observerly/astrometry. by @michealroberts in #197
- chore: amend type allocations in night module in @observerly/astrometry. by @michealroberts in #198
- chore: amend type allocations in moon module in @observerly/astrometry. by @michealroberts in #199
- chore: amend type allocations in constellations module in @observerly/astrometry. by @michealroberts in #203
Full Changelog: v0.38.1...v0.39.0
v0.38.1
What's Changed
🔭 This release fixes known issues in UTC handling across different timezones in the getBodyNextRise() and getBodyNextSet() transit utilities.
Fixes
- fix: amend { tomorrow } UTC adjustment in getBodyNext() utility functions in transit module in @observerly/astrometry. by @michealroberts in #194
Stability & Tests
- test: amend getBodyNextRise and getBodyNextSet maximum call stack size tests in @observerly/astrometry. by @michealroberts in #193
Full Changelog: v0.38.0...v0.38.1
v0.38.0
What's Changed
🌐 This release adds to ability to convert from HorizontalCoordinate
to EquatorialCoordinate
.
Features
- feat: add convertHorizontalToEquatorial() to coordinates module in @observerly/astrometry. by @michealroberts in #192
Full Changelog: v0.37.0...v0.38.0
v0.37.0
What's Changed
This minor release adds inference for a new DateTime()
class that extends the native JavaScript Date
object with added functionality around handling leap seconds, as well as adding support for calculating refraction adjusted local horizon dips for an observer.
Features
- feat: add iers module to @observerly/astrometry. by @michealroberts in #183
- feat: add LEAP_SECONDS IANA table to iers module in @observerly/astrometry. by @michealroberts in #184
- chore: amend .vscode/settings.json with configurations in @observerly/astrometry. by @michealroberts in #185
- feat: add DateTime extends Date class to time module in @observerly/astrometry. by @michealroberts in #186
- feat: add EARTH_RADIUS constant to @observerly/astrometry. by @michealroberts in #189
- feat: add observer module to @observerly/astrometry. by @michealroberts in #190
- feat: add getLocalHorizon() to observer module in @observerly/astrometry. by @michealroberts in #191
Full Changelog: v0.36.0...v0.37.0
v0.36.0
What's Changed
🔭 This release fixes an important bug found within the getGreenwhichSiderealTime() which returns inaccurate astrometry at the second and millisecond precision.
Features
- feat: add Maybe = NonNullable | undefined to common module in @observerly/astrometry. by @michealroberts in #181
Fixes
- fix: amend getGreenwhichSiderealTime() utility to be accurate up to ms in @observerly/astrometry. by @michealroberts in #180
Full Changelog: v0.35.0...v0.36.0
v0.35.0
What's Changed
Features
- feat: amend usage of isBodyVisible() to use maximum culmination in @observerly/astrometry. by @michealroberts in #179
Full Changelog: v0.34.0...v0.35.0
v0.34.0
What's Changed
isBodyVisible()
, which determines if an object is visible if it is ever above the observer's horizon, will now use different logic to determine this which is now more stable for both northern and southern hemisphere stars.
e.g., The maximum altitude a celestial object will reach above the horizon is dependent on the observer's latitude and the object's declination. The formula for this is now:
Improvements
- refactor: amend isBodyVisible() calculation in transit module in @observerly/astrometry. by @michealroberts in #176
Full Changelog: v0.33.2...v0.34.0
v0.33.2
What's Changed
This patch release fixes a regression introduced in ^v0.32.0 whereby imports we're reporting the following TS error:
Cannot find module '@observerly/*' or its corresponding type declarations. [TS2307]
Fixes
- fix: amend package.json for better esmodule interop support in @observerly/astrometry. by @michealroberts in #175
Full Changelog: v0.33.1...v0.33.2