2012-06-29 11 views
5

Mam obraz wielkości 3712 x 3712 pikseli geostacjonarnego satelity eumetsat. Jest jakaś czarna wokół Ziemi, tak że obraz wygląda tak:Jak uzyskać szerokość i długość na piksel obrazu eumetsat za pomocą pythona?

Dla każdego piksela na ziemi, chciałbym uzyskać jego latitute i długości geograficznej. Wiem, że istnieje pyproj i udało mi się wystąpienia występ tak:

sat = pyproj.Proj('+proj=geos +lon_0 +h=035785831.0 +x_0=0 +y_0=0') 

ale geting latlon piksela (używając sat(x,y,inverse=True) gdzie x i y są współrzędne piksela w obrazie) nie jest oczywiście możliwe, ponieważ projekcji nie zna wymiaru (3712x3712) mojego obrazu.

Czego mi brakuje?

+0

Nie jestem zaznajomiony z pyproj, ale czy nie wymagałoby to "taktowania" Ziemi w oparciu o znane lokalizacje, tj. Realizując pozycję Australii względem obrazu? czy pyproj już to robi? Czy miałeś na myśli względnie długi kształt koła? –

+0

Przepraszam, nie rozumiem, o co pytasz. Chcę móc to zrobić: dla pikseli w obrazie: print latlon (pixel) – AME

+1

Jak dokładny powinien być użytkownik? Jeśli uda ci się uniknąć kilku kilometrów błędu, możesz przybliżyć Ziemię jako kulę, zrobić jakąś prostą geometrię i całkowicie zapomnieć o pyproju (nie wiem nic o pyproju, ale mogłem pomóc w geometrii). –

Odpowiedz

1

Myślę, że używasz poprawnej biblioteki projekcji i ustawień.

Typowa pikseli (km per piksel) jest podawana na stronie EUMETSAT here zgłasza około 3 kilometrów na piksel.

Można to sprawdzić, wykonując konwersję lon/lat na x, y na południku i rozdzielając go według liczby pikseli (-81 stopni, 81 stopni to maksymalny zakres, patrz strona eumetsat dla referencji, http://www.eumetsat.int/) :

import pyproj 
sat = pyproj.Proj('+proj=geos +lon_0 +h=035785831.0 +x_0=0 +y_0=0') 
x,y = sat(81.299, 0, radians = False, errcheck = True) 
print (x * 2.0/3712.0)/1000.0 

Poda wartość 2,927, która pasuje do informacji podanych przez eumetsat.

Następnie można dokonać dalszej kalibracji, definiując zestaw dobrze znanych punktów mapy (np. Cechy przybrzeżne), określając ich pozycję x/y i przeglądając ich współrzędne lat/lon on-line. Możesz spróbować z zakresu rozdzielczości pikseli i sprawdzić, który z nich najlepiej pasuje lub użyć bardziej skomplikowanej rutyny.

Rozdzielczość może zależeć od tego, jak blisko jesteś do równika, patrz here). Więc możesz potrzebować użyć powyższej procedury na kilku szerokościach geograficznych.

+0

Dziękuję bardzo! :) – AME

Powiązane problemy