我有太陽的經度,緯度和位置(方位角,天頂角和仰角)的衛星圖像,但沒有時間戳。從太陽的位置和觀察者的位置開始的時間
使用天文曆書的缺點,有沒有一種方法來計算從太陽的位置和圖像位置的時間?
我已經看到Matlab腳本和ArcGIS工具做了相反的操作,也就是說他們根據觀察者的經度,緯度和時間來計算太陽的位置,但我錯過了「時間」變量這種情況下,並希望找到所有的圖像。
我有太陽的經度,緯度和位置(方位角,天頂角和仰角)的衛星圖像,但沒有時間戳。從太陽的位置和觀察者的位置開始的時間
使用天文曆書的缺點,有沒有一種方法來計算從太陽的位置和圖像位置的時間?
我已經看到Matlab腳本和ArcGIS工具做了相反的操作,也就是說他們根據觀察者的經度,緯度和時間來計算太陽的位置,但我錯過了「時間」變量這種情況下,並希望找到所有的圖像。
下面是一個(稍微粗糙)的方法,因爲我所見過的位置計算器似乎並不容易反向工程,因爲「給定一個已知日期的時間」。
我拿了一個現有的太陽位置計算器,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);
我還沒有徹底的測試,但它似乎做工精細的粗略估計(當然,假設原來的位置計算的準確度還是不錯的)。我假設你不需要比每分鐘更精確的準確度(除非你準確地測量位置)。你需要小心計算器最終如何處理時區,輸出是否是本地時間等。
既然你知道那一天,在一個循環中,你可以猜測當時的情況,獲得太陽位置,使用結果自動作出更好的猜測,直到你足夠接近。你可以做這個二進制搜索。
如果你翻動輸入格式,你可能會從Wolfram得到一個答案α。但如果您必須手動輸入大量數據點,那可能沒什麼幫助。 – jerad
你知道日期(或大概的日期?) – nkjt
jerad:的確如此。我應該更具體。 我有500多張圖片,需要15分鐘手動計算並記錄每張圖片的時間戳。 有沒有辦法(有效)一次爲許多圖像計算時間戳? nkjt:我有一天,但沒時間。 – user3245307