2014年6月27日金曜日

python3.4をインストールした。さよならpython2.7。

sudo port install python34

--->  Computing dependencies for python34
--->  Fetching archive for python34
--->  Attempting to fetch python34-3.4.1_0.darwin_13.x86_64.tbz2 from http://packages.macports.org/python34
--->  Attempting to fetch python34-3.4.1_0.darwin_13.x86_64.tbz2.rmd160 from http://packages.macports.org/python34
--->  Installing python34 @3.4.1_0
--->  Activating python34 @3.4.1_0

To make python 3.4 the default (i.e. the version you get when you run 'python'),
please run:

sudo port select --set python python34

--->  Cleaning python34
--->  Updating database of binaries
--->  Scanning binaries for linking errors               

--->  No broken files found.

sudo port select --set python python34

Selecting 'python34' for 'python' succeeded. 'python34' is now active.

/opt/local/bin/pythonがpython34にリンクされている。ってことはmacportsでダウンロードしたものは/opt/localにインストールされるのか。

でもpythonというexecutableは/usr/bin/pythonもあってこっちは2.7.7が使われる。これを削除すれば/opt/local/bin/pythonが認識されるようになるか。

とりあえずこれでpython3.4インストールだん。

次にnetcdfなど必要なものをインストール。

sudo port install py34-netcdf4 py34-matplotlib py34-scipy py34-numpy

これで全て必要なものは揃ったはず。試しに昨日python2.7.7で使ったコードを走らせてみたら無事作図された:

# import the netCDF4 module
from netCDF4 import Dataset
# open the netcdf file for reading.
ncfile = Dataset('resolute/resolute.nc','r')
# read the variable named ''
data = ncfile.variables['temp'][:]
import numpy as np
import matplotlib.pyplot as plt
import scipy.interpolate
# Generate data:
x, y, z = 10 * np.random.random((3,10))

# Set up a regular grid of interpolation points
xi, yi = np.linspace(x.min(), x.max(), 100), np.linspace(y.min(), y.max(), 100)
xi, yi = np.meshgrid(xi, yi)

# Interpolate
rbf = scipy.interpolate.Rbf(x, y, z, function='linear')
zi = rbf(xi, yi)

plt.imshow(zi, vmin=z.min(), vmax=z.max(), origin='lower',
           extent=[x.min(), x.max(), y.min(), y.max()])
plt.scatter(x, y, c=z)
plt.colorbar()
plt.show()

python初心者なので、せっかくだから2ではなく3を使ってみようと思う。

2014年6月26日木曜日

spiderを使う

pythonにはいくつかGUIがあってspiderを友達から勧められたので使ってみることに。

mac版.dmgをダウンロード→https://bitbucket.org/spyder-ide/spyderlib/downloads

spyderでデフォルトで使われているpythonはmacに初めから入っているバージョン(たぶん)なのでこれを僕の場合、netcdf4モジュールが入っている2.7.7バージョンに変更する必要がある。

右の解答を参考に変更する→http://stackoverflow.com/a/12355200

↑ここでひとつ困ったことがあった。それは使いたいpythonのexecutableを選択する際、finderアプリでは/usrディレクトリが表示されない。

↑これは次の解答を参考にするといい(http://apple.stackexchange.com/a/83006)。あとで気づいたがパスを初めからしっていればGUIでexecutableを選択せず直接パスを明記すればよかった。

変更内容をapply後、使いたいpythonのバージョンをspiderで使えるようになる。

ついにmacbookでpythonを使ってnetcdfを扱うことに成功した。

macにxcodeとmacportが入っていることを前提に…

以下のコマンドでpythonでnetcdfを認識してもらえるようにする:

sudo port install py-netcdf

以下のコマンドでpythonでnetcdfを扱えるようにする:

sudo port install netCDF4

これで、自分のmacの場合、python2.7にnetCDF4モジュールがインストールされていた。python3にインストールする方法は知らない。

あとは以下のサイトを参考にデータの読み込みを試した→http://www.unidata.ucar.edu/software/netcdf/examples/programs/simple_xy_rd.py

やった!pythonでnetcdfを扱えるようになった。

これでおきなくoctaveを削除することができる。

python用GUIであるspiderもインストールしたいがpython2.7で使えるのかな?

デフォルトのpythonを変更:

コマンドラインでpythonと入力すると/usr/bin/pythonが起動するようになっていてデフォルトはpython2.7.5で、自分の使いたいやつ(2.7.7)ではなかったのでlnコマンドを使って変更した→


ln -sf /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /usr/bin/python

調べてみると自分のmacには様々な場所にいろんなバージョンのpythonが保存されていることに気づいた(typeコマンドで調べられる。以下、pythonの場合):

type -a python
python is /usr/bin/python
python is /usr/local/bin/python

この他に/opt/local/Library/...も。

いつどれをどこからインストールしたのかはわからんが過去に①本家ホームページからマニュアルインストール、②macportを使ってインストール、③macに初めから入っているやつといろいろあるのでそれぞれ別のところに存在しているのではないかと推測。

とりあえず必要ないのは削除するかな(python3系列)。

本家ホームページを参考にいらなそうなものはuninstallした→https://docs.python.org/3/using/mac.html

これで少しはすっきり。

2014年6月17日火曜日

effect of temporal resolution

annual cycleの場合

multi-year simulationの場合























結論からいうとGOTMのサブブランチにあるWintonモデルはなんかおかしい。おそらく未完成なんだろう。

% dt = 60, 300, 600, 1200, 1800, 3600 seconds
% nsave = 1440, 288, 144, 72, 48, 24 timesteps
%
% out_ice: no eco. no T restoring.
% out_temp: no ice, no eco. no T restoring.
% out_eco: no ice. T restored every 60 sec.

directory = 'out_ice';
nfile = 6;
colid = 'kbgcrm';
figure;
for it = 1:nfile
    file=[directory '/' num2str(it) '.nc'];
subplot(221);
n = squeeze(ncread(file,'sst'));
plot(n,colid(it));
hold on;
title('SST');
subplot(222);
n = squeeze(ncread(file,'temp'));
n = squeeze(n(100,:));
plot(n,colid(it));
hold on;
title('Temperature at the first layer');
subplot(223);
n = squeeze(ncread(file,'uvic_eco_ph1'));
n = squeeze(n(100,:));
plot(n,colid(it));
hold on;
title('Small Phytoplankton at the first layer');
subplot(224);
n = squeeze(ncread(file,'uvic_eco_no3'));
n = squeeze(n(100,:));
plot(n,colid(it));
hold on;
title('Nitrate at the first layer');
end
legend('1 min','5 min','10 min','20 min','30 min','60 min');

figure;
for it = 1:nfile
file=[directory '/' num2str(it) '.nc'];
n=squeeze(ncread(file,'uvic_eco_no3'));
subplot(3,2,it);
[ax, h]=contourf(n,40);
shading flat
caxis([0 14]);
end
colorbar('location','west');

バルセロナ旅行

5月24日〜5月31日の一週間、スペイン・バルセロナへ行ってきました。

目的は4年に一度開かれるDMSPシンポジウムに参加するため→http://www.dmspsymposium.com/

でも観光する時間も結構あったので近くだけだがいろいろ行けてよかった。

実際に旅行してみて感じたことを箇条書きしておくことに…

  • スペイン料理おいしい(シンプルな味付けで日本人に合う)
  • スペイン語ができなくても大丈夫(英語が話せる人が多い)
  • スリには本当に注意(実際に地下鉄で日本人老夫婦がスリ未遂にあった直後の現場を目撃した)
  • 珈琲の飲み方がうまい(小さなカップで出てくる食後のエスプレッソ「Cafe Solo」が最高においしかった)
  • 観光地にはパキスタン人労働者が多い(コンビニやお土産ショップはほとんどパキスタン人経営。バラの花束を女性に渡して売ろうとしたりランブラス通りでは声が鳥の音のようになるおもちゃを路上で披露しながら販売していた。ハラルマークのあるレストランはみんなパキスタン系の人が働いていた)
Residencia del Mar

パエリア、イカの唐揚げ、ラム肉(ハラール)

パエリア、タパス、炭酸水

Taller de Tapasで食べたタパス一式

2014年6月7日土曜日

フクシマに関するレクチャー

フクシマ原発事故による海洋汚染に関する研究で有名なウッズホール海洋研究所のケン・ブェッセラー教授がビクトリアで講義をしたので見に行った。英語のタイトルは↓
Presenting Fukushima: A View from the Ocean at St. Anne's Academy Auditorium at 7 p.m. in Victoria.
講義の様子。年配の方がたくさん聴講していた。もっと若者がくればいいのに…
初めにブェッセラー教授は2011年の東日本大震災による原発からのセシウム流出の経路と直後から現在に至までの日本近辺の海のセシウム量の変動を震災前の量と比較しながら伝えていた。これら基本的な知識は「フクシマと海」というウッズホール海洋研究所出版の「Oceanus」という雑誌で詳しく書かれているので興味のある方は是非見てほしい→http://www.whoi.edu/oceanus/flipbook/oceanusv50n1-japanese/index.html


今回の講義のなかで自分が得た新しい情報は以下の通り:
  • ハワイ及び北米西海岸ではフクシマ発のセシウムは現在のところ検出されていない。海洋モデルは2014年4月には到達して2016年頃にピークに達すると予測 (Rossi et al 2013)。 
  • 新しく取り入れようとしている計測方法を紹介(以下の写真)。
    • Wave gliderというサーフボードのような板に観測装置を取り付けて沿岸沖に流して自動的にセシウム量を観測。
    • Rad-band (Radiation Bandの略)という放射能物質量を計測してくれるバンドをサーファーの足に取り付けて海水のセシウム量などを観測。
  • 北米でもフクシマ汚染による影響を恐れて西海岸でとれた魚を食べることを拒む人がいる。ということをコミックの一コマを用いて紹介。そのうえで正しい情報を得るためには知識ある研究者が必要と主張。しかし原子化学(核化学)出身の博士号卒業生はここ数十年少なくなっている傾向にあると説明。グラフによると2005年の卒業生数は5人(これはアメリカの大学での話だと思う)。
  • 今後北米西海岸への影響を調べる為にはもっと多く(広範囲&の観測データが必要になってくる。アメリカ政府の支援が足りないので民間企業や研究機関に協力を頼んでいる。独自で開設したホームページはこちら→http://www.ourradioactiveocean.org/
これから取り入れようとしている技術を紹介。
まだまだこれからわかってくることが増えてくるという感じで今後の研究に期待。彼のように積極的に政府や民間企業に協力を求める活動はすごく大事で見習うべきだと思う。