【雑記】済州島に行ってきたのでメモ
2023年5月末から、出張で韓国の済州島に4泊5日で行ってきました。済州市で宿泊しました。雑駁ですがメモを記しておきます。
【航空券の予約と飛行機】
- 出発まで1か月を切ってから航空券の予約をしようとしたら、直行便はすでになかった。Jeju Airの便しかなかった。しかも乗り継ぎで、8時間かかるコース。キャンセル待ちでもして直行便を待つ勇気はなかった。ぼーっとしてたのが悪い。
- 往路は関空→金海@釜山→済州、復路は済州→金浦→仁川→関空となってしまった。このルートだと、10時30分に出発して18時に着く感じになる。国際線と国内線の乗り継ぎになるので、いちいち荷物が出てくる。
- 遠回りルートではあったが、済州島で大した土産物が買えなかったため、仁川空港で買うことができて良かった、ということにしておこう。
- 金海空港@釜山は、国内線ターミナルの横に国際線ターミナルがあって、歩いて行けた。
- 金浦から仁川はリムジンバスで移動。8,000ウォンかかり、現金かT moneyという交通カードのみで支払いとなる。現金がなかったら途方に暮れたところ。乗っている時間だけで30分ぐらいかかった。
- 済州空港からホテルまでは、Tourist Infoの方に何番のバスに乗ればいいか聞いたら、丁寧に教えてくれた。3種類ぐらいの路線番号を教えてくれて、降りたバス停から徒歩6分、とまで教えてくれた。
- 航空券・ホテルをExpediaで予約したのだが、チケット代と税・サービスが別に表示された領収書が出てこないので、経費精算がとてもややこしかった。Jeju Airも内訳のある領収書が出せない(そういうフォーマットを用意していない)ので、HPからチャットでお願いして内訳を教えてもらい、そのスクリーンショットを事務方に示して何とかしてもらった。
- ホテルは、3500円/泊だった。
【両替とお金】
- ほとんどはカードでいけるでしょ、ということで、財布の中にあった万円札以外を出して、6,444円を53,000ウォンに両替した。レートは0.1216でした。
- 50,000ウォン札は不便なので、10,000ウォン札にしておいたらよかった。
- 4泊したのだが、2,000ウォンぐらい余っただけ。ほぼ使い切ったと言っていい。
- 地元系飲食店みたいなところでも、カードがちゃんと使える。ICチップ対応。
【済州島での移動】
- レンタカーを借りたりするのでなければ、バスかタクシーになる。
- 地元住民は、ほぼ100%、T moneyという交通系のプリペイドカードを使っていた。コンビニで売っているらしいが、済州空港内のコンビニには売っていなかった。どこのコンビニにでもあるわけではないようだ。
- バスはどこまで行っても1,200ウォン。1時間乗っても1,200ウォン。こんなこと日本でやれば、短距離しか移動しない人から文句が出るのではないだろうか。
- 現金で払うとき、バスはおつりが出る。透明のプラスチックケースの中に現金を入れると、運転手がそれを見ておつりを出す。おつりはコイン。よって、50,000ウォン札を入れると大変なことになりそうなので、避けたほうがいいと思う。
- おつりを出す機械が壊れていたバスもあって、その時は1,000ウォン札+500ウォン銀貨を入れて、おつりはもらわずに降りた。運転手の人は、自分の財布からおつりを出そうとしたが、もういいかなーと思ってそのまま立ち去りました。バスの運転手さん、まじめである。
- 路線はややこしい。Google Mapの経路検索も使えない。Google Mapでバス停が表示されるから、それをクリックすると路線が出るが、だいたいしか分からない。バスを乗り換えまくる人は、一日券みたいなのがあるらしいので、それを使うといいと思う。(私は使っていない)
- タクシーは安いが、恐ろしく安いわけではない。日本の半分の値段ぐらいの感じ。
【観光】
- 溶岩洞窟の万丈窟 (Manjanggul-gil) へはバスで行った。201番のバスで1時間(料金1,200ウォン)かけて Manjang cave entranceまで行く。そこから徒歩で30分かけるか、711-1か711-2のバスに乗って Manjang caveまでいく(距離は短いが料金1,200ウォン)。どこで降りるかはGoogle Mapを見ながら判断すると楽。201は幹線道路からはずれた住宅地も経由するので、次のバス停の名前を見ながら乗るとしんどい。
- みやげもの屋と食堂が一緒になったような店がある。オフシーズンだったせいもあるが、16時ぐらいで閉まる。14時に洞窟に入り、15時に出てきて土産物を買うのがちょうどいいと思う。
- 私が行ったときには、高校生(女子高?)の集団がいっぱいいて、結構混んでいました。でも、彼女らが帰った後はガラガラでした。
- 201系統は30分に1本ある。朝夕は15分に1本。本数は多い。711-1, 711-2系統の本数が少ないので、あらかじめチェックしておいて、土産物屋などでゆっくりするのがおすすめ。
- 万丈窟は一番最後の奥まで行ったほうがいい。片道30分ぐらいかかるが、途中は溶岩が固まった水平の縞模様とか、地味な景色があるだけ。最後まで行かないと「なんだったんだろう」になる。
- 民族自然史博物館はなかなか良かった。楽しかった。済州島の他の博物館と比べたわけではないが。
- 三姓穴(さんけいけつ、サムヨンヒョル)も良かった。済州島にあった耽羅国を作った神様が生まれた聖地とのこと。日本人には理解できる感じだなあと思いました。
【食事】
- ラマダホテルがある海沿いは分からないが、市役所付近の店はハングルしか書かれていない店が多い。よって、焼き肉店などで自由自在に注文するにはハングル必須である。
- 辛い物を避けたいときはサムゲタンがお勧め。サムゲタンは底のほうに少しピリッとする実があるが、大した辛さではない。私が入ったサムゲタンの店は、おばちゃんは非常に親切であった。12,000ウォン。
- 店に入る時は「アニョハセヨ」なのだが、店から出るときも「アニョハセヨ」なのには驚いた。
- 観光客が完全には戻っていないのか、どの店も結構すいていた。
- 太刀魚料理を食べられなかったのが悔やまれる。
【おみやげ】
- ちゃんと箱に入ったお土産らしきものは空港で買えばよい。
- 安いお土産を買うなら、コンビニで調達するのが良いと思う。空港のコンビニでもよい。かっぱえびせんの韓国版とか、駄菓子系がある。
- 韓国海苔の間にアーモンドを挟んだお土産が仁川空港にあった。美味しかった。5袋入りだったが、もっと買えばよかった。
【その他】
- スマホのSIMは空港にもあるが、今回はamazonで注文した。Wise SIMというもの。7日間で5G通信でき、1,030円だった。到着まで1週間かかった。設定はほぼないに等しい。速度に問題はない。
- タクシーには、運転手用のタクシーアプリがあり、それに従って運転手は運転する。スピード超過すると、下げろ下げろと警告するので、法令順守で運転している。韓国語で話すと、それを音声認識して日本語に訳して日本語で話すというアプリもあった。
- バスの運転は荒い。
- 電気自動車のバスをときどき見かけた。結構走っているみたいである。
- 韓国入国の際には、健康状態を調べるためのQ-Codeというものがある。みんなちゃんと登録してから入国していた。
- 入国の際には、両手の人差し指の指紋採取と、顔写真の撮影がある。ちゃんと生体情報で入出国管理しているみたい。
- パスポートへのスタンプは希望者だけになっていた。往路で二次元バーコードのシールをパスポート内に貼られたが、それだけだった。
【雑記】マジェスティSのサーモスタット交換
マジェスティSはヤマハの155ccスクーターです。先日、エンジンの赤ランプがつきました。冷却水の温度が110℃以上になったという警告です。なお、マジェスティSはすでに廃番になっています。私が乗っているのは初期型のマジェスティSで、走行距離は9万キロぐらいです。冷却水の警告灯の点灯は初めてです。
マジェスティSには水温計がありません。安心のため、私はKOSOの水温計をつけています。エンジンの温度は85℃ぐらいで動くように作られているらしく、95℃ぐらいで冷却水が流れて75℃ぐらいまで冷やすというふうに水温制御されています。これを実現しているのがサーモスタットで、中に水温によって伸び縮みするバネが入っており、このバネが冷却水のバルブを開閉しています。なお、冷却水(クーラント)は自動車と同じで、エチレングリコール添加の不凍液です。マジェスティSのものは緑色に着色されたものが入っています。
さて、冷却水系が温度上昇する可能性として考えられるのは、
というものです。冷却水は減っていませんから、1, 4は排除されます。カラカラ言っているとかないので、2は排除されるかなということで、まあ3でしょ、と目星をつけてサーモスタットを注文して交換しました。結論から言うと、これで不調は解除されました。
さて、作業を紹介していきましょう。
作業は以上です。有名バイクショップのホームページ掲載の作業工賃表を見ると、クーラント交換で2時間(なんでやねん)かかり、作業工賃は13,000円以上です。こんな金は払えないので、DIYはケチだからやっています。その他のパーソナルな理由もあります。
- 歩いて行けるバイク店がヤマハのバイクを扱っていない。
- ヤマハのバイクを取り扱っている店に持っていくと、暇なときにしか作業してもらえないので3-4日はかかる。
- 作業時間は2時間+クーラント購入と昼食で1時間ぐらいという作業時間なので、もうやってしまおうという気持ちになる。
でもまあ、それなりに疲れますね。以上!!
【試験研究】サファイア基板の切り出し(ファインクリスタルカッター・アルタイル使用) Scratching and breaking sapphire substrates using "Fine Crystal Cutter Ultile".
ファインクリスタルカッター・アルタイルという製品を使って、サファイア基板を切り出す方法を紹介します。今回用いるのは、2インチ径のサファイア基板です。けがいて(傷をつけて)割る方法です。劈開方向に割ったとしても、厳密には劈開 (cleaving)とは言わないよなあ、という作業です。
ファインクリスタルカッター・アルタイルは、アステラテックという会社の製品で、クリスタルベースなどの基板取り扱い商社や、最近ではアマゾンビジネスでも取り扱いがあるようです。先端に小さなダイヤモンドホイール刃がついていて、それを直線に動かして、基板をけがきます。刃の高さと、刃の圧力を調整することができるだけでなく、けがく幅も定めることができます。試験研究に最適です。
私が購入したのは、台のサイズが210x210mmのFU-100-Sです。だいたい10万円でした。刃をセットにすると10万円を越えますが、刃を別にすると10万円を下回るので備品になりません。昨今は何でも値上がりしているので、今後値上がりするかもしれませんが…。
基板を置く台には薬包紙を置きます。薬包紙は、けば立たないように表面処理してある紙なので、半導体基板のハンドリングによく使います。パラピンのほうがいいような気もしますが、在庫の都合上、硫酸紙を使っています。手袋にはポリエチレン手袋(サニメント手袋)を使うのがマストです。ニトリル手袋は、半導体基板を触ったときに汚れが付くので避けましょう。ニトリル表面に何かついているのか、皮脂が染み出すのか分かりませんが、跡が付きます。
刃の設定をする
- 刃の押さえ圧力を設定する。材料によって異なる。サファイアは硬いので、黄色のゲージで1mmの場所にする。設定一覧表は、ステージの左下(写真では右上)にシールで貼られている。
- 刃の高さを設定する。レバーをけがく方向と平行にしたときに、刃が台から少し浮いた状態にする。そうしないと、基板の端まで来た時に、ガクンと刃が落ちて、台を傷つけるだけでなく、刃の寿命を縮める可能性がある。
けがき作業
基板を割る
割れやすい面方位は、チョコレートを割るように指でパキパキと割れる。ここでは割りにくい方向に割る方法について記しておく。準備するのは、5mm厚のステンレス板。大きさは基板より少し大きいサイズ、たとえば60x60mmや60x40mmなどにする。硬いほうが良いので、SUS304製のものなどを購入する。また、この作業ではエッジが重要なので、6面フライス処理したものにする。ミスミの型番だとSUS304-6F-BSD-NNN-60-60-5など。1枚2000円ぐらい。2枚用意する。
サファイア基板の面方位による割りやすさについて
深くけがけば割りやすいのは分かっていますが、深くけがくのは大変です。ここでは、サファイア基板の割れやすい方向と割れにくい方向についてまとめておきます。基板の面方位とオリフラの面方位については、私の手持ちの基板をもとに書いています。
- c面基板は、オリフラ方向のa面も、その垂直方向(m面)も簡単に割れる。かける力はそれなりだが、失敗することはあまりない。失敗するとしたら、垂直にけがけていないとき。3インチ基板の時は慎重に。
- a面基板は、オリフラ方向のc面(つまりオリフラに平行方向)に割れにくい。その垂直方向(m面)は割れやすい。c面が出る方向に割る時は、幅が10mmなら成功確率は90%ぐらい。幅13mmなら成功確率が50%ぐらいに低下する感じである。よって、まずオリフラと平行に13mm幅でけがき、そのあとオリフラに垂直に10mm幅でけがくと、10x13mmの基板片が比較的歩留まり良く切り出せる。10mm幅のほうがc面になる。
- m面基板は、どの方向にも割れにくい最悪の面方位である。上の例は実はm面基板でした。ゴリゴリやってけがいても、ちゃんと割れず、最悪です。 オリフラはa面なので、割れやすくてもいいはずなのに…。割れやすさに、割る方向の依存性があるのかもしれません。
- r面基板は、オリフラ方向のa面も、その垂直方向(m面)も簡単に割れます。あまりにも簡単に割れるので、けがくのは少しだけで大丈夫です。垂直にまっすぐけがけていたら、これでいいの?ぐらいの力で割れます。
【試験研究】サファイア基板の熱処理とピラニア溶液処理 (Thermal annealing of sapphire substrates and a piranha solution treatment)
サファイア基板の熱処理とピラニア溶液処理について
サファイアはアルミナ (Al2O3) の単結晶です。不純物がなければ無色透明で化学的安定性の高い酸化物です。その単結晶を特定の面方位で切り出して研磨したものがサファイア基板です。腕時計などの窓材にも使われますが、半導体薄膜を形成するときの基板にも用いられます。代表例は窒化ガリウム系のLEDを作る時の基板でしょう。国内では、京セラ、信光社、並木宝石が主なメーカーです。
サファイアの融点は約2000℃にありますが、1000℃以上にサファイア基板を加熱すると、表面からアルミナがわずかに蒸発していき、平坦化して、表面に原子レベルのステップ&テラス構造が現れます。しかし、熱処理の雰囲気中に炭化水素があると、サファイア基板表面に炭化水素系と思われる不純物が付着します。こういった炭化水素系の表面不純物を除去するために、炭化水素類を激しく溶かし出すピラニア溶液にサファイア基板を浸します。
雰囲気中の炭化水素の発生源は、この熱処理の場合は熱処理に使っている多孔質アルミナの容器です。この容器の購入直後や、何か汚れが付着したときには、どうしても脱脂や表面のごみのふき取りぐらいは行わざるを得ません。たとえばイソプロピルアルコール (IPA) をベンコット(長い繊維をもつセルロースワイパー)にしみ込ませて拭くぐらいのことはしたりすることになります。このときに使ったIPAは、容器の多孔質の細孔内に残留します。もちろん有機溶剤の除去のために空焼きはするのです。しかし、容器を1100℃で20-30時間空焼きしても、この残留物は完全には脱離しません。要求レベルにもよりますが、酸化物系の半導体結晶成長の研究を行う場合には、大きな問題になります。上に示したAFM像を見れば一目瞭然です。窒化物系の場合は、最初に熱処理過程があることと、アンモニアガスによる窒化過程がありますので、事情は異なるかもしれません(つまりよく分かりません)。
この表面不純物の除去処理にはピラニア溶液を使います。ピラニア溶液は、98%濃硫酸:35%過酸化水素水=3:1(体積比)を混合して作製します。強い腐食性をもち、発泡してガスを出します。作製時には発熱しますし、廃液タンク内反応がありますので、取り扱いは厄介です。注意点をすべて網羅して書くことはできません。濃度や量、研究環境に依存するでしょう。取り扱いは各研究室で定めた安全基準に従うようにしてください。
サファイア基板の熱処理
熱処理に使う器具は下記のとおりです。
- 基板を入れるアルミナ容器:アルミナ焼成容器SSA-T 120角 (120x120x60mm)、アズワン 1-1736-03、16,500円
- 電気炉:ヤマト FO100 (100V, 30A, 1150℃まで)、250,000円 → 2023年時点で取り扱い停止、代替品 FO101で、アズワン 1-1898-11、36万円ぐらい。
熱処理条件は下記のとおりです。
- 2時間で1050℃まで昇温する。
- 1050℃で10時間保持(3時間ぐらいでもいいかもしれないが未確認。1000℃では処理の歩留まりが下がります。1050℃は必要だと思います。)
- 2時間で0℃まで下げる設定にして降温する。もちろん、2時間で室温には戻らない。扉は150℃前後以下の温度になってから開ける。もちろん、室温に戻ってから取り出します。
熱処理時間はは3時間ぐらいで行っている研究室もありますが、3時間で大丈夫かは未確認です。熱処理時間10時間だと、10枚熱処理して10枚ともAFM測定レベルでステップ&テラス構造がちゃんと見えることを確認しています。上記の条件で降温と昇温を行うと、熱処理開始から15-16時間後で250-300℃、24時間たつとおよそ室温に戻っています。
ピラニア溶液処理
使用する道具を列挙しておきます。
- 基板を入れるアルミナ容器:アルミナ焼成容器SSA-T 120角 (120x120x60mm)、アズワン 1-1736-03、16,500円
- 複数枚の基板を縦にして洗浄できるキャリア:洗浄用キャリア(オールフッ素樹脂スリットタイプ)、STF1005-01、アズワン 3-7625-03、37,050円。高いし、即納でないこともあるが、基板を縦にして洗浄(有機、酸)できるメリットは大きい。大昔ですが、ビーカーの側面に立てかけて有機洗浄していたときがありました。 →棒の部分がネジでキャリア部分に取り付けられているが、ここが折れることがある。ねじ込みは根元までねじ込んで、ぐらぐらさせないようにします。もちろん、強くねじ込まないようにも気を付けます。
- 複数枚の基板を縦にして洗浄できるキャリア:洗浄用キャリア(オールフッ素樹脂スリットタイプ)、STF0510-02、アズワン 3-7625-02、30,400円 →こちらはスリット幅が広い。STF0510-01のほうがいい。100ccビーカーとのマッチングの点では、STF1005-01推奨。
- 基板をハンドリングするための濾紙:ADVANTEC No.2 φ90mm。真ん中を折っておく。ピンセットで基板を挟んで濾紙に乗せたあと、横からピンセットでつまみやすくするため。
- テフロン樹脂コートピンセット:240mm、アズワン 7-245-04、6000円ぐらい。ステンレスなどの金属むき出しのピンセットは避ける。アルミナ容器に先端が触れたときに、ステンレスがけずれて容器表面に残留するのを避けるため。樹脂製ピンセットは先端がしっかりしていないので、ハンドリングでミスが出る。高級品を使えるなら、セラミックピンセットを使う。
- 100ccビーカー:ホウ珪酸ガラス製の標準的なもの。アズワン 6-214-03、400円ぐらい、など。洗浄用キャリアがちょうど入る。
- スターラー機能付きホットプレート:ホットスターラーREMIX RSH-1DN、プレートサイズ165x150mm、アズワン 1-4606-42、39,000円。→取り扱い停止。代替機種はLSH-1D、アズワン 1-4606-62、4万円。
- スターラー撹拌子:洗浄用キャリアとビーカーの隙間で回転させるため、10-15mmの小型の棒状のものを使う。たとえばPTFE製回転子、アズワン 9-870-01、10個で2000円少し。
- 超強力マグネット16mm:ダイソーで売っている直径16mm、200ミリテスラのマグネット。2個入り100円。これを使って、ビーカーの外からスターラー撹拌子をビーカー内で固定する。廃液を捨てるときなどに、撹拌子が廃液タンクの中に落ちないようにするのに使います。
- ピルケース:100均のセリアで売っているピルケースで、基板や試料を保管するのに使っています。1箱で3×7=21枚収納することができます。ケースが二重になっているのも安心。内側の幅は15mmぐらい。セリア店舗で100個ずつ注文購入しています。セリアの注文購入は、受け取り時に代金を支払うので、店舗によっては塩対応されたり(倉庫が狭いからかも)、本当に受け取りに来るのか疑われることもあります。
ピラニア溶液処理時間は1時間行っています。30分ぐらいで十分なのだと思いますが、30分で十分かどうかの確認はしていません。
基板の水洗
およその手順は下記のとおりです。
- 洗浄用キャリアを引き上げ、上から脱イオン水を流しかけて、ピラニア溶液をざっと除去する。
- ビーカー内のピラニア溶液は廃液タンクに入れ、脱イオン水で2-3回すすぐ。その際、スターラー回転子が廃液タンクに落ちないように、直径5mm前後の強力マグネット(ダイソー)などでビーカー側面にくっつけておく。
- ビーカー内に洗浄用キャリアを戻し、脱イオン水を上から入れて満たし、やさしく上下してすすぐ。この作業を4-5回繰り返す。
- 洗浄後は、脱イオン水に浸したままにしておいておく。
- 上記の作業を100ccビーカーで3回行います。
- 脱イオン水に浸したままの基板を、窒素ブローして乾燥させる。
このようにして洗浄した基板表面は、適当な容器内に保存します。私の場合は、100円均一の店のセリアで販売されているピルケースに保存しています。特に真空デシケーター保存などしなくても、半年はステップ&テラス構造を保持しているようです。
その他の注意点
硫酸を測るメスシリンダーは他のことに流用しない
この例では、ピラニア溶液を作るために濃硫酸を計量します。計量にはメスシリンダーを使います。濃硫酸はトロトロなので、作業後にメスシリンダーを4-5回すすいでも、内壁に硫酸が残留します。このことは、脱イオン水を入れてpH測定をすれば、pHが7ぐらいではなく、pH=5ぐらいになることから分かります。ごしごし洗ったり、フッ化水素酸でエッチング(何度もやると計量誤差の原因となる)しない限り、元に戻りません。この作業をしたとしても、脱イオン水を入れてpH測定をする必要が発生し、とても手間です。硫酸系作業専用のメスシリンダーを用意するのが正解でしょう。
ピンセットの持ち方
ピンセットは、作業形態に応じて持ち方を変えます。大まかには、ナイフのように上から持つときと、お箸のように下から持つときの2パターンでしょう。基板をハンドリングするときには、ピンセットは下から持ったほうが良いです。細かな制御ができるからです。
いろいろやり方はあると思いますが、下の写真に、基板を乾かすときにピンセットを持っている例を示します。
- 先端が丸いピンセットにして、基板の端と端を挟む。濾紙の上で作業する。
- 下から持つ。親指と人差し指はピンセットを挟むことに使い、中指と薬指はピンセットを広げることに使う。両者をバランスさせることで、挟む力を制御する。
【雑記】中島みゆき「世界が違って見える日」リリース!
2023年3月1日に、中島みゆきが44枚目の新しいアルバムをリリースした。タイトルは「世界が違って見える日」。私はAmazonで、クリアファイル特典付きで購入した。前回のアルバムは2020年1月8日リリースの「CONTRALTO」だから3年ぶりということになる。2019年末からコロナ禍が始まり、エンターテイメント系は自粛された。この間にはベスト盤の「ここにいるよ」(2020年12月)、そして中止された全国ツアーを受けてLIVE版の「結果オーライ」(2022年2月)が出ている。「結果オーライ」の冒頭の「一期一会」では、中島みゆきは笑っているが聞いてる私は涙した。(なお、中島みゆきさん、と敬称をつけないのは、すでに概念になって一般名詞化してしまっているためと思ってください。)
さて、「世界が違って見える日」だが、リリースされたのを受けて、3月2日にNHKがSONGSで中島みゆき特集を放送した。ゲストは工藤静香さん。彼女のお気に入りの曲として、「ヘッドライト・テールライト」と「銀の龍の背に乗って」を紹介し、古い曲として「あの娘」を紹介、「島より」を歌唱した。最後には「世界が違って見える日」の歌詞カードのあとがきが中島みゆきの録音音声によって朗読され、「俱に」のMVが部分的に流された。Twitterトレンドに「中島みゆき」が入っていたので覗いてみたが、ほとんどはこのSONGSへのネガティブな批判であった。久しぶりのアルバムを聴いたファンからしてみたら、もうちょっと落ち着いた番組を期待していたのだろう。(しかし、工藤静香さん、細かったですね!)
「世界が違って見える日」だが、5-6周聞いてみた。感想をざっと書いておく。もう少し聞き込めば感想は変わるかもしれないし、数年経って聞くと理解できたりする。単に別解釈をしただけなのかも知れないが。これが中島みゆきの歌の特徴だと思う。
全部で10曲入っているが、M1の「俱に」(ともに)は「PICU小児集中治療室」という北海道を舞台にした医療ドラマの主題歌、M2の「島より」は2021年に工藤静香に提供された楽曲、M3の「十年」は2007年にシャンソン歌手のクミコという人に提供された曲である。M4以降の7曲が今回のアルバムのために新しく作られた楽曲と言っていい。提供曲のセルフカバーは別アルバムにする(「おかえりなさい」や「御色なおし」など)ことが多い中島みゆきであるが、今回は混じっている。すべて歌詞には英語歌詞がつけられていたが、英語歌詞からでないと読み取れないところはほとんどなく、情報量は日本語歌詞のほうが多い。編曲は瀬尾一三さん、M4の「乱世」のみ中村哲さんとのコンビでの編曲となっている。
最初の「俱に」はパートごとに異なる種類の声で歌唱されている印象的な歌だ。「共に」ではなく「俱に」となっている。これは「つれだって」という意味を強め、共同作業というよりは、個々が誇り高く前に進もうという意味を出そうとしたためだと思う。MVがYoutubeでも公開されているが、こちらの方から制作意図を明瞭には読み取ることは難しかった。M2の「島より」は恋人の別れの文についての曲。中島みゆきの流れるような歌唱のほうが、工藤静香さんの歌唱よりはだいぶいい。「島」とは日本のことか?と一瞬考えたが、そうでもなさそう。「十年」は、1970年代の曲をイメージしたクミコさんのアルバムに合わせてあるのか、中島みゆきの初期の楽曲に似た感じで、ドラマのある曲。冬から秋にかけてのスパンで、気持ちを伝えられない女性の心を歌っている。
M4の「乱世」以降は、コロナ禍で傷んだ社会を歌った歌か。ここで歌にしておかなければ、という気持ちが伝わってくる。M4の「乱世」は苦しむ若者を歌っているのか。M5の「体温」では「体温だけが頼りなの、体温だけがすべてなの」と歌う。M6の「童話」では「童話は童話、世界は世界、子供たちに何んと言えばいいのだろうか」と歌う。M7の「噤」(つぐみ)にいたっては鳥の「鶫」(つぐみ)のことかと思えば、歌詞カードでは「口を噤む」の「噤」と書き、「噤みながら逐われゆく」は「追われゆく」のではなく「駆逐される」の「逐」を使っている。なお、Wikipediaによると、中島みゆきが初めてステージを踏んだ時に歌った曲が「鶫の唄」とされている。
M8の「心月」(つき)については作者註がある。月のように澄んだ心というより、人がもつ仏性のことを指しているそう。繰り返しフレーズが続く歌詞を静かに思いを巡らしながら聴く曲。M9の「天女の話」は大阪の心斎橋が歌詞に出てくる。友達のために泣く女の子の話。M10の「夢の京」(ゆめのみやこ)では「時は戻らない 夢は戻れる」と歌う。ウクライナ紛争を念頭においた歌にも思えるが、希望を失いかけた人へのエールにも思える。そして最後の「あとがき」では、たとえ絶望が見えてしまうような出来事があるかもしれないが、希望が見えるような方向に向くようにと励ます。
「世界が違って見える日」がよいアルバムなのか、そうでもないのかはまだ分からない。現在の社会や世相の観察と批判、そして歌を聴いている人への肯定と励まし。昔聞いていた深夜ラジオ番組「中島みゆきのオールナイトニッポン」(月曜第1部)を思い出す。なぜ、中島みゆきはこういう歌を作り、こういうふうに歌ったのか。もう一度、最初から、M1の「俱に」から聴いてみたいと思う。
【試験研究】RigakuのSmartLabデータ rasファイルを普通のデータファイルにするpythonコード
Rigaku社製の薄膜用X線回折装置にSmartLabという機種があって、これを使う機会が最近多くなってきた。他の機関の機器利用制度を使って使用しているので、データ解析やらは自分のinstituteに戻ってから行っている。できる限り測定に時間を割きたいからだ。SmartLabの制御ソフトが出力するファイルには、拡張子名でraw, asc, rasという3種類がある。設定によるのだろうが、同じデータを3つの形式でいつも持って帰っている。
rawというのは、Rigaku社が30年以上前から使っている形式で、バイナリファイルだ。ちょっと解析したくない。ascというのはいかにもな名前から分かるとおりテキストファイルだ。エディタで中身を見ると、わりと分かりやすい形で測定パラメータが並んだヘッダ部分があるのだが、肝心のデータ部分は、数字が4つずつカンマで区切られた形式となっている。しかもそれはx, yの組ではなく、xのデータ列は測定条件から計算し、yのデータ列が1行に4つずつ並んでいるというものだ。データ部はユーザーフレンドリでない。最後のras形式もテキストファイルである。こちらは、測定条件を示すヘッダ部分が、パラメータ名を示すブロック、パラメータ値が入っているブロック、という具合にユーザーフレンドリでないヘッダ構造なのだが、データ部はx, y, アッテネーションの3つの数字がカンマで区切られており、なかなかナイスである。まあ、100人いたら98人はrasファイルが好きになるだろう。
rasファイルの問題点は、1回の測定で複数の測定を行う場合に、それを1つのファイルに入れてしまうことだ。つまり「汎用測定」(というメニューがある)などでω-2θとω scanの測定を一度に行ったとする。すると、1つのrasファイルの中に、これらの測定データが2ブロック含まれてしまうのである。
データファイルというと、空白区切りかカンマ区切りの(x, y)データが基本であり、測定パラメータは行頭に#を入れてコメントアウトして残しておきたい。そこで、こういう事情に対応すべく、RigakuのSmartLabが出力するrasファイルをdatファイルに変換するPythonスクリプトを書いたので公開します。ω-2θとかロッキングカーブとかφ-scanぐらいなら大丈夫だと思います。大したコードではないし、私が必要とする範囲で処理するような内容となっているところはご容赦いただきたい。もしこれを使うという方がおられたら、ご自分でコードを改変してください。また、極点図測定はしたことがない(時間かかるでしょ)ので、このコードを通すとどうなるのかは分かりません。
使い方は実行するだけ。Python3で書いているが、3でございますというほどのものではない。tkinterはpythonをインストールすると入っているはずなので、pipの必要はないはず。最初にデータフォルダを聞いてくるので、rasファイルが入ったフォルダを指定すると、そのフォルダ内のrasファイルをすべて変換する。拡張子がdatのファイルが生成され、オリジナルは残る。複数のブロックがあったら、ファイル名に1, 2, とナンバリングされたファイル名がつく、というもの。プログラム中の使っていないファイルダイアログ関数中に、rasファイルが "Rigaku Ascii" の略のように書いているが、これは私のでっち上げです。
最後にプログラムについて。このプログラムは、ダイアログはWindowで出てくるが、その他はコマンドプロンプトで表示される。つまり、ファイル名指定はキーボードから入力したくないのでGUIを使いたいが、動作中のメッセージはCUIで十分だ、という発想。過去に測定プログラムを、見た目を重視してC#+WPFで作ったりしていた時期もあったが、あれは時間の無駄だった。やりすぎでした。フルGUIなんていうのは、GUIを担当する専門の方がおられるような販売用ソフトのプロジェクトで使うもので、研究開発で時間短縮をするためにプログラムを用いるときには全く必要ありませんね!以上!
import os import sys import tkinter import tkinter.filedialog #===== path dialog ===== def getPath(initdir): root = tkinter.Tk() root.withdraw() dirname = tkinter.filedialog.askdirectory(initialdir=initdir) return dirname #===== file dialog ===== def getFilename(): root = tkinter.Tk() root.withdraw() fTyp = [("Rigaku Ascii", "ras")] iDir = os.path.abspath(os.path.dirname(__file__)) filename = tkinter.filedialog.askopenfilename(filetypes=fTyp, initialdir=iDir) return filename #===== get item from RAS file ===== def getItem(str, begin, end, data): item = "" str += " " for i in range(begin + 1, end): if (data[i])[0:len(str)] == str: item = (data[i])[len(str)+1:].replace('"', '') return item #***** Program Body ***** dirname = getPath(os.environ['HOME']) rasfiles = [] for file in os.listdir(dirname): base, ext = os.path.splitext(file) if ext == '.ras': rasfiles.append(dirname + "/" + file) print("***** {} files found *****\n".format(len(rasfiles))) for filename in rasfiles: print("* Processing file : {}".format(filename), end="") filename_wo_ext = (os.path.splitext(filename))[0] fh = open(filename, 'r') datalines = fh.readlines() for i in range(len(datalines)): datalines[i] = datalines[i].rstrip('\n') if datalines[0] != '*RAS_DATA_START': print("Not a RAS file.") continue ras_header_start = [] ras_header_end = [] ras_int_start = [] ras_int_end = [] for i in range(len(datalines)): if datalines[i] == '*RAS_HEADER_START': ras_header_start.append(i) if datalines[i] == '*RAS_HEADER_END': ras_header_end.append(i) if datalines[i] == '*RAS_INT_START': ras_int_start.append(i) if datalines[i] == '*RAS_INT_END': ras_int_end.append(i) print(" : Found {} data blocks.".format(len(ras_header_start))) for num_block in range(len(ras_header_start)): with open(filename_wo_ext + "-{0:02d}.dat".format(num_block + 1), "w") as fh: tmp1 = getItem("*MEAS_SCAN_START_TIME", ras_header_start[num_block], ras_header_end[num_block], datalines) tmp2 = getItem("*MEAS_SCAN_END_TIME", ras_header_start[num_block], ras_header_end[num_block], datalines) fh.write("# Scan Date : {0} - {1}\n".format(tmp1, tmp2)) tmp1 = getItem("*FILE_SAMPLE", ras_header_start[num_block], ras_header_end[num_block], datalines) fh.write("# File Sample : {0}\n".format(tmp1)) tmp1 = getItem("*FILE_MEMO", ras_header_start[num_block], ras_header_end[num_block], datalines) fh.write("# File Memo : {0}\n".format(tmp1)) fh.write("# User Comment : \n") tmp1 = getItem("*MEAS_COND_OPT_NAME", ras_header_start[num_block], ras_header_end[num_block], datalines) fh.write("# Optical : {0}\n".format(tmp1)) tmp1 = getItem("*HW_COUNTER_SELECT_NAME", ras_header_start[num_block], ras_header_end[num_block], datalines) fh.write("# Counter : {0}\n".format(tmp1)) for ii in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 19, 27, 28, 35]: tmp1 = getItem("*MEAS_COND_AXIS_NAME-{}".format(ii), ras_header_start[num_block], ras_header_end[num_block], datalines) tmp2 = getItem("*MEAS_COND_AXIS_POSITION-{}".format(ii), ras_header_start[num_block], ras_header_end[num_block], datalines) tmp3 = getItem("*MEAS_COND_AXIS_UNIT-{}".format(ii), ras_header_start[num_block], ras_header_end[num_block], datalines) fh.write("# Condition {0} : {1} {2}\n".format(tmp1, tmp2, tmp3)) tmp1 = getItem("*MEAS_SCAN_AXIS_X", ras_header_start[num_block], ras_header_end[num_block], datalines) fh.write("# Data X axis : {0}\n".format(tmp1)) tmp1 = getItem("*MEAS_SCAN_MODE", ras_header_start[num_block], ras_header_end[num_block], datalines) fh.write("# Scan mode : {0}\n".format(tmp1)) tmp1 = getItem("*MEAS_SCAN_START", ras_header_start[num_block], ras_header_end[num_block], datalines) tmp2 = getItem("*MEAS_SCAN_UNIT_X", ras_header_start[num_block], ras_header_end[num_block], datalines) fh.write("# Scan start : {0} {1}\n".format(tmp1, tmp2)) tmp1 = getItem("*MEAS_SCAN_STOP", ras_header_start[num_block], ras_header_end[num_block], datalines) tmp2 = getItem("*MEAS_SCAN_UNIT_X", ras_header_start[num_block], ras_header_end[num_block], datalines) fh.write("# Scan stop : {0} {1}\n".format(tmp1, tmp2)) tmp1 = getItem("*MEAS_SCAN_STEP", ras_header_start[num_block], ras_header_end[num_block], datalines) scan_step = float(tmp1) # deg/step tmp2 = getItem("*MEAS_SCAN_UNIT_X", ras_header_start[num_block], ras_header_end[num_block], datalines) fh.write("# Scan step : {0} {1}\n".format(tmp1, tmp2)) tmp1 = getItem("*MEAS_SCAN_SPEED", ras_header_start[num_block], ras_header_end[num_block], datalines) tmp2 = getItem("*MEAS_SCAN_SPEED_UNIT", ras_header_start[num_block], ras_header_end[num_block], datalines) fh.write("# Scan speed : {0} {1}\n".format(tmp1, tmp2)) scan_speed = float(tmp1) / 60.0 # deg/min -> deg/sec count2cps = scan_step / scan_speed # sec/step fh.write("# Scan time per step : {0:.3f}\n".format(count2cps)) tmp1 = getItem("*MEAS_SCAN_UNIT_Y", ras_header_start[num_block], ras_header_end[num_block], datalines) fh.write("# Scan Y unit : {0}\n".format(tmp1)) for ii in range(ras_int_start[num_block] + 1, ras_int_end[num_block]): tmp1, tmp2, tmp3 = datalines[ii].split(' ') fh.write("{0} {1:.3f} {2} {3}\n".format(tmp1, float(tmp2) * float(tmp3) / count2cps, tmp2, tmp3)) input("Hit anykey to exit.")
【映画】ファーザー (The Father)
認知症の父親の話を、主に父親の視点から描いている映画。ストーリー上の主人公は父親役のアンソニー・ホプキンズだが、テロップの最初は娘役のオリヴィア・コールマン。2020年の映画で、監督はフランスのフローリアン・ゼレール (Florian Zeller) という人。作家からスタートした人。かなり心に刺さる映画だったので、Wikipediaを見ると、Rotten Tomatoという映画批評サイトで8.36/10.0という高得点だったらしい。映画ファンや批評家からの評価が高かったということだ。そらそうだろう。
アンソニー・ホプキンズ演じる認知症がひどくなってきている父親が、記憶が混乱し、時間の感覚が薄れ、幼児退行していく様が描かれる。娘は面倒を見ようとするが、恋人からのドメスティック・ヴァイオレンスもあり、結局は施設に入れることになる。日本では有吉佐和子原作の「恍惚の人」が映画・ドラマ化されて有名だが、認知症発症者本人視点での映画というのは初めて見た。
聴覚障害のある女の子が出てくる「聲の形」という大今良時さんの漫画がある。全7巻のうちの第6巻の後半に、この女の子に聴覚が少し残っている状態にあるとき、彼女にクラスメイトの声がどのように聴こえ、彼女がそれをどのように感じていたのかが描かれている。私がこの作品で気に入っているシーンだ。
この「ファーザー」という映画を見たとき、「聲の形」のこのシーンが思い浮かんだ。この映画のストーリーは単純だ。しかし、こんな本人視点の切り口で認知症の話を見せられたら、いろいろなことを考えざるを得ない。親が認知症になるかもしれないし、自分が認知症になるのかもしれない。どういう判断を自分はするのか、どういう気持ちに自分はなるのか。