Преобразование положения пикселя в географические координаты (широта, долгота) для изображения SAR Sentinel-1 - PullRequest
0 голосов
/ 26 июня 2018

Как я могу получить географические координаты из положения x, y на снимке со спутника Sentinel-1 с синтезированной апертурой (SAR)?

Например, я могу получить доступ к информации о загруженном изображении sg как

from snappy import ProductIO
from snappy import PixelPos 
path='path_name'
product = ProductIO.readProduct(path)
sg = product.getSceneGeoCoding()

Но как я могу получить широта и долгота для желаемой точки (x, y) в sg, используя механизм привязки ESA в Python ?

1 Ответ

0 голосов
/ 26 июня 2018

Используя приведенную ниже пользовательскую функцию, мы можем легко преобразовать любую точку внутри нашего изображения sg в ее координаты (широта, долгота):

def LatLon_from_XY(ProductSceneGeoCoding, x, y):
    #From x,y position in satellite image (SAR), get the Latitude and Longitude
    geopos = ProductSceneGeoCoding.getGeoPos(PixelPos(x, y), None)
    latitude = geopos.getLat()
    longitude = geopos.getLon()
    return latitude, longitude

UPD: Из-за различных обновлений мгновенных версий вышеописанная функция может работать неправильно. Функция ниже должна работать в большинстве случаев.

def LatLon_from_XY(product, x, y):
    geoPosType = jpy.get_type('org.esa.snap.core.datamodel.GeoPos')
    geocoding = product.getSceneGeoCoding()
    geo_pos = geocoding.getGeoPos(snappy.PixelPos(x, y), geoPosType())
    if str(geo_pos.lat)=='nan':
        raise ValueError('x, y pixel coordinates not in this product')
    else:
        return geo_pos.lat, geo_pos.lon

например. для данного продукта sg мы можем получить координаты пикселя (x = 12000, y = 2000) как

latitude, longitude = LatLon_from_XY(sg, 12000, 2000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...