<一个GitHub徽章为…<前一 雷纳,BAE系统公司和科迪公司下一个> 黄昏的计算 发布的Ned排水沟,2019年12月6日 4次(最近30天0喜欢|5个评论 Crepusculus快乐!没听说过克雷普斯库勒斯?我待会再讲这个。相反,让我从一个有趣的事实开始:一年中最短的一天是12月21日。 怎么啦?你已经知道这个有趣的事实了?好了,自作聪明的人,接下来的问题是:最早的日落是什么时候?事实证明,它比最短的一天早得多。 听起来很疯狂,不是吗?但我会证明给你看,多亏了一个可爱的文件交换提交日出通过弗朗索瓦Beauducel。正如franois所说,它“计算地球上任何地理位置的日出和日落时间”。他在巴黎环球体质研究所所以我很确定他知道自己在这里做什么。 看这个。我现在在马萨诸塞州的纳蒂克。 Lat = 42.3;Lon = -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] = sunrise(lat,lon,alt,tzone,datenum(d)); 谢谢弗朗索瓦!现在我们只需要计算时间和绘图。瞧! sriseHour = 24*(srise - floor(srise));ssetHour = 24*(sset - floor(sset));plot(d, sriseHour, d, ssetHour,)“线宽”, 3) set(gca;…“YLim”24 [0],…“YTick”,[0 6 12 18 24],…“YTickLabel”, {“午夜”,早上六点的,“中午”,下午6点的,“午夜”})标题(《日出与日落》)包含(“日期”) ylabel (“一天中的时间”)({传奇“日出”,“日落”},“位置”,“最佳”甘氨胆酸)组(,“YDir”,“反向”网格)在盒子在 你可以看到这两条曲线有些偏移。最早的日落提前了,而最晚的日出后退了,在它们之间留下了最短的一天。 在我居住的地方,今年最早的日落是在12月10日,比冬至早整整11天。 [~,ix] = min(ssetHour);d.Format =“add MMM yyyy HH:mm:ss”;最早的日落=日期时间(sset(ix),“ConvertFrom”,“datenum”);传奇(“关闭”)线(d (ix) ssetHour (ix),…“标记”,“o”,“颜色”,[0.85 0.325 0.098],…“线宽”,3,“MarkerSize”,18) 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”,“中心”) 我喜欢把这一天叫做“黄昏日”,以纪念“黄昏”这个词,意思是“属于或与黄昏有关”。我给它起个好听的名字,因为。听起来很酷。这值得庆祝!在这个日期之后,太阳将每天晚落,直到6月。这几乎和冬至本身一样好,尤其是对我们这些不经常看到太阳升起的人来说。因为它发生在冬至之前,这给了我一个迫切需要的冬至快乐的开始。 但对每个人来说都不一样!日落最早的时间随纬度而变化。多少钱?让我们看!我们将在一大堆纬度上循环并绘制一个图。 latitudeList = 1:0.2:65;最早日落= NaT(size(latitudeList)); 的NaT函数(NaT代表“Not a Time”)是分配DATETIMEs向量的一个很好的简写。它的功能类似于ONES或zero,只是用于日期。 为i = 1:length(latitudeList); lat = latitudeList(i);[srise,sset] = sunrise(lat,lon,alt,tzone,datenum(d));ssetHour = 24*(sset - floor(sset));[~,ix] = min(ssetHour);最早日落(i) = d(ix);结束情节(latitudeList earliestSunset,“。”) grid xlabel(的纬度(度)) ylabel (“最早日落日期”) 使用DIFF函数查找每一步变化的前沿。 xlim([2550]) ix = find(diff(datenum(最早的日落)))+1;持有在情节(latitudeList (ix) earliestSunset (ix),“罗”)举行从 既然表格很好,我们来做一个表格从纬度到日期的地图。 latTable = table(latitudeList(ix))',最早日落(ix)',…“VariableNames”, {“纬度”,“EarliestSunset”}) latTable =45×2表纬度最早日落________ ______________ 1.6 2019年11月05日2.2 2019年11月06日2.8 07- 2019年11月3.4 08- 2019年11月4.2 9- 2019年11月4.8 10- 2019年11月5.6 11- 2019年6.2 12- 2019年7 13- 2019年11月7.8 14- 2019年8.6 15- 2019年9.4 16- 2019年10.2 17- 2019年11.2 18- 2019年12 19- 2019年13 20- 2019年 现在是大结局。让我们使用GEOPLOT来绘制美国本土48个州的黄昏最小值。 ixLow = find(latTable.)纬度> 25,1);xhigh = find(latTable.)纬度> 48,1);长= -130:5:-60;为latTable.Latitude(latTable.Latitude);data = lattable . earestsunset (ix);geoplot (lat *的(大小(朗)),朗,“颜色”,“红色”);持有在dat。格式=“嗯d ';文本(lat,马克斯(朗),””+字符串(dat),“字形大小”, 9)结束持有从地质极限([2550],[-130 -60]) 现在让我们为欧洲做同样的事情。 ixLow = find(latTable.)纬度> 35,1);xhigh = find(latTable.)纬度> 60,1);Lons = -20:5:40;为latTable.Latitude(latTable.Latitude);data = lattable . earestsunset (ix);geoplot (lat *的(大小(朗)),朗,“颜色”,“红色”);持有在dat。格式=“嗯d ';文本(lat,马克斯(朗),””+字符串(dat),“字形大小”, 9)结束持有从地质极限([3065],[3030]) 如果你生活在这些地图所包含的地区,你现在知道什么时候庆祝Crepusculus了。如果没有,请使用我的代码进行一些快速的黄昏计算。 不管你怎么庆祝冬至,我希望你过得愉快! | 您现在正在关注这篇博客文章 您将在您的活动提要。 你可能会收到电子邮件,这取决于你的通知偏好。 类别: 文件交换 <一个GitHub徽章为…<前一 雷纳,BAE系统公司和科迪公司下一个> 另请参阅 黄昏的消息 博客 冬天的一天有多长? 博客 中午是什么时候? 博客 Contourfcmap:填充轮廓图与精确的颜色映射 SUNRISE:日出和日落时间 日出集(晚上,晚上,晚上,日期,地点) 评论 如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。