在新英格兰,白天越来越短,越来越沉闷,我渴望阳光。这让我有点痴迷于太阳什么时候下山。但不像我们的祖先,我不需要担心太阳永远不会回来。我有一些他们没有的东西:MATLAB。为了应对白天变短,我可以准确地计算出白天开始变长的时间。对我来说,12月10日白天将开始变长。
你可能知道最短的一天是12月21日。但是最早的日落是在12月10日(在我的纬度)。因为我从来不会在黎明前醒来,所以到12月11日,我所经历的一天已经变长了。这是一个微妙的观点,但它帮助我度过了暮年(我曾经写过这种现象
之前).
D = datetime(202,1,1:365);
[~, sset_datenum] =日出(纬度,经度,0 []datenum (d));
(sset_datenum,ConvertFrom= .“datenum”);
T =小时(sset) +分钟(sset)/60 +秒(sset)/3600;
sprintf (“最早的日落\n%s”sset (ix)),...
VerticalAlignment =“底”,...
HorizontalAlignment =“正确”)
注意,所有时间都是标准时间。我们不用担心任何关于日光节约时间的废话。我喜欢把日落最早的一天叫做Crepusculus(源自拉丁语crepusculum,意为黄昏)。这是一个重要的里程碑,所以它值得一个名字!
让我们使用相同的数据,并使用它来动画日落时间使用时钟的表面。这里我们看到日落时分的时针。你可以看到这里有点不对称。白天变短的速度快于变长的速度。
现在让我们画出几个北纬地区从最晚日落到最早日落的跨度。
crepusculusTimes = 0 (size(latList));
crepusculusDates = NaT(size(latList));
colorMap = flipud(parula(10));
D = datetime(202,1,1:365);
[~,sset] = sunrise_dt(lat,lon,d);
T =小时(sset)+分钟(sset)/60+秒(sset)/3600;
sset = sset(ixLatest: ix最早);
crepusculusTimes(n) = t(ixearly);
crepusculusDates(n) = d(ixearly);
情节(d, t,线宽= 3,颜色= colorMap (n,:))
传奇(string (latList +“度”),位置=“东南”)
不出所料,离赤道越远,白天的长度变化就越大。
集(findobj (gcf“类型”,“行”),线宽= 1)
h= line(crepusculusDates,crepusculusTimes,LineWidth=2,Color=“红色”标志=“o”);
传奇(h,“Crepusculus”位置=“东南”)
暮光取决于你所在的纬度!越靠近赤道,最早的日落时间就越早。
再一次,让我们把这些信息显示在时钟的表面上。这一次,我们将不做动画,而是做一个静态的钟面,其中时针的颜色取决于一年中的月份。
[~,sset] = sunrise_dt(lat,lon,d);
T =小时(sset)+分钟(sset)/60+秒(sset)/3600;
sset = sset(ixLatest: ix最早);
gammaHr = pi/2 - 2*pi*mod(t,12)/12;
colorMap = get(gca,“ColorOrder”);
colorIxList = [1 1 1 1 1 1 2 3 4 5 6 7];
monthList = [“1月”,“2月”,“3”,“4月”,“可能”,“君”,“7”,“8月”,“9”,“10月”,“11月”,“12月”];
monthList = monthList(唯一的(月(d)));
colorIx = colorIxList(月(d(i)));
% colorIx = colorIxList(i);
color = colorMap(colorIx,:);
h (colorIx) =线([0 r * cos (gammaHr(我)],[0 r * sin (gammaHr(我))),...
line([0 x],[0 y],Color=0.5*[1 1 1])
文本(x, y, sprintf (“最晚日落\n%s”字符串(sset (1))),...
VerticalAlignment =“顶级”,...
HorizontalAlignment =“正确”)
line([0 x],[0 y],Color=0.5*[1 1 1])
文本(x, y, sprintf (“最早的日落\n %s”字符串(sset(结束))),...
VerticalAlignment =“顶级”,...
HorizontalAlignment =“左”)
monthList = [“1月”,“2月”,“3”,“4月”,“可能”,“君”,“7”,“8月”,“9”,“10月”,“11月”,“12月”];
monthList = monthList(唯一的(月(d)));
这张图显示了大约半年的时间,从6月最晚的日落到12月最早的日落。
最后,这是一个日落可视化的动画,上面显示了它随着纬度的变化。再一次,我们看到赤道日的长度变化不大。
你更喜欢哪一种:热带地区稳定的白昼长度,还是以短暂的冬日为代价的漫长夏日?
H = hours(get(ax,“YTick”)小时(12);
hStr = replace(string(h), textBoundary+“0”,"") +“点”;
集(gca, YTickLabels = hStr,...
コメント
コメントを残すには,ここをクリックしてMathWorksアカウントにサインインするか新しいMathWorksアカウントを作成します。