2012-07-31

ファイルを年月を含んだ名前に変えるバッチファイル

本当は Windows PowerShell 使えるようになりたいんだけど…

CD /D %~dp0
set y=%DATE:~0,4%
set m=%DATE:~5,2%
for %%f in (inbox sent) do if exist arch\%%f%y%%m%.pdf (
echo %%f skipped
) else (
echo ren %%f.pdf arch\%%f%y%%m%.pdf
)

[Fortran] 実在しない省略可能な仮引数を自動割付け配列の上下限にすることについて

なんかつじのさんがはまっているのでメモ

- https://twitter.com/TSUJINO_SATOKI/statuses/230263952209231872
- https://twitter.com/TSUJINO_SATOKI/statuses/230264236356558848

さて、これはダメなのはわかりますが Fortran 規格は何もいっていないのでしょうか。


JIS X 3001-1:2009 (いわゆる Fortran 2003)のいうには:

5.2.1.5.1 形状明示配列
C542 (R511) 上下限が初期値式でない形状明示配列は、副プログラム 又は 引用仕様本体の中でだけ宣言できる。

おや、制約ではありませんね。で、読み進めると、

形状明示配列が初期値式でない上下限をもつとき、その上下限 及び 配列の形状は、手続に入る時に、その上下限の式を評価して決まる。

といっています。べつにOPTIONAL属性があってはいかん、とはいっていません。
配列がダメなら手続だ、ということで12章にいくと、

12.4.1.6 実在しない仮引数に関する制限
(中略)
実在しない省略可能な仮引数は、次の制限を受ける。
(中略)
(1) 実在しない省略可能な仮引数がデータ実体である場合には、その実体は引用も確定もしてはならない。(後略)

というんですね。データ実体てのは変数とか引数とかです。引用の定義が気になりますね。

2.5.6 引用
データ実体引用 (data object reference) とは、実行中のその時点での値を要求する形でデータ実体特定子を書くこととする。

というわけで、回りくどいですが、実在しないときだけダメなことがわかりました。

しかし不親切ですね。実際問題、自動割付け配列の上下限に使ってしまったら最後、その引数は省略できないのですからオプショナルにする意味はないので、こんな無茶な用例には警告を出すよう、コンパイラベンダーに文句をいうことはできないのでしょうか。

実はお願いはできても文句は言えません。

1.5 規格合致性
(中略)
(3) 識別番号の付いた構文規則 及び 制約によって認められていない拡張された形
又は 関係 [付属書Bで規定する廃止事項(1.8.1)を含む。] を使用しているプログラム単位について、その使用を検出し報告する能力を持つ。
(後略)

つまり、構文規則でも制約でもない「してはならない」は、プログラマに対して禁止しているだけで、コンパイラベンダーに対しては、報告しなくてもいい、結果プログラムがセグフォしようがOSクラッシュしようが好きにしてよいといっているわけですね。

残念ですが、そういうものです。

2012-07-27

JRA25のGRIBエンコーディング

JRA25のデータはGRIB第1版で提供されているのだけれど、ちょっといろいろあります。

通報式関係者としては誠に申し訳ない次第です。

もし、ほかに何かご存じの方がありましたら、教えていただければありがたいです。JRA25そのものは今からどうにもなりませんが。

2012-07-18

CCSDS szip compression

GRIB2 には伝統的なビットパックだけではなく、ロスレス・ロッシーともに多様な圧縮が選べるようになっている。たとえば JPEG2000, PNG, JMA-RLE など。当然、圧縮方式(コーデッ
ク)に対応していなければ、GRIBの概形が読めても実際には使えないわけで、MPEGやTIFFのようなコンテナフォーマットに近い性格に進化しているということもできるだろう。

それに CCSDS szip というのを追加しようというドイツ提案が、2008年からたなざらしになっている。
http://goo.gl/iRFfh (Word .doc)

正直、これ以上複雑度が増すのは望ましくないので、あまりプッシュしたくないのだが、このアルゴリズム自体についてちょっとググってみたのでメモしておく。

学会予稿らしきもの:性能を訴えている
http://esto.nasa.gov/conferences/estc-2002/Papers/A3P2%28Yeh%29.pdf

HDF のホームページ:そう、HDFで使っているのだ。
http://www.hdfgroup.org/doc_resource/SZIP/index.html

つまり、netCDF4でも内部で使っているんだっけ?
http://www.unidata.ucar.edu/software/netcdf/docs/netcdf/NetCDF_002d4-Format.html
いや、使ってない。ライセンス問題があるので切ったらしい。

一応:

GPLv2実装がある模様。
http://en.sourceforge.jp/projects/sfnet_ter/
HDF5
ライセンス自体は、4条項BSDに1つ追加した、よくわからないライセンス。これに含まれるのかな???
http://www.hdfgroup.org/products/licenses.html

2012-07-17

Microsoft Terraserver 閉鎖

Microsoft Terraserver が5月に閉鎖されていたんだそうだ。
https://list.terc.edu/pipermail/edgis/2012-July/002324.html

本家のアナウンス:
http://msrmaps.com/About.aspx?n=AboutShutdown
(Tuesday, May 1, 2010 と書いてあるが、曜日からして 2012 の間違い)

米国の地形図とオルソ写真が見られるサイトだった、はず。日本に来てからはすっかり忘れていた。

まあ、Bing Maps に役割をゆずったということだし、元来は SQL Server のデモだったらしいから、名誉ある引退と呼んであげていいのだと思う。

Space weather metadata in CF-netCDF

GOES の宇宙天気の image データについて CF でどうやって表現したらいいかという議論がおこっている。
 
 
CF では枠組が定かでない多種のメタデータを表現したいようなのだが、データの位置とは言い難い座標値っぽいものが多数ある。
 
ECI  & ECEF 座標というのは、それぞれ SPASE http://www.spase-group.org/docs/dictionary/spase-2_2_2.pdf で Geocentric Equatorial Inertial & Geocentric Corotating といっているものと同じだろう。別の業界で違う名前なのは結構だけれど、共通語を決めてもらわないことにはどうにも話が動かない。
 
あと、物体の回転を指示するのに quaternions というものを使うらしいのだが、ぐぐってみると http://adsabs.harvard.edu/abs/2006cosp...36.3034S とかひっかかって、本当にハミルトンの4元数で回転角を表現するものであるらしい。難しそう…
 
ところで、 CF-metadata のログ http://mailman.cgd.ucar.edu/pipermail が落ちているので悩ましい。あんまりしょっちゅうブライアンにメールするのもためらわれるし。

2012-07-06

WDC for Meteorology

WDC for Meteorology http://www.ncdc.noaa.gov/oa/wdc/index.php は NCDC がやっている。 なぜか NCDC は NESDIS の機関なのね。

単なる WMO WDC だと思っていたのだが、2011年9月に ICSU WDS に参加したのだそうだ。

つまり、WMO と ICSU 共管のような状態になっている。Considering that meteorology is best coordinated at the international level by one responsible international organization, (WMO条約前文)とはいうけれど、どうしたって境界はある。ここらへんが境界だということだろう。

2012-07-04

エクセター OGC TC での cf-netcdf

Galeon にメールが来た。
http://www.unidata.ucar.edu/mailing_lists/archives/galeon/2012/msg00007.html

パブリックコメント期間が無事終了した。まあ、コメントがないことを喜んでいいのかどうかはわからない。

誰かはわからないが、ISOメタデータとの関係を問うたのだという。
まあ、ncISO
http://www.ngdc.noaa.gov/eds/tds/
で出力できるからいいよね、という話ではあるんだけど、WMO Core Metadata
Profile との harmonization はいらないんだろうか。