宇宙 xR への扉
このページでは,xRや様々なCG制作等のコンテンツに宇宙関連データを活用していただくための,各種情報を取り揃えて参ります.
お品書き
ここに掲載された各コンテンツの利用条件は,編集当時の情報に基づいて参考情報として添えられたものであり,最新の状況を反映しているとは限りません. このページの説明文の如何に関わらず,各コンテンツ提供元の規約に則ってご利用ください. それらの規約は,サイト全体に共通する規約であることもあれば,個々の素材毎に設定されている場合もあります. 詳細が不明の場合は,各コンテンツ提供元で用意された窓口へ個別にお問い合わせください.
「かぐや」地形データのトリセツ(CG制作用)
ここではCG制作を想定して,PythonやUnityでの簡易的な取り込み方法を解説しています.
学術目的でご利用の場合や,専門的な知識を必要とされる場合等は,DARTS/KAGUYA(SELENE)や月周回衛星「かぐや(SELENE)」サイトをご参照ください.
地形データの検索
- データセット名(部分一致→ドロップダウンリストから選択)を選択
- 緯度・経度の範囲を入力
- 「検索実行」ボタンを押す

- 「地図選択」ボタンを押す
ボタンで地図を移動
ボタンで範囲を選択
- 「選択範囲決定」ボタンを押す

地形データの例
地形データは,PDS3形式で提供されています.- (1) データセット名: SELENE MOON TC 5 SLDEM2013 V1.0 (SLDEM2013)
- https://darts.isas.jaxa.jp/pub/pds3/sln-l-tc-5-sldem2013-v1.0/
- 例: アポロ11号着陸地点 (DTM_MAP_01_N01E023N00E024SC)
- サンプル画像 (オリジナル画像@DARTS)
- データファイル
- ラベルファイル
- (2) データセット名: SELENE MOON TC 5 DTM MAP SEAMLESS V2.0
- https://darts.isas.jaxa.jp/pub/pds3/sln-l-tc-5-dtm-map-seamless-v2.0/
- 例: アポロ11号着陸地点 (DTM_MAPs02_N03E021N00E024SC)
- サンプル画像 (オリジナル画像@DARTS)
- データファイル
- ラベルファイル
地形データの取り扱い方法
PDS3に準拠した地形データ(ラベルファイルとデータファイルが揃っているもの)であれば,同じように処理できると考えられます.ここでは「かぐや」のデータを例にしてご紹介します.ラベルファイル(.lbl)の解釈
- 主なラベル情報の例
-
ラベル情報 説明 解釈 SAMPLE_TYPE = MSB_INTEGER 画素タイプ Big endian 符号付き整数 SAMPLE_BITS = 16 1画素のビット長 16 bits (2 octets) BANDS = 1 バンド数 1 LINES = 4096 縦方向の画素数 4096 LINE_SAMPLES = 4096 横方向の画素数 4096 OFFSET = 0.000000 オフセット 0 (オフセット無し) SCALING_FACTOR = 1.000000 倍率 1 (拡大・縮小無し) UNIT = "METER" 単位 メートル - 参考解説: How can the terrain data from KAGUYA be read into a program?
DTM_MAP_01_N01E023N00E024SC.img を読み込むためのサンプルコードと実行結果
- Python サンプルコード
-
import numpy as np import matplotlib.pyplot as plt # lblファイルの下記の記述を参照 # SAMPLE_TYPE = MSB_INTEGER ... Big endian符号付き整数 # SAMPLE_BITS = 16 ... 1画素あたり16bits data = np.fromfile('DTM_MAP_01_N01E023N00E024SC.img', dtype='>i2') # lblファイルの以下の記述より配列の形を変更 # BANDS = 1 # LINES = 4096 # LINE_SAMPLES = 4096 BANDS = 1 LINES = 4096 LINE_SAMPLES = 4096 image = data.reshape(BANDS, LINE_SAMPLES, LINES) # lblファイルの以下の記述より、データ加工なしにそのまま使う # OFFSET = 0.000000 # SCALING_FACTOR = 1.000000 # データを表示(最初のバンドを表示) plt.imshow(image[0], cmap='gray') plt.show()
- 実行結果
- Unity: MoonVRAssetで取り込んだ形状モデルのレンダリング例
DTM_MAPs02_N03E021N00E024SC.img を読み込むためのサンプルコードと実行結果
- Python サンプルコード
-
import numpy as np import matplotlib.pyplot as plt # lblファイルの下記の記述を参照 # SAMPLE_TYPE = MSB_INTEGER ... Big endian符号付き整数 # SAMPLE_BITS = 16 ... 1画素あたり16bits data = np.fromfile('DTM_MAPs02_N03E021N00E024SC.img', dtype='>i2') # lblファイルの以下の記述より配列の形を変更 # BANDS = 1 # LINES = 10800 # LINE_SAMPLES = 10800 BANDS = 1 LINES = 10800 LINE_SAMPLES = 10800 image = data.reshape(BANDS, LINE_SAMPLES, LINES) # lblファイルの以下の記述より、データ加工なしにそのまま使う # OFFSET = 0.000000 # SCALING_FACTOR = 1.000000 # 濃淡がはっきりしないため平均値周辺を使って濃淡を出す AVERAGE = -1882.145583 delta = np.abs(AVERAGE) * 0.5 # データを表示(最初のバンドを表示) plt.imshow(image[0], cmap='gray', vmin=AVERAGE-delta, vmax=AVERAGE+delta) plt.show()
- 実行結果
- Unity: MoonVRAssetで取り込んだ形状モデルのレンダリング例
お品書き
ここに掲載された各コンテンツの利用条件は,編集当時の情報に基づいて参考情報として添えられたものであり,最新の状況を反映しているとは限りません. このページの説明文の如何に関わらず,各コンテンツ提供元の規約に則ってご利用ください. それらの規約は,サイト全体に共通する規約であることもあれば,個々の素材毎に設定されている場合もあります. 詳細が不明の場合は,各コンテンツ提供元で用意された窓口へ個別にお問い合わせください.