Форум сайта python.su
Мне была дана функция определения координат ближайшего пикселя к указанным координатам:
#!/usr/bin/python # coding: utf8 from numpy import * import scipy from matplotlib.pyplot import * #--------------------------------------------------------------------------- # Функция определения координат ближайшего пикселя к указанным координатам #--------------------------------------------------------------------------- # lon - географическая долгота, градус # lat - географическая широта, градус # lons - список долгот всех пикселей # lats - список широт всех пикселей # x - координата ближайшего пикселя по оси абсцисс # y - координата ближайшего пикселя по оси ординат def getXY(lon, lat, lons, lats): Lmin = 6371200.0 ii = 0 jj = 0 # Перебираем все пиксели for i in range(lats.shape[0]): for j in range(lats.shape[1]): try: lat1 = lat lat2 = lats[i,j] lon1 = lon lon2 = lons[i,j] if abs(lat1-lat2)>0.1 or abs(lon1-lon2)>0.1: continue # Рассчитываем расстояние между точками (lat1, lon1) и (lat2, lon2) L = 6371200.0*arccos(1.0-0.5*((cos(radians(lat2))*cos(radians(lon2))-cos(radians(lat1))*cos(radians(lon1)))**2+(cos(radians(lat2))*sin(radians(lon2))-cos(radians(lat1))*sin(radians(lon1)))**2+(sin(radians(lat2))-sin(radians(lat1)))**2)) if (L <= Lmin): Lmin = L y = i x = j except: continue return x, y
Офлайн
у тебя же есть список долгот/широт всех пикселей. если из него можно получить долготу пикселя , то можно получить и пиксел долготы
>>> a =[round(23 + 0.1*x,3) for x in xrange(10)]
>>> a
[23.0, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9]
>>> a.index(23.3)
3
>>>
Отредактировано vic57 (Ноя. 1, 2016 22:08:13)
Офлайн
Был в отъезде. возвращаюсь к вопросу. Я не понял - где у меня этот список с координатами всех пикселей?
Я правильно, понял, что он откуда-то со стороны берётся этот список?
Отредактировано Tenebras (Ноя. 28, 2016 05:12:27)
Офлайн
Tenebras
# lons - список долгот всех пикселей
# lats - список широт всех пикселей
Офлайн
Это я вижу. Но писал не я скрипт. Мне его дали со словами “с помощью него ты сможешь перевести географические координаты в пиксельные”.
И вот, выше, координаты. а не перевести…
lon = 30.408314
lat = 59.921566
Отредактировано Tenebras (Ноя. 29, 2016 04:15:12)
Офлайн
раз тебе дали скрипт, то должны были дать и данные - без них ничего работать не будет
Офлайн
Написал. Жду ответа. Видимо забыли дать. Не первый раз.
Офлайн
TenebrasВам в следующий раз следует запрашивать сразу пиксельные координаты.
Это я вижу. Но писал не я скрипт. Мне его дали со словами “с помощью него ты сможешь перевести географические координаты в пиксельные”.
Офлайн