首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >计算日出结束/日落开始

计算日出结束/日落开始
EN

Stack Overflow用户
提问于 2016-05-05 10:04:24
回答 2查看 198关注 0票数 1

在PyEphem中,我可以计算日出时间。没问题。我想要的是:什么时候太阳的底部从地平线上分离出来?一种明显但不正确的方法是当太阳的中心位于1/2 *(太阳大小以度为单位)时。由于大气的影响,这是很不靠谱的。

日落也有同样的问题。什么时候太阳的底部接触到地平线?

对此有标准的修正吗?与将日出/日落的地平线设置为-34角分钟相同吗?

EN

回答 2

Stack Overflow用户

发布于 2016-05-12 02:33:14

The PyEphem page for Rising, Transit, Setting建议,为了与美国气象局的太阳升起年历数据相匹配,你可以关闭折射(通过将气压设置为零),并将地平线设置为低于正常水平的弧线34分钟:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import ephem
>>> atlanta = ephem.Observer()
>>> atlanta.pressure = 0
>>> atlanta.horizon = '-0:34'
>>> atlanta.lat, atlanta.lon = '33.8', '-84.4'
>>> atlanta.date = '2009/09/06 17:00' # noon EST
>>> print(atlanta.previous_rising(ephem.Sun()))

现在,如果你将地平线向上移动太阳的整个视直径,previous_rising会告诉你太阳的顶端什么时候到达这个地平线(假设没有折射),这将恰好发生在太阳的下端到达正常地平线下的34分钟弧线时(同样假设没有折射),这是(遵循USNO的做法)当考虑折射的情况下太阳的下端将处于正常地平线的预测时间。

请注意,正如this page at the USNO site,上的USNO技术定义和计算详细信息标题下所述,当太阳的中心低于地平线50分钟弧线时,太阳的USNO rise/set time就会告诉我们,而不考虑当时太阳的实际视直径。实际上,他们假设太阳半径为16分钟的弧线,折射为34分钟的弧线。此外,在“Accuracy of rise/set computations”副标题下指出,由于不可预测的大气条件,“即使在理想条件下(例如,海上晴朗的天空),计算的上升或set时间可能会有一分钟或更长的误差”。如果你在更高的纬度,效果会变得更糟。

有鉴于此,一个合理的程序可能是假设太阳直径为32分钟的弧线;然后要预测日出的结束而不是开始,您可以更改这条线

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> atlanta.horizon = '-0:34'

在PyEphem示例代码中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> atlanta.horizon = '-0:02'
票数 2
EN

Stack Overflow用户

发布于 2016-05-12 01:35:54

我有一个似乎可行的近似解决方案。如果有人知道更优雅的解决方案的话。请大声点。

日出时:太阳的中心大约在。-34‘-(太阳直径)/2。太阳的顶部似乎在地平线上。假设-34‘的修正在地平线附近是恒定的。(一个很大的假设)

当太阳向上移动1个太阳直径时,太阳的底部将在地平线上。

今天早上:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    time_of_sunrise = obs.previous_rising(ephem.Sun(), ephem.now())
    obs.date = time_of_sunrise
    sun.compute(obs)
    angle_sun_center_sunrise = sun.alt / degree ( about -0.84' )
    sun_dia_at_sunrise = sun.size / 3600

用二分搜索找到日出的尽头。伪代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    adjTm = 6 minutes
    sunriseEnd = time_of_sunrise + adjTm
    obs.date = sunriseEnd
    sun.compute(obs)

检查sun.alt是否在(angle_sun_center_sunrise + sun_dia_at_sunrise)的X公差范围内

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
If out of tol.:
    set adjTm = adjTm/2
    adjust obs.date by sunriseEnd +/- adjTm
repeat until within tolerance.

日落也是如此。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37047725

复制
相关文章
Qml引用Loader组件属性
  本例子使用Loader加载myComponent组件,然后通过Loader的item属性设置myComponent的value属性。
Qt君
2023/03/17
8540
Qml引用Loader组件属性
Qml属性绑定小误区
  下面代码中,Text对象绑定了car.wheels属性。当onCompleted执行完成时,car.wheels = 6也同样执行完成了。预想结果是Text对象会动态更新,但实际上是不会更新的。
Qt君
2023/03/17
5630
Qml属性绑定小误区
从javascript脚本混淆说起
脚本病毒是一个一直以来就存在,且长期活跃着的一种与PE病毒完全不同的一类病毒类型,其制作的门槛低、混淆加密方式的千变万化,容易传播、容易躲避检测,不为广大网民熟知等诸多特性,都深深吸引着各色各样的恶意软件制作者 … 小到一个不起眼的lnk快捷方式,大到一个word文档,都是脚本的载体。本文主要以 js脚本为例(特指JScript,下同 ),具体结合实际样本,讲述混淆方式及其混淆类型检测相关知识,文章受限于样本个数及其种类,存在一定的局限性,但大致情况应当不会相差太大。本系列首先会对jscript及其脚本进行
FB客服
2018/02/28
1.5K0
从javascript脚本混淆说起
javascript脚本编辑错误集(持续更新)
Each child in a list should have a unique “key” prop Dom在渲染数组时,需要一个key,不然嵌套数组时会引起歧义 <div className="classlist-contaier"> {this.state.classList.map((item, index) => { return <ClassItem key={index}/>; })} </div> validateDOMNesting(…):
sofu456
2021/02/02
6460
Qml好用的default附加属性
  看似很没用的属性却说有用,还说好用。第一个例子看起来和常规做法差不多。那么我们看看第二个例子使用起来是如何好用的。   Group.qml组件:
Qt君
2019/07/15
1.6K0
Qml好用的default附加属性
Qml属性implicitWidth/Height与width/height区别
  implicitWidth/Height一般用在可重用控件,它也不是必要的,QtQuick可以没有者两个属性,只因为了方便而存在。qt例子描述到什么情况下用到implicitWidth/height属性,就是Image。它提供了项目的自然大小的提示,但没有强制执行此大小。图像的自然尺寸将图像文件中的一个像素映射到屏幕上的一个像素。但它允许我们拉伸它,因此大小不会被强制执行并且可以被覆盖。另外有些控件直接设置width/height会造成性能损失(Text,TextEdit).
Qt君
2019/07/15
1.7K0
QML教程-属性绑定与赋值
写QML界面会经常使用到很多的属性,其中属性的绑定与解绑尤其重要,决定着该界面属性是否能动态更新的功能。本文介绍属性的绑定与非绑定特性。 1.属性绑定 使用 :操作符,作用是左值绑定右值。 例: Item { property color myColor: "white" ... Rectangle { color: myColor ... } } color绑定父控件 myColor属性。 2.属性非绑定(解除绑定) 使用 =操作符,作用是左值解除右值绑定 例: Item {
Qt君
2019/07/15
2.1K0
如何从JavaScript对象中删除属性?
在使用 JavaScript 中的对象时,你可能会遇到需要从对象中完全删除属性的情况。为实现这一点可以有好几个选择:
疯狂的技术宅
2021/04/01
12.4K0
从网络导入Qml控件
先看一个小例子: import QtQuick 2.0 import "http://example.com/QtCompoment/" Rectangle { Button { } Label { } CheckBox { } } 步骤: example.com网站点根目录下存在一个QtComponent文件夹。 QtComponent文件夹里面包含以下文件: qmldir Button.qml Label.qml CheckBox.qml qmldir文件需要有以下内容描述
Qt君
2023/03/17
4090
从网络导入Qml控件
shell脚本实际运用_shell脚本调用另一个脚本
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168438.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
9980
git更新脚本
说明 此脚本用于更新git仓库,主要用于使用ssh克隆的仓库,使用https克隆或者直接下载的不可使用此脚本进行更新,编写此贴用于保存脚本以供后用 Linux平台 Linux平台下的脚本使用的是bash shell脚本进行编写的 #! /bin/bash ######################################## #Usage: ./update comment "msg" ######################################## echo st
impressionyang
2021/05/06
8120
用一个属性代理另一个对象的属性
今天来分享给大家一个属性代理的例子。总是有人问我属性代理有什么用,这个也许可以为你提供些思路。
bennyhuo
2020/02/20
8840
翻译 | QML编码约定
如果列表对象仅包含一个元素,则通常会省略方括号。例如,一个组件仅具有一个状态是很常见的。在这种情况下,如果这样写:
Qt君
2020/02/14
9400
JavaScript之firstChild属性、lastChild属性、nodeValue属性学习
1.数组元素childNodes[0]有更直观易读的优点,这边在介绍一个有同样功能的属性,且更加语义化-------->firstChild属性 假设我们需要目标元素节点下的所有子元素中的第一个子元素我们可以这样做: 目标元素节点下的子元素节点数组.firstChild 这句代码等价于 目标元素节点下的子元素节点数组[0]; 目标元素节点.childNodes[0] 这句代码等价于 目标元素节点.firstChild; 与此类推当我们需要目标元素节点下的所有子元素节点中的最后一个元素我们可以这样做: 目标
郑小超.
2018/01/24
1.7K0
JavaScript之childNodes属性、nodeType属性学习
1.childNodes属性:在一颗节点树上,childNodes属性可以用来获取任何一个元素的所有元素,它是一个包含这个元素所有子元素的数组。 <body> <script type="text/javascript"> function countBodyChildren() { var allelements = document.getElementsByTagName("body"); aler
郑小超.
2018/01/24
1.1K0
JavaScript数据属性和访问器属性
看《深入理解JavaScript》的this篇时看到“访问器属性”这个不熟悉的名词,百度后找到两篇感觉比较合适的文章,整合记录一下,以参考资料2为主,参考资料1为辅助补充。
WindCoder
2018/09/20
1.6K0
Three.js入门
Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象。你可以在它的主页上看到许多精采的演示。Three.js是一个伟大的开源WebGL库,WebGL允许JavaScript操作GPU,在浏览器端实现真正意义的3D。 Three.js的核心五步就是: 1.设置three.js渲染器 2.设置摄像机camera 3.设置场景scene 4.设置光源light 5.设置物体object 1.设置three.js渲染器 三维空间里的物体映射到二维平面的
李海彬
2018/03/22
7.8K0
JavaScript——对象的属性
在JavaScript中,所有的对象都是一组属性的集合,属性可以是数值,字符串等原始类型,也可以是函数,或者是其他对象。
Html5知典
2019/11/26
2.5K0
JavaScript实现私有属性
JavaScript被很多人认为并不是一种面向对象语言,原因有很多种,比如JavaScript没有类,不能提供传统的类式继承;再比如JavaScript不能实现信息的隐藏,不能实现私有成员。本文并不是为了打破以上误解(实际上笔者自己也有困惑),只是简单介绍几种JavaScript实现私有属性的方式,以及各自的优劣。 1. 基于编码规范约定实现方式 很多编码规范把以下划线_开头的变量约定为私有成员,便于同团队开发人员的协同工作。实现方式如下: function Person(name){ this._na
寒月十八
2018/01/30
9700
javascript的NaN属性
NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。
OECOM
2020/07/01
1.1K0

相似问题

从另一个QML设置QML属性

11

如何从函数内部更新QML属性

19

不更新属性别名的QML Javascript字典

11

QML从另一个QML对象访问附加属性

13

从C++更新QML窗口属性标志

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文