Форум сайта python.su
0
Собственно вот скрипт. Не знаю - что и как там с ошибками… я питоном всего 4 дня общаюсь. Если укажите на косяки - буду рад и совсем не обижусь)))
А по скрипту вопрос будет ниже…
#------------------- # Главная программа #------------------- # Указываем географические координаты пункта в градусах lon = 24.295833 lat = 61.845833 # Создаем списки name = [] time = [] T006 = [] T008 = [] T016 = [] T039 = [] T067 = [] # Меняем в цикле время от 0 до N минут с шагом 15 минут, начиная с 2014-05-01 11:00 UTC for minute in range(0,15,15): # Записываем в список рассчитанное время time.append( datetime.datetime(2014, 05, 01, 15, 30) + datetime.timedelta(minutes=minute) ) print time[-1] # Загружаем данные N каналов прибора SEVIRI для всего видимого диска планеты seviri = GeostationaryFactory.create_scene("meteosat", "10", "seviri", time[-1]) globe = get_area_def("met09globeFull") seviri.load([0.6, 0.8, 1.6, 3.9, 6.7], area_extent=globe.area_extent) # Определяем координаты пикселя lons, lats = seviri[0.6].area.get_lonlats() x, y = getXY(lon, lat, lons, lats) # Добавляем данные в списки T006.append( seviri[0.6].data[x,y] ) T008.append( seviri[0.8].data[x,y] ) T016.append( seviri[1.6].data[x,y] ) T039.append( seviri[3.9].data[x,y] ) T067.append( seviri[6.7].data[x,y] ) names = [T006, T008, T016, T039, T067] nums = [0.6, 0.8, 1.6, 3.9, 6.7] # Вывод данных на терминал for num, nam in zip(nums, names): print(num, nam)
timofei@pacman:~/pytroll/data$ python myscr.py 2014-05-01 15:30:00 (0.6, [30.749451692045909]) (0.8, [38.061068649794812]) (1.6, [24.852427315860883]) (3.9, [267.44210597612334]) (6.7, [217.05953064088922])
Офлайн
857
TenebrasНужно сделать функцию, которая принимает одни координаты, а потом запустить её несколько раз для разных координат.
Так вот суть: в начале программы у меня заданы географические координаты lon и lat и мне необходимо, в конечном итоге, обработать 10 различных координат.
TenebrasНужно открыть файл, получив файловый объект. А потом писать туда через print. Можешь потренироваться на файловом объекте sys.stdout.
как мне вывести это не только в терминал, но и ещё в текстовый файл?
>>> import sys >>> >>> print >>sys.stdout, [1, 2, 3] * 2 [1, 2, 3, 1, 2, 3] >>>
Отредактировано py.user.next (Июль 7, 2016 04:02:16)
Офлайн
0
Если б я ещё знал - как эту функцию сделать.
Поставлю это в список первоочередных задач.
А пока, видимо, придётся 10 файлов делать)))
Но всё равно - несомненное Спасибо за ответ!!!
Офлайн
857
Tenebras
Если б я ещё знал - как эту функцию сделать.
>>> def f(lon, lat): ... with open('file.txt', 'a') as fout: ... s = 'longitude: {}, latitude: {}'.format(lon, lat) ... print >>fout, s ... >>> f(1, 2) >>> f(3, 4) >>>
[guest@localhost py]$ cat file.txt
longitude: 1, latitude: 2
longitude: 3, latitude: 4
[guest@localhost py]$
Офлайн