2012-06-29 17 views
5

Jeostatuar bir eumetsat uydusunun 3712x3712 piksel boyutunda bir görüntüsüne sahibim. Görüntü aşağıdaki gibi olacak şekilde yeryüzünde çevresindeki bazı siyah vardır:Python kullanarak bir eumetsat görüntüsünün pikseli için enlem ve boylam nasıl alınır?

yeryüzünün her piksel için, ben onun ENLEMİ ve boylam almak istiyorum. projeksiyon beri açıkça mümkün değildir (x ve y görüntüde pikselin koordinatları sat(x,y,inverse=True) kullanarak)

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

ancak pikselin LatLon geting: Ben pyproj var olduğunu biliyorum ve bu yüzden böyle bir projeksiyon örneğini başardı görüntünün boyutunu (3712x3712) bilmiyor.

Neyi eksik?

+0

pyproj'ı aşina değilim ama bu dünyanın bilinen bazı konumlara göre "saatini" gerektirmemesi, yani resme göre avustralya'nın konumunu gerçekleştirmesi gerekmez mi? pyproj bunu zaten yapıyor mu? Yoksa sadece dairesel bir şeklin uzunluğunu mu demek istediniz? –

+0

Üzgünüz, ne soruyorsun anlamıyorum. Bunu yapmak istiyorum: görüntüde piksel için: print latlon (piksel) – AME

+1

Ne kadar doğru olmanız gerekiyor? Bir kaç kilometre hata ile kaçabilirseniz, dünyayı bir küre olarak tahmin edebilir, basit bir geometri yapabilir ve pyproj'u tamamen unutur (pyproj hakkında hiçbir şey bilmiyorum, ancak geometriye yardımcı olabilirim). –

cevap

1

Doğru projeksiyon kitaplığı ve ayarlarını kullandığınızı düşünüyorum.

Tipik piksel çözünürlüğü (piksel başına km), eumetsat web sitesinde bildirilmiştir here Piksel başına yaklaşık 3 km olduğunu bildirir.

Meridyende x, y'ye lon/lat dönüşümü yaparak ve bunu piksel sayımına göre saptırarak kontrol edebilirsiniz (-81 derece, 81 derece maksimum aralıktır, referanslar için eumetsat sitesine bakın, 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 

Size eumetsat tarafından verilen bilgilere uyan 2.927 değerini verir. Daha sonra haritanızın iyi bilinen noktalarını (örneğin kıyı özellikleri) tanımlayarak, x/y pozisyonlarını belirleyerek ve latin/lon koordinatlarını on-line olarak arayarak daha fazla kalibre edebilirsiniz. Bir dizi piksel çözünürlüğü ile deneyebilir ve hangisinin daha iyi uyup uymadığını veya daha ayrıntılı bir rutini kullanabildiğini kontrol edebilirsiniz.

Çözünürlük, ekvator için ne kadar yakın olduğunuza bağlı olabilir, bkz. here). Bu nedenle, yukarıdaki rutini birkaç enlemde kullanmanız gerekebilir.

+0

Çok teşekkür ederim! :) – AME

İlgili konular