Files
astro/basic/planet_ephemeris_instance.go
T
b612 044f2f4381 feat: 引入可切换星历模型并扩展天象观测链路
- 新增半解析、旧模型、自定义与多源堆叠星历实例,提供 Context、Instance、SPK 读取及状态与视位置计算
- 统一太阳、月球和行星实例接口,扩展黄经穿越、留、相位、最近角距、偕日可见、任意高度升落、轨道节点及凌日等天象查询
- 完善日月食、月掩与凌日的月缘剖面、有限盘面接触、站心修正、局地可见性、全球路径和地图输出
- 新增 SVG、GeoJSON、KML 天象输出及凌日、月掩和月缘地形相关缓存与几何求解
- 新增恒星星表导入与查询,支持 CSV、Hipparcos、BSC5、Stellarium 等格式及名称、交叉标识、锥面检索和星等过滤
- 补充 IAU 2006、地球定向、折射消光、大气观测、轨道传播及半解析行星/月球数据支持
- 将默认未来民用时标切换为 TimeScaleLeapHour,更新 2027–2400 农历速查表、中文日期解析和时区边界处理
- 增加事件基线、跨模型回归、几何边界、月缘地形和输出契约测试,完善中英文手册、示例资源、NOTICE 与忽略规则
2026-10-15 23:54:15 +08:00

1071 lines
49 KiB
Go

package basic
import (
"math"
"b612.me/astro/internal/ephem"
"b612.me/astro/planet"
. "b612.me/astro/tools"
)
func planetBodyForInstance(index int) (ephem.Body, bool) {
if index == -1 {
return ephem.Earth, true
}
if index < 1 || index > 7 {
return 0, false
}
return planetBody[index], true
}
func planetHeliocentricCoordinateWithInstance(index, coordinate int, jde float64, inst *Instance) (float64, bool) {
if coordinate < 0 || coordinate > 2 {
return math.NaN(), false
}
if inst == nil {
return planet.WherePlanet(index, coordinate, jde), true
}
body, ok := planetBodyForInstance(index)
if !ok {
return math.NaN(), false
}
if lo, bo, distance, ok := instanceStateEclipticRelative(body, ephem.Sun, jde, jde, inst); ok {
switch coordinate {
case 0:
return lo, true
case 1:
return bo, true
default:
return distance, true
}
}
model := inst.Model()
if model == ephem.Legacy || model == ephem.Semianalytic {
return planet.WherePlanetModelN(model, index, coordinate, jde, -1), true
}
return math.NaN(), false
}
func planetGeocentricXYZWithInstance(index int, jde float64, inst *Instance) (x, y, z float64, ok bool) {
if inst != nil {
body, bodyOK := planetBodyForInstance(index)
if bodyOK {
if lo, bo, distance, stateOK := instanceStateEclipticRelative(body, ephem.Earth, jde, jde, inst); stateOK {
x, y, z := sphericalToRectangular(lo, bo, distance)
return x, y, z, true
}
}
}
pl, plOK := planetHeliocentricCoordinateWithInstance(index, 0, jde, inst)
pb, pbOK := planetHeliocentricCoordinateWithInstance(index, 1, jde, inst)
pr, prOK := planetHeliocentricCoordinateWithInstance(index, 2, jde, inst)
el, elOK := planetHeliocentricCoordinateWithInstance(-1, 0, jde, inst)
eb, ebOK := planetHeliocentricCoordinateWithInstance(-1, 1, jde, inst)
er, erOK := planetHeliocentricCoordinateWithInstance(-1, 2, jde, inst)
if !plOK || !pbOK || !prOK || !elOK || !ebOK || !erOK {
return 0, 0, 0, false
}
px, py, pz := sphericalToRectangular(pl, pb, pr)
ex, ey, ez := sphericalToRectangular(el, eb, er)
return px - ex, py - ey, pz - ez, true
}
func planetApparentPositionModel(index int, jde float64, n int, model ephem.Model) (planetGeocentricPosition, float64, float64, bool) {
ex, ey, ez := planetHeliocentricXYZModel(-1, jde, n, model)
px, py, pz := planetHeliocentricXYZModel(index, jde, n, model)
geoNow := geocentricPositionFromRectangular(px-ex, py-ey, pz-ez)
distance := math.Sqrt(geoNow.x*geoNow.x + geoNow.y*geoNow.y + geoNow.z*geoNow.z)
if !isFiniteFloat(distance) || distance <= 0 {
return planetGeocentricPosition{}, 0, 0, false
}
tau := 0.0057755183 * distance
px, py, pz = planetHeliocentricXYZModel(index, jde-tau, n, model)
geo := geocentricPositionFromRectangular(px-ex, py-ey, pz-ez)
baseLo, baseBo := geo.lo, geo.bo
geo.lo = Limit360(baseLo + GXCLo(baseLo, baseBo, jde)/3600.0 + Nutation2000Bi(jde))
geo.bo = baseBo + GXCBo(baseLo, baseBo, jde)/3600.0
return geo, tau, distance, true
}
func planetHeliocentricXYZModel(index int, jde float64, n int, model ephem.Model) (x, y, z float64) {
lo := planet.WherePlanetModelN(model, index, 0, jde, n)
bo := planet.WherePlanetModelN(model, index, 1, jde, n)
distance := planet.WherePlanetModelN(model, index, 2, jde, n)
return sphericalToRectangular(lo, bo, distance)
}
func planetApparentPositionWithInstance(index int, jde float64, n int, inst *Instance) (planetGeocentricPosition, float64, float64, bool) {
if inst == nil {
geo, tau, distance := planetApparentGeocentricPositionAndDistanceN(index, jde, n)
return geo, tau, distance, true
}
if lo, bo, tau, distance, ok, err := vectorApparentWithInstance(planetBody[index], jde, n, inst); err != nil {
return planetGeocentricPosition{}, 0, 0, false
} else if ok {
x, y, z := sphericalToRectangular(lo, bo, distance)
return planetGeocentricPosition{x: x, y: y, z: z, lo: lo, bo: bo}, tau, distance, true
}
if model := inst.Model(); model == ephem.Legacy || model == ephem.Semianalytic {
return planetApparentPositionModel(index, jde, n, model)
}
body := planetBody[index]
_, _, currentDistance, ok := instanceStateEclipticRelative(body, ephem.Earth, jde, jde, inst)
if !ok || currentDistance <= 0 {
return planetGeocentricPosition{}, 0, 0, false
}
tau := 0.0057755183 * currentDistance
lo, bo, _, ok := instanceStateEclipticRelative(body, ephem.Earth, jde-tau, jde, inst)
if !ok {
return planetGeocentricPosition{}, 0, 0, false
}
x, y, z := sphericalToRectangular(lo, bo, currentDistance)
return planetGeocentricPosition{x: x, y: y, z: z, lo: lo, bo: bo}, tau, currentDistance, true
}
func planetEarthAwayWithInstance(index int, jde float64, inst *Instance) float64 {
return planetEarthAwayNWithInstance(index, jde, -1, inst)
}
func planetEarthAwayNWithInstance(index int, jde float64, n int, inst *Instance) float64 {
if inst == nil {
return planetEarthAwayExplicitN(index, jde, n)
}
if _, _, distance, ok := instanceStateEclipticRelative(planetBody[index], ephem.Earth, jde, jde, inst); ok {
return distance
}
// 与 planetEarthAwayExplicitN 对称:新模型全精度时取视位置管线的距离。
if index >= 1 && index <= 7 {
if _, _, _, distance, ok, err := vectorApparentWithInstance(planetBody[index], jde, n, inst); err == nil && ok {
return distance
}
}
model := inst.Model()
if model != ephem.Legacy && model != ephem.Semianalytic {
return math.NaN()
}
x, y, z := planetHeliocentricXYZModel(index, jde, n, model)
ex, ey, ez := planetHeliocentricXYZModel(-1, jde, n, model)
return math.Sqrt((x-ex)*(x-ex) + (y-ey)*(y-ey) + (z-ez)*(z-ez))
}
func planetLWithInstance(index int, jde float64, inst *Instance) float64 {
value, _ := planetHeliocentricCoordinateWithInstance(index, 0, jde, inst)
return value
}
func planetBWithInstance(index int, jde float64, inst *Instance) float64 {
value, _ := planetHeliocentricCoordinateWithInstance(index, 1, jde, inst)
return value
}
func planetRWithInstance(index int, jde float64, inst *Instance) float64 {
value, _ := planetHeliocentricCoordinateWithInstance(index, 2, jde, inst)
return value
}
func planetApparentLoBoWithInstance(index int, jde float64, inst *Instance) (float64, float64) {
return planetApparentLoBoNWithInstance(index, jde, -1, inst)
}
func planetApparentLoBoNWithInstance(index int, jde float64, n int, inst *Instance) (float64, float64) {
geo, _, _, ok := planetApparentPositionWithInstance(index, jde, n, inst)
if !ok {
return math.NaN(), math.NaN()
}
return geo.lo, geo.bo
}
func planetApparentRaDecWithInstance(index int, jde float64, inst *Instance) (float64, float64) {
lo, bo := planetApparentLoBoWithInstance(index, jde, inst)
if math.IsNaN(lo) || math.IsNaN(bo) {
return math.NaN(), math.NaN()
}
return planetApparentRaDecFromLoBo(jde, lo, bo)
}
func planetMagnitudeWithInstance(index int, jde float64, inst *Instance, base, phaseLinear, phaseQuadratic, phaseCubic float64) float64 {
sunDistance := planetRWithInstance(index, jde, inst)
earthDistance := planetEarthAwayWithInstance(index, jde, inst)
earthSunDistance := planetRWithInstance(-1, jde, inst)
phase := (sunDistance*sunDistance + earthDistance*earthDistance - earthSunDistance*earthSunDistance) / (2 * sunDistance * earthDistance)
phase = ArcCos(phase)
mag := base + 5*math.Log10(sunDistance*earthDistance) + phaseLinear*phase + phaseQuadratic*phase*phase + phaseCubic*phase*phase*phase
return FloatRound(mag, 2)
}
// MercuryLWithInstance 水星日心黄经 / heliocentric longitude of Mercury with an explicit ephemeris instance.
func MercuryLWithInstance(jde float64, inst *Instance) float64 {
return planetLWithInstance(1, jde, inst)
}
// MercuryBWithInstance 水星日心黄纬 / heliocentric latitude of Mercury with an explicit ephemeris instance.
func MercuryBWithInstance(jde float64, inst *Instance) float64 {
return planetBWithInstance(1, jde, inst)
}
// MercuryRWithInstance 水星日心距离 / heliocentric distance of Mercury with an explicit ephemeris instance.
func MercuryRWithInstance(jde float64, inst *Instance) float64 {
return planetRWithInstance(1, jde, inst)
}
// AMercuryXYZWithInstance 水星地心直角坐标 / geocentric rectangular coordinates of Mercury with an explicit ephemeris instance.
func AMercuryXYZWithInstance(jde float64, inst *Instance) (float64, float64, float64) {
x, y, z, _ := planetGeocentricXYZWithInstance(1, jde, inst)
return x, y, z
}
// AMercuryXWithInstance 水星地心 X 坐标 / geocentric X coordinate of Mercury with an explicit ephemeris instance.
func AMercuryXWithInstance(jde float64, inst *Instance) float64 {
x, _, _ := AMercuryXYZWithInstance(jde, inst)
return x
}
// AMercuryYWithInstance 水星地心 Y 坐标 / geocentric Y coordinate of Mercury with an explicit ephemeris instance.
func AMercuryYWithInstance(jde float64, inst *Instance) float64 {
_, y, _ := AMercuryXYZWithInstance(jde, inst)
return y
}
// AMercuryZWithInstance 水星地心 Z 坐标 / geocentric Z coordinate of Mercury with an explicit ephemeris instance.
func AMercuryZWithInstance(jde float64, inst *Instance) float64 {
_, _, z := AMercuryXYZWithInstance(jde, inst)
return z
}
// MercuryApparentLoBoWithInstance 水星视黄经纬 / apparent ecliptic longitude and latitude of Mercury with an explicit ephemeris instance.
func MercuryApparentLoBoWithInstance(jde float64, inst *Instance) (float64, float64) {
return planetApparentLoBoWithInstance(1, jde, inst)
}
// MercuryApparentLoWithInstance 水星视黄经 / apparent ecliptic longitude of Mercury with an explicit ephemeris instance.
func MercuryApparentLoWithInstance(jde float64, inst *Instance) float64 {
lo, _ := MercuryApparentLoBoWithInstance(jde, inst)
return lo
}
// MercuryApparentBoWithInstance 水星视黄纬 / apparent ecliptic latitude of Mercury with an explicit ephemeris instance.
func MercuryApparentBoWithInstance(jde float64, inst *Instance) float64 {
_, bo := MercuryApparentLoBoWithInstance(jde, inst)
return bo
}
// MercuryApparentRaDecWithInstance 水星视赤经纬 / apparent right ascension and declination of Mercury with an explicit ephemeris instance.
func MercuryApparentRaDecWithInstance(jde float64, inst *Instance) (float64, float64) {
return planetApparentRaDecWithInstance(1, jde, inst)
}
// MercuryApparentRaWithInstance 水星视赤经 / apparent right ascension of Mercury with an explicit ephemeris instance.
func MercuryApparentRaWithInstance(jde float64, inst *Instance) float64 {
ra, _ := MercuryApparentRaDecWithInstance(jde, inst)
return ra
}
// MercuryApparentDecWithInstance 水星视赤纬 / apparent declination of Mercury with an explicit ephemeris instance.
func MercuryApparentDecWithInstance(jde float64, inst *Instance) float64 {
_, dec := MercuryApparentRaDecWithInstance(jde, inst)
return dec
}
// MercuryApparentLoBoNWithInstance 水星视黄经纬(n 变体) / n-parameterised apparent ecliptic longitude and latitude of Mercury with an explicit ephemeris instance.
func MercuryApparentLoBoNWithInstance(jde float64, n int, inst *Instance) (float64, float64) {
return planetApparentLoBoNWithInstance(1, jde, n, inst)
}
// MercuryApparentLoNWithInstance 水星视黄经(n 变体) / n-parameterised apparent ecliptic longitude of Mercury with an explicit ephemeris instance.
func MercuryApparentLoNWithInstance(jde float64, n int, inst *Instance) float64 {
lo, _ := MercuryApparentLoBoNWithInstance(jde, n, inst)
return lo
}
// MercuryApparentBoNWithInstance 水星视黄纬(n 变体) / n-parameterised apparent ecliptic latitude of Mercury with an explicit ephemeris instance.
func MercuryApparentBoNWithInstance(jde float64, n int, inst *Instance) float64 {
_, bo := MercuryApparentLoBoNWithInstance(jde, n, inst)
return bo
}
// MercuryApparentRaDecNWithInstance 水星视赤经纬(n 变体) / n-parameterised apparent right ascension and declination of Mercury with an explicit ephemeris instance.
func MercuryApparentRaDecNWithInstance(jde float64, n int, inst *Instance) (float64, float64) {
lo, bo := MercuryApparentLoBoNWithInstance(jde, n, inst)
return planetApparentRaDecFromLoBo(jde, lo, bo)
}
// MercuryApparentRaNWithInstance 水星视赤经(n 变体) / n-parameterised apparent right ascension of Mercury with an explicit ephemeris instance.
func MercuryApparentRaNWithInstance(jde float64, n int, inst *Instance) float64 {
ra, _ := MercuryApparentRaDecNWithInstance(jde, n, inst)
return ra
}
// MercuryApparentDecNWithInstance 水星视赤纬(n 变体) / n-parameterised apparent declination of Mercury with an explicit ephemeris instance.
func MercuryApparentDecNWithInstance(jde float64, n int, inst *Instance) float64 {
_, dec := MercuryApparentRaDecNWithInstance(jde, n, inst)
return dec
}
// EarthMercuryAwayWithInstance 地水距离 / Earth-Mercury distance with an explicit ephemeris instance.
func EarthMercuryAwayWithInstance(jde float64, inst *Instance) float64 {
return planetEarthAwayWithInstance(1, jde, inst)
}
// EarthMercuryAwayNWithInstance 水星地心距离(n 变体) / n-parameterised Earth-Mercury distance with an explicit ephemeris instance.
func EarthMercuryAwayNWithInstance(jde float64, n int, inst *Instance) float64 {
return planetEarthAwayNWithInstance(1, jde, n, inst)
}
// VenusLWithInstance 金星日心黄经 / heliocentric longitude of Venus with an explicit ephemeris instance.
func VenusLWithInstance(jde float64, inst *Instance) float64 {
return planetLWithInstance(2, jde, inst)
}
// VenusBWithInstance 金星日心黄纬 / heliocentric latitude of Venus with an explicit ephemeris instance.
func VenusBWithInstance(jde float64, inst *Instance) float64 {
return planetBWithInstance(2, jde, inst)
}
// VenusRWithInstance 金星日心距离 / heliocentric distance of Venus with an explicit ephemeris instance.
func VenusRWithInstance(jde float64, inst *Instance) float64 {
return planetRWithInstance(2, jde, inst)
}
// AVenusXYZWithInstance 金星地心直角坐标 / geocentric rectangular coordinates of Venus with an explicit ephemeris instance.
func AVenusXYZWithInstance(jde float64, inst *Instance) (float64, float64, float64) {
x, y, z, _ := planetGeocentricXYZWithInstance(2, jde, inst)
return x, y, z
}
// AVenusXWithInstance 金星地心 X 坐标 / geocentric X coordinate of Venus with an explicit ephemeris instance.
func AVenusXWithInstance(jde float64, inst *Instance) float64 {
x, _, _ := AVenusXYZWithInstance(jde, inst)
return x
}
// AVenusYWithInstance 金星地心 Y 坐标 / geocentric Y coordinate of Venus with an explicit ephemeris instance.
func AVenusYWithInstance(jde float64, inst *Instance) float64 {
_, y, _ := AVenusXYZWithInstance(jde, inst)
return y
}
// AVenusZWithInstance 金星地心 Z 坐标 / geocentric Z coordinate of Venus with an explicit ephemeris instance.
func AVenusZWithInstance(jde float64, inst *Instance) float64 {
_, _, z := AVenusXYZWithInstance(jde, inst)
return z
}
// VenusApparentLoBoWithInstance 金星视黄经纬 / apparent ecliptic longitude and latitude of Venus with an explicit ephemeris instance.
func VenusApparentLoBoWithInstance(jde float64, inst *Instance) (float64, float64) {
return planetApparentLoBoWithInstance(2, jde, inst)
}
// VenusApparentLoWithInstance 金星视黄经 / apparent ecliptic longitude of Venus with an explicit ephemeris instance.
func VenusApparentLoWithInstance(jde float64, inst *Instance) float64 {
lo, _ := VenusApparentLoBoWithInstance(jde, inst)
return lo
}
// VenusApparentBoWithInstance 金星视黄纬 / apparent ecliptic latitude of Venus with an explicit ephemeris instance.
func VenusApparentBoWithInstance(jde float64, inst *Instance) float64 {
_, bo := VenusApparentLoBoWithInstance(jde, inst)
return bo
}
// VenusApparentRaDecWithInstance 金星视赤经纬 / apparent right ascension and declination of Venus with an explicit ephemeris instance.
func VenusApparentRaDecWithInstance(jde float64, inst *Instance) (float64, float64) {
return planetApparentRaDecWithInstance(2, jde, inst)
}
// VenusApparentRaWithInstance 金星视赤经 / apparent right ascension of Venus with an explicit ephemeris instance.
func VenusApparentRaWithInstance(jde float64, inst *Instance) float64 {
ra, _ := VenusApparentRaDecWithInstance(jde, inst)
return ra
}
// VenusApparentDecWithInstance 金星视赤纬 / apparent declination of Venus with an explicit ephemeris instance.
func VenusApparentDecWithInstance(jde float64, inst *Instance) float64 {
_, dec := VenusApparentRaDecWithInstance(jde, inst)
return dec
}
// VenusApparentLoBoNWithInstance 金星视黄经纬(n 变体) / n-parameterised apparent ecliptic longitude and latitude of Venus with an explicit ephemeris instance.
func VenusApparentLoBoNWithInstance(jde float64, n int, inst *Instance) (float64, float64) {
return planetApparentLoBoNWithInstance(2, jde, n, inst)
}
// VenusApparentLoNWithInstance 金星视黄经(n 变体) / n-parameterised apparent ecliptic longitude of Venus with an explicit ephemeris instance.
func VenusApparentLoNWithInstance(jde float64, n int, inst *Instance) float64 {
lo, _ := VenusApparentLoBoNWithInstance(jde, n, inst)
return lo
}
// VenusApparentBoNWithInstance 金星视黄纬(n 变体) / n-parameterised apparent ecliptic latitude of Venus with an explicit ephemeris instance.
func VenusApparentBoNWithInstance(jde float64, n int, inst *Instance) float64 {
_, bo := VenusApparentLoBoNWithInstance(jde, n, inst)
return bo
}
// VenusApparentRaDecNWithInstance 金星视赤经纬(n 变体) / n-parameterised apparent right ascension and declination of Venus with an explicit ephemeris instance.
func VenusApparentRaDecNWithInstance(jde float64, n int, inst *Instance) (float64, float64) {
lo, bo := VenusApparentLoBoNWithInstance(jde, n, inst)
return planetApparentRaDecFromLoBo(jde, lo, bo)
}
// VenusApparentRaNWithInstance 金星视赤经(n 变体) / n-parameterised apparent right ascension of Venus with an explicit ephemeris instance.
func VenusApparentRaNWithInstance(jde float64, n int, inst *Instance) float64 {
ra, _ := VenusApparentRaDecNWithInstance(jde, n, inst)
return ra
}
// VenusApparentDecNWithInstance 金星视赤纬(n 变体) / n-parameterised apparent declination of Venus with an explicit ephemeris instance.
func VenusApparentDecNWithInstance(jde float64, n int, inst *Instance) float64 {
_, dec := VenusApparentRaDecNWithInstance(jde, n, inst)
return dec
}
// EarthVenusAwayWithInstance 地金距离 / Earth-Venus distance with an explicit ephemeris instance.
func EarthVenusAwayWithInstance(jde float64, inst *Instance) float64 {
return planetEarthAwayWithInstance(2, jde, inst)
}
// EarthVenusAwayNWithInstance 金星地心距离(n 变体) / n-parameterised Earth-Venus distance with an explicit ephemeris instance.
func EarthVenusAwayNWithInstance(jde float64, n int, inst *Instance) float64 {
return planetEarthAwayNWithInstance(2, jde, n, inst)
}
// MarsLWithInstance 火星日心黄经 / heliocentric longitude of Mars with an explicit ephemeris instance.
func MarsLWithInstance(jde float64, inst *Instance) float64 {
return planetLWithInstance(3, jde, inst)
}
// MarsBWithInstance 火星日心黄纬 / heliocentric latitude of Mars with an explicit ephemeris instance.
func MarsBWithInstance(jde float64, inst *Instance) float64 {
return planetBWithInstance(3, jde, inst)
}
// MarsRWithInstance 火星日心距离 / heliocentric distance of Mars with an explicit ephemeris instance.
func MarsRWithInstance(jde float64, inst *Instance) float64 {
return planetRWithInstance(3, jde, inst)
}
// AMarsXYZWithInstance 火星地心直角坐标 / geocentric rectangular coordinates of Mars with an explicit ephemeris instance.
func AMarsXYZWithInstance(jde float64, inst *Instance) (float64, float64, float64) {
x, y, z, _ := planetGeocentricXYZWithInstance(3, jde, inst)
return x, y, z
}
// AMarsXWithInstance 火星地心 X 坐标 / geocentric X coordinate of Mars with an explicit ephemeris instance.
func AMarsXWithInstance(jde float64, inst *Instance) float64 {
x, _, _ := AMarsXYZWithInstance(jde, inst)
return x
}
// AMarsYWithInstance 火星地心 Y 坐标 / geocentric Y coordinate of Mars with an explicit ephemeris instance.
func AMarsYWithInstance(jde float64, inst *Instance) float64 {
_, y, _ := AMarsXYZWithInstance(jde, inst)
return y
}
// AMarsZWithInstance 火星地心 Z 坐标 / geocentric Z coordinate of Mars with an explicit ephemeris instance.
func AMarsZWithInstance(jde float64, inst *Instance) float64 {
_, _, z := AMarsXYZWithInstance(jde, inst)
return z
}
// MarsApparentLoBoWithInstance 火星视黄经纬 / apparent ecliptic longitude and latitude of Mars with an explicit ephemeris instance.
func MarsApparentLoBoWithInstance(jde float64, inst *Instance) (float64, float64) {
return planetApparentLoBoWithInstance(3, jde, inst)
}
// MarsApparentLoWithInstance 火星视黄经 / apparent ecliptic longitude of Mars with an explicit ephemeris instance.
func MarsApparentLoWithInstance(jde float64, inst *Instance) float64 {
lo, _ := MarsApparentLoBoWithInstance(jde, inst)
return lo
}
// MarsApparentBoWithInstance 火星视黄纬 / apparent ecliptic latitude of Mars with an explicit ephemeris instance.
func MarsApparentBoWithInstance(jde float64, inst *Instance) float64 {
_, bo := MarsApparentLoBoWithInstance(jde, inst)
return bo
}
// MarsApparentRaDecWithInstance 火星视赤经纬 / apparent right ascension and declination of Mars with an explicit ephemeris instance.
func MarsApparentRaDecWithInstance(jde float64, inst *Instance) (float64, float64) {
return planetApparentRaDecWithInstance(3, jde, inst)
}
// MarsApparentRaWithInstance 火星视赤经 / apparent right ascension of Mars with an explicit ephemeris instance.
func MarsApparentRaWithInstance(jde float64, inst *Instance) float64 {
ra, _ := MarsApparentRaDecWithInstance(jde, inst)
return ra
}
// MarsApparentDecWithInstance 火星视赤纬 / apparent declination of Mars with an explicit ephemeris instance.
func MarsApparentDecWithInstance(jde float64, inst *Instance) float64 {
_, dec := MarsApparentRaDecWithInstance(jde, inst)
return dec
}
// MarsApparentLoBoNWithInstance 火星视黄经纬(n 变体) / n-parameterised apparent ecliptic longitude and latitude of Mars with an explicit ephemeris instance.
func MarsApparentLoBoNWithInstance(jde float64, n int, inst *Instance) (float64, float64) {
return planetApparentLoBoNWithInstance(3, jde, n, inst)
}
// MarsApparentLoNWithInstance 火星视黄经(n 变体) / n-parameterised apparent ecliptic longitude of Mars with an explicit ephemeris instance.
func MarsApparentLoNWithInstance(jde float64, n int, inst *Instance) float64 {
lo, _ := MarsApparentLoBoNWithInstance(jde, n, inst)
return lo
}
// MarsApparentBoNWithInstance 火星视黄纬(n 变体) / n-parameterised apparent ecliptic latitude of Mars with an explicit ephemeris instance.
func MarsApparentBoNWithInstance(jde float64, n int, inst *Instance) float64 {
_, bo := MarsApparentLoBoNWithInstance(jde, n, inst)
return bo
}
// MarsApparentRaDecNWithInstance 火星视赤经纬(n 变体) / n-parameterised apparent right ascension and declination of Mars with an explicit ephemeris instance.
func MarsApparentRaDecNWithInstance(jde float64, n int, inst *Instance) (float64, float64) {
lo, bo := MarsApparentLoBoNWithInstance(jde, n, inst)
return planetApparentRaDecFromLoBo(jde, lo, bo)
}
// MarsApparentRaNWithInstance 火星视赤经(n 变体) / n-parameterised apparent right ascension of Mars with an explicit ephemeris instance.
func MarsApparentRaNWithInstance(jde float64, n int, inst *Instance) float64 {
ra, _ := MarsApparentRaDecNWithInstance(jde, n, inst)
return ra
}
// MarsApparentDecNWithInstance 火星视赤纬(n 变体) / n-parameterised apparent declination of Mars with an explicit ephemeris instance.
func MarsApparentDecNWithInstance(jde float64, n int, inst *Instance) float64 {
_, dec := MarsApparentRaDecNWithInstance(jde, n, inst)
return dec
}
// EarthMarsAwayWithInstance 地火距离 / Earth-Mars distance with an explicit ephemeris instance.
func EarthMarsAwayWithInstance(jde float64, inst *Instance) float64 {
return planetEarthAwayWithInstance(3, jde, inst)
}
// EarthMarsAwayNWithInstance 火星地心距离(n 变体) / n-parameterised Earth-Mars distance with an explicit ephemeris instance.
func EarthMarsAwayNWithInstance(jde float64, n int, inst *Instance) float64 {
return planetEarthAwayNWithInstance(3, jde, n, inst)
}
// JupiterLWithInstance 木星日心黄经 / heliocentric longitude of Jupiter with an explicit ephemeris instance.
func JupiterLWithInstance(jde float64, inst *Instance) float64 {
return planetLWithInstance(4, jde, inst)
}
// JupiterBWithInstance 木星日心黄纬 / heliocentric latitude of Jupiter with an explicit ephemeris instance.
func JupiterBWithInstance(jde float64, inst *Instance) float64 {
return planetBWithInstance(4, jde, inst)
}
// JupiterRWithInstance 木星日心距离 / heliocentric distance of Jupiter with an explicit ephemeris instance.
func JupiterRWithInstance(jde float64, inst *Instance) float64 {
return planetRWithInstance(4, jde, inst)
}
// AJupiterXYZWithInstance 木星地心直角坐标 / geocentric rectangular coordinates of Jupiter with an explicit ephemeris instance.
func AJupiterXYZWithInstance(jde float64, inst *Instance) (float64, float64, float64) {
x, y, z, _ := planetGeocentricXYZWithInstance(4, jde, inst)
return x, y, z
}
// AJupiterXWithInstance 木星地心 X 坐标 / geocentric X coordinate of Jupiter with an explicit ephemeris instance.
func AJupiterXWithInstance(jde float64, inst *Instance) float64 {
x, _, _ := AJupiterXYZWithInstance(jde, inst)
return x
}
// AJupiterYWithInstance 木星地心 Y 坐标 / geocentric Y coordinate of Jupiter with an explicit ephemeris instance.
func AJupiterYWithInstance(jde float64, inst *Instance) float64 {
_, y, _ := AJupiterXYZWithInstance(jde, inst)
return y
}
// AJupiterZWithInstance 木星地心 Z 坐标 / geocentric Z coordinate of Jupiter with an explicit ephemeris instance.
func AJupiterZWithInstance(jde float64, inst *Instance) float64 {
_, _, z := AJupiterXYZWithInstance(jde, inst)
return z
}
// JupiterApparentLoBoWithInstance 木星视黄经纬 / apparent ecliptic longitude and latitude of Jupiter with an explicit ephemeris instance.
func JupiterApparentLoBoWithInstance(jde float64, inst *Instance) (float64, float64) {
return planetApparentLoBoWithInstance(4, jde, inst)
}
// JupiterApparentLoWithInstance 木星视黄经 / apparent ecliptic longitude of Jupiter with an explicit ephemeris instance.
func JupiterApparentLoWithInstance(jde float64, inst *Instance) float64 {
lo, _ := JupiterApparentLoBoWithInstance(jde, inst)
return lo
}
// JupiterApparentBoWithInstance 木星视黄纬 / apparent ecliptic latitude of Jupiter with an explicit ephemeris instance.
func JupiterApparentBoWithInstance(jde float64, inst *Instance) float64 {
_, bo := JupiterApparentLoBoWithInstance(jde, inst)
return bo
}
// JupiterApparentRaDecWithInstance 木星视赤经纬 / apparent right ascension and declination of Jupiter with an explicit ephemeris instance.
func JupiterApparentRaDecWithInstance(jde float64, inst *Instance) (float64, float64) {
return planetApparentRaDecWithInstance(4, jde, inst)
}
// JupiterApparentRaWithInstance 木星视赤经 / apparent right ascension of Jupiter with an explicit ephemeris instance.
func JupiterApparentRaWithInstance(jde float64, inst *Instance) float64 {
ra, _ := JupiterApparentRaDecWithInstance(jde, inst)
return ra
}
// JupiterApparentDecWithInstance 木星视赤纬 / apparent declination of Jupiter with an explicit ephemeris instance.
func JupiterApparentDecWithInstance(jde float64, inst *Instance) float64 {
_, dec := JupiterApparentRaDecWithInstance(jde, inst)
return dec
}
// JupiterApparentLoBoNWithInstance 木星视黄经纬(n 变体) / n-parameterised apparent ecliptic longitude and latitude of Jupiter with an explicit ephemeris instance.
func JupiterApparentLoBoNWithInstance(jde float64, n int, inst *Instance) (float64, float64) {
return planetApparentLoBoNWithInstance(4, jde, n, inst)
}
// JupiterApparentLoNWithInstance 木星视黄经(n 变体) / n-parameterised apparent ecliptic longitude of Jupiter with an explicit ephemeris instance.
func JupiterApparentLoNWithInstance(jde float64, n int, inst *Instance) float64 {
lo, _ := JupiterApparentLoBoNWithInstance(jde, n, inst)
return lo
}
// JupiterApparentBoNWithInstance 木星视黄纬(n 变体) / n-parameterised apparent ecliptic latitude of Jupiter with an explicit ephemeris instance.
func JupiterApparentBoNWithInstance(jde float64, n int, inst *Instance) float64 {
_, bo := JupiterApparentLoBoNWithInstance(jde, n, inst)
return bo
}
// JupiterApparentRaDecNWithInstance 木星视赤经纬(n 变体) / n-parameterised apparent right ascension and declination of Jupiter with an explicit ephemeris instance.
func JupiterApparentRaDecNWithInstance(jde float64, n int, inst *Instance) (float64, float64) {
lo, bo := JupiterApparentLoBoNWithInstance(jde, n, inst)
return planetApparentRaDecFromLoBo(jde, lo, bo)
}
// JupiterApparentRaNWithInstance 木星视赤经(n 变体) / n-parameterised apparent right ascension of Jupiter with an explicit ephemeris instance.
func JupiterApparentRaNWithInstance(jde float64, n int, inst *Instance) float64 {
ra, _ := JupiterApparentRaDecNWithInstance(jde, n, inst)
return ra
}
// JupiterApparentDecNWithInstance 木星视赤纬(n 变体) / n-parameterised apparent declination of Jupiter with an explicit ephemeris instance.
func JupiterApparentDecNWithInstance(jde float64, n int, inst *Instance) float64 {
_, dec := JupiterApparentRaDecNWithInstance(jde, n, inst)
return dec
}
// EarthJupiterAwayWithInstance 地木距离 / Earth-Jupiter distance with an explicit ephemeris instance.
func EarthJupiterAwayWithInstance(jde float64, inst *Instance) float64 {
return planetEarthAwayWithInstance(4, jde, inst)
}
// EarthJupiterAwayNWithInstance 木星地心距离(n 变体) / n-parameterised Earth-Jupiter distance with an explicit ephemeris instance.
func EarthJupiterAwayNWithInstance(jde float64, n int, inst *Instance) float64 {
return planetEarthAwayNWithInstance(4, jde, n, inst)
}
// SaturnLWithInstance 土星日心黄经 / heliocentric longitude of Saturn with an explicit ephemeris instance.
func SaturnLWithInstance(jde float64, inst *Instance) float64 {
return planetLWithInstance(5, jde, inst)
}
// SaturnBWithInstance 土星日心黄纬 / heliocentric latitude of Saturn with an explicit ephemeris instance.
func SaturnBWithInstance(jde float64, inst *Instance) float64 {
return planetBWithInstance(5, jde, inst)
}
// SaturnRWithInstance 土星日心距离 / heliocentric distance of Saturn with an explicit ephemeris instance.
func SaturnRWithInstance(jde float64, inst *Instance) float64 {
return planetRWithInstance(5, jde, inst)
}
// ASaturnXYZWithInstance 土星地心直角坐标 / geocentric rectangular coordinates of Saturn with an explicit ephemeris instance.
func ASaturnXYZWithInstance(jde float64, inst *Instance) (float64, float64, float64) {
x, y, z, _ := planetGeocentricXYZWithInstance(5, jde, inst)
return x, y, z
}
// ASaturnXWithInstance 土星地心 X 坐标 / geocentric X coordinate of Saturn with an explicit ephemeris instance.
func ASaturnXWithInstance(jde float64, inst *Instance) float64 {
x, _, _ := ASaturnXYZWithInstance(jde, inst)
return x
}
// ASaturnYWithInstance 土星地心 Y 坐标 / geocentric Y coordinate of Saturn with an explicit ephemeris instance.
func ASaturnYWithInstance(jde float64, inst *Instance) float64 {
_, y, _ := ASaturnXYZWithInstance(jde, inst)
return y
}
// ASaturnZWithInstance 土星地心 Z 坐标 / geocentric Z coordinate of Saturn with an explicit ephemeris instance.
func ASaturnZWithInstance(jde float64, inst *Instance) float64 {
_, _, z := ASaturnXYZWithInstance(jde, inst)
return z
}
// SaturnApparentLoBoWithInstance 土星视黄经纬 / apparent ecliptic longitude and latitude of Saturn with an explicit ephemeris instance.
func SaturnApparentLoBoWithInstance(jde float64, inst *Instance) (float64, float64) {
return planetApparentLoBoWithInstance(5, jde, inst)
}
// SaturnApparentLoWithInstance 土星视黄经 / apparent ecliptic longitude of Saturn with an explicit ephemeris instance.
func SaturnApparentLoWithInstance(jde float64, inst *Instance) float64 {
lo, _ := SaturnApparentLoBoWithInstance(jde, inst)
return lo
}
// SaturnApparentBoWithInstance 土星视黄纬 / apparent ecliptic latitude of Saturn with an explicit ephemeris instance.
func SaturnApparentBoWithInstance(jde float64, inst *Instance) float64 {
_, bo := SaturnApparentLoBoWithInstance(jde, inst)
return bo
}
// SaturnApparentRaDecWithInstance 土星视赤经纬 / apparent right ascension and declination of Saturn with an explicit ephemeris instance.
func SaturnApparentRaDecWithInstance(jde float64, inst *Instance) (float64, float64) {
return planetApparentRaDecWithInstance(5, jde, inst)
}
// SaturnApparentRaWithInstance 土星视赤经 / apparent right ascension of Saturn with an explicit ephemeris instance.
func SaturnApparentRaWithInstance(jde float64, inst *Instance) float64 {
ra, _ := SaturnApparentRaDecWithInstance(jde, inst)
return ra
}
// SaturnApparentDecWithInstance 土星视赤纬 / apparent declination of Saturn with an explicit ephemeris instance.
func SaturnApparentDecWithInstance(jde float64, inst *Instance) float64 {
_, dec := SaturnApparentRaDecWithInstance(jde, inst)
return dec
}
// SaturnApparentLoBoNWithInstance 土星视黄经纬(n 变体) / n-parameterised apparent ecliptic longitude and latitude of Saturn with an explicit ephemeris instance.
func SaturnApparentLoBoNWithInstance(jde float64, n int, inst *Instance) (float64, float64) {
return planetApparentLoBoNWithInstance(5, jde, n, inst)
}
// SaturnApparentLoNWithInstance 土星视黄经(n 变体) / n-parameterised apparent ecliptic longitude of Saturn with an explicit ephemeris instance.
func SaturnApparentLoNWithInstance(jde float64, n int, inst *Instance) float64 {
lo, _ := SaturnApparentLoBoNWithInstance(jde, n, inst)
return lo
}
// SaturnApparentBoNWithInstance 土星视黄纬(n 变体) / n-parameterised apparent ecliptic latitude of Saturn with an explicit ephemeris instance.
func SaturnApparentBoNWithInstance(jde float64, n int, inst *Instance) float64 {
_, bo := SaturnApparentLoBoNWithInstance(jde, n, inst)
return bo
}
// SaturnApparentRaDecNWithInstance 土星视赤经纬(n 变体) / n-parameterised apparent right ascension and declination of Saturn with an explicit ephemeris instance.
func SaturnApparentRaDecNWithInstance(jde float64, n int, inst *Instance) (float64, float64) {
lo, bo := SaturnApparentLoBoNWithInstance(jde, n, inst)
return planetApparentRaDecFromLoBo(jde, lo, bo)
}
// SaturnApparentRaNWithInstance 土星视赤经(n 变体) / n-parameterised apparent right ascension of Saturn with an explicit ephemeris instance.
func SaturnApparentRaNWithInstance(jde float64, n int, inst *Instance) float64 {
ra, _ := SaturnApparentRaDecNWithInstance(jde, n, inst)
return ra
}
// SaturnApparentDecNWithInstance 土星视赤纬(n 变体) / n-parameterised apparent declination of Saturn with an explicit ephemeris instance.
func SaturnApparentDecNWithInstance(jde float64, n int, inst *Instance) float64 {
_, dec := SaturnApparentRaDecNWithInstance(jde, n, inst)
return dec
}
// EarthSaturnAwayWithInstance 地土距离 / Earth-Saturn distance with an explicit ephemeris instance.
func EarthSaturnAwayWithInstance(jde float64, inst *Instance) float64 {
return planetEarthAwayWithInstance(5, jde, inst)
}
// EarthSaturnAwayNWithInstance 土星地心距离(n 变体) / n-parameterised Earth-Saturn distance with an explicit ephemeris instance.
func EarthSaturnAwayNWithInstance(jde float64, n int, inst *Instance) float64 {
return planetEarthAwayNWithInstance(5, jde, n, inst)
}
// UranusLWithInstance 天王星日心黄经 / heliocentric longitude of Uranus with an explicit ephemeris instance.
func UranusLWithInstance(jde float64, inst *Instance) float64 {
return planetLWithInstance(6, jde, inst)
}
// UranusBWithInstance 天王星日心黄纬 / heliocentric latitude of Uranus with an explicit ephemeris instance.
func UranusBWithInstance(jde float64, inst *Instance) float64 {
return planetBWithInstance(6, jde, inst)
}
// UranusRWithInstance 天王星日心距离 / heliocentric distance of Uranus with an explicit ephemeris instance.
func UranusRWithInstance(jde float64, inst *Instance) float64 {
return planetRWithInstance(6, jde, inst)
}
// AUranusXYZWithInstance 天王星地心直角坐标 / geocentric rectangular coordinates of Uranus with an explicit ephemeris instance.
func AUranusXYZWithInstance(jde float64, inst *Instance) (float64, float64, float64) {
x, y, z, _ := planetGeocentricXYZWithInstance(6, jde, inst)
return x, y, z
}
// AUranusXWithInstance 天王星地心 X 坐标 / geocentric X coordinate of Uranus with an explicit ephemeris instance.
func AUranusXWithInstance(jde float64, inst *Instance) float64 {
x, _, _ := AUranusXYZWithInstance(jde, inst)
return x
}
// AUranusYWithInstance 天王星地心 Y 坐标 / geocentric Y coordinate of Uranus with an explicit ephemeris instance.
func AUranusYWithInstance(jde float64, inst *Instance) float64 {
_, y, _ := AUranusXYZWithInstance(jde, inst)
return y
}
// AUranusZWithInstance 天王星地心 Z 坐标 / geocentric Z coordinate of Uranus with an explicit ephemeris instance.
func AUranusZWithInstance(jde float64, inst *Instance) float64 {
_, _, z := AUranusXYZWithInstance(jde, inst)
return z
}
// UranusApparentLoBoWithInstance 天王星视黄经纬 / apparent ecliptic longitude and latitude of Uranus with an explicit ephemeris instance.
func UranusApparentLoBoWithInstance(jde float64, inst *Instance) (float64, float64) {
return planetApparentLoBoWithInstance(6, jde, inst)
}
// UranusApparentLoWithInstance 天王星视黄经 / apparent ecliptic longitude of Uranus with an explicit ephemeris instance.
func UranusApparentLoWithInstance(jde float64, inst *Instance) float64 {
lo, _ := UranusApparentLoBoWithInstance(jde, inst)
return lo
}
// UranusApparentBoWithInstance 天王星视黄纬 / apparent ecliptic latitude of Uranus with an explicit ephemeris instance.
func UranusApparentBoWithInstance(jde float64, inst *Instance) float64 {
_, bo := UranusApparentLoBoWithInstance(jde, inst)
return bo
}
// UranusApparentRaDecWithInstance 天王星视赤经纬 / apparent right ascension and declination of Uranus with an explicit ephemeris instance.
func UranusApparentRaDecWithInstance(jde float64, inst *Instance) (float64, float64) {
return planetApparentRaDecWithInstance(6, jde, inst)
}
// UranusApparentRaWithInstance 天王星视赤经 / apparent right ascension of Uranus with an explicit ephemeris instance.
func UranusApparentRaWithInstance(jde float64, inst *Instance) float64 {
ra, _ := UranusApparentRaDecWithInstance(jde, inst)
return ra
}
// UranusApparentDecWithInstance 天王星视赤纬 / apparent declination of Uranus with an explicit ephemeris instance.
func UranusApparentDecWithInstance(jde float64, inst *Instance) float64 {
_, dec := UranusApparentRaDecWithInstance(jde, inst)
return dec
}
// UranusApparentLoBoNWithInstance 天王星视黄经纬(n 变体) / n-parameterised apparent ecliptic longitude and latitude of Uranus with an explicit ephemeris instance.
func UranusApparentLoBoNWithInstance(jde float64, n int, inst *Instance) (float64, float64) {
return planetApparentLoBoNWithInstance(6, jde, n, inst)
}
// UranusApparentLoNWithInstance 天王星视黄经(n 变体) / n-parameterised apparent ecliptic longitude of Uranus with an explicit ephemeris instance.
func UranusApparentLoNWithInstance(jde float64, n int, inst *Instance) float64 {
lo, _ := UranusApparentLoBoNWithInstance(jde, n, inst)
return lo
}
// UranusApparentBoNWithInstance 天王星视黄纬(n 变体) / n-parameterised apparent ecliptic latitude of Uranus with an explicit ephemeris instance.
func UranusApparentBoNWithInstance(jde float64, n int, inst *Instance) float64 {
_, bo := UranusApparentLoBoNWithInstance(jde, n, inst)
return bo
}
// UranusApparentRaDecNWithInstance 天王星视赤经纬(n 变体) / n-parameterised apparent right ascension and declination of Uranus with an explicit ephemeris instance.
func UranusApparentRaDecNWithInstance(jde float64, n int, inst *Instance) (float64, float64) {
lo, bo := UranusApparentLoBoNWithInstance(jde, n, inst)
return planetApparentRaDecFromLoBo(jde, lo, bo)
}
// UranusApparentRaNWithInstance 天王星视赤经(n 变体) / n-parameterised apparent right ascension of Uranus with an explicit ephemeris instance.
func UranusApparentRaNWithInstance(jde float64, n int, inst *Instance) float64 {
ra, _ := UranusApparentRaDecNWithInstance(jde, n, inst)
return ra
}
// UranusApparentDecNWithInstance 天王星视赤纬(n 变体) / n-parameterised apparent declination of Uranus with an explicit ephemeris instance.
func UranusApparentDecNWithInstance(jde float64, n int, inst *Instance) float64 {
_, dec := UranusApparentRaDecNWithInstance(jde, n, inst)
return dec
}
// EarthUranusAwayWithInstance 地天王距离 / Earth-Uranus distance with an explicit ephemeris instance.
func EarthUranusAwayWithInstance(jde float64, inst *Instance) float64 {
return planetEarthAwayWithInstance(6, jde, inst)
}
// EarthUranusAwayNWithInstance 天王星地心距离(n 变体) / n-parameterised Earth-Uranus distance with an explicit ephemeris instance.
func EarthUranusAwayNWithInstance(jde float64, n int, inst *Instance) float64 {
return planetEarthAwayNWithInstance(6, jde, n, inst)
}
// NeptuneLWithInstance 海王星日心黄经 / heliocentric longitude of Neptune with an explicit ephemeris instance.
func NeptuneLWithInstance(jde float64, inst *Instance) float64 {
return planetLWithInstance(7, jde, inst)
}
// NeptuneBWithInstance 海王星日心黄纬 / heliocentric latitude of Neptune with an explicit ephemeris instance.
func NeptuneBWithInstance(jde float64, inst *Instance) float64 {
return planetBWithInstance(7, jde, inst)
}
// NeptuneRWithInstance 海王星日心距离 / heliocentric distance of Neptune with an explicit ephemeris instance.
func NeptuneRWithInstance(jde float64, inst *Instance) float64 {
return planetRWithInstance(7, jde, inst)
}
// ANeptuneXYZWithInstance 海王星地心直角坐标 / geocentric rectangular coordinates of Neptune with an explicit ephemeris instance.
func ANeptuneXYZWithInstance(jde float64, inst *Instance) (float64, float64, float64) {
x, y, z, _ := planetGeocentricXYZWithInstance(7, jde, inst)
return x, y, z
}
// ANeptuneXWithInstance 海王星地心 X 坐标 / geocentric X coordinate of Neptune with an explicit ephemeris instance.
func ANeptuneXWithInstance(jde float64, inst *Instance) float64 {
x, _, _ := ANeptuneXYZWithInstance(jde, inst)
return x
}
// ANeptuneYWithInstance 海王星地心 Y 坐标 / geocentric Y coordinate of Neptune with an explicit ephemeris instance.
func ANeptuneYWithInstance(jde float64, inst *Instance) float64 {
_, y, _ := ANeptuneXYZWithInstance(jde, inst)
return y
}
// ANeptuneZWithInstance 海王星地心 Z 坐标 / geocentric Z coordinate of Neptune with an explicit ephemeris instance.
func ANeptuneZWithInstance(jde float64, inst *Instance) float64 {
_, _, z := ANeptuneXYZWithInstance(jde, inst)
return z
}
// NeptuneApparentLoBoWithInstance 海王星视黄经纬 / apparent ecliptic longitude and latitude of Neptune with an explicit ephemeris instance.
func NeptuneApparentLoBoWithInstance(jde float64, inst *Instance) (float64, float64) {
return planetApparentLoBoWithInstance(7, jde, inst)
}
// NeptuneApparentLoWithInstance 海王星视黄经 / apparent ecliptic longitude of Neptune with an explicit ephemeris instance.
func NeptuneApparentLoWithInstance(jde float64, inst *Instance) float64 {
lo, _ := NeptuneApparentLoBoWithInstance(jde, inst)
return lo
}
// NeptuneApparentBoWithInstance 海王星视黄纬 / apparent ecliptic latitude of Neptune with an explicit ephemeris instance.
func NeptuneApparentBoWithInstance(jde float64, inst *Instance) float64 {
_, bo := NeptuneApparentLoBoWithInstance(jde, inst)
return bo
}
// NeptuneApparentRaDecWithInstance 海王星视赤经纬 / apparent right ascension and declination of Neptune with an explicit ephemeris instance.
func NeptuneApparentRaDecWithInstance(jde float64, inst *Instance) (float64, float64) {
return planetApparentRaDecWithInstance(7, jde, inst)
}
// NeptuneApparentRaWithInstance 海王星视赤经 / apparent right ascension of Neptune with an explicit ephemeris instance.
func NeptuneApparentRaWithInstance(jde float64, inst *Instance) float64 {
ra, _ := NeptuneApparentRaDecWithInstance(jde, inst)
return ra
}
// NeptuneApparentDecWithInstance 海王星视赤纬 / apparent declination of Neptune with an explicit ephemeris instance.
func NeptuneApparentDecWithInstance(jde float64, inst *Instance) float64 {
_, dec := NeptuneApparentRaDecWithInstance(jde, inst)
return dec
}
// NeptuneApparentLoBoNWithInstance 海王星视黄经纬(n 变体) / n-parameterised apparent ecliptic longitude and latitude of Neptune with an explicit ephemeris instance.
func NeptuneApparentLoBoNWithInstance(jde float64, n int, inst *Instance) (float64, float64) {
return planetApparentLoBoNWithInstance(7, jde, n, inst)
}
// NeptuneApparentLoNWithInstance 海王星视黄经(n 变体) / n-parameterised apparent ecliptic longitude of Neptune with an explicit ephemeris instance.
func NeptuneApparentLoNWithInstance(jde float64, n int, inst *Instance) float64 {
lo, _ := NeptuneApparentLoBoNWithInstance(jde, n, inst)
return lo
}
// NeptuneApparentBoNWithInstance 海王星视黄纬(n 变体) / n-parameterised apparent ecliptic latitude of Neptune with an explicit ephemeris instance.
func NeptuneApparentBoNWithInstance(jde float64, n int, inst *Instance) float64 {
_, bo := NeptuneApparentLoBoNWithInstance(jde, n, inst)
return bo
}
// NeptuneApparentRaDecNWithInstance 海王星视赤经纬(n 变体) / n-parameterised apparent right ascension and declination of Neptune with an explicit ephemeris instance.
func NeptuneApparentRaDecNWithInstance(jde float64, n int, inst *Instance) (float64, float64) {
lo, bo := NeptuneApparentLoBoNWithInstance(jde, n, inst)
return planetApparentRaDecFromLoBo(jde, lo, bo)
}
// NeptuneApparentRaNWithInstance 海王星视赤经(n 变体) / n-parameterised apparent right ascension of Neptune with an explicit ephemeris instance.
func NeptuneApparentRaNWithInstance(jde float64, n int, inst *Instance) float64 {
ra, _ := NeptuneApparentRaDecNWithInstance(jde, n, inst)
return ra
}
// NeptuneApparentDecNWithInstance 海王星视赤纬(n 变体) / n-parameterised apparent declination of Neptune with an explicit ephemeris instance.
func NeptuneApparentDecNWithInstance(jde float64, n int, inst *Instance) float64 {
_, dec := NeptuneApparentRaDecNWithInstance(jde, n, inst)
return dec
}
// EarthNeptuneAwayWithInstance 地海距离 / Earth-Neptune distance with an explicit ephemeris instance.
func EarthNeptuneAwayWithInstance(jde float64, inst *Instance) float64 {
return planetEarthAwayWithInstance(7, jde, inst)
}
// EarthNeptuneAwayNWithInstance 海王星地心距离(n 变体) / n-parameterised Earth-Neptune distance with an explicit ephemeris instance.
func EarthNeptuneAwayNWithInstance(jde float64, n int, inst *Instance) float64 {
return planetEarthAwayNWithInstance(7, jde, n, inst)
}
// MercuryMagWithInstance 水星视星等 / apparent magnitude of Mercury with an explicit ephemeris instance.
func MercuryMagWithInstance(jde float64, inst *Instance) float64 {
if inst == nil {
return MercuryMag(jde)
}
return planetMagnitudeWithInstance(1, jde, inst, -0.42, 0.0380, -0.000273, 0.000002)
}
// VenusMagWithInstance 金星视星等 / apparent magnitude of Venus with an explicit ephemeris instance.
func VenusMagWithInstance(jde float64, inst *Instance) float64 {
if inst == nil {
return VenusMag(jde)
}
return planetMagnitudeWithInstance(2, jde, inst, -4.40, 0.0009, 0.000239, -0.00000065)
}
// MarsMagWithInstance 火星视星等 / apparent magnitude of Mars with an explicit ephemeris instance.
func MarsMagWithInstance(jde float64, inst *Instance) float64 {
if inst == nil {
return MarsMag(jde)
}
return planetMagnitudeWithInstance(3, jde, inst, -1.52, 0.016, 0, 0)
}
// JupiterMagWithInstance 木星视星等 / apparent magnitude of Jupiter with an explicit ephemeris instance.
func JupiterMagWithInstance(jde float64, inst *Instance) float64 {
if inst == nil {
return JupiterMag(jde)
}
return planetMagnitudeWithInstance(4, jde, inst, -9.40, 0.0005, 0, 0)
}
// UranusMagWithInstance 天王星视星等 / apparent magnitude of Uranus with an explicit ephemeris instance.
func UranusMagWithInstance(jde float64, inst *Instance) float64 {
if inst == nil {
return UranusMag(jde)
}
return planetMagnitudeWithInstance(6, jde, inst, -7.19, 0.016, 0, 0)
}
// NeptuneMagWithInstance 海王星视星等 / apparent magnitude of Neptune with an explicit ephemeris instance.
func NeptuneMagWithInstance(jde float64, inst *Instance) float64 {
if inst == nil {
return NeptuneMag(jde)
}
sunDistance := planetRWithInstance(7, jde, inst)
earthDistance := planetEarthAwayWithInstance(7, jde, inst)
return FloatRound(-6.87+5*math.Log10(sunDistance*earthDistance), 2)
}