本記事について
アドベントカレンダーの内容をまとめたものになります。
また強い要望がありましたのでMATLAB EXPO 2024のライトニングトークまで温めるつもりだったアプリも掲載します。
Gitに掲載してますのでご参考ください。
DEM2GeoTIFF_Convert
はじめに(使用するデータ)
本件は国土地理院の数値標高モデルからDEMデータを取得し、それを1枚のGeoTiff画像に変換する物です。
EPSGコードなどが違うので他国のデータに応用する場合は注意が必要となります。
サンプルとして国土地理院のDEMデータを抜粋していますが規約に反する場合は消去します。 利用規約に基づきデータは入れておりません。あくまで画像のみとなっております。
概要と必要なToolbox
DEMデータをGeoTiffに変換する
参考:日本の標高データをMATLABで活用 - GeoTiff変換 -
ここではDEMデータ(3次メッシュ情報)を1枚ずつGeoTiff変換しています。
GeoTIFF_Convert.mlx
[~, pList] = matlab.codetools.requiredFilesAndProducts('GeoTIFF_Convert.mlx');
Tbox = string({pList.Name}');
Certain = cell2mat({pList.Certain}');
disp(Tbox(Certain))
"MATLAB"
"Mapping Toolbox"
"Parallel Computing Toolbox"
個々のGeoTiffファイル群を1枚に結合する
参考:日本の標高データをMATLABで活用 - モザイク結合 -
3次メッシュを2次メッシュとして1枚のGeoTiffファイルに結合するものです。
ここでも他国のデータを使うときはEPSGコード等の調整が必要です。
GeoTIFF_Merge.mlx
[~, pList] = matlab.codetools.requiredFilesAndProducts('GeoTIFF_Merge.mlx');
Tbox = string({pList.Name}');
Certain = cell2mat({pList.Certain}');
disp(Tbox(Certain))
"MATLAB"
"Mapping Toolbox"
アプリ (NEW !)
上記2つを組み合わせてアプリ化したものです。
waitbarをつけているため並列計算しておらず挙動は遅いので要注意です。
またオプションで補間機能を追加しています。
川(橋含)等の標高が-9999mなので周囲の高さで線形補間をかけられるようにしました。
GeoTiff.mlapp
[~, pList] = matlab.codetools.requiredFilesAndProducts('GeoTiff.mlapp');
Tbox = string({pList.Name}');
Certain = cell2mat({pList.Certain}');
disp(Tbox(Certain))
"MATLAB"
"Mapping Toolbox"
そのほか
mdファイル作成は以下のコードを使っています。
export("README.mlx","README.md",EmbedImages=false, FigureFormat='png', Run=true);
最後に
Mapping Toolbox日本語化してください…