Найти - Пользователи
Полная версия: Как перевести географические координаты в пиксельные (скрипт перевода есть)
Начало » Центр помощи » Как перевести географические координаты в пиксельные (скрипт перевода есть)
1
Tenebras
Мне была дана функция определения координат ближайшего пикселя к указанным координатам:

 #!/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`ом?
vic57
у тебя же есть список долгот/широт всех пикселей. если из него можно получить долготу пикселя , то можно получить и пиксел долготы
>>> 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
>>>
Tenebras
Был в отъезде. возвращаюсь к вопросу. Я не понял - где у меня этот список с координатами всех пикселей?

Я правильно, понял, что он откуда-то со стороны берётся этот список?
vic57
Tenebras
# lons - список долгот всех пикселей
# lats - список широт всех пикселей
Tenebras
Это я вижу. Но писал не я скрипт. Мне его дали со словами “с помощью него ты сможешь перевести географические координаты в пиксельные”.

И вот, выше, координаты. а не перевести…

lon = 30.408314
lat = 59.921566
vic57
раз тебе дали скрипт, то должны были дать и данные - без них ничего работать не будет
Tenebras
Написал. Жду ответа. Видимо забыли дать. Не первый раз.
Isem
Tenebras
Это я вижу. Но писал не я скрипт. Мне его дали со словами “с помощью него ты сможешь перевести географические координаты в пиксельные”.
Вам в следующий раз следует запрашивать сразу пиксельные координаты.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB