Sep. 20, 2018 start, Oct. 13, 2018 latest

以下,時系列で下方に向かって,記述してゆきます。共同研究者の川口昇さんのネット環境がきびしいために, 木庭からのファイル送付はこのページを使用します。
  このコンテンツ1.〜8.を作成する過程は,紙の海底地形図から10mメッシュのDEMを言わば手作業で求めることであった。そのDEMをアスキー形式で出力すれば,シミュレーションに使えると考えてきた。ROIで10mメッシュの深度マトリックスを作成するとなると,ベクトル形式では不可能と判断し,画像ベースを考えた。そしてスキャン画像と実距離との関係から, 10mメッシュの深度マトリックスを得るための解像度は127px/inchとした。このROIは,322px × 233pxと,極めて小さなものではあるが, 隣接する等深線間の深度を求めるセル数は少なくとも4万件以上にもなり,一人の短期の作業量としてかなりのものになった。
  そこで,この隣接する等深線間の深度を求める作業は自動化する方針に変更した。それが,9.からのものである。

1. Sep. 20, 2018  送付: 沖永良部島宇和美崎周辺海浜流シミュレーション想定範囲ver. 1
2. Sep. 22, 2018  送付: 沖永良部島宇和美崎周辺海浜流シミュレーション想定範囲ver. 2
3. Sep. 23, 2018 沖永良部島宇和美崎周辺への海浜流にかかわる沖波の想定
4. Sep. 23, 2018 ROI画像作成過程1ーROI画像をその長軸を水平にするように回転
5. Sep. 30, 2018 ROI画像作成過程1ーROI画像の解像度を10mに
6. Sep. 30, Oct. 7-10, 2018 ROI画像の個々のセルの深度を求める準備
7. Oct.10-11, 2018 ROI画像の個々のセルの深度を求める手法1: 全体像
8. Oct.12-13, 2018 ROI画像のセルの深度を求める手法2:等高線線間の深度計算
9. Oct.26, 2018 等値線ベクトル作成への方針変更

 

1. Sep. 20, 2018  送付: 沖永良部島宇和美崎周辺海浜流シミュレーション想定範囲ver. 1

   昨日, ご教示いただいたシミュレション範囲を確認させてください。次のリンクを張った海底地形図を見ていただいて,もっとも妥当な区域をA(大)〜C(小)から選んでください。これらの矩形に包含される紺色の角丸矩形は調査範囲です。選んでいただいたのちに, グリッドを作成します。その際には,グリッドの縦横単位を 10mや50mなどを考えて作成するなかで,多少の領域の拡大縮小(eg. 10mグリッドの場合, 10m以内)はありえます。
  なお,区域Aの長辺長はほぼ5.5kmです。
  この海底地形図o. 6505_5は,海上保安庁発行,  2002年9月27日発行, 2015年11月 復刻版発行。
 陸域の高度は,平均水面上。水深は, 略最低低潮位面下。 和泊港の潮位は, 最低水面NLLW(略最低低潮位,DL)からの高度を示すと, 大潮平均低潮面MLWS 0.4m, 平均水面MSL 1.11m, 大潮平均高潮面MHWS 1.8m, 最高水面 NHHW 2.2m。サンゴ礁を干出岩として表現されている。  干出岩は, 最低水面(略最低低潮面、水深の基準面)と最高水面との間にある岩で、概略の形状が示されている。 この定義からすると, supratidal platformの大半は干出岩として表現されていることになるが, 海底地形図の表現からすると, なんらの識別もされていないであろう。
  とはいえ, 干出岩の定義を現地で測量した結果から見ると, 干出岩はセレーション上縁, 言い換えると, 低潮位プラットフォーム主要部から, 中等潮位面全域と, 岩礁域では潮上帯下部, 湾入域のビーチでは現海水準に対応するビーチロックの上限付近。

2. Sep. 22, 2018  送付: 沖永良部島宇和美崎周辺海浜流シミュレーション想定範囲ver. 2

   下記のように,ご教示いただいた上での,シミュレション範囲を確認させてください。次のリンクを張った海底地形図を見ていただいて, Dと考えていいのでしょうか

海底地形に関わる深度データの作成範囲について
沿岸範囲    :比較したい場所を含む、一番狭い範囲左右+500m程度の余裕(3km?)   ← ← ←Dですと, 長軸は,3.5kmになります。
岸沖範囲    :水深150m程度  ← ← ←Dですと, 水深170mほどにしています。
周期 T=9sec
あとで長い周期を見たくなるかもしれないので、
14secの沖波長の1/2
Lo/2=g/2π*T^2/2=1.56*14sec^2/2=153m ←これより深くする

メッシュサイズ :  10mメッシュ  ← ← ←かなり労力は減ります。? 
周りの礁原の高さ:  測っている高さ  ← ← ←当方の測量で得た値ということですね?
水位:  知りたい潮位  ← ← ←木庭のメールで申し上げた値ですね。Sep. 21の木庭のメールに示しましたように, 「ただ,湾入部の礁原の陸端は平均潮位で,この時にsupratidal platformの場所は平均水面は1m以上高くなっていますので,データムから平均水面,つまり,+1.11mを使うのがいいのでは」と思っています。

3. Sep. 23, 2018 沖永良部島宇和美崎周辺への海浜流にかかわる沖波の想定

   ご教示いただいたサイトのファイルをここに再掲します。独立法人 海上技術安全研究所のサイトからのものです。これをコピペして得られたデータは, 文字データなので, エクセルではセルの左寄せで表示される。エディターで開いて, csv形式で保存する。ここの値の直後にアンダースコア(それに接してコンマ)が見えるので, 削除する。その後, 改めて, エクセルで開くと, 左寄せの文字データが右寄せの数値データとして表示される。そうして作成したエクセルファイルをここにリンクする。  ここにはグラフも2個, を表示している。上図の横軸は周期であるが, 方位との関係を直感的にしることができない。それに対し,下図のように横軸を方位にするとわかりやすい。
  この下図を見ると, 有義波は90 degrees +/- 30 に集中し, さらに,-300 degrees, すなわち, N-30 degrees W, 北というより多少, 西に振った方位が多い。 シミュレーションの方位を一つとするなら, 波向きは, リンクしている説明通り, 真北から時計回りに表示する。それゆえ, 90 degreesというのは,東に該当し, 風向きと同様に, 東方向からの波向きである。東から西に向く波である。シミュレーションを実施する周期は, 上図から見ても平均値7.16sを使用するのが妥当だろう。

4. Sep. 23, 2018 ROI画像作成過程1ーROI画像をその長軸を水平にするように回転

   ROI域をまずは, 矩形を水平垂直軸に合わせる必要がある。回転前のIllustrator上のスクリーンショットを示す。この図の右手に二つの交角を示すが,上の方は, ROIの長辺軸と取り込み海底地形図画像のPhotoshop枠内の水平軸との交角であり, 下の方は,ROIの長辺軸と緯線の交角である。前者(58.820 degrees)はROIの画像をPhotoshop上で回転して, ROIの長辺を水平軸方向にするためで, 後者(58.629 degrees)は沖波の角度調整のための緯線方向を保持するためである。ただ, このROIに緯線が入っているので, 地図の回転角度を結果としては,意識する必要はないと言える。この図に示したスケールは海図から切り取ったものであり, これから, ROIの長辺長は3123.8mとなる。この作業は, Illustrator上で実施した。

5. Sep. 30, 2018 ROI画像作成過程1ーROI画像の解像度を10mに

  芹沢さんと古池さんのご指示で,1mesh=10mが適当ということであったので, 紙の海図からシミュレーションデータを作成する準備を進めている。
1. 前述のIllustrator上の海底地形図にROI枠を入れた画像全体を600dpiでまずは画像出力した。ROI枠線は橙色で2points幅,不透明度50%とした。
2. その画像ファイルをPhotoshopで開き,ROIを含む矩形で切り取る。ROIの画像をPhotoshop上で反時計回りに,58.820 degrees回転して,ROIの長辺を水平軸方向にした。見た感じ,ROI長辺軸は水平になった。そこで,この枠に従って,少し余裕をもって切り取った。
3. そして,Photoshopの,ウィンドウ/情報,を見ると,W: 64.4, H: 46.6と表示されている。この単位はmmであり,スキャンする前の紙の5万分の1海底地形図のこのROIに一致している。
解像度600 dpi = 600 dots / 25.4 mmであるが,25.4 mm × 50000 = 1270 mであるから,1 dot = 1270/600 = 2.1166667 mとなっている。解像度を粗くすることで,1 dot = 10 mにすることは可能であるが,解像度をほぼ1/5にした場合,果たして文字や等高線が見えるのかどうか?
4. 一応やってみよう。600 dpi × (2.1166667 / 10) = 60 × 2.1166667 = 127 dpiにすればいい。イメージ/画像解像度,で,解像度を127 dpiとする。
かなり画像が小さくなったが等高線も数字も読めた。もう一度,イメージ/画像解像度,で情報を覗くと,
画像サイズ: 219.8k
寸法: 322 px x 233 px
合わせるサイズ:オリジナルのサイズ
幅: 64.4 mm
高さ: 46.6 mm
解像度: 127 pixel/inch
となっている。これで大丈夫。このファイルをここに添付する。これをここでは,ROI元画像と呼ぶことにする。
5. 川口さんが実行する予定のwindowsのアクセサリーソフトpaintはどうであろうか。 Photoshopでは画素単位の(x, y)座標値が見えない。paintはどうだろうか?
作業過程で,テキスト入力を果たした個々のセルは,色を塗って行けば,混乱がない。作業を分割して,例えば10分ほどの作業ごとに,名前をつけてファイル名を変えて行けば,作業の積み上げが可能であろう。 例えば, work0930_15h28, work0930_15h50という具合に。
  で, paintでこのファイルを開くと, 元画像の画素(ピクセル,セルなど種々の表現がある)がさらに4等分割(左右5.04m対応, 上下5.02m対応)されているように見え, 画像の番地も見えない。gimpがいいことがわかった。
6. Gimp 10のインストールサイトは次のよう。
https://www.gimp.org/news/2018/08/19/gimp-2-10-6-released/
上のページの最下部に,ダウンロードのボタンがあるので,それをクリックしてください。web siteがアクセスしているpcマシーンのOSを読み取ります。ぼくの場合は, 次のように。

Current Stable Version

The current stable release of GIMP is 2.10.6 (2018-08-19).

We think your OS is OS X.

Show downloads for GNU/Linux | OS X | Microsoft Windows | All

GIMP for macOS

Download GIMP 2.10.6
via BitTorrent
 Download GIMP 2.10.6
directly

で,  OS XがYosemite 10.10以上に対応していることが示されている。ぼくの場合, El Capitan 10.11.6なので, インストールしても使えるはずである。現在,ぼくはGimp 2.8をインストールしているので,不要ではある。 川口さんの場合(Windows 8でしたか?), Supported OS: Windows 7 or over,とあるので, インストールに問題はありません。
  ぼくは, 縦書きや日本語表示に興味が無いのでニューヴァージョンは不要ですが, 画面を同じにするために, あえて, このヴァージョンをインストールします。
  オレンジ色のDown load GIMP 2.10.6 directly からダウンロードします。ほぼ7分間もかかった。gimp-2.10.6-x86_64.dmgという名称で,181.7MBもある。このアイコンをダブルクリックすると解凍して,筆を加えたワンチャンのアプリケーションが現れるので, システムのアプリケーションフォルダーにドラッグアンドドロップした。Windowsの場合,システムの指示に従えばインストールされる。
   gimpでROI元画像を呼び出した際の画面の一部が次の画像(図gimp-1)である。
図gimp-1

    メインメニューの, 画像/画像の情報, で表示されたウィンドウも併せて表示している。この画像は,322x233ピクセル。 元画像のサイズと変わらない。この元画像中の左手の下方に黒潰しを記しているが,これは,鉛筆で描画のツールでドットしたもので,その位置の画像座標値がこのメーン枠最下部の最左手に, (43, 189)と記されている。つまり,画像の座標値は,画像の左上隅を(0,0)とし, (右方,下方)とすることがわかる。(右方,下方)=(X軸方向, -Y軸方向)である。左下隅は(0, 232), 右上隅は(321,0), そして右下隅は(321,232)となっているのである。

6. Sep. 30, Oct. 8-10, 2018 ROI画像の個々のセルの深度を求める準備

   元図をGimp上で拡大してゆくと,一つ一つのセルが見えるようになる。個々のセルの海抜高度を求める手法を以下に示したい。
 図gimp-1の左手のパレット上部には,各種ツールが見られるが,上から2段目右端の拡大鏡アイコンをクリックすると,ツール群の下方に,ズームのメニューが現れて,拡大と縮小の選択ボタンがみえ,拡大が選ばれている。表示画像上でクリックすると拡大表示される。
 わかりやすい例を次に示す。次の図gimp-2は図gimp-1の右上付近の拡大図である。
図gimp-2

  この図では,一番上から, 干出岩(隠顕礁) , 10m(干出岩にもっとも近い等深線は5m), 50mの等深線はおおよそわかるが, 20m, 30m, 40mなどの等深線はわからない。元図をプリントアウトして, 対照して行けば,なんとかなるかもしれないが, 木庭が全画像の等深線などをイラストレーターを使って個々にすべてをトレースした方が良いように思った。(更新 Oct. 7) 今朝, 考えたのだが, 川口さんにできればしていただきたいので, GIMPで画像的に等深線を明瞭にすればいいのではと考えた。イラストレーターの作業よりもかなり効率がいいと思う。で, ひょっとすると,2値化でもいけるのではないか。ちょっとやってみた。
  2値化の閾値を161とすると,10m間隔の計曲線がほぼ実線で表示できた(図gimp-3)。もちろん解像度が低いので,直線にならずセル間で切れ切れになる。
図gimp-3

  上図では,次のような問題点がある。
1. 当然ではあるが,50m間隔の計曲線と10m間隔の主曲線の太さが異なる。
2. -100m以浅は10m間隔の主曲線が交わることはないが,-100m以深は,この範囲でも主曲線が交わってしまう可能性がある。
3. 住吉港周辺の地名などのテキスト,港の範囲を示す破線, 緯線, 深度を示す数字など,そして,この画像処理で生じたゴミを削除する必要がある。

  3.の問題は作業をしてゆけば解消される。2.が最も難問ではあるが解消法は幸い思いついた。芹沢氏と古池氏によれば,波の屈折を評価する場合, 深度-150m以浅が効く。そのため, -150m以深については,計曲線のみを使って比例配分をする。主曲線は計曲線の間に均等に配置すると考えるのである。-100m〜-150mの深度幅については,主曲線が省略されている西よりの空白部からより東方の主曲線が交わっている部分ぐらいまでは, -100mと-150mの計曲線のみ使って深度を求めることとする。
  1.の問題であるが,各セルの深度を求める上で, 計曲線と主曲線に差があってはならない。上の図gimp-3の右上を拡大したのが下の図gimp-4である。最上部の凸凹は海図の海岸線,つまり, 前述のように略最低低潮位にあたる。この図の最下部に見えるのは, -50mの計曲線である。海岸線とこの計曲線の間には4本の主曲線がある。概して, 計曲線の幅は2ピクセル, 主曲線の幅は1ピクセルになっている。ただ, 解像度が低く縦(y)方向と横(x)方向だけで斜め方向が示されるので,カーブは主曲線であっても幅2ピクセル, 計曲線であっても幅1ピクセルの場合がありうる。とはいえ,計曲線と主曲線の違いは, 線の幅から明瞭に区別できる。なお,主曲線は紙地図のスキャン時の粗雑ゆえに,不連続になっている部分があり,これは川口さんの誤解を避けるために,木庭は基本的には1ピクセル幅の線で繋ぐつもりである。

図gimp-4


  次の図gimp-5は,図gimp-3を次の作業によって,数値マトリックス化の作成に向けてのものである。
1. プラシツール白色10pで不要なピクセルを大雑把に潰した。
2. ビーチ, 石灰岩台地や崖など, 人工堤防などからなるMSLより上の陸域を紫色Pantone666Cで塗った。
3. プラシツール白色5pで, より細かくクリーニングした。
4. 上記の陸域と, MSL〜略最低低潮位の範囲を礁原域の範囲を明確にするために, 鉛筆ツール(1p幅である)を使って, 黒色で海側を塗り, 陸側については, 略最低低潮位のラインを1p幅にすべく, 白色で塗った。 MSL側も同様にした。
5. 陸域をクリーンにすべく,さらに薄い紫色で修復した。
6. 礁原を,薄緑色Pantone345Cで塗った。

図gimp-5

  図gimp-5をさらに編集して, 図gimp-6を作成した。粗くはブラシツール白色5pで,詳細には鉛筆ツール白色1pでクリーニングした。-150m以浅は10m間隔の主曲線を残し, -150m以深は50m間隔の計曲線のみにした。

図gimp-6
 

 この図はまだ粗くて, クリーニングと強調化の作業が必要で,計曲線を2ピクセル幅に整理した。塗りつぶしツールでおおよその線幅を塗って, 鉛筆ツールで, 該当の色と白色を使って, 形を整えた。次の図gimp-7では, 計曲線が完成している。古池さんによれば, -150m以深をno dataにして問題がないようなので, さし当りの数値化は, -150m以浅に限定しよう。図では, 左下隅から,計曲線を,オレンジ, グリーン, ブルー, パープル, マゼンタの各色にしている。そして,またオレンジ, グリーン,となるが,このグリーンが-150mの等深線にあたる。これより浅い範囲を数値化の対象とする。-150m〜-100mの間の主曲線は左端付近が欠落している。-140m, -130mの主曲線の間の空隙は10mメッシュでは,無いところ, つまり両曲線が接している。川口さん, よく観察すると区別できます。 色をつけることもできますが, 計曲線と混乱する恐れもあり, 主曲線は全部,黒色とします。

図gimp-7

  残りのぼくの作業は,主曲線幅を1pixelを基本に整理,つなげることである。次にその作業結果の図gimp-8を用意する。

図gimp-8

  これでほぼぼくの分担工程は完了。 この図を理解するためにあえて図gimp-1に掲載した10m-meshの元図を次に示す。
図ROI_ver2_127dpi_gimp

  この範囲のすべての深度を求めるには,より広域を設定しないと無理ということがわかった。たとえば,-200mの深度曲線がこの図の東側では切れているので, 任意の点Pから計曲線への最短距離を求めることができない。
   図gimp-8は, -150m以浅に注目して作成した。川口さんの作業を支援するために,計曲線で挟まれた50m幅の範囲を同色で塗った。 この際, 主曲線の黒線に塗色が浸み込んで,黒線の濃度が薄くなった。そのため, 画像/レベル補正, で,全体的に濃く表現したのが次の図gimp-9である。

 図gimp-9

  等深線に多少色付けが生じたが,見やすくなったので問題はないだろう。

7. Oct.10-, 2018 ROI画像の個々のセルの深度を求める手法1:全体像  

  いよいよ,佳境に入ってきました。こんなに労力が必要とは思いもしませんでした。 川口さんの作業は,図gimp-9を今後さらに改良した図を使っていただくつもりです。作業過程を今朝寝ながら考えました。図gimp-9を参照しながら,読んでください。古池さんもお願いします。
1. 図の最上部は暗色で塗っていますが,これは陸地で,MSLより高い部分です。石灰岩の段丘やビーチを含みます。この領域をすべて,5mとしてしまいます。シミュレーションの際に,陸域での反射なども考えるのでしょうか。ぼくのイメージでは波はそのまま抜けて行く,という発想ですが。黒の領域はどのように処理すればいいのでしょうか?
2. 陸域に接する緑色の部分は礁原です。 左手の小さな港は住吉港です。礁原を破壊して停泊場所を作り,外用からの波を突堤を設置して防いでいます。主要な波は左手からきているようですね。ぼくたちが注目しているのは,住吉港の右手方向にある礁原が欠落している場所の1.0〜1.7m above MSLのsupratidal platformです。
   このsupratidal platformは僕の海水準変動カーブでは,過去5000年ほどの成果です。 住吉港をこの海図から削除した方がいいと思うのですが。ぼくとしては,住吉港を入れるのは不適切と思っています。早急に削除したいと思います。古池さん,如何でしょうか?
3. 礁原(=干出岩)の海側境界は,海図の定義から略最低低潮位,つまり, 0mになります。礁原は, いわばMSL(1.08m)からLLWL(0.00m)までの緩やかな斜面であるが,面的に高度分布を捉えていないので,たとえば礁原を全部1.08mとしていいのでしょうか。古池さん,如何でしょうか?
4. すでに申し上げたように, -150m以深はno dataにします。古池さん,如何でしょうか?
5. これから書くことは細かいことですが,重要なことです。陸域は5m,礁原は1.08m,そして,計曲線と主曲線は切りのいい数字で,例えば-40mの黒線上のセル群には深度-40m値を入力します。残りのセルの深度は, たとえばP点に近接する計曲線と主曲線との距離から深度を個々に求めて行きます。かなりの労力となります。
6. シミュレーションに必要な数値マトリックスは,画像の座標値(x 下方向, y 右方向)に関して,何らかの整列が必要なのでしょうか。それとも,任意で良いのでしょうか。作業過程では,x方向またはy方向に沿って,座標値を一つ一つ増加してデータを作成しません。これまで述べてきたように,個々の領域や等深線をまとめて数値化することになります。(x, y, z)の形で,個々のセル情報間をリターンで区切って,テキストデータを提供することは可能です。
  作成済みの数値マトリックスをGrassGISに取り込み, 出力することによって何らかの整理は可能とは思うのですが,かなりの労力を必要とします。

一応,ここまでで,ご意見,ご指導お願いします。


8. Oct.10-13, 2018 ROI画像の個々のセルの深度を求める手法2:等高線間の深度計算

  陸域や礁原などの領域を一つの価で塗ることは, GIS機能を使うことで可能ではある。それを次に示す。まずはこの図gimp-9をGrassのデカルト座標系に取り込んで,DEM Editor http://motochan.sakura.ne.jp/public_html/GISContents/83.htm で 陸域や礁原と等深線に深度を入力してしまう。そのあと, 等深線間の深度を, 隣接等深線との距離をセル数で読み取り,比例値を入力する。そして,r.out.asciiコマンドでこの画像全域をテキスト出力する。
  ただ,この方法では等深線間の距離値の精度はかなり低いし,川口さんにお願いするのが難しい。そこで,一つ一つ,入力することになる。ROIの画像は,322px - 233pxだから,全セル数は75,026に及ぶ。-150m以深はno dataとするので,およそ5万セル。陸域と礁原をぼくが単純に入力した場合,川口さんの作業対象は4万セルになる。さて,川口さんの作業過程を次に示す(具体的な操作については,後述する)。
  ほぼ2セル幅の計曲線とほぼ1セル幅の主曲線位置の値は単純にその深度値となる。
  等深線間の一つ一つのセルの中心をP(Xp, Yp)とする。近接する二つの等深線に垂直二等分線を下ろして,その交点I-shallow (Xi-s, Yi-s), I-deep (Xi-d, Yi-d)を求めて, 次式でP点の深度を求めることになる。P(Xp, Yp)と近接する浅い方の等深線値をDs,深い方の等深線値をDdとする。ピタゴラスの定理を使って,P点とI-shallow点の距離を√s,P点と I-deep点の距離を√d とすると,P点深度= Ds + √s/(√s + √d) * (Dd -Ds), となる。
  このように考えてきて,川口さんに連絡して,その反応を見て,改めて川口さんの作業量に愕然とした。極めて非人間的な作業になってしまう。そこでこのような考えを捨てることにした。
  

9. Oct.26, 2018 等値線ベクトル作成への方針変更

  ここまでの作業は完全に無駄になった。他事で忙しく,間が空いたが, Illustrator + PlugX-shapeそして,GrassGISを使ってDEMを作成し, シミュレーションROIのascii xyz出力にたどり着いた。


  

 

 

以 上