воскресенье, 6 апреля 2014 г.

Python for Windows 2. Питон для виндоуз 2. Python(x,y)

Многие в науке работают под Windows. Это нормально. Работать под Linux, на мой взгляд, удел либо молодых, которым не лень осваивать новое и неизведанное, либо для пожилых, которые имеют закалку ещё под Unix. В любом случае, работа с *nix-подобными системами требует определенного уровня работы с ОС, это не "уверенный пользователь ПК". Ну и требуется знание английского, конечно.
Для не объемных и не вычислительных задач MS Excel успешно заменяет все языки программирования. Много-много диссертаций было написано и успешно защищено с помощью MS Word и MS Excel. Но кому-то очень нужны ЯП! А отказываться от MS Word очень не хочется. Да и неудобно это, что говорить, если де-факто формат *.doc стал в нашей стране официальным форматом любой отчётности. Поэтому раз гора не идёт к Магомеду, то пусть ЯП в виде python придёт на Windows.



В этом посте я советовал использовать WinPython. Сегодня я советую не использовать его, а использовать другой дистрибутив python, а именно Python(x,y). Я узнал о его существовании из блога Н.Колдунова и после некоторого негативного опыта c WinPython решил попробовать этот пакет. Он мне понравился и сейчас я работаю с ним.
Скачать Python(x,y) можно на сайте разработчиков или перейти по ссылке с python.org. Pythonxy есть только в виде сборки для python2 (текущая версия на 05.04.2014 - 2.7.6). Если вы работаете с ним, то всё ОК. Нужен python3 - устанавливайте Winpython.

Установка Python(x,y)

NB! Не забудьте удалить предыдущие версии python с компьютера! И почистите реестр записей. Для этого можно воспользоваться, скажем, ccleaner. Рекомендую удалить папку Python27, если вы ставите эту версию, с диска C:\\, так как иначе пакет может "не встать" или "встать криво".

Всё очень просто - скачиваете *.msi файл, запускаете его, выбираете место, куда установить, и необходимые модули. Можно выбрать Full instalation, чтобы все входящие в пакет модули были установлены. Недостающие модули можно скачать с сайта разработчика pythonxy. Там, скорее всего, понадобится модуль basemap для рисования карт-схем. Дополнительные модули устанавливаете как обычные программы.
Версии модулей в пакете pythonxy отстают от топовых релизов примерно на один выпуск. Это хорошо.

IDE

Работу в pythonxy можно вести как в редакторе spyder (как и в winpython), так и в консоли ipython. Spyder хорош! Вот то, что я люблю:

1. В нём можно комментировать/раскомментировать однострочными комментариями целые блоки кода (клик правой кнопки в режиме для правшей после выделения блока кода и выбор команды Comment);

2. Здесь мощная поддержка документации прямо при разработке коде! Забыл как назыается то или иной метод объекта? Набираем, скажем "np.genfromtxt(" и ждём пока в окошке Object inspector (обычно в правом верхнем углу, вкладки окна внизу) не всплывёт описание данного метода. Или набираем np.ma. и ждём пока рядом в выпадающем меню не будет предложено выбрать доступные для объекта методы. Причём, поиск в меню умный, и можно набрав часть названия нажать Tab. Будет выбрано (как в командной строке) полное имя метода. Такие подсказки иногда не работают или выпадают не сразу. Но повторив набор команды до точки или открывающейся скобки включительно можно ожидать бонуса от spyder.

3. Можно запускать код на выполнение как с помощью python, так и с помощью ipython. Для этого нужно в окне Ipython console (название вкладки окна в левом нижнем углу экрана) вызвать кликом правой кнопки мыши команду Open an Ipython console. И нажимая Run из меню или F5 код будет выполняться с помощью ipython.

4. ВАЖНО! В spyder есть окно Variable Explorer (обычно вкладка окна, расположенного в правом верхнем углу). Там отображается информация о значениях и типах переменных, которые находятся в рабочем окружении. Так вот, если их не очищать, то удалив из кода объявление переменной можно всё равно получить  работающий с этой переменной код. Это происходит из-за того, что она уже использовалась ранее и до сих пор хранится в памяти. Такое противоречие может приводить к серьёзным ошибкам, которые трудно обнаружить. Чтобы не тащить таких ошибок нужно очищать память. В окне Variable Explorer можно удалять переменные из памяти (клик пкм на переменной и клавиша клавиатуры Delete или команда Remove) как по одной, так и все. Или можно просто выйти из spyder и зайти снова - область переменных будет чиста.

Ipython notebooks

Удобно запускать ipython notebooks. Просто запускаем скрипт (можно скинуть его на рабочий стол в виде ссылки-иконки) IPython notebook server. Находится он при установке "по умолчанию" в C:\Python27\. Запускается ноутбук в браузере по умолчанию и в папке Documents (Документы). Можно поменять папку автозапуска, для этого надо покопаться в настройках путей.

Как перевести UV в направление и скорость ветра? How to convert wind UV-components to direction and velocity?

 Всё просто.  def uv2dir(u, v):     '''     Источник:     https://github.com/blaylockbk/Ute_WRF/blob/master/functions/wind_calc...