ステップが多く煩わしい手順ですが、それなりのDEMを得ることができました。
もっと良い手順があるかもしれませんので、参考程度にしてください。
昨日投稿してから、あの手順でうまく行くか試してみることとしました。
海と欠損値が入っているようなところを選んだところ、海岸線が複雑なのは良いとしても島などがあり、Shapeファイルをフィルタとして切り抜くのには無理がありそうだと感じました。
ここで方針転換することとしました。海と陸地を分類するラスタファイルを作成して、ラスタ計算機で処理することを目標としました。
まず、上のラスタをラスタ計算機で処理します。欠損値として-9999が指定しているとうまく動作しないので、プロパティの透過性タブにある「データなしとする値」のチェックを外します。
外すと次のように表示されます。
ラスタ計算機で処理します。ラスタ計算機で使っている「!=」は不等号です。
( )内の条件が真なら「1」、偽なら「0」を返します。式は-9999(海など)の値でないのなら1×9999ということで9999。
海などの場合は0×-9999という計算をします。
得られたラスタです。
このラスタをShapeファイルに変換します。使うツールはプロセッシングツールにあるGRASSのr.to.vectです。
得られたShapeを海の部分だけ残して、後は削除したものです。
今度はShapeファイルをラスタに戻してやります。使うツールはプロセッシングツールにあるGRASSのv.to.rast.attributeです。
セルサイズのところに入っている数字は、他のラスタのメタデータを確認して揃えてあります。
得られたラスタです。陸となっている部分は「no data」となっているので、もう一手間掛けます。
プロセッシングツールにある SAGA - Raster Tools - Reclassify values を使います。
上のラスタを対象として、下の方にある「replace no data values」を「1」、「replace other values」を「0」にして実行します。
得られたラスタです。海が「1」、陸地が「0」で分けることができました。
欠損値のデータ補間を行います。最初に示したラスタへの処理です。処理前に、透過性タブにある「データなしとする値」にチェックを入れておきます。
ラスタ - 解析 - 欠損値の補間 を使って得たラスタです。昨日に投稿で書いたように海岸線付近が余計に補正されています。
このラスタを陸と海を2値で分けたラスタを使って修正します。
最終的に得られたラスタです。海の部分の値が「0」となって、陸地部分に欠損値はありません。
長々と書きましたが、一部でも参考になる手順があれば幸いです。