利用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服务,将结果通过接口返回,参数传入经纬度和日期,结果返回日出日落时间

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值