companynameJ

3D画像ファイルの点群とは?

距離情報付き画素データを持つ点群を解きほぐす

 
 

はじめに

 
前々回の3D画像ファイルの画像とは?では、glTFファイルなどの3D画像ファイルでは画像データ(明るさや色情報)をどのように扱って記録しているのかを調べました。
 
3D画像ファイルでは、奥行きを表現するのに必要な距離情報は、3D物体の表面形状(ジオメトリ)を表すデータとして格納されています。
 
ほとんどの3D画像ファイルでは、ジオメトリデータはポリゴンの形で表現されていて、距離情報はポリゴンを構成する頂点データに格納されているのですが、単純な立方体の場合、頂点は8個であるので距離情報はたった8個だけです。
立方体よりもっと複雑な3D物体の場合には、膨大な数のポリゴンが必要になります。
 
3D物体を平面のポリゴンに分割して構成するのではなく、3D画像の画素ごとに距離情報を持たせれば精確に3D物体を表現できるのではという自然な考えが生まれます。
そういう物体の各点の座標値を格納した「点群」データと呼ばれるデータが様々な分野で活用されています。
 
ウィキペディアには、

「点群(point cloud)とは、多くの場合、3次元空間上の物体形状を、その表面上(もしくは内部)の観測点の直交座標 (x, y, z) の集合という形式で表現する。点ごとの属性(例:色)が付随する場合もある。」
 引用:点群 (データ形式)

と記されています。
また、

「点群データとは、3Dレーザースキャナなどにより取得した、3次元の点と色情報などの組み合わせのことです。」
 引用:【2023年版】点群処理ソフト5選 / メーカー15社一覧

という解説もあります。
 
点群を扱う3D画像ファイルには数多くの種類があり、使われる技術分野でそれぞれ発展しているようで、例によって点群についての沢山の解説記事が見つかります。
 
個々のファイルの仕様についてはそれら解説記事を参照頂くことにして、
ここでは、画像データの距離情報をどのように扱って記録しているのか?に焦点を当てて、分かり易く解きほぐしたいと考えています。
 
今回取り上げる3D画像ファイルは、
・ポリゴンを用いる3D画像ファイルの世界からPLYファイル、
・LIDARスキャナーなどの測距技術の世界からPTSファイル、
・地図情報の世界からシェープファイル(Shapefile)
の3つです。

 

PLYファイルの点群

 
PLYファイルは、

「.plyファイルは3次元点群を格納するためのファイル形式で、MeshLab等で開いて、3次元点群の表示&編集ができる。」
 引用:PLYファイルの作成方法

とあるように点群データを格納します。
また、

「点群データは、実在の3Dオブジェクトをスキャンした時などに生成される、点の集合体で構成された3Dデータです。通常の3Dデータは実線で立体構造を備えていますが、点群データは点のみで構成されています。そんな点群データを保管・運用するための形式として知られているのが、plyファイルです。」
 引用:Blenderで点群データを使用するための方法

とも紹介されています。
 
ウィキペディアには、

「PLYはPolygon File FormatもしくはStanford Triangle Formatとして知られているコンピュータファイル形式である。これは原則として3Dスキャナからの3次元データを格納するために設計された。」
 引用:PLY (ファイル形式)

と記されています。
 
PLYファイルのファイルフォーマット仕様については、PLY - Polygon File Formatに書かれています。
 
PLYファイルは、ヘッダ部とデータ部に分かれ、ヘッダ部にはASCIIテキストでデータの型などが記述され、データ部にはそのヘッダの記述に基づいたデータが格納されています。
 

具体例1

今回も著名なオープンソースの3DCGソフトであるBlenderから出力された、単純な立方体モデルのplyファイルを拝借します。
 
Blenderのデフォルト状態(筆者の環境)で、BaseColorを(1,1,1)にして頂点ペイントで立方体の8個の頂点を赤、緑、青、黄、マゼンタ、シアン、白色で塗った状態を、plyで頂点カラーモードだけにしてエクスポートしました。
法線ベクトルなしのモードですので、plyファイルのデータには、8個の頂点座標値と8個の頂点カラー値と6個の頂点インデックスデータだけが格納されます。
PLYファイルには法線ベクトルデータを格納することもできます。
 
具体例1のヘッダ部は、
ply
format binary_little_endian 1.0
comment Created by Blender 3.4.1 - www.blender.org
element vertex 8
property float x
property float y
property float z
property uchar red
property uchar green
property uchar blue
property uchar alpha
element face 6
property list uchar uint vertex_indices
end_header
となっていて、
データ部は
   POSITION  COLOR
P0( 1, 1, 1)03 FF 03 FF 緑
P1(-1, 1, 1)57 57 FF FF 青
P2(-1,-1, 1)FF FF FF FF 白
P3( 1,-1, 1)FF 01 01 FF 赤
P4( 1,-1,-1)FF FF 0E FF 黄
P5(-1,-1,-1)FF FF FF FF 白
P6(-1, 1,-1)1A FF FF FF シアン
P7( 1, 1,-1)FF 02 FF FF マゼンタ
になっています。
 

imgP6_1
【図1】

 
頂点座標値は、各頂点に対し、
バイト数 データ型
12Byte  float × 3
計8個×12=96Byteのデータが格納されています。
 
この8個の座標値(POSITION値)は立方体の8個の頂点に対応しており【図1】に右手座標系として割り当てて表示しています。
頂点0、1、2、・・・の番号はそれら頂点座標値データの格納順です。
記号Pは筆者が適当に付与した記号です。
Blenderでの頂点ペイント設定時にはRGB値に1と0だけを記載したのですが、PLYファイルの頂点カラー値は0になりませんでした。
 

PLYファイルの解説

・ここで作成したplyファイルを、Point Cloud Visualizerアドオンを使ってBlenderで点群データを確認するで紹介されている「Point Cloud Visualizerアドオン」を使って表示させた例を【図2】に示します。
同じplyファイルをBlenderの「インポート」で読み込んで表示させた例を【図3】に示します。
【図2】では点群だけが表示されていることが分かります。

 

imgP6_2
【図2】
imgP6_3
【図3】
・PLYファイルは、Polygon File Formatとあるように、ポリゴンを用いる3D画像ファイルの一つであり、頂点座標値(距離情報がz値にある)に頂点カラーが格納されるので点群データとして扱うこともできるということになります。
前々報の3D画像ファイルの画像とは?で調べたglTFファイルも同じ理屈で点群データとして扱うことができると言えそうです。
glTFファイルは8バイトで頂点カラーを表していましたが、PLYファイルは4バイトで頂点カラーを表しているのでより単純なデータになっています。

 

PTSファイルの点群

 
PTSファイルは、

「PTSファイルは、通常LIDARスキャナーからのポイントデータを保存するために使用される単純なテキストファイルです。」
 引用:【Point Cloud】色付きの点群は立体になる

とあるようにスキャナーから得られた点群データを格納します。
PTSファイルのフォーマット仕様は、pts - Laser scan plain data formatにも書かれています。
 
PTSファイルは、全部ASCIIテキストで書かれ、最初の行は点の個数、次の行から各点に対する行が続き、各行はX座標値、Y座標値、Z座標値、intensity値、R値、G値、B値の7個のデータで構成されています。
 
上記引用引事では、RGB値は0〜255、intensity値は表面によって反射された入射放射線の割合で0〜255とされていますが、intensity値については-2048〜2047とされる場合もあるようです(引用:PTS file format specifications)。
例えば 渋谷駅地下3Dデータなどで紹介されているShibuyaUnderground.ptsのデータは、
-11986.492000 -37798.940000 10.834641 -1927 233 249 246
などとintensity値が-1927になっています。
 
PTSファイルはLeicaによって策定されたのですが、同じくLeicaによって策定されたPTXファイルもあります。
PTXファイルのフォーマット仕様は、PTX file formatに書かれています。
PTXファイルは、データの行数と列数や作成したスキャナーの位置や視角などの情報が入ったヘッダ部がPTSデータに付加された構成になっています。
 

具体例2

上記【図2】に示したPLYファイルの点群と同じ形になるように、バイナリエディタを用いてPTSファイルを作成してみました。
立方体の8個の頂点に相当する点に赤、緑、青、黄、マゼンタ、シアン、白色を割り振り、intensity値は255にして全部で179バイトの小さな容量になっています。
 
データはASCIIテキスト形式で、
8
1 1 1 255 255 0 0
-1 1 1 255 255 255 255
-1 -1 1 255 255 255 255
1 -1 1 255 255 255 0
1 -1 -1 255 0 255 255
-1 -1 -1 255 255 0 255
-1 1 -1 255 0 0 255
1 1 -1 255 0 255 0
としています。
 

PTSファイルの解説

・ここで作成したPTSファイルを、ビューアソフトであるCloudCompareを使って表示させた例を【図4】と【図5】に示します。
【図4】は点群のみを表示、【図5】は頂点を結ぶ線と共に点群を表示しています。

 

imgP6_4
【図4】
imgP6_5
【図5】

 

・PTSファイルは、データ形式で分かる通り、ポリゴンは使わず点のデータのみで構成されます。
ASCIIテキストによるデータですので、データ容量は大きくなりますが、どんなに大きな値であっても記載できることが長所です。

 

・LIDARスキャナーは、近年スマホにも搭載されるなど発展が著しい測距技術で、得られた測距データはいろいろな用途で利用されています。
その測距データを格納するファイルの一つとしてPTSファイルがあり、用途の広がりに合わせてこういう測距データ格納ファイルも進化していくのだろうと思われます。

 

 
 

シェープファイルの点群

 
シェープファイルは、

・「シェープファイル (Shapefile) は、 地理情報システム(GIS)間でのデータの相互運用におけるオープン標準として用いられるファイル形式である。
例えば、井戸、川、湖などの空間要素がベクター形式であるポイント、ライン、ポリゴンで示され、各要素に固有名称や温度などの任意の属性を付与できる。」
 引用:シェープファイル
・「シェープファイル(Shapefile)とは、Esri 社の提唱したベクター形式の業界標準フォーマットです。Esri 製品はもちろん、多くの GIS ソフトウェアで利用が可能です。」
 引用:シェープファイルについて

とあるように地理情報システム(GIS)のデータを格納します。
 
この引用記事に「Shapeファイルと記載するのは誤った記載」とされているので、シェープファイル、または、Shapefileと記載することにします。
シェープファイルのフォーマット仕様は、シェープファイルの技術情報に書かれています。
 
また、上記引用記事には、
「シェープファイルという用語はかなりよく知られているが、この用語は誤解を招きやすい一面もある。なぜならシェープファイル形式は、共通のファイル名(プレフィックス)を持つ複数のファイルを同一ディレクトリに格納しておかねばならないからである。shp、.shx、.dbf(dBASE)の拡張子を持つ3種類のファイルは必須である。
必須ファイル:

.shp —シェープ規格:地形情報の本体。
.shx —シェープインデックス規格:地形データの前方検索、後方検索を高速にするための位置インデックス。
.dbf —属性規格:各シェープに対する縦表形式の属性情報。dBASE IV形式準拠。

オプションのファイル:

.prj —投影規格:座標系および投影情報。投影法をWell-known text形式で記述したプレーンテキストファイル。

   (以下続く)」
の記載があり、シェープファイルは複数のファイルで構成されています。
 
また、上記仕様書には、
「ひとつのシェープファイル内では、Null Shapeを除いてすべて同じシェープタイプでなければなりません。シェープタイプは、それぞれ次の値であらわします。
   0 Null Shape
   1 Point
   3 PolyLine
   5 Polygon
   8 MultiPoint
 11 PointZ
 13 PolyLineZ
 15 PolygonZ
 18 MultiPointZ
 21 PointM
 23 PolyLineM
 25 PolygonM
 28 MultiPointM
 31 MultiPatch 」
とあり、シェープタイプ毎にデータ構造が異なります。
このシェープタイプを確認するには32Byte目の値を調べるしかなさそうです。
今回着目するのは、奥行き(Z方向)の距離データを格納するシェープタイプPointZを持つシェープファイルです。
 

地理情報システム(GIS)における2Dの点群

地理情報システム(GIS)は、
「GISとは、位置に関する様々な情報を持ったデータを電子的な地図上で扱う情報システム技術の総称です。」
 引用:GIS(地理情報システム)
とあるように地図を扱うので、2次元(2D)の地図が中心的な対象物になります。
 
点群も「2Dの点群」というべき形態があり、これを表現するシェープファイルはシェープタイプが1の「Point」が用いられます。
【図6】は国土数値情報 ダムデータからダウンロードしたシェープファイルW01-14-g_Dam.shpをシェープファイルのビューアソフトであるShape Viewerを使って表示させた例です。
全国のダムの位置が点で示されています。
このシェープファイルW01-14-g_Dam.shpは、シェープタイプが1の「Point」になっています。

imgP6_6
【図6】

 

地理情報システム(GIS)における奥行き(z方向)の距離情報

地理情報システム(GIS)で奥行きの距離情報に相当する値に標高値があります。
地図に標高値を加えれば3次元(3D)の地図ができることになります。
「DEMとは数値標高モデル(Digital Elevation Model)の略で、各種測量法で計測された平面位置(2次元)および標高値を用いた3次元座標をデジタルで表現したものである。」
 引用:数値標高モデル(DEM)と地図の歴史
とあるように、標高値データは数値標高モデル(DEM)として使われています。
 
国土地理院の数値標高データはシェープファイルの形では見つかりませんでしたが、XMLファイルの形で提供されています。
 
国土地理院の数値標高データを使って3D表示をする方法を紹介している、1区画の3次元メッシュ(xml)という記事を見つけました。
この記事には、
「今度はとりあえず、3次元メッシュの地図をBlenderのPythonで作ってみます。国土地理院の数値標高データーを利用します。上記の画像は東京都の鳥島で10mメッシュです。他サイトやブログでは、GDALが出てきてxmlからtif形式に変換して、何かのソフトを通して、また変換してと、随分と回りくどいことをやっています。BlenderではPythonでそのままxmlのデーターをメッシュにすればよいだけです。」
とあり、既存のやり方にとらわれないでシンプルな解決策を探す姿勢は筆者も大好きなので、この方の方法(以下Toikanbetsuさんの方法と呼びます)をトレースして、元となる数値標高データのXMLファイルを調べることにしました。
 
Toikanbetsuさんの方法に倣って、
国土地理院の基盤地図情報のダウンロードから鳥島の地図にあたるFG-GML-4540-52-DEM10B.zipをダウンロードし、XMLファイルFG-GML-4540-52-dem10b-20161001.xmlを取り出します。
 
【図7】は基盤地図情報のビューアである基盤地図情報ビューア(基盤地図情報ビューアから取得出来ます)を使ってそのFG-GML-4540-52-dem10b-20161001.xmlを表示させた例です。
この基盤地図情報ビューアは3D表示ソフトではないので上から見るだけの地図になります。
 
【図8】はToikanbetsuさんの方法で添付されているPythonサンプルコード(自分の環境に合わせて一部変更しています)をBlenderで実行させて回転せずに表示させた例です。

imgP6_7
【図7】

 

imgP6_8
【図8】

 
【図9】は【図8】をBlenderで回転させて3D表示させた例です。

imgP6_9
【図9】

XMLファイルのデータをBlenderのメッシュデータに変換するToikanbetsuさんのサンプルコードはうまく動きました。
Toikanbetsuさん、ありがとうございました。
 

具体例3(地理情報システム(GIS)のシェープファイル)

【図7】で取得したFG-GML-4540-52-dem10b-20161001.xmlを表示させていますが、この基盤地図情報ビューアのエクスポート機能を使うとシェープファイルに変換できます。
【図10】に示すように、「標高メッシュをシェープファイルへ出力」を選び、「直角座標系に変換して出力」にチェックを入れ、このファイルの鳥島は東京にあって平面直角座標系9系に属するので「9系」を選択して、OKをクリックするとシェープファイルが出力されます。
「全データを出力」と「おおむね現在表されている要素のみを出力」の選択は、この鳥島の場合はどちらも同じファイルが出力されました。
この出力されたシェープファイルはシェープタイプ11の「PointZ」になっており、これをを具体例3として調べます。

imgP6_10
【図10】

 
具体例3のメインファイルヘッダ部は、100Byteのサイズで、
          サイズ   値
 ファイルコード 4Byte 9994 
 未使用    20Byte     
 ファイル長   4Byte 801598
 バージョン   4Byte 1000
 シェープタイプ 4Byte 11
 Xmin     8Byte 43464.5
 Ymin     8Byte -612896.8
 Xmax      8Byte 43464.5
 Ymax      8Byte -610295.4
 Zmin     8Byte  0
 Zmax     8Byte 392.8
 Mmin     8Byte 0
 Mmax     8Byte 0
となっていて、
データ部は、
 レコード番号  4Byte 1~36,434 
 シェープタイプ 4Byte 11
 レコードコンテンツ
  X         8Byte
  Y         8Byte
  Z         8Byte
  M          8Byte
の構成で36434個のレコードコンテンツが格納されています。
 
レコード番号36433のレコードコンテンツを抜き出してみると、
  X   8Byte 45154.4
  Y   8Byte -610295.4
  Z   8Byte 2.9
  M    8Byte 不明の大きな値
X、Y、Z、Mの値は全部倍精度浮動小数点数である8Byteのdouble型で表されています。
M(メジャー値)は使われていないので不明の値になっています。
 

シェープファイルの解説

・ここで得られたシェープファイルを、【図7】【図8】【図9】で調べた元のXMLファイルと比較してみます。
 
その元のXMLファイルXMLFG-GML-4540-52-dem10b-20161001.xmlは、
GMLタグに、
 <gml:lowerCorner>
  30.416666667 140.25
 </gml:lowerCorner>
 <gml:upperCorner>
  30.5 140.375
 </gml:upperCorner>
 <gml:GridEnvelope>
  <gml:low>0 0</gml:low>
  <gml:high>
   1124 749
  </gml:high>
 </gml:GridEnvelope>
 <gml:sequenceRule order="+x-y">
  Linear
 </gml:sequenceRule>
 <gml:startPoint>
  0 0
 </gml:startPoint>
が書かれているので、
データ範囲は、
gml:lowerCornerにより、
緯度30.416666667経度140.25の南西端と、
gml:upperCornerにより、
緯度30.5経度140.375の北東端に囲まれた四角形領域を、
gml:low 0 0
gml:high 1124 749
により、横1125縦750で区切られたグリッドセルになっています(【図11】参照)。
 
このグリッドセルを、
 gml:sequenceRule order="+x-y"
 gml:startPoint 0 0
により、x0、y0から開始して、x方向(西から東)、y方向(北から南)の走査順でそれぞれの標高データが格納されます。
 
標高データは、
 <gml:tupleList>
のタグにUTF8形式で
 その他,2.90
のように羅列格納され、標高値が未定義の場合は
 その他,-9999.00
となっています。
「その他」の部分は、列挙型で「地表面」とか書かれるという記事もありましたが、ASCII形式(UTF8)で「その他」になっていました。  

imgP6_11
【図11】

 
このXMLファイルの標高データが、シェープファイルに変換されることになります。
シェープファイルは、上記の通り36434個のレコードコンテンツになっています。
すなわち、1125×750=943750個のグリッドセルの内、海などの標高値が未定義であるデータを除いて、島の陸地の領域である36434個の標高データが抽出されているのです。
 
具体例3のシェープファイルのレコードコンテンツは、
36434個の点群に対してそれぞれX、Y、Z、M値のデータで構成され、Z値は標高データになります。
XY値はその点のXY座標値であるのですが、XMLファイルにはXY座標値に対応するデータはグリッドセルの緯度経度値だけでそれぞれの点に対する座標データは格納されていません。
シェープファイルを作成する際に、グリッドセルの緯度経度値からXY座標値を計算してレコードコンテンツにXY座標値を格納していると思われます。
 
しかしこのXY座標値は正しいのでしょうか?

 

シェープファイルのXY座標値問題:
国土地理院は、
「平面直角座標系は、現在全国を19の座標系に区分しています。平面直角座標系は地点の座標値が次の条件に従ってガウス・クリューゲルの等角投影法によって表示されるように設けられています。

1.座標系のX軸は、座標系原点において子午線に一致する軸とし、真北に向かう値を正とし、座標系のY軸は、座標系原点において座標系のX軸に直交する軸とし、 真東に向かう値を正とする。
2.座標系のX軸上における縮尺係数は、0.9999とする。
3.座標系原点の座標値は、次のとおりとする。
X=0.000メートル Y=0.000メートル」

  引用:GIS(地理情報システム)
と定義しています。
 
今回使用している鳥島の座標系区分は9であって、その原点座標値は
 東経139度50分0秒
 北緯36度0分0秒
になっています。
 
緯度経度から平面直角座標系のXY値に変換する計算式は、地球が球体であるため簡単ではありません。
緯度経度と平面直角座標の相互変換を実装するための数式や、
JavaScriptによる緯度経度と地図のXY(平面直角座標)との変換、および地理学入門
などの記事が参考になると思います。
 
上記具体例3のシェープファイルのレコード番号36433のレコードコンテンツにある標高データ2.9mとなる点を基盤地図情報ビューアを使って探してその点の緯度経度とXY座標値を取得しました。
経度はE140:18:13.40 = 140.303722 、
緯度はN30:29:45.40 = 30.495944、
X座標はX=-610295.4、
Y座標はY=45154.4
になっていました。【図12】参照。

imgP6_12
【図12】

 
この緯度経度値を、緯度経度から平面直角座標への換算ツールである平面直角座標への換算を使ってXY座標に換算すると、【図13】に示すように、
 X座標はX=-610295.4793、
 Y座標はY=45154.4129
になって、基盤地図情報ビューアで表示される上記XY座標値に一致しています。

imgP6_13
【図13】

「座標系のX軸は、座標系原点において子午線に一致する軸とし、真北に向かう値を正とし・・」と定義されていて、X軸は経度方向であって原点は鳥島よりずっと北にあるのだから、X座標値は負の値であるはずです。
 
一方、シェープファイルの方は、
レコード番号36433のレコードコンテンツが上記のように、
  X 8Byte 45154.43403631272
  Y 8Byte -610295.429924438
  Z 8Byte 2.9
となっていて、XとYの値が逆になっています。
 
地図の縦方向がX軸だとされるのも違和感がありますが、XY座標値が定義通りに処理されないと混乱を招くのではと考えます。
 
農林水産省が提供している農地筆ポリゴン(世界測地系)_13東京都 からダウンロードしたシェープファイル13401八丈町2019.shpを調べると、
 X 139.75
 Y 33.12
などと緯度経度がそのままXY座標値として使われていました。
シェープファイルのXY座標値は自由に使って良いことになっているのでしょうか?
 

おわりに

 

・今回は奥行きを示す距離情報の格納方法を知るために、点群を扱う3D画像ファイルを調べてみました。
・点群を扱う3D画像ファイルには多くの種類があり、使われる分野のニーズに合わせてそれぞれ進化しているようです。
できるだけ全体を俯瞰できるように、

・ポリゴンを用いる3D画像ファイルの世界からPLYファイル、
・LIDARスキャナーなどの測距技術の世界からPTSファイル、
・地図情報の世界からシェープファイル

 を代表として選んで調べることにしました。

 

・PLYファイルは、他のポリゴンを用いる3D画像ファイルと同様に、頂点座標値に奥行きを示す距離情報z値が含まれるので点群データとしても用いられます。
具体例1のPLYファイルはfloat(単精度浮動小数点数)でz値が表現されています。

 

・PTSファイルは、LIDARスキャナーなどにより得られる測距データを扱うので、基本的に点群データだけが格納されます。
PTSファイルはASCIIテキストでz値が表現されるので、大きな数値でも扱えますがデータ容量は大きくなってしまいます。

 

・シェープファイルは、地理情報システム(GIS)の分野で広く活用されている地理データ格納ファイルです。
今回はシェープタイプPointZに絞って調べましたが、他にもPolygonやPolyLineなどいろいろな種類のシェープタイプがあり、用途に応じて使い分けられています。
シェープタイプPointZのシェープファイルはdouble(倍精度浮動小数点数)で標高値であるz値が表現されています。

 

・シェープファイルを調べていた際に、XY座標値がおかしいことに気づいて、いろいろその理由を探りましたが突き止められませんでした。
基盤地図情報ビューアのシェープファイルエクスポートプログラムが、何らかの意図があってそのような処理をしているのだろうと思われますが、理由は不明です。

 

・点群を扱う3D画像ファイルでまだ調べたいことがあるのですが、調査が終われば報告することにいたします。

 
 

sub1title

closeicon

サンシャインブルー工房創設者、管理人の 青木ガンバロ と申します。
団塊世代の一技術者としてかつては開発業務に没頭しておりました。今はたそがれ期に入り、世間では簡単なことであっても、自分にとっては知らない、経験していないことが山ほどあると気付かされます。
限りある時間に、少しでもそういう未経験のテーマに挑戦してみようと思い、本工房を立ち上げることにしました。
 
いろいろな分野の学習を続けていると、何度も躓いてしまいます。素朴な疑問が湧いてくるのですが、その解答を得るのに手こずります。
膨大な情報の中から欲しい情報を探るのが難しくなっていると感じます。
 
技術を中心としたさまざまな課題を解きほぐし、より本質的な内容を明らかにすることによって、同じように学ぼうとする方々が、素早く答にたどり着けるような情報を発信していければと考えております。
 
このホームページもその挑戦の一つとして独学で制作してきました。
Web技術の多岐にわたる学習が必要であったり、関連する規格やツールなどの仕組みも進化して更新されていくので、最善解に近づくのは容易ではありません。
当初から躓きの連続でありましたが、多くの親切な方々の的確な記事にも助けられて進めてきました。
まだ多くの疑問点が残っております。逐次改善していくつもりです。
 
これまで多くの友人、先輩方の支えがあったお陰で何とか過ごしてくることができました。
人びとの繋がりの大切さを痛感しております。
どこまで頑張れるか分かりませんが、残る力を絞って進んでまいります。
これからも、皆さまのご援助、ご協力をよろしくお願い申し上げます。

sub2title

closeicon

2019-  4-16

・サンシャインブルー工房の個人事業開業

2022-12-22

・ホームページを公開

・ブログ「立方体に写真を貼り付けるツールを作りました」を公開

・ブログ「球体に写真を貼り付けるツールを作りました」を公開

2023-  2-  3

・ブログ「3DにおけるJPEGとは?」を公開

2023-  3-  1

・ブログ「3D画像ファイルの画像とは?」を公開

2023-  4-16

・ブログ「3D画像ファイルのカメラデータとは?」を公開

2023-  5-22

・ブログ「3D画像ファイルの点群とは?」を公開

2023-  6-28

・ブログ「3D画像ファイルのGeoTIFFとは?」を公開

2023-  7-28

・「役立つーる」ページを新設し、最初のオンラインツールGeoTIFFリーダーを公開

・ブログ「GeoTIFFリーダーを作りました」を公開

2023-  8-16

・ブログ「点群におけるLASとは?」を公開

2023-  9- 1

・ブログ「Googleアースに使われるKMLとは?」を公開

2024-  1-16

・ブログ「3D画像ファイルのアニメーションとは?」を公開

2024-  2- 8

・ブログ「ボーンアニメーションのオフセット行列とは?」を公開

2024-  7- 13

・ブログ「3D画像モデルの回転表示とは?」を公開

sub3title

closeicon






    皆さまからの、ご要望、ご依頼、ご質問、ご意見、ご提案などをお待ちしております。
    当方の事情や、お問い合わせの内容によりましては、返信を差し上げることができない場合もあります。あらかじめご了承ください。

    姓 例)日本

    名 例)太郎

    せい 例)にほん

    めい 例)たろう

    例)xxx@abcde.co,jp

    例)いろはに会社


     

    お問い合わせをいただき、ありがとうございます。

    messageOKこのお問い合わせの送信が完了しました。

    お問い合わせがエラーになりました。再度お試しください。

    messageNGこのお問い合わせの送信が失敗しました。

    sub4title

    closeicon
    1.著作権について
    当サイトは、お客さまご自身の画像が貼り付けられてダウンロードされた画像の情報を除き、当サイトに掲載されている、文章・画像・動画等の著作物の情報を無断転載することを禁止致します。
    当サイトは、ブラウザがFirefoxである場合に動画ファイルの生成のためにLPGLv3ライセンスのFFmpegライブラリを使用しています。
    2.リンクについて
    以下の場合を除き、当サイトを他のWebサイトに自由にリンクすることができます。
    (リンクをお断りするWebサイト)
    違法または反社会的な情報を提供するWebサイト
    当サイトの関係者や提供する情報に対して誹謗、中傷する内容を有するWebサイト
    当サイトであることが不明確であるWebサイト
    sub5title

    closeicon
    1.個人情報保護方針
    当サイトは、お客様からお預かりする個人情報の重要性個人情報の重要性を認識し、個人情報の保護に関する法律、その他の関係法令を遵守し、個人情報を安全かつ適切に取り扱います。
    2.個人情報の取得と利用目的
    個人情報を取得させていただくにあたっては、取得情報と利用目的を以下に定め、必要な個人情報のみを、適法かつ公正な手段により取得させていただきます。
     2.1.お問い合わせやご注文時の情報
    (取得情報)
    お客様ご自身によるお問い合わせやご依頼のための入力情報
    (利用目的)
    お客様へのご依頼に対応するため。
     2.2.ご利用履歴情報
    (取得情報)
    アクセス解析ツールGoogle Analyticsを用いた個人を特定しないトラフィックデータ
    (利用目的)
    ご利用状況の分析により当サイトの一層の改善や拡充を図るため
    このGoogle Analyticsの規約に関する詳細は、ここをクリックしてください。
     2.3.広告管理情報
    (取得情報)
    広告表示ツールGoogle AdSenseを用いた個人を特定しない広告管理データ
    (利用目的)
    お客様の興味に応じた商品やサービスの広告配信のため
    このGoogle AdSenseの規約に関する詳細は、ここをクリックしてください。
    3.個人情報の第三者への開示
    当サイトは、お客様からお預かりした個人情報を、個人情報保護法その他の法令に基づき開示が認められる場合、または、お客様からの同意を得た場合を除き、第三者に提供することはありません。
    4.クッキー(Cookie)について
    クッキー(Cookie)とは、当サイトにアクセスした際にお客様のブラウザに送信され、お客様のコンピューターに保存される情報のことです。
    当サイトでは、利用履歴の収集および広告の管理のためにそのクッキーを使用しています。
    当サイトが使用するクッキーのデータは、個人情報を含むものではありませんが、お客様がブラウザを操作することにより、クッキーの使用を制限(オプトアウト)することや、保存されたクッキーの情報を削除することも可能です。ただし、そのブラウザの設定によっては、当サイト一部の機能が使用できなくなる恐れがありますのでご注意ください。
    5.個人情報保護方針の変更
    当サイトは、法令の制定、改正等により、本個人情報保護方針を適宜見直し、予告なく変更する場合があります。本個人情報保護方針の変更は、変更後の内容が閲覧可能となった時点で有効になります。
    6.免責事項
    当サイトは、正確な情報を掲載するよう努めておりますが、誤情報の混入、情報の陳腐化が起こることがあります。当サイトに掲載された内容や、他のサイトに移動された場合の移動先サイトで提供される情報によって生じた損害等の一切の責任を負いかねますのでご了承ください。