我有带有纬度、经度和太阳位置信息(方位角、天顶角和高度角)的卫星图像,但没有时间戳。
除了使用天文年历外,是否有一种方法可以根据太阳的位置和图像位置计算时间?
我看到过使用Matlab脚本和ArcGIS工具来完成相反的操作,即基于观察者的纬度、经度和时间计算太阳的位置,但在这种情况下我缺少“时间”变量,并想找出所有图像的时间。
我有带有纬度、经度和太阳位置信息(方位角、天顶角和高度角)的卫星图像,但没有时间戳。
除了使用天文年历外,是否有一种方法可以根据太阳的位置和图像位置计算时间?
我看到过使用Matlab脚本和ArcGIS工具来完成相反的操作,即基于观察者的纬度、经度和时间计算太阳的位置,但在这种情况下我缺少“时间”变量,并想找出所有图像的时间。
sun_hour
→ 计算给定日期每小时(零分钟)的位置。
sun_min
→ 给定日期和小时,计算该日期/小时前后一小时内的每分钟位置。sun_position
所需的格式给出日期和位置)编写了一个快速的时间位置函数。time.min = 0;
% find list of azimuths, find closest match
[azlist, zlist, hours] = sun_hour(time, location);
n = find(abs(azlist-azimuth)==min(abs(azlist-azimuth)));
time.hour = hours(n);
% ditto, but around the time found at previous step
[azlist, zlist, hours, minutes] = sun_min(time, location);
n = find(abs(azlist-azimuth)==min(abs(azlist-azimuth)));
% output time
time.hour = hours(n);
time.min = minutes(n);
既然你知道日期,那么你可以循环猜测时间,获取太阳位置,并使用结果自动进行更好的猜测,直到足够接近。你可以将此作为二分查找。