20191101のMacに関する記事は7件です。

Macbook Air 11inch (Mid 2013) のBootcampにハマる(その2)

概要

前回 の続き。Windows 10は諦めて Windows8.1 に変えて試してみます。

Windows 8.1

Windows10 っではどうしてもうまく行かなかったので、Windows8.1 に切り替えることにしました。とはいえ、最新の Bootcamp アシスタントは Windows10 以外は入れさせてくれないので、以下のサイトに書かれている手段を取ります。

しかし、ここに書かれている方法を実施するには Windows 機を用意する必要があります。それも面倒なので、以下の方法でショートカットすることにしました。

1.Bootcamp アシスタントでは Windows10 の ISO ファイルを指定し、bootcampのパーティションを作成し、Windows10 の installer を開始します。ここは通常の作業どおりです。
2. Windows のインストールが始まって言語などのセットアップ画面が出たら、 option キーを押しながら電源ボタンを押して再起動し、再度 MacOS を立ち上げます。
3. Windows10のインストーラーが入っているUSBメモリのうち、以下に表示されているファイル以外を削除します(これらのファイルは残しておいてください)。

4. ディスクユーティリティを起動し、Windows8.1 の ISO ファイルをマウントします。
5. Windows8.1 のディスク内のファイル全てを USBメモリにコピーします。
6. コピーが終わったら、再度 option キーを押しながら再起動し、EFIパーティションを選択します。すると、Windows8.1 のインストールが開始されます。

これで、Windows8.1のインストールができるはずです。

Windows Update

さて、ここからが問題。Windows8.1 をインストールできても、そのままでは Windows Upadate ができません。検索すると大量に出てくる「WindowsUpdate終わらない問題」を食らうからです。Windows10 のときと同じですね。でもWindows8.1 の場合は回避できます。そのためには、以下の方法を使います。

ここを参考に、マイクロソフトのサイトから以下のファイルを取ってきてまずはこれらを先に install し、その直後に Windows Update をかけると成功するようになります。

注意点としては、

  • これら2つのファイルを事前にダウンロードしておき、ネットの接続を解除する。
  • ネットにつながない状態で Windows8.1 を再起動し、上記の update を1つずつ当てる。
  • 1つのインストールが成功したら、必ず再起動する。
  • 2つのインストールとも終わって再起動後、ネットワークに接続し、すぐに Windows Update をかける。

を実施することで、Windows Update に成功するようです。

結論

Mojave でも工夫すれば Windows 8.1 の Bootcamp が成功するのではないでしょうか。私はもう疲れました...

ちなみに、ようやく動くようになった Bootcamp での Windows8.1 ですが、電源プランを変更するだけで固まります。それはつまり、電源に接続していて、バッテリー駆動に変更すると固まることを意味します。使いにくくてたまらない。なんとかならないかなーと思っていて、ドライバ等を更新してみたけど変わらない。

半分諦めていたのですが、ふと気づきました。電源ケーブルを外してバッテリー使用に変えると固まるということは、バッテリー使用時も省電力モードにならなければよいのです。ということで、常に高パフォーマンスモードになるようにしてみました。

正解!電源ケーブルが外れてもハングアップしなくなりました。外すとガンガンバッテリーを消費していきますので、Macbook Air の本来の使い方ではないかもしれませんが、とりあえず落ちなくなったのでこれで良しとします。

補足

Bootcamp エリアもバックアップは取りましょう。無料/有料のいろいろなツールが出ていますが、オススメはディスクユーティリティで「"BOOTCAMP"からイメージ作成」を選択して BOOTCAMP.dmg を作成して TimeMachine ですかね。その分 Mac 側にディスク領域が必要ですが。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macで台風のシミュレーションを回してみる

はじめに

この記事は初めてMacで気象データを扱う方向けに書いています。

また、こちらはScaleユーザーズガイドの3.2 現実大気実験を参考に作成しています。
合わせてご覧ください。
wind_01_anim.gif
2015年台風15号のシミュレーション

シミュレーション環境のセットアップ

セットアップは別記事にまとめましたので、こちらを参考にしてください。

入力データの取得

scaleデータベースの準備

こちらのサイトからSCALE-RM用に形式を変換した標高・土地利用区分のデータを取得します。
※リンクが切れている場合はこちらの下の方にあるデータベースのリンクをクリックしてください

$ tar -zxvf scale_database.tar.gz

ダウンロードしたtarを解凍します。(できない場合はクリックで開きます)

データベースへのパスを設定します。

~/.bash_profile
$ export SCALE_DB="${path_to_directory_of_scale_database}/scale_database"
# 例えば、ホームディレクトリにデータベースファイルをおいた場合は
$ export SCALE_DB="/Users/[ユーザー名]/scale_database"

またディレクトリ間の移動を楽にするために

~/.bash_profile
export Tutorial_DIR="/Users/[ユーザー名]/scale-5.3.6/scale-rm/test/tutorial"

とすると便利です。.bash_profileを書き換えた後はsource ~/.bash_profileをするかターミナルを立ち上げ直してください。

実データの取得

FNLdata(全球再解析データ)をダウンロードできるサイトがあるのでそこからダウンロードします。こちらにアクセスしてデータを取得します。初回はユーザー登録が必要です。

  • 登録が終わった後メインページのメニューバーからData Access > Web File Listing("Union of Available Products"の横) > Faceted Browseを選択します。

  • ダウンロードしたい日時(UTCで指定することに注意)を入力して、チェック項目はスルーし、一番下の「continue」をクリックします。

    • ノートPCで行う場合はデータ量が多いと計算に時間がかかるため期間を短くするのを推奨します。
    • 今回は2015年8月23日18時から2015年8月26日18時までの72時間のデータをダウンロードしました。
  • ファイル⼀覧(.grib1 または.grib2 で終わるファイル名の書かれた表)が表⽰されるので、filenameの列をクリックして全てのファイルをダウンロードします。

次に、

$ mkdir ${Tutorial_DIR}/real/tools/FNL_input/grib[1or2]/[再解析データの年]

(例) 
$ mkdir ${Tutorial_DIR}/real/tools/FNL_input/grib2/2015

として、解析データ年に対応したディレクトリを作っておきます。
今回は2015年8月23日18時から2015年8月26日18時までのデータを扱っているので2015のディレクトリを作成しました。

このディレクトリに先ほどダウンロードしたファイルを入れましょう。

その後、scale が読めるデータ(grd 形式)に修正する作業を⾏います。
grib1 形式のデータに対しても、convert_FNL-grib2grads.sh ファイルを使ってください。

$ cd ${Tutorial_DIR}/real/tools/
$ sh convert_FNL-grib2grads.sh [計算したいはじめの時刻] [計算したい終わりの時刻] FNL_input FNL_output
(例) sh convert_FNL-grib2grads.sh 2015082318 2015082618 FNL_input FNL_output
$ ls FNL_output/*/*

とコマンドを入力して(.grd)データができれば成功です。

実験セットの準備

一個前のディレクトリ(scale-5.3.6/scale-rm/test/tutorial/real/)に戻ります

$ cd ${Tutorial_DIR}/real/
$ vi USER.sh

として、USER.shを編集します。

USER.sh
#!/bin/bash

#################################################
#
# &PARAM_COMM_CARTESC_NEST(ALL configs)
# &PARAM_TIME             (ALL configs)
# &PARAM_FILE_HISTORY     (run config)
# &PARAM_ATMOS_BOUNDARY   (run config)
# &PARAM_ATMOS_REFSTATE   (run config)
#
#################################################

NUM_DOMAIN=1 # set number of domains

RUN_DATE_YEAR=2015 #ダウンロードしたデータの開始年
RUN_DATE_MON=8 #ダウンロードしたデータの開始月
RUN_DATE_DAY=23 #ダウンロードしたデータの開始日
RUN_DATE_HOUR=18 #ダウンロードしたデータの開始時
RUN_DATE_MIN=0
RUN_DATE_SEC=0
RUN_DATE_MSEC=0

TIME_DURATION="72"[開始時から終了時までの時間]
#例えば、2015/8/23[18時]~2015/8/26[18時]なら72にする

...

# もし2005年5月31日以前のデータや2016年5月11日以降のデータを扱いたい場合は書き換える必要があります
# 表記については${Tutorial_DIR}/real/dataのファイルを参照してください
BASENAME_ORG="namelist.grads_boundary.FNL.2005053112-2016051106"

と修正し、そのディレクトリでmakeを行います

$ make

bash config/mkconf.sh


#################################################
#     SCALE-RM Configuration File Generator     #
#################################################

START DATE: 2015/08/23 - 18:00:00.000

コマンドを打つと上記のように表示されます。START DATE:部分がダウンロードしたファイルのスタート時間と一致していればOKです。
その後、real以下のディレクトリに「expreriment」というディレクトリができます。

地形データの作成

次に地形データを作成します。

$ cd ${Tutorial_DIR}/real/experiment/pp/
または、
$ cd scale-5.3.6/scale-rm/test/tutorial/real/experiment/pp/

で移動し、下記のコマンドを実行します。

$ mpirun -n 4 --oversubscribe ./scale-rm_pp pp.d01.conf

本環境では並列計算する領域の数が、物理コア数を超えているため--oversubscribeをつける必要があります。
(逆にクアッドコア以上のスペックがあるマシンの場合は、oversubscribeをつけなくても大丈夫です。)

また、実行には少し時間がかかり、実行時にアクセスの許可を求められる画面が出ることがあるので、その時は許可を押してください。

実行が終わった後、エラーメッセージが出ることもありますが、lsコマンドでtopo_d01.pe######.nclanduse_d01.pe######.ncファイルができていればmpirunには成功しています。

またpp_LOG_d01.pe000000をいうログファイルに対して、以下のコマンドを打ち、

$ tail pp_LOG_d01.pe000000
...中略...
+++++ finalize MPI...
+++++ MPI is peacefully finalized

と出ていれば正常にデータが作成されています。

逆にこのようなログが出ていない場合はUSER.shなどで失敗している可能性が高いため、experimentのディレクトリを消して、USER.shを編集するところから再び始めてください。

初期値/境界値データの作成

$ cd ${Tutorial_DIR}/real/experiment/init
または
$ cd scale-5.3.6/scale-rm/test/tutorial/real/experiment/init

でディレクトリを移動してください。

$ cp ../../data/gradsinput-link_FNL.sh ./
$ vi gradsinput-link_FNL.sh

set start dateset end dateの部分をダウンロードしたファイルの時刻に修正します。
次に先ほどダウンロードしたファイルに初期値や境界値にリンクを貼ります。

$ sh gradsinput-link_FNL.sh
...
./ATM_00000.grd -> ../../tools/FNL_output/201508/FNL_ATM_2015082318.grd
./LND_00000.grd -> ../../tools/FNL_output/201508/FNL_LND_2015082318.grd
./SFC_00000.grd -> ../../tools/FNL_output/201508/FNL_SFC_2015082318.grd
./ATM_00001.grd -> ../../tools/FNL_output/201508/FNL_ATM_2015082400.grd
./LND_00001.grd -> ../../tools/FNL_output/201508/FNL_LND_2015082400.grd
./SFC_00001.grd -> ../../tools/FNL_output/201508/FNL_SFC_2015082400.grd
... 略(ダウンロードしたgrdファイルの数だけリンクが張られます)

このような感じのリンクが作成されていれば成功です。

次にnamelistにもリンクを貼ります。mpirunで初期値・境界値データの作成を行います。
リンクについては2016年よりも前のデータを使うと仮定して貼っていますが、もし2016年以降のデータを利用したい場合は${Tutorial_DIR}/real/dataにあるファイル名を参考に置き換えてください。

$ ln -s ../../data/namelist.grads_boundary.FNL.2005053112-2016051106 ./
$ mpirun -n 4 --oversubscribe ./scale-rm_init init.d01.conf

mpirunが終了し、以下のファイルができていれば成功です。
boundary_d01.pe000000.nc
boundary_d01.pe000001.nc
boundary_d01.pe000002.nc
boundary_d01.pe000003.nc
init_d01_20150823-180000.000.pe000000.nc
init_d01_20150823-180000.000.pe000001.nc
init_d01_20150823-180000.000.pe000002.nc
init_d01_20150823-180000.000.pe000003.nc
init_LOG_d01.pe000000

また、次のコマンドで実行が正常に終了したかを確認することができます。

$ tail init_LOG_d01.pe000000 
...中略...
+++++ finalize MPI...
+++++ MPI is peacefully finalized

シミュレーションの実行

$ cd ${Tutorial_DIR}/real/experiment/run
または
$ cd scale-5.3.6/scale-rm/test/tutorial/real/experiment/run

で移動して、次のコマンドでシミュレーションを実行します。

$ mpirun -n 4 --oversubscribe ./scale-rm run.d01.conf >& log &

データ数にもよりますが、すごく時間がかかるため(MacbookAir(Mojave)で4時間ほど)バックグラウンド実行でコマンドを打っています。

シミュレーションが進んでいるかどうかは、

$ tail -n 50 LOG_d01.pe000000

でログが書き換わっているかどうかで確認できます。
実行が終了した場合は、

+++++ finalize MPI...
+++++ MPI is peacefully finalized

と出力され、以下のファイルができたら成功です。
history_d01.pe000000.nc
history_d01.pe000001.nc
history_d01.pe000002.nc
history_d01.pe000003.nc

結果の描画

最後に作成したデータから画像を生成します。

GrADSバイナリに変換

$ cd ${Tutorial_DIR}/real/experiment/net2g
または、
$ cd scale-5.3.6/scale-rm/test/tutorial/real/experiment/net2g

で移動し、2次元変数と3次元変数のnetCDF形式をGrADSで表示できるフォーマットに変更するためにmpirunを行います。

$ mpirun -n 4 --oversubscribe ./net2g net2g.2D.d01.conf
$ mpirun -n 4 --oversubscribe ./net2g net2g.3D.d01.conf

+++ MPI COMM: Corrective Finalizeと標準出力されていれば変換が成功しています。
成功すると、以下のファイルが生成されます。
MSLP_d01z-2d.ctl
MSLP_d01z-2d.grd
MSLP_d01z-2d_lccr.ctl
PREC_d01z-2d.ctl
PREC_d01z-2d.grd
PREC_d01z-2d_lccr.ctl
PRES_d01z-3d.ctl
PRES_d01z-3d.grd
PRES_d01z-3d_lccr.ctl
Umet_d01z-3d.ctl
Umet_d01z-3d.grd
Umet_d01z-3d_lccr.ctl
Vmet_d01z-3d.ctl
Vmet_d01z-3d.grd
Vmet_d01z-3d_lccr.ctl

計算結果の確認

$ cp ../../data/checkfig_real.gs ./
$ grads -blc checkfig_real.gs

を実行し、下記の名前のpngができていれば成功です。
real_mslp.png
real_prec.png
real_wind.png

また、gifファイルを作成したい場合は

$ touch wind_anim.gs
$ vi wind_anim.gs

でファイルを開き、以下の内容をコピペして${Tutorial_DIR}/real/experiment/net2gディレクトリに保存してください。

wind_anim.gs
'!mkdir wind'
'set display color white'
'set mproj nps'
'set mpdset worldmap'
'set xlint 20'
'set ylint 20'
'set parea 1 9.036 1 7.5'
'set gxout grfill'
'c'
**
** WIND
**
'set parea 1 9 1 7.5'
'open U_d01z-3d_lccr.ctl'
'open V_d01z-3d_lccr.ctl'
'set grads off'
***'set lev 500'
'set lev 850'
count=1
while(count<=73)
'set grads off'
'set t 'count
'color 5 45 5'
'd sqrt(u*u+v.2*v.2)'
'cbarn'
***'set clevs 5 10 15 20 25 30 35 40 45 50'
'set arrscl 0.5 60'
'd u;skip(v.2,8)'
'q dims'
temp=sublin(result,5)
tim=subwrd(temp,6)
'draw title Wind (m/s) @ 850hPa on 'tim
if(count<=9)
'printim ./wind/wind_01-00'count'.png'
else
if(count<=99)
'printim ./wind/wind_01-0'count'.png'
else
'printim ./wind/wind_01-'count'.png'
endif
endif
count=count+1
'c'
'!rm -f tmp'
endwhile
'close 2'
'close 1'
'!convert -loop 1 -delay 40 ./wind/wind_01-*.png ./wind_01_anim.gif'
'quit'

その後、

$ grads
で選択画面が出るため、エンターキーを押す

$ run wind_anim.gs

をすると下記のようなpngファイルと最初にあげたようなgifが生成されます。
wind_01-009.png

参考

SCALE ユーザーズガイド:
http://r-ccs-climate.riken.jp/scale/ja/doc/index.html

wind_anim.gs:
東大三浦研・灘本さんのスクリプトを改変させていただきました。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macで気象シミュレーションをするためのセットアップ

はじめに

Macに気象のシミュレーションをするためのソフトSCALEを導入します。
SCALEとは「Scalable Computing for Advanced Library and Environment」の略で、理化学研究所計算機科学センターが中心となって開発している基盤ライブラリです。SCALEでは気候研究や天気予報を容易に様々な計算機上で行うことができます。

一部初心者向けに詳しく書いてある部分もありますが、慣れている方は読み飛ばしていただいても構いません。

インストール

コンパイルに必要なライブラリ等をインストールします。

Xcode

App Storeからインストールします。インストールには時間がかかります。

Command Line Tools

  • ターミナルで使う各種コマンドをインストールするためのものです。 Xcodeを⽴ち上げ、上のメニューバーから
    Xcode > Open Developper Tools > More Developper Tools...
    と辿ってクリックすると、 サイトが開きます。

  • Apple ID でログインするとMore Downloads for Apple Developersというページにたどり着きます。

  • 左のサーチ欄にCommand Line Toolsと打ち込み、検索すると⼀覧が表⽰されます。⾃分の MacOS に対応するものをダウンロードしてください。これは少し時間がかかります。

  • ターミナルを開いて、以下のコマンドを入力します。

$ sudo xcodebuild -license

スペースを押して⾏き、最後に”agree”と⼊⼒すれば完了です。

XQuartz

シミュレーション結果を画面で出力するためのツールです。
https://www.xquartz.org にアクセスして、最新版をダウンロードしましょう。
Macでは標準で入っている場合もあります。

GrADS (Grid Analysis and Display System)

  • GrADSのサイトの表の下にある「Earlier releases are available for…」と書いてあるところで,grads-2.1というところをクリックして,「grads-2.1.1.b0-bin-darwin13.4-withoutssl.tar」をダウンロードするとうまくいきました。

  • ダウンロードされたファイルをクリックすると展開され、 おそらくgrads-2.1.1.b0 というディレクトリが⽣成されます。

  • ターミナルで以下のコマンドを実行して実行ファイルをコピーします。

    • もし/usr/local/bin/が無い場合は先に mkdir で作ってください。
    • Downloadsのディレクトリ以外に展開した場合はDownloadsの部分を適宜変更してください。
$ cp ~/Downloads/grads-2.1.1.b0/bin/* /usr/local/bin/
  • gradslibというgradsのライブラリをインストールします。

    • 筑波大学の釜江先生が公開してくださっているライブラリがあるので今回はこちらを利用しました。
    • こちら からgradslib.zipをダウンロードします。
  • ダウンロードされたファイルをクリックすると、解凍されて gradslib というディレクトリが⽣成されます。

  • ターミナルでgradsディレクトリを作成します。

$ mkdir -p /usr/local/lib/grads
  • 次にgradslib ディレクトリの中⾝を grads ディレクトリに全てコピーします。

    • このディレクトリーには、GrADS 内で使⽤するフォントや、海岸線データ、スクリプト内で使えるコマンドなどが⼊っています。もし今後、GrADS で新たなコマンド(誰かが作ったユーザー定義のコマンドなど)を使いたい場合は、そのコマンドのスクリプトを、この grads ディレクトリにコピーすれば、使えるようになります。
$ cp ~/Downloads/gradslib/* /usr/local/lib/grads/
  • 環境変数を設定します。$ vi ~/.bash_profile とすると Vi(エディタ)で.bashrc というファイルがターミナル上で起動するので、このファイル内に以下のことを書き込んでください。
    (「i」キーを押すと⼊⼒できるようになります。マウスは使えないのでカーソル移動は⽮印キーで。)
~/.bash_profile
export PATH="$PATH:/usr/local/bin"
export GASCRP="/usr/local/lib/grads"
export GADDIR="/usr/local/lib/grads"
  • 書き終わったら、escキーを押したあとで、:wqと⼊⼒すると保存されます。保存されると、元のターミナル画⾯に戻ります。$ source ~/.bashrc とすることで、書いた内容を反映させることができます。

  • $ grads と打つと、⿊い画⾯が出てきて、ターミナルは左端が ga->に変わっていたらインストール成功です。

  • もしgradsと入力してもエラーが出る場合は再起動をしてみてください。

  • grads は、quit コマンドで終了します。

Homebrew

最後にHomebrewをインストールします。
Homebrewが入っているかどうかわからない場合はターミナルにbrewと入力して確認してみてください。
Command not foundと出た場合は下のコマンドを実行してHomebrewを入れてください。
下のバージョンは最新ではない可能性がありますので公式サイトを確認するようにしてください。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Homebrewを用いてインストールできるもの

以下はHomebrewを使ってインストールします。

  • gcc
    後述のwgrib2でXcodeのものだとエラーが出てしまうためインストールします。
$ brew install gcc
  • netcdf
$ brew install netcdf
  • open-mpi
$ brew install open-mpi
  • ncview
$ brew install ncview
  • convert
    GrADSで作成した画像をつなげて動画を作成したり、画像の拡張⼦を変えたりするのに便利なコマンドです。convert コマンドそのものをインストールするのではなく、imagemagickをインストールすれば、convert コマンドが使えるようになります
$ brew install imagemagick

wgrib2のインストール

SCALE は wgrib と wgrib2 の両方を要求しますが、wgrib は GrADS をダウンロードした時にデフォルトで入っているためここでは wgrib2 のみインストールします。

wgrib2の入手については、こちらの記事にも少し書いてあるので確認してみてください。
今更ですが、気象データを解析してみた

wgrib2を入手するために以下のコマンドを入力します。

$ curl -o wgrib2_2.0.7.tgz http://ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tgz
$ tar zxvf wgrib2_2.0.7.tgz

とあるのですが、なぜかcurlだとtarが上手く開かないためこちらからダウンロードします。ダウンロードしたものをホームディレクトリ(ターミナルを開いた時にいるディレクトリ)に移します。

$ cd grib2/
$ make

これをして上手く行くといいのですが、大抵の場合は上手く行かないため以下をターミナルに打ち込んでください。

※なお以下で示す例は執筆者がインストールした時点でのバージョンなので Homebrew で先ほどインストールしたgcc, c++, gfortranのバージョンを/usr/local/binで確かめてください(Macにデフォルトで入っているgccだとなぜかうまくいかない)。

export CC=gcc-9
export CXX=c++-9
export FC=gfortran-9

このコマンドを入力して上手く行かない場合は、

  • gradsをインストールするときに使った/usr/local/bin/INSTALLを消してからmakeする

  • .bashrcまたは.bash_profileに変な変数や文字がないか確認する

ことでうまくいくこともあります。

SCALEのコンパイル

ソースコードの入手

$ tar -zxvf scale-5.3.3.tar.gz
$ ls ./
scale-5.3.3/

tarが上手く開かない場合はクリックして解凍してください。

Makedefファイルと環境変数の設定

MacOSの場合は以下のように設定します。
他のOSの場合はSCALEユーザーズガイド(P15)を参考。

.bash_profile
export SCALE_SYS="MacOSX-gnu-ompi"
export SCALE_NETCDF_LIBS="-L/usr/local/Cellar/netcdf/4.6.3_1/lib -lnetcdf -lnetcdff"
export SCALE_NETCDF_INCLUDE="-I/usr/local/Cellar/netcdf/4.6.3_1/include"

以下は注意点です。

  • ユーザーズガイドに示された例とは環境が違うため、ガイドを写しても上手く動かないことがあります。
  • またガイドでは.bashrcに記述していますが、環境変数は.bash_profileに記述した方がトラブルが少ないです。
  • 上記のバージョンは現時点でのバーションですので変わっている可能性もあります。
    • その場合はターミナルに
$ nc-config --includedir
$ nc-config --libs

と打って表示されるディレクトリにそれぞれ書き換えてください。
(LIBSに -lnetcdffを追加するのを忘れずに)

SCALEのコンパイル

SCALE-RM のソースディレクトリに移動し、下記のコマンドによってコンパイルします。
SCALE-GMのコンパイルは今回は行わなくて大丈夫です。

$ cd scale-5.3.3/scale-rm/src
$ make -j 4

-j 4はコンパイル時の並列数を示しています。 この場合は4並列です。
並列数は実行環境に応じて設定し、推奨の並列数は 2~8 とユーザーズガイドにはあります。
コンパイルが成功すると、下記の 3 つの実行ファイルが scale-5.3.3/bin に以下に生成されたら成功です。

  • scale-rm
  • scale-rm_init
  • scale-rm_pp

後処理ツール(net2g)のコンパイル

$ cd scale-5.3.3/scale-rm/util/netcdf2grads_h
$ make -j 2

net2gという名前の実行ファイルが生成されていれば、コンパイルは成功です。

これが終わればSCALE-RMのチュートリアルができるようになります。

参考文献

SCALE ユーザーズガイド:
http://r-ccs-climate.riken.jp/scale/ja/doc/index.html

筑波大学釜江陽一先生の資料公開:
https://researchmap.jp/ykamae/%E8%B3%87%E6%96%99%E5%85%AC%E9%96%8B/

「MacbookのセットアップとSCALEモデルの最初の第⼀歩」
東京大学大学院理学系研究科 三浦研究室 灘本真実著

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac OS で ssh サーバーを踏み台にして SOCK プロクシ経由で Web ページにアクセスする例 ( #Mac #ssh )

ssh コマンドでプロクシを起動する

  • 通常のsshコマンドと同じようにユーザー名、接続先のホスト、秘密鍵などを指定できる。
  • 途中で画面が止まるが、起動したままにしておく。プロクシサーバーみたいな扱いなので、起動したままが正しい。
ssh -vND 8888 user@xxx.xxx.xxx.xxx
ssh -vND 8888 user@xxx.xxx.xxx.xxx -i ~/.ssh/some.pem

Macの設定

セキュリティ > 詳細設定 に進む

image

image

プロクシのタブ

SOCKS proxy に localhost と ssh コマンドで指定したポート番号 を入力する。

http proxy や https proxy では動かないので注意。

image

OK を押して Apply を押す。
Macのこの画面って、Applyを忘れがちなので忘れずに。

GoogleChrome などでWebサイトにアクセスする

IPアドレスが変わっているのを確認する。

確認くん

image

コンソールにはアクセスログが流れてくる

image

他のアプリでも試してみる

OSレベルでproxyを利用しているので、どのアプリでもproxy経由でのアクセスになり、コンソールにログが流れてくる。

終了方法

Settings > Network > Advanced > Proxy のタブで チェックボックスを外して OK > Apply する

image

コマンド解説

ssh -v

饒舌モード。本体動作には関係ない。ログを細かく表示してくれるから動作が分かりやすくなる。

$ man ssh | cat | grep -A 10 '\-v'
     -v      Verbose mode.  Causes ssh to print debugging messages about its
             progress.  This is helpful in debugging connection, authentica-
             tion, and configuration problems.  Multiple -v options increase
             the verbosity.  The maximum is 3.

ssh -N

リモートホストでコマンドを実行しない。port forwadingにおすすめらしい。

$ man ssh | cat | grep -A 10 '\-N'
     -N      Do not execute a remote command.  This is useful for just for-
             warding ports.

ssh -D

portにアドレスをバインドする。

$ man ssh | cat | grep -A 10 '\-D'
     -D [bind_address:]port
             Specifies a local ``dynamic'' application-level port forwarding.
             This works by allocating a socket to listen to port on the local
             side, optionally bound to the specified bind_address.  Whenever a
             connection is made to this port, the connection is forwarded over
             the secure channel, and the application protocol is then used to
             determine where to connect to from the remote machine.  Currently
             the SOCKS4 and SOCKS5 protocols are supported, and ssh will act
             as a SOCKS server.  Only root can forward privileged ports.
             Dynamic port forwardings can also be specified in the configura-
             tion file.

参考

Setting up a SOCKS proxy in Mac OS X [StartupCTO]

Configure Proxy Settings - OS Level
Now, go into your Network Control Panel, and then 'Advanced…' → 'Proxies'. Set the SOCKS Proxy (only) with your proxy settings: localhost / 8888. You DO NOT want to set the HTTP proxy, HTTPS proxy, etc.

一方その頃、大坂梅田では稲川淳二の観覧車が回っていた

proxyサーバーを立てていたがために、妙なportで接続してしまったのか、異世界の踏み台に連れられていった男がひとり、いなかったとか、いたとか、いなかったとか。

image

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/2648

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

20191101

setup.sh
brew list

#無い場合はhomebrewをインストール
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

#すでにbrewがありgitがインストールされてない場合は
brew update
$ brew install git

git --version

#gitのパス確認
which git
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

mac(catalina)でmagicTrackPadが繋がらなくなったが、なんとか治った(備忘録)

現象

mac miniを購入後、プリインストールされていたのがmojaveだったので何の躊躇もなくcatalinaにアップデート
数日、何事もなく使えていたが何となくBluetooth接続一覧を見ていたら以下の症状が出ていた。(OS再インストールしていたら知らないうちに治ってた。)
MagicTrackPadの名前が変な名前になってしまった(AppleDeveloperフォーラム)
動作には困らなかったのでその後も使ってると次第にmacとmagicTrackPadがワイヤレスで繋がらなくなってしまった!
Lightningケーブルで繋いでいれば使えていたが、やっぱりワイヤレスで使いたかったので治してみた。

原因追求

第1段階

  • mac miniの横にはこれまで使っていたmacBookProが置いてあったので干渉しているのかと思いmacBookProのBluetoothをオフにしてみたが変わらず。
  • magicTrackPadが壊れてかと思いmac miniのbluetoothをオフにしてmacBookProに繋いだらワイヤレスで動作した。


この時点でmagicTrackPadが壊れていない事を確認し、mac miniが原因だと分かる。

第2段階

購入してまだ数日しか経っていないにもう壊れてしまったのかと思い、Appleジーニアスバーを予約。まだ心の中では諦めておらず、あえて来店時間を結構先にしておいた。

この時点で結構諦めていたが、いろいろ調べていると以下の方法が出てきたので最後のチャンスだと思いトライしてみた。
Mac の SMC (システム管理コントローラ) をリセットする方法

私のmac miniは2018年モデルなので以下の方法

パターン1
Apple メニュー >「システム終了」の順に選択し、Mac がシステム終了するまで、そのまま待ちます。
電源ボタンを 10 秒間長押しします。
電源ボタンを放し、数秒待ちます。
電源ボタンをもう一度押して、Mac の電源を入れます。
パターン2
問題が解決しない場合は、以下の手順を実行してください。
Apple メニュー >「システム終了」の順に選択し、Mac がシステム終了するまで、そのまま待ちます。
電源コードを外します。
15 秒間待ちます。
電源コードを元通りにつなぎます。
5 秒間待ってから、再び電源ボタンを押して Mac の電源を入れます。

焦っていたのか自分はパターン1をせずにパターン2を行ってしまった。

結果

無事ワイヤレスで繋がりました!! ひと段落。 
Appleジーニアスバーはすぐキャンセルしました。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

mac Github .DS_Storeを登録しないようにする

目的

  • macで自動生成されるファイル.DS_Storeをgithubのリポジトリの管理から外す方法を記載する。
  • 一回の設定で全てのリポジトリで.DS_Storeを管理から外す。

実施詳細

  1. 下記コマンドを実行してHomeディレクトリに移動する。

    $ cd
    
  2. 下記コマンドを実行して.gitignore_globalファイルを作成する。

    $ vi touch ~/.gitignore_global
    
  3. 開いたtouch ~/.gitignore_globalファイルに下記の内容を記載して保存する。

    .DS_Store
    
  4. 下記コマンドを実行して設定を反映させる

    $ git config --global core.excludesfile ~/.gitignore_global
    
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む