< A GitHub Badge for the…<前一 雷纳,BAE系统公司,科迪>下一个> 黄昏的计算 发布的Ned排水沟,2019年12月6日 1次浏览(最近30天 0喜欢| 5个评论 Crepusculus快乐!没听说过Crepusculus?我待会再讲。相反,让我以一个有趣的事实开始:一年中最短的一天是12月21日。 什么?你已经知道这个有趣的事实了?好吧,自作聪明的人,接下来的问题是:最早的日落是什么时候?事实证明,它来得比最短的一天早得多。 听起来很疯狂,不是吗?但我会证明给你看的,感谢一个可爱的文件交换提交日出通过弗朗索瓦Beauducel.正如François所说,它“从地球上任何地理位置计算日出和日落时间。”他在一家巴黎环球体格研究所所以我很确定他知道他在这里做什么。 看这个。我现在在马萨诸塞州的纳蒂克。 lat = 42.3;朗= -71.3;alt = 0;tzone = 5; 我要用我们可爱的DATETIME来创建一年的日期。我打算从7月开始我的日历,因为我想12月在中间。 d = datetime (2019 7 1:365); 看到我做的了吗?我创建了一个日期矢量,从2019年7月1日到2019年7月365日!DATETIME处理“傻!”没有2019年7月200日,所以我帮你改到2020年1月16日。”这是制作日期向量的一种非常方便的方法。 SUNRISE功能期望采用老派的方式DATENUM,但这很容易做到。 [srise, sset] =日出(纬度、经度、alt、tzone datenum (d)); 谢谢弗朗索瓦!现在我们只需计算小时并绘图。瞧! sriseHour = 24*(srise - floor(srise)));ssetHour = 24*(sset - floor(sset)); / /涨停时间plot(d, sriseHour, d, ssetHour,)“线宽”甘氨胆酸,3)集,...“YLim”24 [0],...“YTick”,[0 6 12 18 24],...“YTickLabel”, {“午夜”,早上六点的,“中午”,下午6点的,“午夜”})标题(“日出日落”)包含(“日期”) ylabel (“时间”)({传奇“日出”,“日落”},“位置”,“最佳”甘氨胆酸)组(,“YDir”,“反向”网格)在盒子在 你可以看到这两条曲线有点偏移。最早的日落前进,但最晚的日出后退,在两者之间留下最短的一天。 在我住的地方,今年最早的日落时间是12月10日,离冬至还有整整11天。 [~,第九]= min (ssetHour);d.Format ='dd MMM yyyy HH:mm:ss';earliestSunset = datetime (sset (ix),“ConvertFrom”,“datenum”);传奇(“关闭”)线(d (ix) ssetHour (ix),...“标记”,“o”,“颜色”(0.85 0.325 0.098),...“线宽”3,“MarkerSize”xlim([datetime(2019,7,1) datetime(2020,7,1)]) ylim([12.0 24.0]) text(d(ix),ssetHour(ix)),...sprintf (“Crepusculus !\ n % s \ n \ n \ n \ n”字符串(earliestSunset)),...“HorizontalAlignment”,“中心”) 我喜欢称这个日期为Crepusculus,以纪念“crepuscular”这个词,意思是“属于或与黄昏有关的”。我给它取了个花哨的名字,因为1。听起来很酷。值得庆祝!在这个日期之后,太阳每天都会晚一点落山,直到六月。这几乎和冬至一样好,尤其是对我们这些不经常看到太阳升起的人来说。因为它发生在冬至之前,它让我有了一个非常需要的冬至快乐的开始。 但这对每个人都不一样!最早的日落随纬度而变化。多少钱?让我们看!我们将穿越整个纬度圈出一个图。 latitudeList = 1:0.2:65;earliestSunset = NaT(大小(latitudeList)); 的NaT函数(NaT代表“Not a Time”)是分配DATETIMEs向量的一种很好的速记方式。它的功能就像1或0,只是用于约会。 为i = 1:length(latitudeList) lat = latitudeList(i);[srise, sset] =日出(纬度、经度、alt、tzone datenum (d));ssetHour = 24*(sset - floor(sset)); / /涨停时间[~,第九]= min (ssetHour);earliestSunset (i) = d (ix);结束情节(latitudeList earliestSunset,“。”)网格包含(的纬度(度)) ylabel (“最早的日落日期”) 使用DIFF函数查找每一步变化的前沿。 xlim([25 50]) ix = find(diff(datenum(最早日落)))+1;持有在情节(latitudeList (ix) earliestSunset (ix),“罗”)举行从 既然表格很好,我们来做一个表格从纬度到现在的地图。 latTable =表(latitudeList (ix)”,earliestSunset (ix) ',...“VariableNames”, {“纬度”,“EarliestSunset”}) latTable =45×2表纬度早日落________ ______________ 1.6 05- 11- 2019 2.2 06- 11- 2019 2.8 07- 11- 2019 3.4 08- 11- 2019 4.2 - 11- 2019 4.8 - 11- 2019 5.6 - 11- 2019 6.2 - 11- 2019 7- 11- 2019 7.8 - 11- 2019 8.6 - 11- 2019 9.4 - 11- 2019 10.2 - 11- 2019 11.2 18- 11- 2019 12- 11- 2019 13- 11- 2019⋮ 现在是大结局。让我们使用GEOPLOT来描绘美国本土48个州的黄昏最低点。 ixLow =找到(latTable。1)纬度> 25日;ixHigh =找到(latTable。纬度> 48岁,1);朗= 130:5:-60;为ix = ixLow:ixHigh lat = latTable.Latitude(ix);dat = latTable.EarliestSunset (ix);geoplot (lat *的(大小(朗)),朗,“颜色”,“红色”);持有在dat。格式=“嗯d ';文本(lat,马克斯(朗),""+字符串(dat),“字形大小”, 9)结束持有从geolimits (50 [25], [-130 - -60]) 现在让我们对欧洲做同样的事情。 ixLow =找到(latTable。纬度> 35岁,1);ixHigh =找到(latTable。纬度> 60岁,1);朗= 20:5:40;为ix = ixLow:ixHigh lat = latTable.Latitude(ix);dat = latTable.EarliestSunset (ix);geoplot (lat *的(大小(朗)),朗,“颜色”,“红色”);持有在dat。格式=“嗯d ';文本(lat,马克斯(朗),""+字符串(dat),“字形大小”, 9)结束持有从geolimits([65],[0] 30日) 如果你生活在这些地图所包含的地区,你现在知道什么时候庆祝Crepusculus。如果没有,就用我的代码做一些快速的黄昏计算。 无论你如何庆祝冬至,我希望你过得愉快! | 你现在正在关注这篇博文 您将在您的活动提要. 你可能会收到电子邮件,这取决于你的通知偏好. 类别: 文件交换 < A GitHub Badge for the…<前一 雷纳,BAE系统公司,科迪>下一个> 另请参阅 中午是什么时候? 博客 冬天的一天有多长? 博客 黄昏等时:这里和那里的日出 博客 SUNRISE:日出和日落的时间 在地图上标出GPS坐标 day2serial_360day 评论 要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。