本文主要是介绍利用Python包Astral计算日出日落时间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
计算日出日落,需要一个非常复杂的公式,网上刚好有一个Python包-Astral,计算出来的误差不大,免去从网上pa数据
环境:
Python:3.9
Astral:3.2
1 先安装Astral
pip install astral -i http://pypi.douban.com/simple
2 获取经纬度
经纬度拾取有诸多方式,可使用百度坐标拾取系统,
https://api.map.baidu.com/lbsapi/getpoint/
虽然是百度坐标,但误差不大
或者推荐该网站:https://sunrise.maplogs.com/zh-CN/shenzhen_guangdong_china.1583.html
里面搜索城市会有对应的经纬度显示
3 代码实现
# sun_rise_down.py
import datetime
from astral.sun import sun
from astral.moon import moonrise
from astral import LocationInfo
city = LocationInfo('Shenzhen', 'China', 'Asia/Shanghai',22.543096, 114.057865)print((f'Information for {city.name}/{city.region}\n'f'Timezone: {city.timezone}\n'f'Latitude: {city.latitude:.06f}; Longitude: {city.longitude:.06f}\n'
))dt = datetime.date(2024, 4, 26)
s = sun(city.observer, date=dt,tzinfo=city.timezone)
m = moonrise(city.observer, date=dt,tzinfo=city.timezone)print((f'Date: {dt.strftime("%Y-%m-%d")}\n'f'日出时间: {s["sunrise"].strftime("%H:%M:%S")}\n'f'日落时间: {s["sunset"].strftime("%H:%M:%S")}\n'f'月升时间: {m.strftime("%H:%M:%S")}\n'
))
以上代码保存在 sun_rise_down.py
注意:代码里面,日期、经度和纬度自行修改,"Shenzhen"这个参数随意填,不影响计算结果,其他参数可固定不改
然后执行:
python sun_rise_down.py
执行结果:
Python可以增加一个API服务,将结果通过接口返回,参数传入经纬度和日期,结果返回日出日落时间
这篇关于利用Python包Astral计算日出日落时间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!