← All posts tagged Python

gvard
Python лытдыбр Django MySQL Что-то не выходит каменный цветок, никак не заставлю Джанго-проект и Мускуль дружить с 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
Python science astro Нашел и поставил очередную библиотеку для астрономических вычислений — pySLALIB github.com Есть надежда, что гелиоцентрическую поправку к лучевой скорости можно будет рассчитать без геморроя (как в pyMidas), тем более что из зависимостей только numpy. Посмотрим на команды sla_evp и sla_ecor. А вообще, все тут astro.washington.edu
gvard
Python ? programming А мне epydoc в качестве генератора документации нравится все больше и больше, даже фреймы уже не особо режут глаз. Более того, он помогает исправлять баги, поскольку является, по сути, парсером и выдает основательный лог. Пока вот так: spectractor.sourceforge.net
А не подскажет ли кто хорошего руководства по подготовке образцово-показательного питоньего пакета? Пока пишешь таковой в одиночестве, вмешаться и наставить на путь истинный некому. Готов работающий setup.py, почти все сабмодули пакета, но метаинформация (содержимое всяких __init__.py, __package__) меня смущает.
gvard
Python programming science math В очередной раз не осилил задачу проведения сглаживающего сплайна для задачи полуавтоматического проведения континуума у спектрального порядка. Штурм scipy.interpolate пока почти ничего толкового не дал. Все, что у меня есть — это проведение сплайна по точкам, которые натыканы мышкой на графике. В MIDAS есть процедура interp/ii, она делает в точности то, что надо: по точкам спектрального порядка, коих 1000-2000, она проводит сплайн в зависимости от заданного параметра сглаживания и порядка сплайна, выдавая гладкую кривую, на которую порядок и делится. Все, что я накопал в scipy.interpolate, хочет, чтобы сплайн шел через каждую точку вне зависимости от заданного параметра сглаживания. То есть обычно задача — добавить информации, через несколько точек проведя кривую, а тут задача наоборот — по большому массиву построить гладкую кривую, описывающую общий ход. Если б кривая была полиномом небольшой степени, наверное стоило бы использовать leastsq, но. Нужна возможность менять параметр сглаживания, чтобы игнорировать дефекты размером от 1-10 до, скажем, 20-100 пикселей, а не стараться описать их кривой. Насколько я понял, нужно копать в сторону автоматического выбора т.н. узлов сплайнаЮ а я фиг знает, как это сделать в python. Кто-нибудь в теме?..
gvard
Python science fits Сломался самописный 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
Python ? gis basemap Вот вышел matplotlib 1.0 #801839, а его тулкит basemap не обновля (зачеркнуто) наконец обновился буквально только что! Ни одного скачивания с sourceforge, спешите слить! sourceforge.net Basemap использует библиотеку geos и, собственно, matplotlib, вменяемых альтернатив для python, увы, не видел. Только почему-то в сети почти не обнаружил следов использования basemap, видимо, мало среди использующих GIS пайтонистов. Почему, интересно?..
gvard
Python numpy np.where(nparr==0)[0] отдаст массив индексов элементов nparr, удовлетворяющих условию (тут — равенство нулю). Удобная функция, пригодилась.
gvard
Python programming numpy Есть в numpy structured arrays: вроде многомерный, ан нет — одномерный с многомерным dtype. Эту хрень иногда отдает pyfits, слайсы тут не работают. Нужно его раздербанить на действительно одномерные массивы. Решение в лоб — zip(*strarr) — занимает всю память и несколько минут. Час гугления — и вот решение: nparr = strarr.view('>f8').reshape(-1,3). Оригинальный dtype: [('Wave', '>f8'), ('Flux', '>f8'), ('Sigm', '>f8')]. Сводим dtype к вменяемому, получая действительно одномерный массив и делаем reshape до трехмерного массива. Теперь можно слайсить на здоровье.
gvard
Python programming science notes Python for Large Astronomical Data Reduction and Analysis Systems.
We describe how Python is used in a large astronomy project to automatically process data from several telescopes in both the hemispheres. us.pycon.org
Презентация, примеры кода и видео. Аудио — в Python-подкасте
gvard
Python programming matplotlib Нет, ну какая красота все-таки матплотлиб! Добавление интерактивности в скрипты заняло несколько минут. Ставим точки мышкой на графике, после n-го клика окно с графиком закрывается: класс с методом __call__ в несколько строчек.
Конечно, во внутренней реализации либы не все красиво, но может к 1.0 зарефакторят.
gvard
Python ? programming math Как наиболее безболезненно посчитать интеграл под кривой в Пайтоне? Есть профиль спектральной линии, я его ограничиваю по абсциссе (x1, x2), получая замкнутый контур из трех прямых (y=x1, y=x2, x=0) и искомой кривой. Требуется посчитать "площадь" контура.
gvard
Python meld статья на Хабре о героическом допиливании Meld под винду, несмотря на обещания скорого выпуска нативной версии: habrahabr.ru Кстати, я тоже считаю Meld наиболее удобным в своей нише. Косяки в наличии, конечно, но у других их больше.