我有一台远程Linux计算机,一个覆盆子pi,每分钟拍摄两张照片并将它们上传到Linux服务器。这些照片的名字如下:SITE-03-22-16-091543.jpeg。文件名的格式如下:Sitename-month-day-year-hourminutesecond.jepg。在通过scp发送照片之前,我使用exiv2在每张照片中嵌入了一些当地的天气日期。这样,天气条件存储在每张照片中。所有这一切都很好。我希望其中大约有15个能够每分钟向服务器发送两个快照。
在服务器端,这些照片存储在自己的SITE文件夹中。我们的想法是从每个网站制作延时视频。我们感兴趣的有四种类型的时间流逝:
1)24小时循环,从凌晨12:00到晚上11:59。
2)日出循环,从日出前30分钟到日出后2小时
3)日落循环,从日落前2小时到日落后30分钟
4)日光环,从日出前30分钟到日落后30分钟
24小时循环很简单。
日出和日落循环有点棘手。我在SourceForge(https://sourceforge.net/projects/sunwait4windows/)上下载并编写了Ian Craig的“sunwait”程序。使用命令“sunwait list rise 35.1174N 89.9711W | gawk -F:'{print $ 1 $ 2}'“产生输出0700,在我的位置太阳升起。并使用'set'选项,在我的位置生成1913年的夕阳。由于我不住在赤道,日出和日落从早上5:30到早上7:30不等。视季节而定。当然。
我有代码将图像列表编译到移动中,添加叠加层,并添加嵌入的天气数据。问题是如何在日出+ 2小时之前创建30分钟图片的列表。然后在日落前2小时+过去30分钟。最后,在日出前30分钟一直到日落+30分钟。
我确定答案是MATH!有人可以在黄砖路上开始我吗?
答案 0 :(得分:2)
awk
救援!
用你的脚本代替echo来生成时间
$ echo 07:10 |
awk -F: -v offset=30 -v path="$filepath" '{
h=$1-int(offset/60);
m=$2-offset%60;
if(m<0) {m=m+60; h--}
for(i=0;i<=150;i++)
{m++;
if(m>59) {m=m%60; h++};
printf path"%02d%02d.jpeg\n",h,m}}'
创建一个151步计数器,从给定小时分钟的偏移量(以分钟为单位)开始。对于另一种情况,输入偏移量为120.假设开始/结束时间不会更改日期。在北极周围可能不是真的!
我认为有些变量可以简化,但可以作为进一步改进的工作基础。
update:int()缺失,修复,也可以将路径作为另一个变量传递