2019/12/14

MP-CD1 モバイルプロジェクター

最近の出張でウケてるのがモバイルプロジェクター.

ずいぶん小さくて明るくなったので,出張や外勤の時に持ち歩いてたら使えそうだなと思って買いました.ただ,種類は色々.目的によって絞り込みをかけていかないと失敗しそうです.私のポイントは,

  • 軽くて持ち歩く(かばんに入れっぱなし)気になること
  • 多少明るい室内でも使えること
  • 無線接続
  • ポスター会場で使えること

でした.色々悩んで買ったのはSONYのモバイルプロジェクターMP-CD1.ただし,このブログを書いている時点で生産中止で在庫限りでした.写真は,iPod touchの写真を投影(それ自体に意味はない).



決定的だったのは,ACアダプタ.バッテリー内臓で充電式のものもあったのだけど,充電(給電)にはACアダプタが必要なものが結構多かった.のに対して,MP-CD1は,UCB-C給電.MacBook な私にとっては,「必然的に持っているもの」だったので本体重量に加えて,充電ケーブルの重量(MP-CD1だと,私にとっては0g)で考えました.

その代わり,主に妥協したのが,HDMI有線接続しか出来ないという点.USBメモリに入れたpptxを再生できたり,無線でつながったりするのも魅力的だったのだけど,諦めました.写真のHDMIは付属ケーブルでかなり太くて硬いので,書い直す予定

ポスター会場でも使えるほど明るくて軽量なものはなかったので断念しました.ポスター会場用には,モバイルLCDを持った方が良さそうです.

おまけの機能として,USB-Aでモバイルバッテリにもなる点.スマホの充電に使えるのでこれは便利と思います.逆に,飛行機の時は機内持ち込みが必須になってしまいましたが.

2019/12/12

JAGURS compilation using Homebrew on MacOS

まだ MacPorts 使ってるの?とか言われてしまったので, Homebrew へ.主に何に使ってたかと言うと, JAGURS なので,まずは JAGURS がコンパイル出来るように整備してみた.

が,Makefile のバージョン管理に RCS 使ってたので,先ずは,
% brew intall rcs

それ以前としては, /usr/local に入っている HPC compiler を上書きさせないために, /opt/homebrew をインストール先にした.参考にした記事はこちら
cd /opt
sudo mkdir homebrew
sudo chown ${USER}:staff homebrew
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew

依存ライブラリのインストール
 % brew install netcdf
 % brew install proj
 % brew install fftw
(伴って gcc のインストールも始まっていて重い・・・)

Makefile:
PROJ4_DIR=/opt/homebrew
FFTW3_INCLUDE_DIR=/opt/homebrew/include
NETCDF=/opt/homebrew

% make
In file included from mapproject.c:4:
/opt/homebrew/include/proj_api.h:37:2: error: #error 'To use the proj_api.h you must define the macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
 #error 'To use the proj_api.h you must define the macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
  ^~~~~

mapproject.c で,proj_api.h を include する前に, ACCEPT_USE_OF_DEPRECATED_PROJ_API_H を定義してあげると, make が通るようになります.

% cat mapproject.patch
*** mapproject.c        2019/12/11 20:49:39     1.1
--- mapproject.c        2019/12/11 20:51:04
***************
*** 1,6 ****
--- 1,7 ----
  #include <stdio.h>
  #include <string.h>
  #include <stdlib.h>
+ #define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
  #include <proj_api.h>

  static  projPJ pj_tmerc, pj_latlong;

もしくは,proj をバージョン5にするという解決策もあるようですが,,,悩みどころ.

参考までに,GitHub上のOSGeoのチケット

2019/10/23

Dropboxに写真を同期

iPad(昔はiPhone)で撮った写真と動画の管理って,Macだと意外(?)と面倒なようで,Macに接続してもストレージとしてマウントしてくれないので,何かのツールにお任せする必要があるようです(ホントか?).

最終的に,Dropboxに行き着いていたのだけど,どうも最近,iOS (iPadOS) のWi-Fiで同期済のものが,USBで有線接続したら重複してDropboxに入るようになってしまった.同期済みのものが「カメラアップロード」フォルダに残っていれば, -1.jpg のようなファイル名になって同定が用意なんだけど,既にrenameしていたり,移動していると何のことか良く分からない...

というわけで,Mac側の設定をOFFにしました.設定→インポートの「デバイス」から対象の端末を削除すれば良いようです.

2019/10/07

stdio.h が無いって・・・

久しぶりにコンパイルしようと思う度にひっかかるので自分でも書いておく.

/usr/local/lib/gcc/x86_64-apple-darwin17.5.0/8.1.0/include-fixed/stdio.h:78:10: 致命的エラー: _stdio.h: No such file or directory
 #include <_stdio.h>

よっぽど何かが壊れないとならなさそうな状況にOSをupdateするとなってしまう.まぁ,ともかく,
% open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
で良いそうだ.

Missing /usr/include w/ Xcode 10
macOS Mojave にアップデートしたら stdio.h がないって言われた

2019/06/12

遠地の波形

Baba et al. (2016) で提案されているSD+EL+GPの計算はJAGURSで出来ますが,EL (Elastic Loading) を有効にするため,
with_elastic_loading=1
として,パッケージとして配布されている
m_pyfile='PREM_Ggz.nc'
を使うと,GPも含んでいるため,漏れなく gravitational potential change も付いてきます.マニュアルには書かれていませんが,パッケージに入っている PREM_Gz.nc を使うと,ELのみが適用されるようです(確認中).

海⽔密度効果は,独立に
with_density=1
を設定することで有効に出来ます.

If you specify
with_elastic_loading=1
option to apply elastic loading in your simulation using PREM_Ggz.nc file which is included in JAGURS package, the gravitational potential change is also adopted. Because PREM_Ggz.nc contains not only elastic loading but also gravitational potential change. If you omit GP, PREM_Gz.nc should be set as m_pyfile parameter. 

Error発生:
netcdf err=-51 in file=PREM_Ggz.nc
これは, https://www.unidata.ucar.edu/software/netcdf/docs/nc-error-codes.html によると,"Not a netcdf file".

どうやら,ライブラリ関係が古かったためだったよう.ただし,詳細は詰めていない.
動いてた環境(MacPorts):
  hdf5 @1.10.5_0+cxx+hl (active)
  netcdf @4.6.3_0+dap+netcdf4 (active)
  netcdf-fortran @4.4.5_5+gcc7 (active)

駄目だった環境(Source build @linux):
  hdf5-1.8.19
  netcdf-4.4.1.1
  netcdf-fortran-4.4.4

駄目だった環境(linux)で,hdf5-1.10.5, netcdf-c-4.6.3, netcdf-fortran-4.4.5 を使ったところ,問題なくELが計算できた.

If you have an error of "netcdf err=-51 in file=PREM_Ggz.nc", please update hdf5 and netcdf libraries. I'm not sure the real reason, but I succeeded to execute JAGURS with hdf5-1.10.5, netcdf-c-4.6.3 and netcdf-fortran-4.4.5 instead of hdf5-1.8.19, netcdf-4.4.1.1 and netcdf-fortran-4.4.4.