我有卫星图像,包括太阳的经度,经度和位置(方位角,天顶和高程),但没有时间戳。
如果没有使用天文年历,有没有办法从太阳的位置和图像位置计算时间?
我已经看过Matlab脚本和ArcGIS工具做了相反的事情,即他们根据观察者的纬度,经度和时间来计算太阳的位置,但是我错过了这里的“时间”变量案例,并希望找到所有图像。
答案 0 :(得分:1)
因为你知道这一天,你可以在一个循环中猜测时间,获得太阳位置,使用结果自动做出更好的猜测,直到你足够接近。你可以做二元搜索。
答案 1 :(得分:1)
这是一种(略微粗略)的方法,因为我看到的位置计算器对于“给定已知日期的时间”进行逆向工程似乎并不容易。
我从文件交换中获取了现有的太阳位置计算器Sun Position。然后我为这个函数编写了两个包装器函数,以稍微更有用的格式输出信息进行搜索:
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);
我还没有对它进行过彻底的测试,但它似乎可以很好地进行粗略估计(当然,假设原始位置计算器的准确性很好)。我假设你不需要比精确度更高的准确性(除非你设法非常准确地测量位置)。您需要注意最终使用的计算器如何处理时区,输出是否为当地时间等等。