浅谈月出月落和月相的计算方法以及替代工具 - 月出月落和月相 API

不是海碗
• 阅读 178

引言

如果你想知道精确的月出月落时间,又或者你想设计一个月出月落时间查询的应用,又或者你只是好奇点进来了,还是可以过来围观一下涨涨知识,今天想跟大家聊一聊的是月出月落的计算方法以及替代工具 - 月出月落和月相 API 。

月出月落和月相 API 是一种可以获取指定城市或地点每日月出时间、月落时间、月相、受照占比、月相相位角、下一个新月时间、下一个满月时间等数据的接口。该 API 基于全球月出月落计算公式和高精度天文算法,可以为用户提供准确的月出月落时间数据,覆盖全球3400+个城市和4万个地点。

浅谈月出月落和月相的计算方法以及替代工具 - 月出月落和月相 API

月出月落的计算方法

月出月落时间的计算涉及到地球的自转、公转、地球的形状、大气折射等多个因素,因此需要使用天文学公式和计算方法。以下是一些常用的计算方法:

  1. 基于经纬度的简单方法:根据观测地点的经纬度和日期,通过经验公式计算出月出月落的大致时间。这种方法的精度较低,只能提供一个大致的参考时间。

月出时间 = 当天日出时间 + arccos(-sin(φ)×sin(δ)÷cos(φ)×cos(δ))÷15

月落时间 = 当天日落时间 - arccos(-sin(φ)×sin(δ)÷cos(φ)×cos(δ))÷15

其中,φ表示所在纬度,δ表示月亮赤纬,arccos为反余弦函数,15表示每小时移动15度(地球自转速度)。

需要注意的是,这个公式只是一个简单的近似计算公式,实际月出月落时间还会受到多种因素的影响,如地球自转速度变化、地形、气象条件等等,因此计算结果可能存在一定误差。

  1. 天文学方法:利用天文学知识和计算方法,可以更加准确地计算出月出月落的时间。这种方法需要使用天文学软件或者数据表格进行计算。

月出时间 = 日落时刻 + arccos[(sin(h) - sin(δ) * sin(φ)) / (cos(δ) * cos(φ))] 月落时间 = 日出时刻 + arccos[(sin(h) - sin(δ) * sin(φ)) / (cos(δ) * cos(φ))]

其中,h为天文黄赤交角,δ为月球的赤纬,φ为观测地点的纬度。

  1. 基于观测地点的方法:这种方法需要测量观测地点的海拔高度、天文观测点的经度和纬度等参数,并结合当前时间和日期,计算出月亮的出入时间。

具体的计算方法和公式较为复杂,需要借助计算机程序实现。

在实际应用中,常用的方法是天文学方法,除此之外可以通过天文学软件、网站等工具进行计算。例如,可以使用月出月落和月相 API ,输入城市编码参数,就可以得到相应的结果。

月出月落和月相 API 的工作原理

月出月落和月相的 API 的工作原理通常是基于天文算法和日历计算,通过收集和处理与天文数据相关的信息,计算出具体时间和位置的月出月落和月相。

具体地说,月出月落的 API 通常需要输入用户所在的经纬度和日期,然后通过天文算法计算出太阳和月亮的位置和运动轨迹,进而推算出在这个地点和日期的月出月落时间,并且根据月球的运动轨迹和相位计算出指定日期的月相状态,例如满月、新月、上弦月或下弦月。

应用场景

月出月落和月相 API 可以广泛应用于多个领域,包括气象学应用、天文学应用、摄影、旅游等

浅谈月出月落和月相的计算方法以及替代工具 - 月出月落和月相 API

常用月出月落和月相 API推荐

以下是我推荐的几个月出月落和月相 API:

1.APISpace 月出月落和月相 API

简介: APISpace 月出月落和月相 API支持国内3400+个城市以及国际4万个城市的月出月落和月相数据,每日月出时间、月落时间、月相、受照占比、月相相位角、下一个新月时间、下一个满月时间等数据。

接入方式: 很简单三个步骤即可完成了,有不明白的小伙伴可以评论区交流~

浅谈月出月落和月相的计算方法以及替代工具 - 月出月落和月相 API

Java 接入代码:

OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
Request request = new Request.Builder()
  .url("https://eolink.o.apispace.com/3244/lives_geo/v001/moon?days=1&areacode=101010100")
  .method("GET",null)
  .addHeader("X-APISpace-Token","")
  .addHeader("Authorization-Type","apikey")
  .build();

Response response = client.newCall(request).execute();
System.out.println(response.body().string());

返回示例:

{
    "status": 0,
    "result": {
        "location": {
            "areacode": "101010100",        //城市ID
            "name": "北京",                //城市中文名
            "country": "中国",                //所属国家中文名
            "path": "北京,北京市,北京市,中国"            //行政区划路径
        },
        "moon": [
            {
                "date": "2020-04-26",                //日期
                "moonrise": "17:58:23",        //月出时间,有时为空
                "moonset": "06:12:22",        //月落时间,有时为空
                "phaseAngle": 178.56,        //0时月相相位角,单位°
                "percent": 98.75,                //0时受照占比,单位100%
                "phase": "Full",            //月相英文
                "phaseCn": "满月",                //月相
                "phaseCode": 17,            //对应图片代码
            },
                    ……            //其它日期月相信息
         ]
        "full": [                //查询时段内的所有满月时间,没有满月则为空
                "2020-04-26 17:58:23",
                ……
         ]
        "new": [                //查询时段内的所有新月时间,没有新月则为空
                "2020-04-26 17:58:23",
                ……
         ]
    }
}

2. Sunrise-Sunset API

提供世界各地的月出月落时间,包括民用和航空月出月落时间

3. OpenWeatherMap API

提供实时天气信息,包括月出月落时间和月相信息。

点赞
收藏
评论区
推荐文章
Karen110 Karen110
2年前
醒醒!Python已经支持中文变量名啦!
作者:豌豆花下猫来源:Python猫最近,我在翻阅两本比较新的Python书籍时,发现它们都犯了一个严重的低级错误!这两本书分别是《Python编程:从入门到实践》和《父与子的编程之旅》,它们都是畅销书,都在2020年10月出了新版本,都使用Python3.7版本的语法。然而,在关于变量的命名规则部分,它们犯下了一样的错误,即还在使用Py
豆官 豆官
1年前
浅谈日出日落的计算方法以及替代工具 - 日出日落 API
引言如果你想知道精确的日落日出时间,又或者你想设计一个日出日落时间查询的应用,又或者你只是好奇点进来了,还是可以过来围观一下涨涨知识,今天想跟大家聊一聊的是日出日落的计算方法以及替代工具日出日落API。APISpace日出日落API是一种可以获取指定城市或
Wesley13 Wesley13
2年前
JQ选择器
如果你想寻找id以“sub\_”开头的元素,你可以使用:$("id^'sub_'")如果你想寻找id以“trim”结尾的元素,你可以使用:$("id$'trim'")要获得id包含“AAA”的元素,需要使用(这比遍历要快)$("id'trim'")可以指定元素类型input或者其他标签
Stella981 Stella981
2年前
Go语言基础之time包详解
点击上方“Go语言进阶学习”,进行关注回复“Go语言”即可获赠从入门到进阶共10本电子书今日鸡汤月落乌啼霜满天,江枫渔火对愁眠。前言一寸光阴一寸金,时间难买寸光阴,时间,是个多么重要的东西。同样,在我们的编程中,时间也依然占据着很大的一部分。就像淘宝,客户下单需要记录时间,发货了需要记录时间,
API 小达人 API 小达人
6个月前
「Eolink Apikit 」如何快速创建有效的API监控任务?
API监控能够确保API的稳定性。如果一个API出现故障或崩溃,它可能会导致整个应用程序无法正常工作。这对用户和业务来说可能是灾难性的。通过监控API,开发团队可以及时发现问题并采取措施来修复它们,从而降低应用程序中断的风险。作为开发人员,了解API生命周期中的每一个步骤可以帮助改善设计流程以及后续的流程,监控工具可以深入了解API的行为,监控API有助于:1.问题识别、2.问题修复、3.功能分析、4.新版本的迭代。在API管理中,查看API异常监控的监控报告,在EolinkApiki中也是常用的功能,通常你可以在流程综合报告页中看到当前流程在选定时间段内的整体监控情况。
燕青 燕青
6个月前
JSON编辑、擦卡工具:JSON Wizard for mac
是查看和编辑你的JSON最简单的方法,是Mac端的终极JSON工具。你只是想查看和编辑你的JSON文件?你想能够导入XML/YAML/PLIST/CSV文件吗?也许你想能够出口到所有这些格式?轻松的视觉编辑?或直接与源代码和生活语法检查?JSONWizar
小万哥 小万哥
4个月前
全面的开发者文档和用户目标解析:API 文档指南和开发者旅程
开发者文档开发者文档,也称为API文档,是一种专门针对软件开发人员的技术写作形式。这种类型的文档通常包括API的技术规范、代码注释、软件设计和架构以及软件开发中涉及的其他详细技术描述。开发者文档是开发人员的重要工具,因为它提供了使用和集成特定软件、库或AP
利好政策下火车票、际机票预订量达今年峰值,票价继续回落
近日,随着多个利好政策发布,多平台火车票、机票搜索量11月上半月出现激增,国际机票价格持续回落。11月15日,文化和旅游部发布通知称,明确优化跨省旅游管理政策,跨省旅游经营活动不再与风险区实施联动管理。据发布数据显示在线旅游平台“去哪儿”火车票预订量
API 小达人 API 小达人
10个月前
如何开发 RESTful、GraphQL 和 SOAP 等不同类型的 API ?
本指南将详尽探讨API开发的基本要素,包括涉及的概念、类型和协议,以及可用的最佳实践和工具。我们将从揭示API在现代软件开发中的作用开始,阐明它们如何促进不同软件组件之间的无缝通信。之后,我们将深入研究各种API类型,如RESTful、GraphQL和SOAP,并分析它们独特的特点和理想用例。接下来将讨论API设计的关键方面,重点关注API安全性、可扩展性和可维护性。我们将讨论常见的身份验证和授权机制、速率限制以及API版本控制等其他基本主题。最后,我们将介绍领先的API开发工具和框架以及文档和测试的价值,确保你具备开发高质量、高效且安全API所需的知识和资源。
曼成 曼成
7个月前
如何使用IP归属地查询API来追踪网络活动
IP归属地查询API是一种强大的工具,可以帮助您追踪网络活动并获取有关IP地址的重要信息。本文将探讨如何使用IP归属地查询API来追踪网络活动,以及它在不同领域的实际应用。