NASA DEM（hgt形式）の概要・ダウンロード方法・QGISでの表示

# 1. はじめに
ここではNASAの標高データNASADEMをダウンロードしてきてGISソフトで表示するところまでをメモします。

## 背景・これまでの課題
RGB標高タイルを作るために、これまで私は、グローバルなDEMとしてSRTMの1秒DEM（SRTM）を使っていました。
USGSのEarth Explorerからバルクダウンロードしたのですが、データには一部欠損があるようで（特に山岳地帯）、下の図のように3D Terrain表現をした時には欠損部分のためボコボコになるという課題がありました。そこでSRTMデータの欠損部分をほかのデータで埋めたものを探していました。
（下の図は西アルプスのAosta地域です。高圧変成岩で有名ですね！）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/db5771ae-0b25-3bc4-eacb-3819b6af0c0f.png)

↓左：SRTM 右NASADEM （n45e007）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/f8c6492f-2cb0-0fac-01e4-9e0bf5203380.png)


## 経緯
コペルニクスのデータやALOSのDEM（30m）を組み合わせて穴の部分を埋めようかなと考えていたのですが、USGSに問い合わせをしたところ、「LP DAACのデータを見てみたら？」とアドバイスをもらえました。USGSのEarthExplorerにあるDEMには最新のものが含まれていないそうなので、直接NASA関係のものを見た方が良いようでした。（注:後ほど気づきましたがEarthExplorerにもNASADEMはあります。）

そこで、NASA関係のデータセンターの一つ、LP DAAC（The Land Processes Distributed Active Archive Center）で標高データを探しました。データを探すページでDEMと入れてデータをチェックしました。
https://lpdaac.usgs.gov/product_search/?query=DEM&view=cards&sort=title
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/92e06987-aaab-4c9a-27bf-dd744695f87c.png)

検索結果の中に、**NASADEMシリーズ**があって、これは **srtmデータをベースに欠損部分（void）をAster-GDEMやALOS/PRISMのDEMで埋めている**とのことです。プロダクトにはいくつか種類がありますが、**NASADEM_HGT v001**でよさそうです（HGTはheightの略）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/d30114c0-56bf-ea99-3099-3c38306e4433.png)

:::note info
これらのデータのタイプについては、以下のユーザーガイドの表１を見ると何が含まれているか理解できます。
https://lpdaac.usgs.gov/documents/592/NASADEM_User_Guide_V1.pdf
:::

# 2. NASADEM_HGT v001について
NASADEM_HGTですが、正式名称はNASADEM Merged DEM Global 1 arc secondというらしいです。データについて調べました。

## データについて
ユーザーガイドと、LP DAACのページの説明を見て、データについて以下のように理解しました。
* 米国のNASAとNGA(National Geospatial-Intelligence Agence)を中心に、ドイツとイタリアの宇宙機関も協力して、2000年に観測されたSRTMのオリジナルデータから処理されたデータ。
* データが再度処理されて、1秒解像度のデータがリリースされたのは2020年2月。
* ASTER-GDEM（v.2）、ICESatのデータ、ALOSのAW3D30などを使ってSRTMのデータ欠損部分を内挿しているそうです。
* HGTデータは、DEMに加えて、シーンの値（NUM →データの諸元を表すような値）、水部（water mask）も持っていて、低解像度のブラウザ用画像も付いているとのこと。
* フォーマットはHGT形式（heightの略。ただのバイナリーデータだと思います）、またはNetCDF4形式でも利用できるとのことです。
* 諸元
    * 範囲　北緯60度から南緯56度、西経180度から東経180度
    * 投影表　経緯度
    * 測地系　WGS84/EGM96
    * ファイル形式 HGT or NetCDF4
    * １シーンあたりの範囲　1度 × 1度　ピクセルサイズは 3601 × 3601。　（1ピクセル1秒、～30m）
    * レイヤー数　３
        * DEM：欠損部を内挿したDEM。単位はメートル。16-bit signed integer (-32768 ～ 32767)。（注：lpdaacのページには-32767からと書いてありますが、16ビットの符号付整数なら-32768から？？？）
        * NUM：Number of Scenes。単位は無次元（クラス）。8-bit 符号なし整数（0-255）。（注：lpdaacのページにはsignedと書いてあありますが、unsignedだと思います。）
        * SWB：updated SRTM water body data。単位は無次元（クラス）。8-bit 符号なし整数（0が陸で、255が水部）。（注：lpdaacのページにはsignedと書いてあありますが、unsignedだと思います。）

（参考）    

https://lpdaac.usgs.gov/products/nasadem_hgtv001/

https://lpdaac.usgs.gov/documents/592/NASADEM_User_Guide_V1.pdf

https://lpdaac.usgs.gov/news/release-nasadem-data-products/

## NASAのデータポリシー
以下のページにLP DAACからのデータの引用やポリシーについて記載があります。データは無料ですし、**All LP DAAC current data and products acquired through the LP DAAC have no restrictions on reuse, sale, or redistribution.** とのことです。
ASTER G-DEMは少し制限があるようですので、よく読みましょう。NASADEMを使った場合には、データソースを表示するときに合わせて引用を書いておこうかなと思います。

（参考）

https://lpdaac.usgs.gov/data/data-citation-and-policies/

https://www.earthdata.nasa.gov/data-and-information-policy

# 3. データの利用
## 3.1. データのダウンロード
### ユーザー登録
NASAのデータ入手のためにはユーザー登録が必要なので、持っていない場合は以下のURLから登録します。
https://urs.earthdata.nasa.gov/users/new

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/6e55817a-d21e-791f-0ac0-c56c118ad2c0.png)

### ダウンロード ツール・サイトの確認
LP DAAC のページからデータ入手のためのツールを見てみると、AppEEAS、Data Pool、NASA Earthdata Search、USGS EarthExplorer、OPeNDAP があるのがわかります。
https://lpdaac.usgs.gov/products/nasadem_hgtv001/#tools

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/52debfb6-8fa0-1f35-570d-efdb4fadd73e.png)

もう少し調べて、NASAの[EARTHDATASEARCH](https://search.earthdata.nasa.gov/search)のRelated URLsをみると、DATA TreeとEarthExplorerからダウンロードできるようであることがわかります。Data Treeと、この上で言っているData Poolは同じURLのようです。APPEAEARSなどは以下にメモしますが、用途によっては使いにくいからかもしれません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/b234f93b-ec11-2d35-938b-4485f0529755.png)

#### APPEEARS
Application for Extracting and Exploring Analysis Ready Samples (AρρEEARS)ということで、これは必要な範囲だけを抽出したい場合には便利なAPPかもしれません。対象エリアをリクエストするという流れのようです。時間がかかるだろうし、全部のデータをダウンロードするのには向かないかもしれません。
https://appeears.earthdatacloud.nasa.gov/products

#### OPeNDAP
NASADEM_HGT.001ではデータが見つからなかったのですが、ほかのデータを見てみるとAPIでデータを返すようなことをしているようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/4d8becbf-93d1-7d73-5f9d-ec714094600c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/4d118872-eb42-47c9-cff3-80bec886578f.png)


#### Data Tree （Data Pool）
https://e4ftl01.cr.usgs.gov/ がData Treeのサイトのようですが、この下のMEASURESの下を探してみるとNASADEM_HGTがあります。

https://e4ftl01.cr.usgs.gov/MEASURES/NASADEM_HGT.001/2000.02.11/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/2546f0e2-9e8f-ee09-5db5-f53c3cfc9258.png)
jpgファイルはサムネイル、zipファイルがデータ、xmlファイルにはメタデータが入っているようです。zipファイルのリンクをクリックするとダウンロードができます。今回はここからファイルをダウンロードしました

#### USGS EarthExplorer
:::note info
USGS の EarthExplorerからでもNASADEMはダウンロードできます。私はなじみがあるので一番簡単にできるかもしれません。

:::
いつものDigital Elevationではなく、NASA LPDAAC CollectionsからNASADEMを選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/2883422f-6c69-d3e6-0a0d-ab7418199ee1.png)

14,520ファイルありますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/81f6eddf-5bb3-79cc-9e4a-538298ad07d7.png)

## 3.2. データを見てみる
### ファイルサイズの確認
次に、ZIPファイルを解凍すると、以下のようにフォルダに3種類のデータが入っています。3つのレイヤがあるということでしたが、それぞれが独立したファイルに入っているので扱いやすそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/23503948-c09d-54fd-abdb-12d89d53a272.png)
HGTファイルについては、一つのピクセルあたり2バイト（=16 ビット）なので、約25MBのデータサイズも計算に合いますね。データサイズから考えると、**hgtファイルはヘッダー（位置、xyの解像度等）も付いていないバイナリーファイルかなと思います。**

（式）　3,601 × 3,601 (px) × 2（byte/px）÷ 1,024（byte/KB） = 25,326.56KB

### データ範囲の確認
xmlでついているメタデータを見ると、仕様の通りデータ範囲はおおよそ1度×1度のデータですが、東西南北それぞれに1度×1度の範囲から0.0001389度はみ出していることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/ac720a39-e4d3-0a12-c799-98b94339e6df.png)
これは、１（度）÷ 3600 （ピクセル）÷ ２ということでしょうから、3601×3601のピクセル数あるということと整合的です。1度の範囲に3600ピクセルあって、残りの1ピクセルは半分ずつ東西（または南北）にはみ出しているということですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/3505f8d2-403d-b439-4aab-8fea4fabd2f1.png)
HGTファイルの名前にある座標値、例えば n00e006 は範囲の南西角（x,yで考えればminのところ）の数字を表しているということも確認できました。

### ファイルをTIFFに変換する（gdal_translate）
バイナリーデータ（3601×3601×2バイト）のデータを開いてみたいと思います。HGTファイル（バイナリーファイル）がそのまま開けないかと思ったので、まずはTIFFファイルに変換しようと思います。今回のHGTファイルは1バンドなので、BIL、BIP、BSQということでは気にしなくてよさそうです。しかし、2バイトなのでバイトの並び方についてはビッグエンディアンかリトルエンディアンかは今後気を付けておきたいと思います。（最近はそんなに意識しなくても大丈夫だと思いますが、作業しておかしかったらもどる。）

まずは、gdal_translateを使ってファイル形式を変更します。（私のWindowsPCにはgdalを入れてありましたが、もしgdalがない場合はdockerdeunvt/nanbanなどを使ってもgdalを使える環境を構築できます。）
```
gdal_translate n00e006.hgt out.tif -ot Int16 -of Gtiff
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/0538f9f3-30f5-6569-faa4-b6b0318190a8.png)

TIFFファイルにできたので、QGISで開いてみます。標高の値も大丈夫そうでした。自分では座標系、解像度、位置などをこれから与えるつもりでいたのですが、どうも変換したファイルは位置情報を持っているようです。hgtファイルのバイト数には余分なものがなかったのですが・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/7317f4c3-1634-4def-b2c8-5d18caafeecc.png)

まさかと思って試してみると、そもそもQGISでHGTファイルが開けました。プロパティをチェックするとGDALにSRTMHGTドライバーがあったんですね。知りませんでした。STRM用のドライバですが、NASADEMもピクセル数やピクセル深度が一緒ですからそのまま使えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/4dc3e511-9401-6a46-8544-6abd14b17e8a.png)

GDALのページ（ https://gdal.org/drivers/raster/srtmhgt.html ）でチェックすると、SRTMの命名ルールのファイル nXXeYYY であれば読み込めるようですね。ファイル名とピクセル数から位置情報や解像度を判断しているのかなと思いました。このドライバでは、ZIPファイルからも読めるようなので便利ですね。

### ファイルの表示
ということで、ダウンロードしたHGTファイルをTIFFファイルにしてもQGISなどで読み込めるようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679143/aabec879-058f-b828-41c9-26dac0e9ffa0.png)

# 4. まとめ
ということで、この記事では
* NASADEMの概要
* NASADEMをダウンロードする方法
* NASADEMの表示する方法

を確認することができました。

今後の課題は、NASADEMをどうやって全部ダウンロードしてくるか検討することです。
EarthExplorerのバルクダウンロードするか、Data TREEでやるか、すこし試してみようと思います。



# 謝辞
NASAの皆さんに感謝します。NASAのLP DAACを教えてくれたUSGSの担当者にも感謝します。

# 参考ページ
（本文中にリンクを書きました。）