点群PNG ver.0.6の仕様のメモ。
| フィールド名 | ピクセル数 | データ型 | 内容 |
| type | 1 | RGB | R:1(リストPNGバージョン依存番号) G:1(点群PNGメインファイル識別子) B:1(点群PNGバージョン依存番号) |
| headerLength | 1 | 符号無し整数 | ヘッダー長(ピクセル数) |
| recordCount | 2 | 符号無し整数 | レコード数 |
| columnCount | 1 | 符号無し整数 | カラム数 |
| infoX | 1 | RGB | R:上位4ビットは3 R:下位4ビットはカラムピクセル数(1-2) G:オフセットピクセル数(0-2) B:係数常用対数(-128-127) |
| offsetX | 0-2 | X座標オフセット(前のピクセルのG値による) | |
| infoY | 1 | RGB | R:上位4ビットは3 R:下位4ビットはカラムピクセル数(1-2) G:オフセットピクセル数(0-2) B:係数常用対数(-128-127) |
| offsetY | 0-2 | Y座標オフセット(前のピクセルのG値による) | |
| infoZ | 0-1 | RGB | R:上位4ビットは3 R:下位4ビットはカラムピクセル数(1-2) G:オフセットピクセル数(0-2) B:係数常用対数(-128-127) |
| offsetZ | 0-2 | Z座標オフセット(前のピクセルのG値による) | |
| infoColor | 0-1 | RGB | R:上位4ビットは1 R:下位4ビットはカラムピクセル数(1固定) G:オフセットピクセル数(0固定) B:係数常用対数(0固定) |
| infoId | 0-1 | RGB | R:上位4ビットは1 R:下位4ビットはカラムピクセル数(1固定) G:オフセットピクセル数(0固定) B:係数常用対数(0固定) |
| infoClass | 0-1 | RGB | R:上位4ビットは1 R:下位4ビットはカラムピクセル数(1固定) G:オフセットピクセル数(0固定) B:係数常用対数(0固定) |
| userColumnDefs | 不定 | ||
| subType | 1 | RGB | R:上位4ビットは未使用 R:下位4ビットは上位ビットからカラム利用如何。 Z座標、infoColor、infoId、infoClass。 G:地図投影法(0:未定、1:ウェブメルカトル、2:経緯度) B:地図投影法オプション(ウェブメルカトル次数) |
| userHeader | 不定 |
- 1ピクセル目で点群PNGのバージョンがわかる。基本的には点群PNGの最新バージョンのファイルとして読み取るので、読み飛ばしても大丈夫(複数バージョンでいくつもファイルを扱う必要がある場合は重要)。
- カラム数まで必須。
- infoXとinfoYは必須。
- infoのR上位4ビットの読み方(0:未定義、1:RGB、2:符号なし整数、3符号付き整数)。
- infoのR下位4ビットはポイント情報での各ポイントのピクセル数。
- infoのG値を見るとoffsetで使用するピクセル数がわかる(これをカラム数だけ繰り返す)。
- infoのB値は係数常用対数。元の値を 10のn乗を乗じていることを表す(戻すときは10の-n乗を乗じる)。
- その後出現するのがsubType。
カラム情報を別途説明すると思うのでR値の読み取りは実質不要。
地図投影法も基本はウェブメルカトルと思うのでG値の読み取りも実質不要。
ウェブメルカトル次数の読み取りは必須(B値)。