日出日落时间以及月相查询系统设计

上传人:大米 文档编号:473704841 上传时间:2023-04-26 格式:DOC 页数:26 大小:474.80KB
返回 下载 相关 举报
日出日落时间以及月相查询系统设计_第1页
第1页 / 共26页
日出日落时间以及月相查询系统设计_第2页
第2页 / 共26页
日出日落时间以及月相查询系统设计_第3页
第3页 / 共26页
日出日落时间以及月相查询系统设计_第4页
第4页 / 共26页
日出日落时间以及月相查询系统设计_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《日出日落时间以及月相查询系统设计》由会员分享,可在线阅读,更多相关《日出日落时间以及月相查询系统设计(26页珍藏版)》请在金锄头文库上搜索。

1、学院(部)数学科学学院题 目日出日落时间以及月相月相查询系统设计论文提交日期20日出日落时间以及月相查询系统设计摘要日月变换是生活中常见的两种天文现象,日出日落与人们的生活作息密切相关,而月相中的朔望月是中国农历制定的基础。本文在前人的研究基础上,利用数值逼近的方法计算了各纬度的日出日落时间,并且在ELP-2000/82月球运行理论的基础上,以特征月相出现的时间为基准点得到各地不同时间的月相。最后设计了能够查询一个日出日落时间以及月相的系统。该系统以网页形式呈现,并且模拟了该系统在服务器上发布以及通过客户端访问的过程。关键词:日出日落时间,月相,算法AbstractThe change of

2、the sun and the moon is the two common astronomical phenomenon in life. The sunrise and sunset are closely related to the life of the people, and both the new moon and the full moon, which are a kind of phrases of the moon, is the basis for the Chinese lunar calendar. On the basis of previous studie

3、s, this paper uses the method of numerical approximation to calculate time of the sunrise and sunset of each latitude, and on the basis of the theory of ELP-2000/82 lunar operation, the phase of different locations, different time is obtained based on the occurrence time of characteristic moon phase

4、s. Finally, a system for querying a sunrise, sunset time and moon phase is designed. The system is presented in form of webpage, and it simulates the process of the system being released on the server and accessed through the client.Keywords: The Times of Sunrise and SunSet; Phrases of the Moon; Alg

5、otithm目录第1章前言31.1背景知识31.2研究现状3第2章 系统设计42.1 系统设计目标42.2 需求分析42.2.1 输入输出分析42.2.2 数据处理流程分析52.3 详细设计52.3.1 数据类的设计52.3.2 日出日落时间计算62.3.3 月相计算82.3.4 网页设计11第3章 模拟发布11第4章 改进措施及设想13第5章 总结13主要参考文献14致谢14附录15第1章 前言1.1 背景知识在我国古代,人们遵循着“日出而作,日落而息”的作息规律,在年复一年对日月运行规律的观察下,先人们制定了兼有阳历年和阴历月的历法,称为中国农历。中国农历是阴阳合历,在制定的时候需要同时考

6、虑太阳和月亮的位置,是对日月运行规律的一种反映。比如,中国农历中二十四节气的变化就是一种对太阳运行规律的反映,而农历中最基础的农历月则是根据月相的变化规律制定的,严格地以日月合朔,即新月发生的时刻作为农历月中的初一。此外,在当代城市发展过程中,道路系统是必不可少的,那么道路照明系统的重要性不言而喻,在设计城市道路照明系统的过程中,为了保证安全性,需要在日落之前打开路灯,日出之后关闭路灯,此外,在最大化利用资源的同时,又需要保证路灯开关时间与日落日出时间相差不大。再者,各城市地理位置不同,导致了日出日落时间不同,因此,如何计算不同地理位置不同日期下的日出日落时间是设计智能路灯控制系统的关键。1.

7、2 研究现状日出日落以及月相变化作为最常见的天文现象,在很久之前,人们就已经对其变化规律有过深入研究,尤其是天文技术得到充分发展的当代,其变化规律已不再是什么秘密。如在VSOP行星理论体系中给出了计算行星日心黄经的周期项系数表(L表)、计算行星日心黄纬的周期项系数表(B表)和计算行星和太阳距离的周期项系数表(R表),将这个理论应用在地球上,可以计算出某个时间太阳相对地球的位置,在这个基础上可以计算出日出日落时间。在研究地月关系上,应用比较广泛的是ELP2000-82月球理论体系,该理论是M. Chapront-Touze和J. Chapront在1983年提出的一个月球位置的半解析理论,和其它

8、的半解析理论一样,这个理论也包含一套计算方法和相应的迭代周期项。ELP-2000/82月球理论共包含37862个周期项,其中20560个用于计算月球经度,7684个用于计算月球纬度,9618个用于计算地月距离。该理论被提出之后,出现了很多基于该理论的改进或简化理论,Astronomical Algorithms一书的第四十五章就介绍了基于该理论的一种改进算法,其周期项参数都是从ELP-2000/82理论的周期项参数转换来的,并且忽略了影响比较小的周期项。用该方法计算出来的月球黄经精度只有10,月球黄纬精度只有4”,但是在以天为单位查询月相时,这样的精度已经足够,更何况这种方法计算速度还很快。在

9、本文所设计的日出日落时间以及月相查询系统中,使用了一种已经成功应用在城市路灯监控系统中的计算方法来计算日出日落时间,而对于如何计算月相,采用了Astronomical Algorithms一书中计算特征月相(即新月,半满上下弦月和满月)的算法,在此基础上计算某个时间段的月相。第2章 系统设计2.1 系统设计目标日出日落时间以及月相查询系统主要功能是能够查询不同地理位置下的不同日期的日出日落时间以及当天的月相。该系统在形式上设计为一组网页,即一个网站。并且该系统可以根据输入的不同经纬度以及日期反馈出相应的正确结果,并且所得结果与真实值误差不能太大。当该系统设计完毕之后,将网站发表于服务器上,并且

10、能够通过客户端的浏览器访问该网站。由于条件所限,该过程也可以通过利用PC机作为模拟服务器,通过浏览器访问该网页。由于JSP页面可以被预编译,且能够很容易的和静态模板(如HTML)结合以及开发者很容易对源代码进行更新,故利用JSP技术进行网站的设计。在编译器方面,选择使用Eclipse这一软件,并且在其上加载Tomcat组件,这可以很容易地在设计过程中模拟网站发布之后的状态,便于网站的测试和修改。在网站设计结束之后的模拟测试上,同样选择Tomcat作为模拟服务器进行测试,具体配置过程见第三章。2.2 需求分析2.2.1 输入输出分析由于该系统可以根据不同地理位置以及日期给出相对应的日出日落时间以

11、及月相,可以得知该系统的输入至少有两个:经纬度以及日期情况,输出应该为当地日出日落时间以及对应月相。该过程在网站中表现为如何利用网页收集数据,对此,仿效一些网站登录界面的设计,使用表单传递数据(即经纬度和日期)。然后在其他的jsp页面处理所获得的数据,通过计算获得日出日落时间以及月相,并在网页上打印出来。2.2.2 数据处理流程分析获得确定的经纬度以及日期之后,需要根据已有的算法给出日出日落时间以及月相。但是经纬度和日期可以有很多种表示方式,为了简化系统的设计,需要对输入的格式作出一些限制。比如将东西经和南北纬用地理上标准表示法代替,将具体度数统一化为以度为单位以及限定输入的日期格式。由于表单

12、传递的数据格式一般为文本格式(可视作字符串处理),在算法过程中需要将这些数据转化为数字格式并且考虑到有其他操作的可能,所以直接建立两个数据类,在类里面定义处理文本数据(也即字符串)的方法以及其他可能用到的所有方法。将经纬度以及日期格式化之后,通过引用计算日出日落时间和月相的算法给出最终的结果。为了保证jsp页面的简洁以便于扩展和维护,将动态部分的算法(这里指计算日出日落时间以及月相的算法)写成一个Java类,并利用JavaBean技术在jsp页面中使用涉及到的所有类。2.3 详细设计2.3.1 数据类的设计在需求分析中我们经过分析知道需要设计两个数据类用来格式化表单传递的文本数据。由于表单传递

13、的数据类型为字符串,在这两个数据类中需要将字符串转化为对应的数据。我们假设将地理位置存储在GeoPoint类中,将时间信息存储在Date类中。在类GeoPoint中必须有属性表示经度和纬度,分别命名为glong和glat,对于如何区分南北纬和东西经,我们假定北纬和东经数值为正,否则数值为负数。在类Date中,需要有表示年月日的基本属性分别命名为year,month,monthDay,若需要对该类进行扩充以表示更加准确的时间可额外加上hour,minute,second等属性表示一天中的时分秒。在这两个数据类中,需要定义方法,将表单传递的字符串类型的数据转化为数字类型的数据,假定表单传递过来的地

14、理位置信息为“40N120E”,时间信息为“2001-1-1”,经过初始化之后,在类GeoPoint中,glong值为120,glat值为40,具体过程为:将字符串做为一个字符数组,分别提取数字和字母,以字母做为正负标志,然后给对应属性赋值;在类Date中,year值为2001,month值为1,monthDay值为1,其他一些属性默认为0,具体算法为:利用Java字符串分割方法Spring.split(),以“-”做为分割符分割字符串,得到年月日对应的字符串,最后转化为数字,给对应属性赋值。此外,在数据类中,可以根据其他的要求设计一些特殊的方法,比如在天文计算方面常常会涉及到天文儒略日的计算

15、。所以在Date类中预先设计将格里历(即我们所说的公元纪年)转化为儒略日期的方法如下:设Y 为给定年份,M 为月份,D 为该月日期。一般来说,如果所求日期精确到某天的具体时间的时候,将不足一天的时间长度化作以天为单位的小数。也就是说D是带小数的该月日期。若M 2,Y 和M 不变,若 M =1 或2,以Y1 代Y,以M+12 代M,换句话说,如果日期在1 月或2 月,则被看作是在前一年的13 月或14 月。对格里高利历有:A = INT(Y/100)B=2-A+INT(A/4)对儒略历,取B = 0所要求的儒略日即为: 该方法可用于计算正数年和负数年的儒略日期。该方法在Astronomical Algorithms一书的第七章可以找到。1具体的数据类的代码见附录GeoPoint和Time。2.3.2 日出日落时间计算一般地,人们把太阳从地平线升起的时刻定义为日出时刻,太阳从地平线落下的时刻定义为日落时刻。但是由于大气折射的影响,此时太阳的实际位置在地平线之下。这也是导致北半球日落最早时刻在12月初而不是冬至日,日出最早时刻在6月初而不是夏至日的原因。因此,在计算日出日落时间的时候需要考虑到大气折射导致的误差。下

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 大学论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号