1 / 65

地球流体科学におけるデータとその流通にまつわる諸問題および様々な試み

データ科学 WS 2009/01/16. 地球流体科学におけるデータとその流通にまつわる諸問題および様々な試み. 林祥介(神戸大 理 ),堀之内武(北大 地球環境 ) 堀之内編. 内容. 現状の話 われわれの試みの話. 我々はどんなデータを使ってるか (1). 観測データ 人工衛星 :観測手段いろいろ(波長、 active/passive );様々な物理・化学量 ; 静止衛星(高高度から面的に 空間2次元 × 時間で3次元 )/低軌道衛星(軌道に沿って 次元性はいろいろ )

shina
Download Presentation

地球流体科学におけるデータとその流通にまつわる諸問題および様々な試み

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. データ科学WS 2009/01/16 地球流体科学におけるデータとその流通にまつわる諸問題および様々な試み 林祥介(神戸大理),堀之内武(北大地球環境) 堀之内編

  2. 内容 • 現状の話 • われわれの試みの話

  3. 我々はどんなデータを使ってるか (1) • 観測データ • 人工衛星:観測手段いろいろ(波長、active/passive);様々な物理・化学量; 静止衛星(高高度から面的に空間2次元×時間で3次元)/低軌道衛星(軌道に沿って次元性はいろいろ) • 気球,ブイ: 例:高層気象観測(気温、風速、気圧、湿度)。1次元(高度)×時間 • 地上観測: 例:アメダス 時系列 • レーダー:雨滴・雲を面的・立体的にスキャンする気象レーダー/風速の鉛直分布を連続的に測るウィンドプロファイラー(次元性いろいろ) • なお,観測の場合,観測波長が次元に加わる場合も 気象衛星MTSAT2 (ひまわり7号) EOS Aqua衛星

  4. 我々はどんなデータを使ってるか (2) • シミュレーションデータ • 全球モデル、領域モデル: 時間発展を計算する数値モデルの出力  物理量いろいろ。空間3次元×時間の4次元データ • 観測データを同化(assimilation)した客観解析データ • 様々な観測データをシミュレーションモデルに馴染ませるように取り込んで作成した格子点データ(天気予報の初期値など)。それぞれが誤差を含み、サンプリングもまちまちな観測データから、物理的に整合性のある形で大気状態を推定する手法。空間3次元×時間の4次元データ 24h予報 by気象庁 緯度経度格子の例

  5. データの生産者と提供者(for研究セクター) • 高層・地上の定常気象観測,大気の客観解析:各国予報機関; 種々のボランティア機関/気象現業機関が直接or外郭団体(日本では気象衛星も)(なお予測機関相互には,WMO (world meteorological organization) のGTS (global telecommunication system)で通信) • 地球観測衛星,ブイ:NASA, ESA, JAXA, JAMSTEC etc の宇宙機関/研究機関; それぞれが • 研究ベースの特別観測,集中観測:大学,研究機関; それぞれが • シミュレーションデータ:種々の機関; それぞれが(ただし出さないことが多い.そもそも他人が使えるようなもんでない場合も),国際的な相互比較プロジェクト(IPCC関係のPCMDIなどいろいろ)

  6. 包括的なデータ収集,流通 (1) • UCAR UnidataのIDD (Internet Data Distribution) • UCAR:米の「大学大気研究連合」,Unidata:データ流通と処理の基盤開発sub機関 • 歴史的には,WMOのGTS設置によって大学が気象データの流れから取り残されないように設置された • Put型の準リアルタイムなP2P気象データ配信システム

  7. from Unidata Overview, Sep 2004

  8. from Unidata Overview, Sep 2004

  9. 包括的なデータ収集,流通 (2) • リンク集,メタデータ収集: NASAのGCMDなど

  10. 包括的なデータ収集,流通 (3) • ソフトウェア基盤 (ミドルウェア/規格) • THREDDS / OPeNDAP • THREDDS: メタデータカタログ(in XML)生成. フォルダ階層など. • OPeNDAP: データファイルを遠隔オブジェクトとして提供する.httpベース(CGI). (ファイル形式依存性を吸収) • IPCC用の気候モデルデータDBは現在はPCMDI一元だが,今後国際分散に移行する模様.そこでこれが使われる模様. • GIS (地理情報システム)

  11. 包括的なデータ収集,流通 (4) • アプリケーションプログラム • Live Access Sever (LAS), Gfdnavi • Webベースでデータの検索,解析,可視化ができるデータサーバを構築するツール.

  12. 包括的なデータ収集,流通 (5) • GEOSS (Global Earth Observation System of Systems)のデータ収集 • 国際プログラム.国内のシステムはDIAS • 様々な提供者からデータを集められる • 次の講演

  13. 大気の研究で扱うデータ (1)構成と形式 テキスト vs バイナリ • テキスト : • 小規模/1次元的データに適 ⇒ 気球や定点観測データに良く利用 • バイナリ: • 大規模データ、シミュレーションデータに適 ⇒ 大気のデータの多くはバイナリ。ただバイナリというだけでは任意性が多く、解釈に困りがちなので、何らかの汎用なデータ形式が用いられることが多い。 良く使われる汎用バイナリ形式 • NetCDF(汎用ながら機械的解釈に適(後述)。良く使われる。) • GRIB (WMO標準。気象予報現業機関からのデータの多くはこれ)、GrADS(同名のソフトとともに広まった。単純なバイナリファイル+解釈用テキストファイル) • HDF/HDF5(衛星データによく利用。そのままでは汎用過ぎて機械的解釈が難しいが、地球観測用に絞ったHDF(5)-EOSが良く使われるようになりつつある。)

  14. 大気の研究で扱うデータ (2)例: NetCDF形式 • 汎用バイナリ形式、専用API(Application Programming Interface)で読み書き(in C, Fortran, Java, Ruby, IDL etc. etc.) • 構成 • 変数(名前付き多次元配列orスカラー) • 次元(変数定義用の名前と長さの組) • 属性(変数やファイルを修飾する名前と値の組) • 地球科学(大気・海洋…)における利用を念頭においた規約により、座標の表現法や単位や名前の表現法などが定められている ⇒ 基本的な情報がプログラムにより自動的に解釈可

  15. $ ncdump -h air.2007.nc netcdf air.2007 { dimensions: lon = 144 ; lat = 73 ; level = 17 ; time = UNLIMITED ; // (365 currently) variables: float level(level) ; level:units = "millibar" ; level:long_name = "Level" ; float lat(lat) ; lat:units = "degrees_north" ; lat:long_name = "Latitude" ; float lon(lon) ; lon:units = "degrees_east" ; lon:long_name = "Longitude" ; double time(time) ; time:units = "hours since 1-1-1 00:00:0.0" ; time:long_name = "Time" ; short air(time, level, lat, lon) ; air:long_name = "mean Daily Air temperature" ; air:valid_range = 150.f, 350.f ; air:units = "degK" ; air:add_offset = 477.66f ; air:scale_factor = 0.01f ; air:missing_value = 32766s ; air:precision = 2s ; // global attributes: :Conventions = "COARDS" ; :title = "mean daily NMC reanalysis (2007)" ; :history = "created 2007/01/03 by Hoop (netCDF2.3)" ; :description = "Data is from NMC initialized reanalysis\n", "(4x/day). It consists of most variables interpolated to\n", "pressure surfaces from model (sigma) surfaces." ; } NCEP再解析(客観解析)の気温データを収めるNetCDFファイルの「ヘッダ」(メタデータ)の内容。 ダンプツール ncdump で表示後、一部省略。 airが気温の4次元データ: lon, lat, level, timeの関数。 バイナリ構造は隠蔽され、名前ベースでアクセス。

  16. NetCDFの構成の模式図 0..* Dimension 0..* 0..* Dataset Variable Attribute 0..* Attribute 0..* defined with Variable Dimension 名前ベースの座標変数との対応則 (例) Dimension lon Variable lon (1D) Variable T (4D) Dimension lat Variable lat (1D) Variable Ps(3D)) Dimension lev Variable lev (1D) Dimension time Variable time (1D)

  17. 大気の研究で扱うデータ (3)例: GRIB形式 • 水平2次元スライスに関する独立したバイナリデータの集合体。 • ヘッダはバイト(&ビット)単位で各種符号が規定されている。 • 物理量の種類や時刻や高度はヘッダーに書かれている • 時系列や高度方向の次元の認識は解釈系に任されている • NuSDAS、「国内二進」などの気象庁の形式も同様な構成 p=1000ha t=2008-1-1 00:00 p=850ha t=2008-1-1 00:00 p=500ha t=2008-1-1 00:00 p=1000ha t=2008-1-1 06:00 p=850ha t=2008-1-1 06:00 p=500ha t=2008-1-1 06:00 ….. p=500ha p=500ha p=850ha p=850ha ….. p=1000ha p=1000ha t=2008-1-1 00:00 t=2008-1-1 06:00

  18. ここまでのまとめ • 地球流体の数値データ • 作成者,配信者:いろいろ (多い) • 形式:いろいろ.(だが,中身の構成は所詮限られている.) • 流通のしくみ: • 伝統的手段: 物理輸送,ftp, http(のファイル転送) • 現代的手段: OPeNDAPなどの遠隔オブジェクトライブラリ,アプリケーション

  19. 我々の試み • 地球流体電脳davisプロジェクト • 地球流体データを統一的に扱うオブジェクト指向データ解析基盤ライブラリの整備と情報交換(電脳Rubyプロジェクト) • Webベースのデータサーバ構築ツールの開発(Gfdnavi) (情報爆発)

  20. 地球流体電脳davisプロジェクト • 地球流体電脳倶楽部(www.gfd-dennou.org)の1プロジェクト • davis = data analysis and visualization • 地球流体電脳davisサブプロジェクト: • DCL – 描画ライブラリ (for Fortran/C/Ruby) (by塩谷雅人ら) • 電脳Rubyプロジェクト – Ruby用ライブラリー群整備(by 堀之内,西澤誠也ら多数) http://ruby.gfd-dennou.org/. 電脳Ruby小物置き場 http://davis.gfd-dennou.org/rubygadgets/ja/ • Gtool5 – Fortran数値モデル用IOライブラリ(by 森川靖大ら) • Gfdnavi – Webベースの地球流体データベース(解析可視化機能付き)構築ツール(by 堀之内,西澤ら)

  21. 我々が使うデータに共通すること • 広い意味での多次元空間の物理(or化学or信号)量である. • 離散化されている.(連続体そのままは計算機で扱えない) • 単位がある.何か名前がある. ⇒ この共通性に基づいてAPI (Application Programming Interface) を作ればいい • 数学・統計演算,可視化

  22. Rubyによるデータ解析可視化基盤ライブラリ:GPhysby 堀之内, 西澤誠也,水田亮etc • GPhys = Gridded Physical quantity • 任意次元(0,1,…)の座標系における物理量をあらわす「クラス」(型)であり、また、GPhysクラスを頂点とするライブラリ。 • データの物理的実体を隠蔽して(下位の諸ライブラリにそれぞれよろしくやってもらって)、ファイルの形式や次元性によらず、統一的なAPIで操作できる。 応用分野 • 流体等、連続空間における物理量に関するデータ解析(incl.可視化)と数値シミュレーション

  23. has 1 a GPhys 配列データ(VArray) has 1 グリッド(Grid) has rank個 軸(Axis) has 1 位置(VArray) has 0.. has 0.. (new) trans- formed grid etc AssocCoords (GPhys) Multi-D その他(VArray) GPhysオブジェクトの構成 • グリッド(座標データ)と配列データからなる。 • 数学・算術演算や、積分等の座標に関する演算が行なえる。

  24. GPhysの重要な構成要素:VArray • Virtual Arrayの略 • 配列のように振舞うが、データ実体は、Ruby用多次元配列(NArray)やファイル中の多次元データなど多様な場合を統一的にサポート。(サポート形式:NetCDF, GRIB, GrADS, NuSDAS; 現在富士通FIPがHDF5-EOSサポートの開発中) • 他のVArrayのサブセットだったり、複数のVArray合成の場合も。 • NetCDF同様「属性」を持てる。 パターン1 多次元配列的なデータ(配列または ファイル中の多次元データへのポインタ) has 1 a VArray パターン2 has 1..* (複数) VArray (別のVArrayのサブセットへのマッピングにもなれる) a VArray

  25. 利用例 (irbによる対話セッション) コマンドライン入力 スタートアップ用おまじないファイル % irb -r ggraph_startup.rb *** MESSAGE (SWDOPN) *** GRPH1 : STARTED / IWS = 1. irb(main):001:0> temp = GPhys::IO.open 'air.mon.ltm.nc', 'air‘ => <GPhys grid=<4D grid <axis pos=<'lon' in 'air.mon.ltm.nc' sfloat[144]>> <axis pos=<'lat' in 'air.mon.ltm.nc' sfloat[73]>> <axis pos=<'level' in 'air.mon.ltm.nc' sfloat[17]>> <axis pos=<'time' in 'air.mon.ltm.nc' float[12]>>> data=<'air' in 'air.mon.ltm.nc' sfloat[144, 73, 17, 12]>> irb(main):002:0> contour temp.cut('level'=>925) *** WARNING (STSWTR) *** WORKSTATION VIEWPORT WAS MODIFIED. => nil irb(main):003:0> 演算例: teddy = temp – temp.mean(“lon”) (経度平均を引く。次元の対応は自 動判断) tfc = temp.fft(nil, 0,2) (1次元目(0)および3次元目(2)に 関するフーリエ変換. nilforward。 座標軸は波数軸に。単位も変換。)

  26. さらに演算例 この部分はスタートアップファイルにより省略可 括弧は省略してスペースで区切ってもいい.(先ほどの例) u = GPhys::IO.open(”u.nc”,”U”) v = GPhys::IO.open(”v.ctl”,”V”) uv = u * v outfl = NetCDF.create(”out.nc”) GPhys::IO.write(outfl, uv)  in NetCDF [m/s]  in GrADS [m/s]  result on memory [m2s–2] 出力ファイル 出力(座標も一緒に) 経度,緯度,高度,時刻の4次元データより経度,時間に関するスペクトルを求める.(前処理後処理いろいろ.メソッドチェーンで) sp = u.detrend(3).cos_taper(3). fft(false,0,3).abs**2 pw = sp.rawspect2powerspect(0,3). spect_zero_centering(0). spect_one_sided(3)

  27. GPhysのその他の特徴 • 遅延評価の徹底 • 必要になるまでデータは読まない/コピーしない.例:サブセット切り出しは対応写像だけをバーチャルに • 大きな実データを無理なく扱う仕組み • 処理を自動分割するイテレータのサポートなど • 演算時に単位の自動更新 • すばやく可視化できる描画ライブラリ

  28. Webベースのデータサーバ構築ツールGfdnaviの開発Webベースのデータサーバ構築ツールGfdnaviの開発 研究・開発チーム: • 堀之内武(北大地球環境)、伴林晃紀、神代剛、塩谷雅人(京大RISH)、大塚将徳(京大理) 、小高、石渡、、、(北大理) • 西澤誠也 、 森川靖大,林祥介(神戸大理) • 渡辺知恵美(お茶大情報) + 学生数代(現在M1&B4が)

  29. データ提供サーバは沢山あるが… • ファイルでの提供が中心 • 簡単な解析可視化サービスも • 一部はより進んだ遠隔データアクセス可    (例:Live Access Server = LAS) せいぜいクイックルック DLしたら全部自分で

  30. webサーバ webサーバ webサーバ webサーバ webサーバ webサーバ webサーバ 文書 文書 文書 文書 文書 文書 文書 比較: WWW文書世界では… • ポータル的サイトも小規模サイトもwebサーバでサービス: アクセスの均一性 • 相互リンク • 検索エンジンによるスキャンと収集  横断検索 検索エンジン etc

  31. webサーバ DL&可視化アプリ ftpサーバ 数値データ webサーバ 数値データ 数値データ 個人PC 個人PC webサーバ グループ共有サーバ グループ共有サーバ no DB/no http no DB/no http no DB/no http no DB/no http DB & 提供UI 数値データ 科学数値データの場合… • 提供方法まちまち — アクセス法不均一 • 個人や小規模データと大規模公開の断絶 • 横断検索・横断利用できない (根本問題:大量の数値そのままでは意味がない)

  32. 技術革新:Webアプリケーション開発フレームワークRuby on Railsの登場2005年に話題に  今や世界でRubyが普及する原動力 • 関係データベースをWebに載せることが劇的に簡単にできるようになった ⇒ • GPhysと組み合わせれば • Webベースの地球流体データのデータベース、解析、可視化システムが作れる(はず)

  33. そして 科研費特定領域 情報爆発IT基盤2005年発足。翌年からの研究公募開始

  34. 地球科学データに関する時代的要請 • データ公開(しかも検索・可視化等の機能付で) • 様々な機関・研究者がデータを所蔵 • でも、地球科学者には敷居が高い。  一元的に集める(DIAS)/ ITで敷居を下げる • ネット上のデータも手元データも一緒に扱いたい • 研究の一線:多種多量のデータを組合せが重要 • いちいちDLし、ファイル形式を解釈…やってられない • 一方,遠隔サーバだけで使えるサービスだと手元のデータに使えず不便 • プロだけでなく素人も使えるものを • 環境問題には学際的取り組みが必要

  35. 目標 • 第1段階: 手持ちのデータの解析ツールとして使え、Webでのデータ公開にも使える汎用ツール構築 ⇒ ローカルな利用からWebでのデータサービスまでシームレスに行えるように • 戦略:UIはブラウザ.Webサーバ同梱でどこでもWeb • 第2段階: • 複数のGfdnaviサーバ間の相互通信・相互利用  地球流体データのWebの創出へ • 戦略:P2PとWebサービスで • データ解析で得られた知見も記録できるように  データと知識の一体的DB化による相乗効果

  36. Gfdnaviの機能 • 指定されたフォルダの下を全スキャン  見つかった数値データ、画像をフォルダ構造ごとデータベース化 • 利用者はWebブラウザでアクセス • 個人のPCで手軽に使えるデータ解析ツールであり、同じものがデータ公開サイト構築にも使える

  37. Gfdnavi開発で使う言語 • Ruby • html • Javascript • SQL • 関係データベースは基本的にはRoR付属ライブラリでRubyを通して使うがやはり必要(少なくとも知識は)

  38. メタデータDB Grid型格子 取り扱うデータの構成 科学データ ファイル 公開フォルダ 多次元格子データセット Swath型格子 group 衛星 衛星の 進行方向 attributes description = “……..” param1 = value1 param2 = [val21,val22] Points型格子 テキストファイル (メタデータ追加) ディレクトリー ⇒木構造 ⇒ RDB (incl.時空間情報)

  39. 数値データの取り扱い • Rubyによる多次元データ取り扱いライブラリGPhysによる。 • ファイル形式の違いを吸収して統一的に扱える • サポートする形式はGPhysと同じ: NetCDF, grib, GrADS、NuSDAS

  40. User Interface Home : Independent simple html  replaceable

  41. Visualize / analyze (Analysis) repeat Functionality Browse directory tree (Finder) Search (Explorer) Browser UI Header Select numerical data Select Typical work flow to use Gfdnavi’s browser UI View docs (Knowledge) Write knowledge document

  42. Select variables in this file to analyze / visualize Directory contents Further details (metadata) Visualize / analyze (Analysis) repeat Functionality MS Explorer-like tree Browse directory tree (Finder) Search (Explorer) Select numerical data Select View docs (Knowledge) Write knowledge document

  43. Visualize / analyze (Analysis) repeat Select a variable to analyze / visualize Functionality Browse directory tree (Finder) Search (Explorer) Free text Select numerical data Select View docs (Knowledge) Attributes Search with Google Maps Write knowledge document Results

  44. Draw method: You can supply your own Animation Functionality Browse directory tree (Finder) Search (Explorer) Select numerical data Select Ruby Script & Minimum Subset Data Visualize / analyze (Analysis) View docs (Knowledge) Save in the DB (login needed) repeat Get the URL to redraw the img Write knowledge document

  45. Functionality Browse directory tree (Finder) Search (Explorer) Select numerical data Select Visualize / analyze (Analysis) View docs (Knowledge) repeat Write knowledge document

  46. Functionality Browse directory tree (Finder) Search (Explorer) Select numerical data Select Visualize / analyze (Analysis) View docs (Knowledge) repeat Write knowledge document

  47. Functionality Browse directory tree (Finder) Search (Explorer) Select numerical data Select Visualize / analyze (Analysis) View docs (Knowledge) repeat Write knowledge document

  48. Functionality Browse directory tree (Finder) Search (Explorer) Select numerical data Select Visualize / analyze (Analysis) View docs (Knowledge) repeat Write knowledge document

  49. Visualize / analyze (Analysis) repeat Functionality Browse directory tree (Finder) Search (Explorer) Select numerical data Select View docs (Knowledge) Write knowledge document

More Related