← All posts tagged Python

gvard

Что-то не выходит каменный цветок, никак не заставлю Джанго-проект и Мускуль дружить с utf8. Все настройки в my.cnf окромя default-character-set=utf8 приводят к незапуску сервиса (Убунта, если что), settings.py проекта на ru-RU натасканы. По умолчанию syncdb делает таблицы не в utf, а сообщения админки — в нем, родимом. В итоге получается дурацкая ситуация: создаем в админке запись БД (без не-latin символов) — Ok. Пытаемся внести изменения — Warning Incorrect string value for column change_message. Конкретный рецепт для исправления: stackoverflow.com Но нельзя же так все время, надо от не-UTF в БД избавляться полностью.

gvard

Нашел и поставил очередную библиотеку для астрономических вычислений — pySLALIB github.com Есть надежда, что гелиоцентрическую поправку к лучевой скорости можно будет рассчитать без геморроя (как в pyMidas), тем более что из зависимостей только numpy. Посмотрим на команды sla_evp и sla_ecor. А вообще, все тут astro.washington.edu

gvard

А мне epydoc в качестве генератора документации нравится все больше и больше, даже фреймы уже не особо режут глаз. Более того, он помогает исправлять баги, поскольку является, по сути, парсером и выдает основательный лог. Пока вот так: spectractor.sourceforge.net
А не подскажет ли кто хорошего руководства по подготовке образцово-показательного питоньего пакета? Пока пишешь таковой в одиночестве, вмешаться и наставить на путь истинный некому. Готов работающий setup.py, почти все сабмодули пакета, но метаинформация (содержимое всяких __init__.py, __package__) меня смущает.

gvard

В очередной раз не осилил задачу проведения сглаживающего сплайна для задачи полуавтоматического проведения континуума у спектрального порядка. Штурм scipy.interpolate пока почти ничего толкового не дал. Все, что у меня есть — это проведение сплайна по точкам, которые натыканы мышкой на графике. В MIDAS есть процедура interp/ii, она делает в точности то, что надо: по точкам спектрального порядка, коих 1000-2000, она проводит сплайн в зависимости от заданного параметра сглаживания и порядка сплайна, выдавая гладкую кривую, на которую порядок и делится. Все, что я накопал в scipy.interpolate, хочет, чтобы сплайн шел через каждую точку вне зависимости от заданного параметра сглаживания. То есть обычно задача — добавить информации, через несколько точек проведя кривую, а тут задача наоборот — по большому массиву построить гладкую кривую, описывающую общий ход. Если б кривая была полиномом небольшой степени, наверное стоило бы использовать leastsq, но. Нужна возможность менять параметр сглаживания, чтобы игнорировать дефекты размером от 1-10 до, скажем, 20-100 пикселей, а не стараться описать их кривой. Насколько я понял, нужно копать в сторону автоматического выбора т.н. узлов сплайнаЮ а я фиг знает, как это сделать в python. Кто-нибудь в теме?..

gvard

Сломался самописный tiff2fits — похоже из-за cfitsio. Нашел очевидное решение: import numpy, Image, pyfits
i = Image.open('img.tif')
iarr = numpy.asarray(i)
pfits.PrimaryHDU(iarr).writeto('img.fits')
Рецепт сей работает с версии PIL 1.1.6: effbot.org Минус только в том, что PIL, похоже, не умеет работать с 16-битными трехканальными (RGB) изображениями mail.python.org а именно это и нужно =(

gvard

Вот вышел matplotlib 1.0 #801839, а его тулкит basemap не обновля (зачеркнуто) наконец обновился буквально только что! Ни одного скачивания с sourceforge, спешите слить! sourceforge.net Basemap использует библиотеку geos и, собственно, matplotlib, вменяемых альтернатив для python, увы, не видел. Только почему-то в сети почти не обнаружил следов использования basemap, видимо, мало среди использующих GIS пайтонистов. Почему, интересно?..

gvard

Есть в numpy structured arrays: вроде многомерный, ан нет — одномерный с многомерным dtype. Эту хрень иногда отдает pyfits, слайсы тут не работают. Нужно его раздербанить на действительно одномерные массивы. Решение в лоб — zip(*strarr) — занимает всю память и несколько минут. Час гугления — и вот решение: nparr = strarr.view('>f8').reshape(-1,3). Оригинальный dtype: [('Wave', '>f8'), ('Flux', '>f8'), ('Sigm', '>f8')]. Сводим dtype к вменяемому, получая действительно одномерный массив и делаем reshape до трехмерного массива. Теперь можно слайсить на здоровье.

gvard

Нет, ну какая красота все-таки матплотлиб! Добавление интерактивности в скрипты заняло несколько минут. Ставим точки мышкой на графике, после n-го клика окно с графиком закрывается: класс с методом __call__ в несколько строчек.
Конечно, во внутренней реализации либы не все красиво, но может к 1.0 зарефакторят.

gvard

Как наиболее безболезненно посчитать интеграл под кривой в Пайтоне? Есть профиль спектральной линии, я его ограничиваю по абсциссе (x1, x2), получая замкнутый контур из трех прямых (y=x1, y=x2, x=0) и искомой кривой. Требуется посчитать "площадь" контура.

gvard

статья на Хабре о героическом допиливании Meld под винду, несмотря на обещания скорого выпуска нативной версии: habrahabr.ru Кстати, я тоже считаю Meld наиболее удобным в своей нише. Косяки в наличии, конечно, но у других их больше.