This commit is contained in:
2019-10-24 10:44:21 +08:00
commit 9d047c848a
34 changed files with 6573 additions and 0 deletions
+203
View File
@@ -0,0 +1,203 @@
package moon
import (
"errors"
"b612.me/astro/basic"
)
/*
月亮真黄经
jde,世界时UTC
*/
func TrueLo(jde float64) float64 {
return basic.HMoonTrueLo(basic.TD2UT(jde, true))
}
/*
月亮视黄经
jde,世界时UTC
*/
func SeeLo(jde float64) float64 {
return basic.HMoonSeeLo(basic.TD2UT(jde, true))
}
/*
月亮视赤经
jde,世界时UTC
lon, 经度
lat, 纬度
timezone, 时区
返回站心坐标
*/
func SeeRa(jde, lon, lat, timezone float64) float64 {
return basic.HMoonSeeRa(basic.TD2UT(jde, true), lon, lat, timezone)
}
/*
月亮视赤纬
jde,世界时UTC
lon, 经度
lat, 纬度
timezone, 时区
返回站心坐标
*/
func SeeDec(jde, lon, lat, timezone float64) float64 {
return basic.HMoonSeeDec(basic.TD2UT(jde, true), lon, lat, timezone)
}
/*
月亮视赤经赤纬
jde,世界时UTC
lon, 经度
lat, 纬度
timezone, 时区
返回站心坐标
*/
func SeeRaDec(jde, lon, lat, timezone float64) (float64, float64) {
return basic.HMoonSeeRaDec(basic.TD2UT(jde, true), lon, lat, timezone)
}
/*
月亮真赤经
jde,世界时UTC
*/
func TrueRa(jde float64) float64 {
return basic.HMoonTrueRa(basic.TD2UT(jde, true))
}
/*
月亮真赤纬
jde,世界时UTC
*/
func TrueDec(jde float64) float64 {
return basic.HMoonTrueDec(basic.TD2UT(jde, true))
}
/*
月亮时角
jde,世界时当地时间
lon,经度,东正西负
lat,纬度,北正南负
timezone,时区,东正西负
*/
func HourAngle(jde, lon, lat, timezone float64) float64 {
return basic.MoonTimeAngle(jde, lon, lat, timezone)
}
/*
月亮方位角
jde,世界时当地时间
lon,经度,东正西负
lat,纬度,北正南负
timezone,时区,东正西负
*/
func Azimuth(jde, lon, lat, timezone float64) float64 {
return basic.HMoonAngle(jde, lon, lat, timezone)
}
/*
月亮高度角
jde,世界时当地时间
lon,经度,东正西负
lat,纬度,北正南负
timezone,时区,东正西负
*/
func Zenith(jde, lon, lat, timezone float64) float64 {
return basic.HMoonHeight(jde, lon, lat, timezone)
}
/*
月亮中天时间
jde,世界时当地0时
lon,经度,东正西负
lat,纬度,北正南负
timezone,时区,东正西负
*/
func CulminationTime(jde, lon, lat, timezone float64) float64 {
return basic.GetMoonTZTime(jde, lon, lat, timezone)
}
/*
月亮升起时间
jde,世界时当地0时 JDE
lon,经度,东正西负
lat,纬度,北正南负
timezone,时区,东正西负
aerotrue时进行大气修正
*/
func RiseTime(jde, lon, lat, timezone float64, aero bool) (float64, error) {
var err error = nil
tz := 0.00
if aero {
tz = 1
}
tm := basic.GetMoonRiseTime(jde, lon, lat, timezone, tz)
if tm == -2 {
err = errors.New("极夜")
}
if tm == -1 {
err = errors.New("极昼")
}
return tm, err
}
/*
月亮落下时间
jde,世界时当地0时 JDE
lon,经度,东正西负
lat,纬度,北正南负
timezone,时区,东正西负
aerotrue时进行大气修正
*/
func DownTime(jde, lon, lat, timezone float64, aero bool) (float64, error) {
var err error = nil
tz := 0.00
if aero {
tz = 1
}
tm := basic.GetMoonDownTime(jde, lon, lat, timezone, tz)
if tm == -2 {
err = errors.New("极夜")
}
if tm == -1 {
err = errors.New("极昼")
}
return tm, err
}
/*
月相
jde,世界时UTC JDE
*/
func Phase(jde float64) float64 {
return basic.MoonLight(basic.TD2UT(jde, true))
}
/*
朔月
*/
func ShuoYue(year float64) float64 {
return basic.CalcMoonSH(year, 0)
}
/*
望月
*/
func WangYue(year float64) float64 {
return basic.CalcMoonSH(year, 1)
}
/*
上弦月
*/
func ShangXianYue(year float64) float64 {
return basic.CalcMoonXH(year, 0)
}
/*
下弦月
*/
func XiaXianYue(year float64) float64 {
return basic.CalcMoonXH(year, 1)
}
+14
View File
@@ -0,0 +1,14 @@
package moon
import (
"fmt"
"testing"
)
func TestMoonI(t *testing.T) {
fmt.Println(MoonR(2465445.9755443))
}
func Test_NewCalc(t *testing.T) {
fmt.Printf("%.14f", MoonCalcNew(2, 2451546.0))
}