Используя приведенную ниже пользовательскую функцию, мы можем легко преобразовать любую точку внутри нашего изображения 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)