Python

日の出・日の入りの時刻を求める計算

日の出と日の入りの時刻を求めるコードをPythonで作成した。 計算方法は、参考文献(下の本)で紹介されている逐次近似法による反復計算。このコードを実行すると、2016年(変数yearで指定)の毎月3日(変数dayで指定)における東京での(緯度latitudeと経度…

PyInstallerのエラー発生状況のまとめ

PyInstallerを使って、PythonスクリプトをWindowsでの実行用にexe化しているが、自分の環境ではバージョンによってエラーになったり(exe化に失敗する)ならなかったり(exeファイルが作成される)する。エラーの原因や解決方法は現時点で不明だが、今後同じ…

IronPythonでPythonライブラリを使う

IronPythonのコードの中で、 import struct import tarfile と書いたら「No module name...」と表示されるエラーになったので、CPythonのライブラリはやはり設定すること無しでは使えそうもないと改めて実感。 そこで import sys sys.path.append(r'C:\Progr…

模様を描くためにPython Imaging Libraryを使う

PIL (Python Imaging Library)を使って図形を描く。 はるか昔に同じようなことをした記憶がある。Pillowをインストールして、python2.7で実行。円と半円を描くサンプルは以下の通り。線の幅(太さ)を調整することはできないのが痛い。 from PIL import Imag…

日本語で書かれたファイルを読み込む

日本語の文字列が書かれた、以下の内容のファイルを作成しておく。ファイル名は、test.txtとする。 あいうえお, かきくけここのファイルを読み込んで、ファイルの中身を表示する プログラムを考える。 fp = open('test.txt', 'r') for line in fp: print lin…

自分で開いたウィンドウを自分で閉じるプログラム

ウィンドウを開くのだが、ある条件になったときに開いたウィンドウを自動的に閉じたい場合が多々ある。閉じる条件はいろいろあり、閉じる方法もまたいろいろ考えられる。 ここでは、次々更新される外部ファイルの内容を読み取って、そのファイルの中に特定の…

等高線図を描く(その2)

昨日に続いて、SRTM3の標高データを可視化する。 元のデータの解像度が3秒だから、約0.001度がデータ自身の解像度となる。データ読み取り後、作図時に解像度を変えて可視化してみる。 ▲解像度を0.02度としたとき ▲解像度を0.01度としたとき ▲解像度を0.005度…

等高線図を描く

スペースシャトルによる標高データが公開されている(Shuttle Radar Topography Mission)ので、数値データを可視化してみる。 解像度は3秒なので、赤道付近は約90[m]。日本だとより細かくなっている。 ▲富士山周辺図 ▲google mapで見た周辺図完全に同じかどう…

Radio Buttonをグループ化する

Radio Buttonをグループ化するために、Group Boxを使う。それを使うことで何か良いことがあるのかというと、例えばGroup Boxのcheckableプロパティをオンにできる。すると、Group Boxにチェックが付く。 実行したときの挙動の違いは以下の通り。▲チェックし…

ツールバーの画像をリソースファイルから指定する

ツールバーを配置したアプリを作りたいが、そのとき使う画像ファイルをどこから持ってくるか。よく利用されるのがリソースファイルから画像データを持ってくる方法。その方法の手順をまとめる。「リソースブラウザ」から「リソースを編集」を選んで、「リソ…

メニューの作成(2)

メニューにショートカットキーを登録するのは、Action Editorを使う。Openのメニューを作成した時点で、アクションエディタにactionOpenが追加されている。 項目をダブルクリックすることで、「アクションを編集」ダイアログが開く。 ショートカットのボック…

メニューを作成する(ステータスバーにTipを表示する)

メニューを選んだとき、そのメニューに関する説明、注意書き等をステータスバーに表示する。 Designerでメニューを作成する。 Openメニューにマウスを重ねたとき、ステータスバーにコメントを表示するには、QActionプロパティのstatusTipに値を入力する。こ…

画像を表示するウィジェット

Graphics View widgetを使って画像を表示してみる。DesignerでGraphicsViewだけを配置する。 処理するコードは以下の通り。 import sys from GraphicsViewdemo import * from PyQt4.QtGui import * class MyForm(QtGui.QDialog): def __init__(self, pixmap,…

Webページを表示するwidget

QWebView widgetを使えばウェブページの表示ができる。 アドレスの入力欄と、表示ボタン、そしてQWebView widgetをDesignerで配置する。ファイル名は、webviewdemo.uiとする。それをwebviewdemo.pyへ変換。 動作させるコードは以下のようになる。 import sys…

タイマーを使用してストップウォッチを作成

LCD形式の時計を作成するのには、LCD Number widgetが使える。 このwidgetで時刻を表示する、ストップウォッチを作成してみる。タイマーと組み合わせて作成したコードは以下の通り。経過時刻を求めるために、QtCore.QTime.secsTo()を用いている。 import sys…

spinBoxの使い方

値が整数と実数の場合に、別々のスピンボックスが用意されている。それらを二つ配置して、足し算を実行するコードを書く。 まずDesignerで配置する。spinner.pyというファイルに変換する。 配置したものを動作させるためのコードは以下の通り。 import sys f…

ラジオボタンの使い方

下図のように、画面上にラジオボタンをDesignerで配置する。ラジオボタンに関する処理を勉強するため、数字を入力して掛算をするサンプルを作成してみた。 ▲Designerで画面のデザインを行うアプリとして動かすために、実際の処理を行うソースは以下のように…

Qt DesignerでMatplotlibのウィジェットを配置したGUI画面を作成

はじめに Qtで作成したGUI画面上で、Matplotlibで描いたグラフを描画することはできた。 しかしその場合にQt Designerは使用していなかった。画面デザインにはQt Designerを使うことが不可欠なので、Qt Designerを使う場合にグラフ画面をどのように埋め込む…

MatplotlibをQtの画面で使う

Qtで作るGUI画面に、Matplotlibで描くグラフを埋め込む。 その方法の一例を以下に示す。ここではQt Designerは使わず、ただ画面に表示させるのみ。 import sys from PyQt4 import QtGui import numpy as np from matplotlib.figure import Figure from matpl…

Qt Designerの使い方に慣れる

「Line Edit」と「Push Button」2つを適当に配置する。ボタンそれぞれのプロパティの「text」を書き換えるとボタンに表示される文字が変わる。ここでは「Clear」と「Close」に変更した。 ボタンを押したときにどこで何が起こるか、ということを定義しなけれ…

PyQtを使い始める

Qt Designerによる画面デザイン ウィジェットを適当に並べる。使い方はVisualStudioとかとほぼ同じか。完了後、uiファイルとして保存する。 uiファイルをpyファイルへ変換 バッチファイルpyuic4.batを用いる。自分の場合、C:\Python27\Lib\site-packages\PyQ…

pyInstallerの使用方法

wxPythonとMatplotlibで作ったスクリプトを、py2exeでバイナリ化しようとしたら久しぶりなので設定を忘れてしまい、どうにもこうにもできなかったので、あきらめてpyInstallerを使うことにした。参照:http://retrofocus28.blogspot.jp/2013/10/pyinstallere…

VTKのビルドとインストール

やりたいこと CentOS 6.2の64ビット版において、PythonのVTKバインディングを使いたい。つまり、コマンドラインでの操作 $ python Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2 Type "help", "copyr…

pythonスクリプトによるVTK操作のまとめ

これまで調べた、pythonスクリプトによるVTKでの絵の描き方についてまとめておく。以下の環境で動作確認済み。 実行環境:Windows 7 Professional(64bit) Python:2.6.6 (MSC v.1500 32 bit (Intel)] on win32 VTK:バージョンを調べようとしたが分からず、不…

円を描く

小さな正方形を並べて、中心からの距離に応じて色分けする。 一辺が0.02の正方形 40×40個格子状に並べる。 正方形の中心位置と(0.48, 0.5)との距離が、0.2より小さい場合色づけする。 描画は、Matplotlibで行う。コードは以下の通り。 #!/bin/env python imp…

非構造格子データを読み込んでファイルを保存するスクリプト(2)

描画するオブジェクトの見える角度を適当に調整する。 from vtk import * fname = 'sgks.flow.vtk' reader = vtkUnstructuredGridReader() reader.SetFileName(fname) reader.Update() output = reader.GetOutput() scalar_range = output.GetScalarRange() …

非構造格子データを読み込んでファイルに保存するスクリプト

vtkで図形を描いてファイルに保存する。pythonを使う。 やっとできるようになった。参考:http://home.hiroshima-u.ac.jp/~tyoshida/dokuwiki/vtkソースコードは以下の通り。 from vtk import * fname = 'tube.vtk' reader = vtkUnstructuredGridReader() re…

mlabで画像ファイルが保存できない

Mayaviで描いた図を画像ファイルとして保存したいだけなのだが、うまくいかない。 http://www.sam.math.ethz.ch/~hheumann/Tutorial/html/mayavi2_tips.htmlにあるサンプルコードを実行する。 実行環境は以下の通り。 Windows 7 Professional python 2.6.6 (…

wx.DirDialogのスタイル

ディレクトリ(フォルダ)選択ダイアログを開きたいときには、wx.DirDialogを使う。そのとき指定できるスタイルは以下の通り。(参照:wxPython API Documentation — wxPython Phoenix 4.0.3 documentation) スタイル 説明 wx.DD_DEFAULT_STYLE デフォルトの…

開発環境のモジュールのバージョンを記録しておく

現在のPython用開発環境は以下の通り。 まずLinuxの方。 ######################################################### System Information date: Wed May 23 09:28:21 2012 ##########################################################******** distributio…