2015年7月31日金曜日

[gnuplot] グラフのプロット例

二次元グラフのプロット例を以下に示します.
gnuplotのデフォルトの描画範囲は,
-10 <= x <= 10,  -1 <= y <= 1
です.このxとyの範囲を変更してプロットします.
gnuplotを起動して,ターミナルから,以下のようにタイプします.
gnuplot> plot [-2*pi:2*pi] [-1.2:1.2] sin(x)
すると,以下のようなグラフが描かれます.
続いて,以下のようにプロットします.
gnuplot> plot [-2*pi:2*pi] [-1.2:1.2] sin(x), cos(x), tan(x)
すると,3つの三角関数がプロットされ,以下のようなグラフが描かれます.
自分で定義した関数をプロットすることも可能です.
例として,二つの関数(f(x),g(x))を定義し,f(x),g(x),f(x) + g(x)をプロットします.
ターミナルから,以下のようにタイプします.
gnuplot> f(x) = x * sin(x**2) - x
gnuplot> g(x) = x**2 + 1
gnuplot> plot f(x), g(x), f(x) + g(x)
すると,以下のようなグラフが描かれます.

独立変数が2つの関数(z = f(x, y))の場合も同様にプロットできます.
ターミナルから,以下のようにタイプします.
gnuplot> splot x**2 + y**2
すると,以下のようなグラフが描かれ,グリッドで三次元関数を表現できます.
三次元グラフでは,重なりの向こう側は表示しない(隠線処理)ので,そのためのコマンドとして,"setnhidden3d"が用意されています.また,グリッドの数は"set isosamples u方向の線の数, v方向の線の数"で制御します.
例として,ターミナルから,以下のようにタイプします.
gnuplot> set hidden3d
gnuplot> set isosamples 40, 40
gnuplot> splot sin(sqrt(x**2 + y**2))/(sqrt(x**2 + y**2)) 
すると,以下のようなグラフが描かれます.
このグラフでは,"set isosamples 40, 40"というコマンドで,面を (40-1) x (40-1)のメッシュに区切っています.

簡単なデータ処理
以下のような内容のデータファイル(data.txt)を準備します.
0 0.3
1 0.9
2 4.8
3 8.1
4 14.2
データの区切りはTABで記述します.
まずは,ターミナルから
gnuplot> plot "data.txt" using 1:2
と入力すると,以下のようなグラフが描かれます.
このplotコマンドにおいて,最初のオプションは,データのファイル名("data.txt")です.続いて,"using"を用いて,ファイルの第一列がx軸,第二列がy軸であることを指定しています.

このグラフを,データ点を接続する折線グラフにするには,
gnuplot> plot 'data.txt' using 1:2 with lines
と入力します.
すると,以下のようなグラフが描かれます.
また,最小二乗法によって,任意の関数にフィッティングさせることも可能です.
上記のデータを2次関数でフィッティングする例を,以下に示します.
ターミナルから,
gnuplot> f(x)= a*x**2+b*x+c
gnuplot> fit f(x) "data.txt" using 1:2 via a, b, c
と入力すると,以下の計算結果がターミナル上に表示されます.
iter      chisq       delta/lim  lambda   a             b             c            
   0 7.9990000000e+01   0.00e+00  5.09e+00    1.000000e+00   1.000000e+00   1.000000e+00
   1 3.2185677582e+00  -2.39e+06  5.09e-01    6.230554e-01   8.299346e-01   8.806786e-01
   2 7.9861262705e-01  -3.03e+05  5.09e-02    7.411533e-01   5.098035e-01   2.273590e-01
   3 7.8628577192e-01  -1.57e+03  5.09e-03    7.429007e-01   5.283501e-01   1.459378e-01
   4 7.8628571429e-01  -7.33e-03  5.09e-04    7.428571e-01   5.285714e-01   1.457143e-01
iter      chisq       delta/lim  lambda   a             b             c            

After 4 iterations the fit converged.
final sum of squares of residuals : 0.786286
rel. change during last iteration : -7.33037e-08

degrees of freedom    (FIT_NDF)                        : 2
rms of residuals      (FIT_STDFIT) = sqrt(WSSR/ndf)    : 0.627011
variance of residuals (reduced chisquare) = WSSR/ndf   : 0.393143

Final set of parameters            Asymptotic Standard Error
=======================            ==========================
a               = 0.742857         +/- 0.1676       (22.56%)
b               = 0.528571         +/- 0.699        (132.2%)
c               = 0.145714         +/- 0.5901       (405%)

correlation matrix of the fit parameters:
                a      b      c      
a               1.000 
b              -0.959  1.000 
c               0.568 -0.735  1.000 
さらに,
gnuplot> plot f(x) with lines, "data.txt" using 1:2 with points pointtype 7 pointsize 2
と入力すると,以下のようなグラフが描かれます.
この処理では,
gnuplot> f(x)= a*x**2+b*x+c
において,フィッティング関数  f(x) = ax^2 + bx + c を定義しています.
続いて,
gnuplot> fit f(x) "data.txt" using 1:2 via a, b, c
において,変数 (a, b, c)をフィッティングパラメータとして,最小二乗法の計算を行っています.
出力された,リストの"Final set of parameters"が最も誤差の小さいフッティングパラメーターの値です.
その上で,最後の処理
gnuplot> plot f(x) with lines, "data.txt" using 1:2 with points pointtype 7 pointsize 2
で,データと,フィッティングした2次関数の両方を一度に表示させています.
また,"pointtype","pointsize"を指定しています.

上記の例では,あくまで例ということで,対話形式でのグラフ作成を行っています.
見栄えの良いグラフを作成するには,"set"コマンドを用いて,細かく出力を調整する必要があるので,それを毎回,対話形式で行うのは大変です.
gnuplotには,上記の各コマンドを1つのファイル(コマンドファイル)にして,そのコマンドファイルを実行することで,プロットを描くことができます.
この方法に関しては,別の機会に....

2015年7月30日木曜日

ターミナルの基本的なコマンド

ターミナル(Windowsではコマンドプロンプト)で使用頻度の高いコマンドを以下に示します.

機能
     Unix系(Terminal)     
     Windows(Command Prompt)
カレントディレクトリ表示
pwd
cd
カレントディレクトリ移動
cd dest
cd dest
親ディレクトリへの移動
cd ..
cd ..
ディレクトリの作成
     mkdir newd
     mkdir newd
ディレクトリ名の変更
     move source dest     
     move source dest
ディレクトリのコピー
cp -r source dest
xcopy source dest
ディレクトリの削除
rm -r target
rmdir /s target
ファイル名の変更
mv source.txt dest.txt
move source.txt dest.txt
ファイル名のコピー
cp source.txt copy.txt
copy source.txt copy.txt
ファイルの削除
rm source.txt
del source.txt

2015年7月29日水曜日

[macOS] フルパス表示する

Mac OS X (10.10.5 Yosemite)では,デフォルト設定ではフォルダを開いても,フォルダ名しか表示されません.
フルパス表示させるには,ターミナルから,

$ defaults write com.apple.finder _FXShowPosixPathInTitle -boolean true
$ killall Finder

と入力します.
するとFinderのウインドウの最上部にフルパスが表示されます.

 設定を解除する時は,ターミナルから,

$ defaults delete com.apple.finder _FXShowPosixPathInTitle
$ killall Finder

と入力します.

 設定を確認する時は,ターミナルから

defaults read com.apple.finder _FXShowPosixPathInTitle 

 と入力します.

2015年7月28日火曜日

[macOS] ターミナルからソフトウェアをアップデート

macOS X では,Mountain Lionからソフトウェア・アップデートが,Mac App Storeに統合されていますが,ターミナルからもソフトウェアをアップデートすることができます.

ターミナルから

$ softwareupdate_terminal

とすれば,自動的にアップデートが始まります.

アップデートが可能なソフトウェアのリストを確認したい場合は以下のコマンドを実行します.

$ sudo softwareupdate -l

アップデートできるソフトウェアがない場合は,以下のように表示されます.

Software Update Tool
Copyright 2002-2012 Apple Inc.

Finding available software

No new software available.

アップデートをすべて適用したい場合は以下のコマンドを実行します.

$ sudo softwareupdate -i -a

特定のソフトウェアのアップデートだけを実行したい場合は以下のコマンドにおいて,"PackageName"部分を,そのソフトウェア名に変えて実行します.

$ sudo softwareupdate -i PackageName

Appleのホームページでの記載はこちら

2015年7月27日月曜日

[macOS] Yosemite でライブラリフォルダを表示する

Mac OS X (Yosemite) では、デフォルトの設定で,ライブラリフォルダが非表示となっています.

常にライブラリフォルダを表示しておくには,ターミナルで,

$ chflags nohidden ~/Library

と入力し,returnキーを押せば,ライブラリフォルダが表示されるようになります.

2015年7月26日日曜日

DJI Phantom 2 Vision+ による空撮写真の高度比較

DJI Phantom 2 Vision+ による空撮写真の高度比較
Advanced comparison of Aerial photos by DJI Phantom 2 Vision +


撮影場所:富山県 富山市内 富山大橋周辺 [flickr]
shooting location, Toyama Ohashi in Toyama city, Toyama Prefecture

撮影高度別に比較すると,以下のようになります.夕方に撮影したので,対象が暗くて若干わかりにくいですが,当然,高度が上がっていくと見える範囲が広がります.高度150mまで上がると空撮写真の雰囲気が出てくるように思います.

Compared to each shooting altitude, it is as follows. Now that I have taken in the evening, Since the dark shooting target, Although it is difficult to understand a little, of course, a wider range of visible and altitude is going up.In shooting from altitude 150m, it will become ish aerial photos.


高度 50m [flickr]
Height 50m

高度 100m [flickr]
Height 100m

高度 150m [flickr]
Height 150m

富山大橋の撮影動画 [YouTube]
Shooting movie of The Toyama Ohashi.

2015年7月25日土曜日

[TeX] 図の挿入

挿入する図は,.texファイルと同じディレクトリに保存しておきます.

プリアンブルには,以下を記述します.
    \usepackage[dvipdfmx]{graphicx}

図の挿入する際には,以下を記述します.
    \begin{figure}[位置指定]
    \includegraphics[オプション]{ファイル名}
    \caption{図のタイトル}
    \label{参照するラベル名(任意)}
    \end{figure}

各項目に関する説明は,以下のとおりです.

[位置指定]
位置指定は,主に以下のいずれかを指定します.

  • h:記述した部分
  • t:ページの上部
  • b:ページの下部
  • p:独立したページ

[オプション]
オプションは,主に以下のいずれかを指定します.

  • width:
  • height:高さ
  • scale:拡大縮小率
  • angle:回転する角度
  • clip:はみ出しを切り取る

オプションは,カンマ" , "で区切ることで複数指定することが可能です.

2015年7月24日金曜日

[gcc] Mac OS X (Yosemite)にXcodeをインストール

macOS Sierra でもインストール方法は同様です(24, Sep. 2017)

インストール方法
最初に,統合開発環境(IDE、Integrated Development Environment)である「Xcode」をインストールした後に,Command Line Tools をインストールします.

手順は,以下のようになります.
  • インストールしたXcodeを起動
  • 上部メニューから,"Xcode" ->"Open Debeloper Tool" -> "More Developer Tools..."をクリック
  • ブラウザが起動し,Apple Develper ページが表示されるので,Apple ID,Passwordを入力し,"Sign in"をクリックしてサインイン
  • "Downloads for Apple Developers"というページが表示されるので,その中から"Command Line Tools for Xcode"の .dmgファイルをダウンロード
  • ダウンロードした .dmgファイルを開き,pkgファイルを実行
  • インストーラが起動するので,「続ける」をクリック
  • 使用許諾契約などに対して「続ける」,「同意する」をクリックして,最後に「インストール」をクリック
ターミナルからCommand Line Tools をインストールするには,
$ xcode-select --install
とします.
すでにインストールされている場合は,以下のようにかえってきます.
$ xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
続いてMacPortsやHomebrewを用いてYosemiteに対応したインストーラーをダウンロードしてインストールを行います.

MacPortsの場合
MacPortsがインストールされているかどうかを確認するには,
$ port -v
MacPorts 2.3.3
Entering interactive mode... ("help" for help, "quit" to quit)
[Users/xxx] > quit
Goodbye
とします.

MacPortsがインストールされていることを確認した上で,最新のgccのバージョンを確認するには,$ port search gcc とすると,以下のようになるので,最新バージョンを探します(この時点ではgcc49が最新).
$ port search gcc
apple-gcc40 @5494 (lang)
    Apple's version of gcc 4.0

apple-gcc42 @5666.3_15 (lang)
    Apple's version of gcc 4.2

...(ここには,過去のバージョンのリストが表示されます)...

gcc48 @4.8.5 (lang)
    The GNU compiler collection

gcc49 @4.9.3 (lang)
    The GNU compiler collection

gcc410 @5-20140817 (lang)
    this port is only a stub and has been made obsolete by gcc5

...(ここにも,β版等のリストが表示されます)...
インストールしたいバージョンを選んで,以下のように入力するとインストールが始まります.

$ sudo port install gcc**
**はバージョン(49など)

mp-gccをアクティブにしたい場合は,インストールが完了したら,
$ sudo port select --list gcc
Password:
Available versions for gcc:
mp-gcc49
none (active)
と表示されるので,


$ sudo port select gcc mp-gcc49
Selecting 'mp-gcc49' for 'gcc' succeeded. 'mp-gcc49' is now active.
とすれば,mp-gcc49がアクティブになります.

インストールの成功を確認する方法
テキストエディタを使って,以下のプログラム(helloc.c)を作成し,ファイルをデスクトップに保存します.

#include<stdio.h>
   int main() {
     printf("Hello, World\n");
     return 0;
   }

続いて,ターミナルを起動して,cdコマンドで作業ディレクトリをデスクトップに移動し,gccコマンドで,helloc.cをコンパイルします.
$ cd desktop
$ gcc helloc.c
コンパイルが成功すると,実行ファイル(a.out)が作成されるので,これを実行します.

$ ./a.out

これで,
$ ./a.out
Hello, World
と表示されれば,インストールが成功していることが確認できます.

gfortranの場合は,以下のプログラム(hellof.f90)を作成し,ファイルをデスクトップに保存します.

program hello
  print *, 'Hello World!'
end program hello

続いて,ターミナルを起動して,cdコマンドで作業ディレクトリをデスクトップに移動し,gccコマンドで,hellof.cをコンパイルします.
$ cd desktop
$ gfortran hellof.f90

コンパイルが成功すると,実行ファイル(a.out)が作成されるので,これを実行します.
$ ./a.out

これで,
$ ./a.out
Hello, World
と表示されれば,インストールが成功していることが確認できます.

2015年7月23日木曜日

[gnuplot] gnuplot 5.1をMac OS X Yosemite (ver. 10.10.3)にインストール

gnuplot 5.1をMac OS X Yosemite (ver. 10.10.3)にインストール
Install the gnuplot 5.1 to Mac OS X Yosemite (ver. 10.10.3)


インストールは,以下のサイトからダウンロードした,単独パッケージより行いました.
Installation was carried out from a single package that you downloaded from the following site.
        http://www.muskmelon.jp

        http://www.muskmelon.jp/?page_id=58

ダウンロードしたファイル (gnuplot 5.1 patchlevel 0 last modified 2015-06-15) をアプリケーションフォルダ(/ Applications)に入れればインストール完了です.
The downloaded file (gnuplot 5.1 patchlevel 0 last modified 2015-06-15), If you put in the application folder (/ Applications) installation is complete.

ダブルクリックすれば,gunplayが起動します.
Gnuplot is invoked by double-clicking.

終了は,terminalで,以下のようなコマンドを実行します.
Quit, to run the command as follows in the terminal.

         $ Exit [enter]
         $ Quit [enter]
         $ Q [enter]

Homebrew からインストールする際には,以下のようにします.

まずは,AquaTerm,X11のインストール

AquaTermのインストール
AquaTermのダウンロードページより、ダウンロード(AquaTerm-1.1.1.dmg)してインストールします.
(インストールすると,Macintosh HD>アプリケーション フォルダに AquaTerm.appができます)

X11のインストール
Mac用の X11ライブラリ XQuartz のダウンロードページより,ダウンロード(XQuartz-2.7.7.dmg)してインストール。
(インストールすると,Macintosh HD>アプリケーション>ユーティリティ フォルダに X11.appができます)

続いて,gnuplotをインストールします.
ターミナルから,

$ brew install gnuplot --with-aquaterm --with-x11

とすると,インストールが始まります(ここでは,AquaTermとX11の両方を指定しています).
インストールには多少時間がかかります.

インストールが終了したら,ターミナルからgnuplotを起動して確認します.

$ gnuplot

G N U P L O T
Version 5.0 patchlevel 1    last modified 2015-06-07 

Copyright (C) 1986-1993, 1998, 2004, 2007-2015
Thomas Williams, Colin Kelley and many others

gnuplot home:     http://www.gnuplot.info
faq, bugs, etc:   type "help FAQ"
immediate help:   type "help"  (plot window: hit 'h')

Terminal type set to 'aqua'
gnuplot> q

Terminal type set to 'aqua' というメッセージは,AquaTermが出力先に設定されている事を表しています.

確認のために再度gnuplotを起動して

gnuplot> plot sin(x)

とすると,AquaTermのウィンドウが開いて,サインカーブのグラフが表示されます.
AquaTermからX11に切り替えるときは,

gnuplot> set terminal x11
Terminal type set to 'x11'
Options are 'nopersist'

とします.