2020/5/18更新
 点群PNG(Point Cloud PNG)とは,画像フォーマットPNG形式を流用したポイントデータのリストを扱うためのフォーマットです.
 ここで扱うポイントデータとは,2次元または3次元の位置座標を持ち,それに紐づけられる何らかのデータを持つものです.

ファイルフォーマット

 ファイルフォーマットはPNG(Portable Network Graphics, ISO/IEC 15948:2004)を使用し,タイプはカラーが利用できる以下のいずれかを使用します.
  • 2: Truecolour
  • 3: Indexed-colour
  • 6: Truecolour with alpha
  • 整数からピクセルへの変換

     点群PNGでは,座標の位置や描画範囲などの整数値をピクセルに変換して画像に保持します.
     整数値(v)からピクセルの色(r,g,b)への変換は以下のコードで行います.
    r = 0xff & ( v >> 16 )
    g = 0xff & ( v >> 8 )
    b = 0xff & v

    配置及びレコード長

     画像は,ヘッダ情報及びポイント情報をそれぞれいくつかのピクセルの組み合わせで表現します.ヘッダー情報は省略できます.
     ヘッダー情報および1ポイントのポイント情報を表現するピクセル数はファイル内で同一であり3~4ピクセルです.それをレコード長と呼びます.
     ヘッダ情報及びポイント情報を表すピクセルは,画像の左上端から行優先で配置します.すなわち,まずは右方向へ配置していき,右端に達したら1行下の左端に移動し,これを繰り返します.通常ヘッダー情報及びポイント情報は連続したピクセルになりますが,画像右端で折り返される場合は連続しません.ヘッダー情報はすべてのポイント情報よりも先に配置する必要があります.
     画像サイズ(幅と高さのピクセル数)は任意で,データの内容に影響しませんが,幅はレコード長の整数倍とすることを推奨します.

    ヘッダ情報

     表示範囲及びタイプを表現し,省略化可能です.レコード長により属性の配置が異なります.
    レコード長3ピクセルの場合
    第1ピクセル第2ピクセル第3ピクセル
    widthheightend
    レコード長4ピクセルの場合
    第1ピクセル第2ピクセル第3ピクセル第4ピクセル
    widthheighttypeend
     それぞれの属性の書式及び内容は以下の通りです.なお,ここでいう表示範囲とは,PNGが持つ本来のピクセルサイズではなく,点群データを表示するときの範囲です
    width 符号無し整数表示範囲横幅
    height符号無し整数表示範囲縦幅
    end 黒色透明ヘッダが終了することを表します.常に黒色透明です.
    type符号無し整数データのタイプ.2D点群/3D点群を識別するために使用します.
    0x020000: 2D点群
    0x030000: 3D点群

    ポイント情報

     各ポイントの座標や色などの情報を表現します.レコード長により属性の配置が異なります.
    レコード長3ピクセルの場合(2D点群のみ)
    第1ピクセル第2ピクセル第3ピクセル
    xycolor
    レコード長4ピクセル,2D点群の場合
    第1ピクセル第2ピクセル第3ピクセル第4ピクセル
    xyoptioncolor
    レコード長4ピクセル,3D点群の場合
    第1ピクセル第2ピクセル第3ピクセル第4ピクセル
    xyzcolor
     それぞれの属性の書式及び内容は以下の通りです.
    x符号無し整数表示範囲左端からの距離
    y符号無し整数表示範囲上端からの距離
    z符号無し整数または符号付き整数 高さ方向を表す数値,内容は任意
    optionフォーマットは任意 内容は任意で,省略可.IDまたはグループIDを指定することを想定
    colorRGBまたは符号無し整数 表示で使用する色またはカラーパレットインデックス

    データ範囲外

     画像の末端部で,配置するポイント情報が存在しないピクセルには黒色透明(RGBA=0,0,0,0)を描画します

    サンプル

     「明治時代初期土地利用・被覆デジタルデータベース」農研機構農業環境変動研究センター)で公開されている迅速測図のGeoJSONポイントデータをもとに,点群PNGを作成しました.  
    迅速測図点群PNG(1,697,664点,2.06Mb)  
     オリジナルのGeoJSONファイルのサイズが約381Mbですので,それに比べると約0.56%(約1/180)の大きさまで縮小されています.
     また,Yuzo MatsuzawaさんによりMapbox Vector Tileに変換したものが公開されていますが(habs-mvt),そのサイズ33,885Kbyteと比べても約6.3%(約1/16)になっています(描画に直接関係のない情報をすべて削ってはいますが).  
    フォーマットファイルサイズ(kb)
    点群PNG 2,119
    GeoJSON 381,010
    Mapbox Vector Tile33,885
     
      (補足)
     このサンプルは各点がほぼ等間隔に並ぶグリッドデータですので,各点毎に座標値を保持する必要がある点群PNGやGeoJSON,Mapbox Vector Tileで表現するには本来は不向きなデータです.このようなグリッドデータは,PNG標高タイルのようなメッシュ形式のデータとして整備し,実行時にクライアント環境で地図上に展開する方が効率的です.