書籍刊行:海の歴史と未来( 人と生態系のダイナミクス 4 )

1年以上更新をしておりませんでした・・・

告知です。
堀さんとの共著で執筆していた、
「シリーズ: 人と生態系のダイナミクス 4
 海の歴史と未来」
が刊行されました。
海の歴史と未来 | 堀 正和, 山北 剛久 |本 | 通販 | Amazon
https://pbs.twimg.com/media/EyRFUqzVEAQ5lR-.jpg


なかなかない本だと思いますので、ぜひお手に取っていただけれは幸いです。

続きを読む

使ってみよう未来の相関係数

あけましておめでとうございます。
本年もどうぞよろしくお願いします。

昨年末は家族が順に体調を崩したり、高級車に擦り傷つけてしまったり、失敗してLinux入れなおしかけたりなど、いくつもの厄を落としてきました。仕事の積み残しがあり、お待ちいただいて申し訳ないですが、順に片付けていきたいと思います。

昨年は共著の論文や、一昨年投稿していた、深層学習の論文が出ていたのに、すっかりここでの告知をさぼっていました、改めて後ほどまとめたいと思います。


さて、年末に寝込んでいた際に、Albertの株価が何倍にもなっているというニュースを聞いて、そういえばだいぶ前に相関係数の講演をAlbertの人がしていたなぁと思いだしました。
それは以前、Scienceに21世紀の相関係数と書かれたMICの話で、ざっくり書くと、非線形に強い相関係数のような指標で、2変数の散布図上のパターンの有無を0-1で示します。

ぐぐってみると、わかりやすく比較したページを見つけたので、図と説明はそちらを参照ください。当時実装されていなかった、HSICもlibrary(dHSIC)
dhsic.test(anscombe$x1, anscombe$y1, kernel = 'gaussian')$p.valueなどとすれば計算できるようRのライブラリに実装されています。
相関とその指標(相関係数)についての勉強 - 盆暗の学習記録


そして、なぜわざわざそんな記事を書いたかというと、散布図には以下のコードで便利に全部の相関の指標を示したらいいのではないのか?という備忘録用です。


PS.海洋保護区の説明も地味に更新しました。
(仮)どんな海洋保護区が何にどの程度どの時空間スケールで有効なのか?そしてそれは検出できるのか? - 山北のメモ帳

cor.all <- function(x,y){
	library(minerva)
	a <- c(cor(x,y),cor(x,y, method = "spearman"),cor(x,y, method = "kendall"))
	names(a) <- c("pearson","spearman","kendall")
	return( c(a, unlist(mine(x,y))) )
}
cor.all(anscombe$x1,anscombe$y1)

というわけで、新年初の病み上がり(まだ不調)リハビリがてらの投稿でした。

Dockerのよく使うコマンド

ほぼ、以下のとおりですが、よく使うDockerコマンド - Qiita

イメージの取得と一覧、イメージの削除

sudo docker pull イメージ名
sudo docker images
sudo docker rmi イメージ名またはイメージID

コンテナ一覧を停止中のコンテナを含めて表示

sudo docker ps -a

新しいコンテナを作成して起動

sudo docker run -i -t -d -p ホスト(Ubuntu)側のポート:コンテナ側のポート -v 共有フォルダ名 --name 任意のコンテナ名 元にするイメージ名またはイメージID

  • dオプションをつけると、バックグラウンドで実行する
既に作成されているコンテナの起動、停止

sudo docker start コンテナ名またはコンテナID
sudo docker stop コンテナ名またはコンテナID

ブラウザ経由で起動中のコンテナ環境を利用して作業

ブラウザのURL欄に、localhost:(Ubuntu)側のポート と入力する
(例えば:localhost:5050)

コンテナの中に入る(コンテナから抜けてもコンテナは停止しない。)

sudo docker exec -it コンテナ名またはコンテナID bash
コンテナから抜ける
exit

Dockerでホストとコンテナ間でのファイルコピー

コンテナからホストへのコピー
sudo docker cp <コンテナID>:/etc/my.cnf my.cnf
ホストからコンテナへのコピー
sudo docker cp my.cnf <コンテナID>:/etc/my.cnf

既に作成されているコンテナの停止

sudo docker stop コンテナ名またはコンテナID

不要なコンテナを永久に削除

(!停止するだけであれば、上記の sudo docker stop コンテナ名またはコンテナID を使ってください!)
sudo docker rm コンテナ名またはコンテナID (!環境自体が消えます。)

nvidia-docker によるDIGITSの導入

https://ngc.nvidia.com/catalog/containers/nvidia%2Fdigits
nvidia-docker run -it -v local_dir:container_dir nvcr.io/nvidia/digits:-

local_dir はホストのディレクトリの絶対パス
container_dirはコンテナ側のターゲットのディレクト
以降はコンテナの名前

JuliaのWindows10への導入

(ゆる募:Writing Julia functions in R with examples | R-bloggers で、
[1] FALSE 警告メッセージ: 命令 '"D:\ほげ\julia.exe" D:/Program files/R/R-3.4.2/library/XRJulia/julia/testJSON.jl' の実行は状態 1 を持ちました。というエラーを解決 したいのですが、どなたかお詳しい方いませんか?)


今更ながら、Julia入れました。ver1.0以前だとパスの設定にいろいろ苦労しているようですが、
今は、Jupyterのパスを設定するだけでいいようです。
基本的に以下に記載のとおりなのですが、以下の記事を再度見つけるのに苦労したのと、
Jupyterとの連携に若干はまったので、書いておきます。
qiita.com


  • JupyterをあらかじめAnaconda (Python3のほう)で入れておく。Downloads - Anaconda
  • Anaconda NavigaterでJupyterが入っていることを確認。
  • Juliaを以下の公式から入手Julia Downloads
  • 好きな場所にインストール(D:\Programにしました。)
    • これは普通はやらなくていいのだが、パッケージがCのユーザーフォルダ下にインストールされてしまうので、変数名:JULIA_PKGDIR,値:D:\Program\Pkg を環境変数に追加。
    • また、これもやらなくていいことが多いが、Anacondaのインストール先次第では書き込みができないことがあるので(末尾のエラー参照)、「C:\\Users\\ユーザー名\\AppData\\Roaming\\\jupyter\kernels\」以下のフォルダを書き込み出来るように、フォルダを開いて右クリックしてフォルダのプロパティから読み取り専用のチェックをはずす。
  • Jupyterの環境変数をつくるために、jupyter.exeを検索してそのフォルダのパス(場所)をコピー
  • ユーザーの環境変数の新規で変数名JUPYTERと入れて、変数値にパスを追加(C:\インストール場所\Anaconda3\pkgs\jupyter_core-4.4.0-py36h56e9d50_0\Scripts\jupyter.exeなどにある)
  • Juliaを起動
  • import Pkg (古いバージョンとは違う)
  • 「]」キーを押してパッケージモードへ
  • add IJulia (ダウンロードとビルドが自動的に行われるので少々時間がかかる)
  • バックスペースでパッケージモードから抜ける。
  • using IJuliaで、Ijuliaをプリコンパイル
  • notebook()でJupyterNotebookが開く。
  • Jupyterの右上のNew▼からJulia1.0.0を選択して好きに編集。
  • 遭遇したエラー

┌ Error: Error building `IJulia`:
│ [InstallKernelSpec] Removing existing kernelspec in C:\Users\ユーザー名\AppData\Roaming\jupyter\kernels\julia-1.0
│ [WinError 5] アクセスが拒否されました。: 'C:\\Users\\ユーザー名\\AppData\\Roaming\\jupyter\\kernels\\julia-1.0\\logo-32x32.png'

このエラーが出た場合
C:\Users\ユーザー名\AppData\Roaming\jupyter\ 以下が書き込み禁止になっていると思われるので
フォルダを開いて右クリックしてフォルダのプロパティから読み取り専用のチェックをはずす。

G-COM-CのSGLIファイルをRで読んで表示してみる。

JAXAからG-COM-CのSGLIの準リアルデータがもうすぐ公表されるのでワクワクしています。
JASMES Portal TOP

で、見たら、すでに実はサンプルデータが以下に公開されていました。
JASMES | SGLI準リアル配信データ仕様

2018年11月16日 気候変動観測衛星「しきさい」(GCOM-C)搭載光学センサ「多波長光学放射計」(SGLI)の日本周辺域の準リアル観測データを、2018年12月末頃より公開を予定しております。本日サンプルデータを以下の場所で公開しました。
>>SGLI準リアル サンプルデータ


あぁ、4年生の時にEndianのエラーとかにはまりながら、リモセンセンターで、結局”Photoshopのマクロ”をつかって描画したなつかしのMODIS500m Chl aのバイナリと並べて、SGLIのサンプルがnetcdfでありますよ。ヘッダの分量が良くわからずに、微妙にずれて斜めにずれた画像になったりせずに(バイナリあるある)、こんな簡単に読めるなんて、涙がちょちょぎれますね。


Rの古いnetcdfパッケージがCRANの公式レポジトリからはずれたりして、情報が錯そうしているので、
ncdf4のパッケージを使った描画方法をここに記載しておきます。

library(ncdf4)
library(oce)
nc1 <-nc_open("C:\\保存先\\GC1SG1_201811040123S05000_L2SL_SSTDQ_1000_SST_11.nc")
print(nc1)
val <- ncvar_get(nc1,"SST")
lat <- ncvar_get(nc1,"Latitude")
lon <- ncvar_get(nc1,"Longitude")
imagep(lon, lat, val)
#auto-decimatingのwarningが出て解像度悪いですが、とりあえず表示はされました。
#高解像度で表示するには
imagep(lon, lat, val, decimate=F)
nc_close(nc1)
#参考
[https://rstudio-pubs-static.s3.amazonaws.com/40319_54b3f79c966547dda8da65bdd6a9868a.html]


#ラスターで保存
library(raster)
ras1 <- raster("C:\\保存先\\GC1SG1_201811040123S05000_L2SL_SSTDQ_1000_SST_11.nc")
plot(ras1)
writeRaster(x = ras1, filename = 'GC1SG1_201811040123S05000_L2SL_SSTDQ_1000_SST_11.tif', format = 'GTiff', overwrite = TRUE)

#参考
[https://stackoverflow.com/questions/54560155/export-netcdf-file-to-tiff]

なんだよ、関東、中部と雲だらけじゃん!ワクワクを返して(笑
牡鹿半島付近の流れや、河川が見えているのがすごいなと思いました。)

追記:12/20公開されました!!!
www.jaxa.jp

SDGs14の詳細項目の日本語

愛知ターゲットももうすぐ終わりということや、SDGsの取り組みがどうなってるんだという国際的なとりまとめの中で、SDGsの目標と対応する活動を確認しようという問い合わせが各所にきています(パリ協定や仙台フレームワークも)。

SDGsの各目標の中身の紹介があまり見当たらなかったので、ここにメモしておきます。
(ストローの削減ばかりがニュースになって、それぞれの目標の中の詳細は意外と目にしませんよね?)


ここでは海に直接関連したSDGs14の項目を一覧しておきたいと思います。

  • SDG-Goal14 :

https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-14

こちらもわかりやすいですThink the Earth | SDGs for School | 14.海の豊かさを守ろう


「はじめに」

海洋は私たちの惑星の表面の70%以上をカバーし、地球上での生活を支える重要な役割を果たしています。それらは、地球規模で地域の物質循環に寄与し、気候を規定する最も多様で重要な生態系です。海は食料、材料、物質、エネルギーなどの自然資源を提供します。
海洋保護区は、漁獲量と収入を増やし、新たな雇用を創出し、健康を改善し、女性に力を与えることによって貧困削減に貢献します。
世界の海洋でのゴミの増加は、大きな経済的影響をもたらしています。

データと統計/事実と数値:

  • 海洋は地球の表面の3/4を覆い、地球の水の97%を含み、地球上の生活空間の99%の体積を占めます。
  • 30億人以上の人々が、生計のために海洋および沿岸の生物多様性に依存しています。
  • 海洋および沿岸資源および産業の市場価値は、世界で年間3兆ドル、または世界のGDPの約5%と推定されています。
  • 海洋は地球温暖化の影響を緩和し、人間が生産する二酸化炭素の約30%を吸収します。
  • 海洋はタンパク質の主要供給源として海洋に依存する30億人以上の人々を抱え、世界最大のタンパク質源となっています。
  • 海洋の漁業は直接的または間接的に2億人を雇用しています。

環境に関連するターゲット:

指標14.1
2025年までに、海洋ごみや富栄養化を含む、特に陸上活動による汚染など、あらゆる種類の海洋汚染を防止し、大幅に削減する。

指標14.2
2020年までに、海洋及び沿岸の生態系に関する重大な悪影響を回避するため、強靱性(レジリエンス)の強化などによる持続的な管理と保護を行い、健全で生産的な海洋を実現するため、海洋及び沿岸の生態系の回復のための取組を行う。

指標14.3
あらゆるレベルでの科学的協力の促進などを通じて、海洋酸性化の影響を最小限化し、対処する。

指標14.4
水産資源を、実現可能な最短期間で少なくとも各資源の生物学的特性によって定められる最大持続生産量のレベルまで回復させるため、2020年までに、漁獲を効果的に規制し、過剰漁業や違法・無報告・無規制(IUU)漁業及び破壊的な漁業慣行を終了し、科学的な管理計画を実施する。

指標14.5
2020年までに、国内法及び国際法に則り、最大限入手可能な科学情報に基づいて、少なくとも沿岸域及び海域の10パーセントを保全する。

指標14.6
開発途上国及び後発開発途上国に対する適切かつ効果的な、特別かつ異なる待遇が、世界貿易機関WTO)漁業補助金交渉の不可分の要素であるべきことを認識した上で、2020年までに、過剰漁獲能力や過剰漁獲につながる漁業補助金を禁止し、違法・無報告・無規制(IUU)漁業につながる補助金を撤廃し、同様の新たな補助金の導入を抑制する。

指標14.7
2030年までに、漁業、水産養殖及び観光の持続可能な管理などを通じ、小島嶼開発途上国及び後発開発途上国海洋資源の持続的な利用による経済的便益を増大させる。

実施手段
指標14.a
海洋の健全性の改善と、開発途上国、特に小島嶼開発途上国および後発開発途上国の開発における海洋生物多様性の寄与向上のために、海洋技術の移転に関するユネスコ政府間海洋学委員会の基準・ガイドラインを勘案しつつ、科学的知識の増進、研究能力の向上、及び海洋技術の移転を行う。

指標14.b
小規模・沿岸零細漁業者に対し、海洋資源及び市場へのアクセスを提供する。

指標14.c「我々の求める未来」のパラ158において想起されるとおり、海洋及び海洋資源保全及び持続可能な利用のための法的枠組みを規定する海洋法に関する国際連合条約(UNCLOS)に反映されている国際法を実施することにより、海洋及び海洋資源保全及び持続可能な利用を強化する。

フリー書籍:東日本大震災後の海の変化とGIS

拙著「東日本大震災後の海の変化を知る -地理情報システムの活用と地理情報科学(GIScience)-」がフリーな電子出版で公開されました。
情報通信技術で革新する生態学/田辺晶史・大西亘 編 - 種生物学会 - The Society for the Study of Species Biology

当初、種生物学シリーズの書籍になるという話だったのでA4のPDFで37ページと結構長くなってしまいました。
本家で重すぎて分割されてUPされていますが、以下にPDFの全結合版をUPします。

→本家のデータ圧縮していただいた模様。

PDF版はA4なので、携帯からはepub版をご利用いただいたのほうがレイアウト自在でよいかもしれません。
e-pubはGooglePlayBooksやKindleKoboなどのアプリでご覧になれるかと。

査読を受けたり編集待っている間に若干古い部分もでてきていますが、感想やご意見お聞かせいただければ幸いです。
TEAMSのメンバーはもちろんですが、査読者と編集部、特に田辺さんには細かく見ていただいた上にtexとGitlabによる先端出版環境を整備していただき感謝です。
f:id:yamakita-lab:20181004143609p:plain