1.6 地理参照

GeoRaster空間参照システム(SRS)は、GeoRasterオブジェクトのメタデータ構成要素であり、地理参照に関連する情報が含まれます。地理参照によって、GeoRasterデータのセル座標と実際の地上座標(またはいくつかのローカル座標)が関連付けられます。地理参照を実行すると、地上座標がセル座標に割り当てられ、セル座標が地上座標に割り当てられます。

GeoRasterでは、地理参照は、地理補正、幾何補正またはオルソ補正とは異なります。後者の3つの処理では、ラスター・データのセルのリサンプリングが頻繁に行われ、結果のGeoRasterデータのモデル座標系および次元サイズが異なる場合があります。地理参照を実行すると、セル座標と実際の座標(またはいくつかのローカル座標)が関連付けられます。地理参照を実行するには、適切な数式、十分な数の地上基準点(GCP)座標、またはリモート・センシング・システムからの精密なモデル・データを提供する必要があります。地理参照では、セル座標系とモデル座標系間での座標変換を容易にするために必要な場合を除き、GeoRasterセル・データまたはその他のメタデータは変更されません。

GeoRasterは、地理参照のために関数フィッティング・モデル(「関数フィッティング地理参照モデル」を参照)およびストアド・ファンクション・モデル(「地上基準点(GCP)地理参照モデル」を参照)の両方をサポートします。精密なモデルはサポートされていません。GeoRasterオブジェクトが関数フィッティング・モデルを使用して地理参照される場合は、SRSメタデータのisReferenced値がTRUEになり、参照されない場合、この値はFALSEです。

幾何補正は、水平座標に対して実行でき、これによって、GeoRasterデータ・セットのセルを投影図座標系にマップすることが可能になります。幾何補正後の各セルは、図で使用される単位の均等なサイズになり、モデル座標系(東西次元および南北次元)で配置されます。標高データ(DEM)を使用した幾何補正はオルソ補正と呼ばれ、これは、地形偏移を修正する特別な形式の幾何補正です。GeoRasterオブジェクトが幾何補正されており、関数フィッティング・モデルを使用して地理参照される場合は、そのメタデータのisRectified値がTRUEになり、それ以外の場合、この値はFALSEです。GeoRasterオブジェクトがオルソ補正されており、関数フィッティング・モデルを使用して地理参照される場合は、そのメタデータのisOrthoRectified値がTRUEになり、それ以外の場合、この値はFALSEです。

GeoRasterオブジェクトの地理参照の詳細は、「GeoRasterオブジェクトの地理参照」および「高度な地理参照」を参照してください。GeoRasterオブジェクトを幾何補正およびオルソ補正するには、「イメージの幾何補正」および「イメージのオルソ補正」を参照してください。

1.6.1 関数フィッティング地理参照モデル

GeoRasterは、GeoRasterメタデータに格納される汎用関数フィッティング地理参照モデルを定義します。これには、広範囲に使用される複数のジオメトリ・モデルが含まれ、このモデルを使用すると、幾何補正されていないGeoRasterオブジェクトを地理参照できるようになります。

このモデルでは、2次元または3次元の地上座標と2次元のセル座標との間の変換、または2次元のセル座標と2次元または3次元の地上座標との間の変換をサポートします。モデルを説明する等式を次に示します。

rn = p(Xn,Yn,Zn) / q(Xn,Yn,Zn)

cn = r(Xn,Yn,Zn) / s(Xn,Yn,Zn)

等式の各変数の意味は、次のとおりです:

  • rnは、ラスター内のセルの正規化された行索引です。

  • cnは、ラスター内のセルの正規化された列索引です。

  • Xn , Yn , Znは、正規化された地上座標値です。

多項式p(Xn , Yn , Zn)、q(Xn , Yn , Zn)、r(Xn , Yn , Zn)およびs(Xn , Yn , Zn)は、図1-6に示す形式で指定されます。

図1-6 地理参照に使用される多項式

図1-6の説明が続きます
「図1-6 地理参照に使用される多項式」の説明

図1-6に示す多項式の形式では、ijkは多項式の係数です。

4つの多項式はそれぞれ異なることがあります。また、各多項式は次の変数によって個別に説明されます。

  • pTypeは、多項式のタイプ(1または2)です。

  • nVarsは、変数の合計数(地上座標の次元0、2または3)です。

  • orderは、各変数の累乗の最大次数または多項式の各項の累乗の最大合計次数(最大で5)です。

  • nCoefficientsは、係数の合計数です(前の3つの数値から導出する必要があります)。

pTypeは、多項式の最大合計次数を意味し、多項式の項の合計数に影響を与えます。pType = 1は、最大次数が、多項式の各項に含まれるすべての変数の最大合計次数であることを示します。pType = 2は、最大次数が、多項式のすべての項に含まれる各変数の最大次数であることを示します。nVarsは、地上座標系が2D (X, Y)または3D (X,Y,Z)のいずれかであるかを示します。セル座標系は常に2Dです。たとえば、これは2次元座標間のアフィン変換と、3次元から2次元座標へのDLTモデルおよびRPCモデルをサポートしています。

多項式の項およびその係数の合計数および順番は、次のループ疑似コードの論理によって決定されます。

         n = 0;
         For (k = 0; k <= order; k++)
            For (j = 0; j <= order; j++)
               For (i = 0; i <= order; i++)
                 {
                       if (pType == 1 & (i+j+k) > order )
                            break;
                        polynomialCoefficients[n]=COEF[ijk];
                        n++;
                  }

前述の疑似コードでは、iの次数、jの次数、およびkはZの次数と想定し、また、nはGeoRasterメタデータ要素<polynomialCoefficients>内の係数の指数と想定します。したがって、COEF[ijk]は分子pまたは分母qの項x(i)y(j)z(k)の係数であり、polynomialCoefficients[n]はXMLメタデータ内の<polynomialCoefficients>要素(倍精度のリスト型)のn番目の倍精度数であり、COEF[ijk]polynomialCoefficients[n]と1対1で一致します。

実際の値ではない正規化された値は、計算時のエラーの発生を最小限にするために、そのデータ自体によって、格納および使用される場合とされない場合があります。行値と列値(row,column)および正規化された行値と列値(rn, cn)の間の変換、およびモデル座標(x,y,z)と正規化されたモデル座標(Xn , Yn , Zn)の間の変換は、次の変換(オフセット)とスケールを正規化したセットにより定義されます。

  • rn = (row - rowOff) / rowScale

  • cn = (column - columnOff) / columnScale

  • Xn = (x - xOff) / xScale

  • Yn = (y - yOff) / yScale

  • Zn = (z - zOff) / zScale

係数、スケールおよびオフセットはGeoRaster SRSメタデータに格納されます(「SDO_GEOR_SRSオブジェクト型」を参照)。

この関数フィッティング・モデルは汎用モデルです。これには、アフィン変換、二次多項式、三次多項式、DLT(Direct Linear Transformation)、二次有理、RPC(Rational Polynomial CoefficientsまたはRapid Positioning Coefficients)などの特定のジオメトリ・モデルが含まれます。これらの標準モデルの係数は、GeoRasterに格納するために、この項で説明する順序に変換されます。

SDO_GEOR.setSRSプロシージャを使用すると、GeoRasterオブジェクトの空間参照情報を直接設定でき、SDO_GEOR.getGeoreferenceTypeファンクションを使用すると、GeoRasterオブジェクトの特定の地理参照モデル・タイプを検出できます。

最も単純な地理参照モデル・タイプは、次に示す特別なアフィン変換です。

row    = a + c * y
column = d - c * x

前述の計算式では、cが0 (ゼロ)以外の値である場合、ラスター・データは幾何補正されているとみなされ、そのメタデータ内のisRectified値がTRUEになります。

アフィン変換では、pTypeは1または2のいずれかです。pおよびr多項式の場合、nVarsは2、orderは1、nCoefficientsは3で、qおよびs多項式の場合、nVarsは0、orderは0、nCoefficientsは1です。

二次多項式モデルでは、pTypeは1です。pおよびr多項式の場合、nVarsは2、orderは2、nCoefficientsは6で、qおよびs多項式の場合、nVarsは0、orderは0、nCoefficientsは1です。

三次多項式モデルでは、pTypeは1です。pおよびr多項式の場合、nVarsは2、orderは3、nCoefficientsは10で、qおよびs多項式の場合、nVarsは0、orderは0、nCoefficientsは1です。

DLTモデルでは、pTypeは1または2のいずれかです。すべての多項式について、nVarsは3、orderは1、nCoefficientsは4です。また、qおよびs多項式は同一である必要があります。

二次有理モデルでは、pTypeは1です。すべての多項式について、nVarsは3、orderは2、nCoefficientsは10です。

RPCモデルでは、pTypeは1です。すべての多項式について、nVarsは3、orderは3、nCoefficientsは20です。

DLT、RPCおよびその他のジオメトリ・モデルの詳細は、サード・パーティの関連するドキュメントを参照してください。

1.6.2 地上基準点(GCP)地理参照モデル

GeoRasterは、地上基準点(GCP)記憶域および地理参照をサポートしています。地上基準点(GCP)または単なる基準点は、一部の参照座標系のその座標(X,YまたはX,Y,Z)とGeoRasterオブジェクトのセル空間内の対応する位置(行,列)がわかる点です。参照座標系には、座標系が不明な場合のSRID 999999など、任意の有効なOracle Spatial座標系を指定できます。GCPのコレクションおよびそれに関連するジオメトリ・モデル(関数フィッティング・メソッド)は、GeoRasterではストアド・ファンクション地理参照モデルとも呼ばれます。

GeoRaster SRSに格納されているか、パラメータで指定されているGCPを使用して、関数フィッティング・モデルを生成できます。詳細は、SDO_GEOR.georeferenceファンクションを参照してください。

GCPを選択するためのガイドラインは、次のとおりです。

  • 点は、GeoRasterオブジェクトと参照座標系の両方で簡単に識別できる必要があります。

  • 点は、結果が非対称にならないようにするために、GeoRasterオブジェクトの対象となっている領域内で均等に分散される必要があります。

  • 結果が安定するように、点は一列に配置することはできません。

GCPまたはストアド・ファンクションは、SDO_GEOR_GCPオブジェクト型(「SDO_GEOR_GCPオブジェクト型」を参照)、SDO_GEOR_GCP_ COLLECTIONコレクション型(「SDO_GEOR_GCP_COLLECTIONコレクション型」を参照)およびSDO_GEOR_GCPGEOREFTYPEオブジェクト型(「SDO_GEOR_GCPGEOREFTYPEオブジェクト型」を参照)を使用して指定されます。

GCPを使用して地理参照するには、ジオメトリ・モデル(つまり、GeoRasterオブジェクトのセル空間と参照座標系間の関係を数学的にモデル化する方法)も選択する必要があります。GeoRasterでは、GCP地理参照で次のジオメトリ・モデルがサポートされています: アフィン(デフォルト・モデル)、二次多項式、三次多項式、DLT、二次有理およびRPC。アフィン、二次多項式および三次多項式は、多項式の順番がそれぞれ1、2、3である2次元の多項式モデルであるのに対し、DLT、二次有理およびRPCは、多項式の順番がそれぞれ1、2、3である3次元の有理多項式モデルです。すべての多項式は多項式のタイプpType=1を持ちます。(地理参照モデル・タイプの詳細は、「関数フィッティング地理参照モデル」を参照してください。)

GCPを使用した地理参照では、GCPのセル座標およびモデル座標が多項式または有理多項式モデルの計算式で使用され、連立一次方程式が形成されます。計算式に加重は使用されません(つまり、すべての点で加重は同一の1.0です)。連立一次方程式は、指定した基準点に最適なモデルの係数を生成する最小2乗法によって解かれます。基準点のタイプを使用したGCPのみがソリューションの計算に含まれますが、チェック・ポイントのタイプを使用したGCPは解決されたモデルの位置精度の確認に使用されます。ソリューションの精度は、ソリューションに含まれるそれらの基準点のセル座標の残差に基づいて評価されます。

異なるジオメトリ・モデルには、異なるモデル座標の次元および異なるGCPの最小数が必要です。2次元のジオメトリ・モデルでは、モデル座標は2D (X,Y)、3次元のジオメトリ・モデルでは、モデル座標は3D (X, Y, Z)である必要があります。ジオメトリ・モデルに必要なGCPの最小数は、アフィン: 3、二次多項式: 6、三次多項式: 10、DLT: 7、二次有理: 19、RPC: 39です。ただし、地理参照を行うには、通常、GCPの最小数より大きい値を使用する必要があります。

詳細は、「高度な地理参照」を参照してください。

1.6.3 セル座標とモデル座標の変換

GeoRasterは、関数フィッティング地理参照モデルを使用して、地上座標をセル座標に割り当て、セル座標を地上座標に割り当てます。特殊なケースとして、セルの整数座標(セル・マトリックス内のセルの配列索引)がモデル座標に変換されます(これにより、モデル空間内の点の正確な場所を特定します)。この点(モデル座標)は、セルによって表されるモデル空間内の領域の左上角または中心のいずれかになります。

同様に、モデル座標は地理参照を通してセル座標に変換できます。ただし、関数フィッティング地理参照モデルを直接変換した結果のセル座標は、ほとんどが浮動小数点数です。(modelCoordinateLocation要素で指定される)セル空間座標系のタイプは、浮動小数点座標が参照するセルを決定します(「GeoRasterデータ・モデル」を参照)。GeoRasterは、浮動小数点(サブセル)セル座標および整数セル座標の両方を、そのAPIのすべての部分においてサポートします。

セル座標およびモデル座標の変換は、GeoRasterの空間参照システム(SRS)の関数フィッティング・モデルに基づいて行われます。GeoRaster SRSを使用する変換の前後では、セルの座標の値(行,列)はGeoRasterのセル空間を基準としており、ラスター・データ自体の左上角を必ずしも基準としません。ULTCoordinateでは、セル空間の基点座標とは異なる任意の座標(行および列の値)を指定できます。つまり、左上角の(行,列)座標は、(0,0)である必要はありません。

多くのイメージ・ファイル形式と同様に、ラスター・データの左上角を独自のセル空間の基点(0, 0)として定義するアプリケーションでは、GeoRaster ULTCoordinate (row0, column0)が(0, 0)ではない場合、GeoRaster SRSから導出される(行,列)を、この基点が基準となるように変換する必要があります。この変換では、次の計算式に示すように、GeoRaster ULTCoordinateを考慮する必要があります。

row = row0 + m
column = column0 + n

計算式の各変数の意味は、次のとおりです:

  • rowは、GeoRasterセル空間の基点を基準としたセルの行索引です。

  • columnは、GeoRasterセル空間の基点を基準としたセルの列索引です。

  • row0は、GeoRasterセル空間の基点を基準としたULTCoordinateの行索引です。

  • column0は、GeoRasterセル空間の基点を基準としたULTCoordinateの列索引です。

  • mは、ULTCoordinateを基準としたセルの行索引です。つまり、先頭行を0から開始した場合のm番目の行です。

  • nは、ULTCoordinateを基準としたセルの列索引です。つまり、先頭列を0から開始した場合のn番目の列です。

ほとんどのアプリケーションでは、ULTCoordinateと、セル空間の基点は同じ(つまりrow0 = 0およびcolumn0 = 0)になります。この場合、m = rowおよびn = columnとなります。