#!/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
А как, собственно, получить этот самый перевод? Мне нужно что бы данные читались из текстового файла и в него же добавлялись. В текстовом файле у меня имеются географические координаты. Программа должна их считать, перевести в пиксельные координаты и потом добавить к географическим. Со считыванием и записыванием я, думаю, справлюсь.
Но не могу понять как выполнить перевод.
Допустим у меня есть координаты
lon = 30.408314
lat = 59.921566
Как их перевести в пиксельные и вывести на терминал print`ом?