Darwin Core Archive

ちょっと時間が掛かりそうだなこれ、と思ったのでしばらく放置していた データペーパーの処理を始める。

機械的に生成したデータファイルっぽい、というところまでは解る。 おそらく IPT が吐き出したんだろう。メタデータの先頭部分に http://rs.tdwg.org/dwc/terms/Occurrence とあるので、おそらく 観察データ用のフォーマットなのだろうと推測するが、なかなか定義を 見つけられなかった。生物多様性関係は情報量が多いから門外漢は難儀する。

データファイルを見ると、全部で 159カラムのうち、データが入っているのは 18カラムだけで、あとはひたすら空欄になっている。随分ムダなことをする。 optional な空カラムも律儀に出力するのは機械生成だからか、それとも GBIF の流儀なのか。多分、meta.xml や、データファイルのヘッダ行が 無くても困らないようにフォーマットを固定しているんだろうなぁ。

meta.xml を処理する方法は無いものかと色々ググってみたら PyPI に python-dwca-reader なるものを発見! これはいいものを見つけたぞ、 と思ってちょっと使ってみたが、動作が遅い。まぁいきなり 10万行の データを読み込ませたらメモリスワップするよな。機能的にもほとんど パーサ程度の機能しか無さそうだったので、今回の作業には使えないと 結論づけた。

その後、 http://rs.gbif.org/core/dwc_occurrence.xml を探し当てる。 TDWG じゃくて GBIF の方にあったのね。これを元にして EML の <attribute> を生成するスクリプトを組めば良い。 流用できそうなのは definition だけだろうが、何も無いよりはましだ。 それ以外は EML の仕様上ほとんど一意に定まる筈だし。