ArcGIS フィールド データ タイプ

フィーチャクラスおよびテーブルを作成する際には、各フィールドのデータ タイプを選択します。 利用可能なデータ タイプには、さまざまな数値タイプ、テキスト タイプ、日付タイプ、BLOB (Binary Large Object)、GUID (Globally Unique Identifier) などが含まれます。 正しいデータ タイプを選択することにより、データを正しく格納し、解析、データ管理、およびビジネス ニーズへの対応を容易にすることができます。

このトピックで説明するデータ タイプには、ArcGIS でフィーチャクラスまたはテーブルを作成するときに利用できるデータ タイプが含まれています。 データをデータベースまたはデータベース内のジオデータベースに格納した場合に、ArcGIS とデータベース管理システム (DBMS) のデータ タイプが一致しないことがあります。 このようなデータ タイプは、使用可能な最も近いデータベース データ タイプと照合されます。 このプロセスはデータ タイプ マッピングと呼ばれます。 このプロセスでは、値を別のタイプとしてデータベースに格納し、データ属性に異なる基準を適用することができます。 その結果、ArcGIS Pro のテーブルまたはフィーチャクラスのプロパティに表示されるデータ タイプは、最初に定義したデータ タイプと異なる場合があります。 データ タイプ マッピング プロセスの詳細については、「ArcGIS でサポートされている DBMS のデータ タイプ」をご参照ください。

シェープファイルや dBase ファイル (DBF) テーブルなどの他のデータ格納形式には、異なるデータ タイプ制限が適用されます。 異なるデータ格納タイプ間でデータを移動する際は、格納先の形式のデータ タイプとサイズの制限を理解していることを確認してください。

数値

数値は 4 つの数値データ タイプのいずれかで格納することができます。

  • Short integer
  • Long integer
  • Float (単精度浮動小数点数)
  • Double (倍精度浮動小数点数)

データ タイプを選択する際には、整数と分数のどちらが必要であるかを検討します。 自然数 (12、12,345,678 など) を格納できればよい場合は、short integer または long integer を指定します。 小数点を持つ有理数 (0.23、1234.5678 など) を格納する必要がある場合は、float または double を指定します。

short integer と long integer のどちらかを選択する場合または float と double のどちらかを選択する場合は、格納する必要のある数値範囲で格納領域が最も少ないデータ タイプを選択します。 これにより、必要な記憶領域の量を最小限に抑えるだけでなく、パフォーマンスを向上させます。 たとえば、-32,768 ~ 32,767 の整数だけを格納するには、4 バイトを消費する long integer データ タイプではなく、2 バイトしか消費しない short integer データ タイプを指定します。 -3.4E38 ~ 1.2E38 の有理数だけを格納するには、8 バイトを消費する double データ タイプではなく、4 バイトを消費する float データ タイプを指定します。

データ タイプ、その有効範囲、および格納領域の要件は、下掲の表に示すとおりです。 これらはファイルおよびモバイル ジオデータベースの有効範囲です。 有効範囲は、データベースとエンタープライズ ジオデータベースで少し異なります。

データ タイプ有効範囲サイズ (バイト)アプリケーション

Short integer

-32,768 ~ 32,767

2

小数値を含まない特定の範囲内の数値 (コード値)

Long integer

-2,147,483,648 ~ 2,147,483,647

4

小数値を含まない特定の範囲内の数値

Float (単精度浮動小数点数)

約 -3.4E38 ~ 1.2E38

4

小数値を含む特定の範囲内の数値

Double (倍精度浮動小数点数)

約 -2.2E308 ~ 1.8E308

8

小数値を含む特定の範囲内の数値

ArcGIS データ タイプの表

ファイル ジオデータベースまたはモバイル ジオデータベースのテーブルまたはフィーチャクラスに数値フィールドを追加する場合は、データ タイプを指定するだけで済みます。 データベースまたはエンタープライズ ジオデータベースのテーブルまたはフィーチャクラスに数値フィールドを追加する場合は、精度 (全桁数) を指定できます。 フィールドが float または double データ タイプの場合は、フィールド値のスケール (小数点以下の桁数) も指定できます。

精度 (フィールドの長さ) とスケール (小数点以下の桁数) を指定すると、フィールドに設定可能な値の範囲と数値形式を制限できるため、より厳密な制御が可能になります。 たとえば、フィールドのタイプとして精度が 4、スケールが 2 の float を指定する場合、12.34 の値を設定することができます。 このフィールドに 12.345 を入力しようとすると、最大桁数と小数点以下の桁数を超えているので、エラー メッセージが表示されます。 代わりに、フィールドのタイプとして精度が 5、スケールが 3 の float を指定した場合は、12.345 を入力することができます。

フィールド ビューでフィールドを追加する際に指定できるデータ タイプ、精度値、およびスケール値を以下に示します。 精度は常にスケールより大きい値でなければなりません。 整数タイプには小数値が格納されていないため、スケールは整数タイプに適用されません。 この情報は、データ タイプ、精度、スケールを選択する際に役立ちます。

データ タイプ精度 (フィールドの長さ)スケール (小数点以下の桁数)

Short integer*

1–5 (Oracle); 5 (IBM Db2Microsoft SQL Server、および PostgreSQL)

0

Long integer

6–10 (Oracle); 6–9 (Db2); 10 (SQL Server および PostgreSQL)

0

Float

1-6

1-6

Double

7+

1+

*ArcGIS Pro のデフォルトでは、short integer が精度 5 で作成されます。 ただし、short integer 列に格納できる値は、-32,768 ~ 32,767 の範囲内の値だけです。 精度を 5 に設定したとしても、32,767 を超える値または -32,768 未満の値は、short integer フィールドに格納できません。 Oracle 以外のデータベースでは、ArcGIS Pro で作成された short integer 列に精度を指定する必要はありません。

数値の範囲とそれをデータベースまたはエンタープライズ ジオデータベースに格納する方法の例を次の表に示します。

範囲データ タイプ精度 (フィールドの長さ)スケール (小数点以下の桁数)

0 ~ 99

Short integer

2

0

-99 ~ 99*

Short integer

3

0

-32,768 ~ 32,767*

Short integer

5

0

-99,999 ~ 99,999*

Long integer

5

0

0.001 ~ 0.999

Float

4

3

1,000.00 ~ 9,999.99

Float

6

2

-123,456.78 ~ 0*

Double

9

2

0 ~ 1,234.56789

Double

9

5

数値の範囲、データ タイプ、精度、およびスケールの例

* 負数の場合はマイナス記号を格納するための追加の精度が必要です。

コンピューターに格納できる桁数は、割り当てられる格納領域によって制限されます。 データベースとジオデータベースの double データ タイプのフィールドには、15 桁までの精度の数値 (8 バイトの格納領域に収まる最も長い数値) しか正確に格納できません。 これを超える桁数の数値は丸められ、科学的表記法と同様の形式で格納され、概数となります。 たとえば、20 桁の数値「12,345,678,901,234,567,890」を入力した場合、この数値は丸められ、15 桁の数値「1.23456789012346E+19」として格納されます。 末尾にあるコード値「E+19」は、小数点の位置を表します。

ファイルまたはモバイル ジオデータベースの float データ タイプのフィールドには、6 桁までの精度の数値しか格納できません。 たとえば、float タイプのフィールドに、6 桁を超える数値である 123,456.7 を格納することはできません。 この数値はファイル ジオデータベースの float タイプのフィールドに入力できますが、6 桁の数値である 123,457 に丸められます。 この数値を正確な精度で格納するには、double タイプのフィールドに格納することができます。 エンタープライズ ジオデータベースおよびデータベースの float タイプのフィールドでは、そのフィールドの精度を超える桁数の数値を入力できないため、数値の四捨五入は行われません。

テキスト

テキスト フィールドは、文字列を表します。 これには、道路名、属性プロパティ、その他のテキスト記述が含まれます。 ジオデータベースのテキスト属性を繰り返し使用する場合は、コード値を設定するという方法もあります。 この場合、テキスト記述は数値でコード化されます。 たとえば、道路タイプを数値でコード化する場合には、舗装された道路に 1、砂利の道路に 2 などを割り当てます。 この方法には、ジオデータベースで使用される格納領域が少なくなるという利点がありますが、ユーザーがコード値を理解する必要があります。 ジオデータベース内のコード値ドメインでコード値を定義し、コードを格納する整数フィールドにこのドメインを関連付けると、ArcGIS Pro でテーブルを表示した際にテキスト記述が表示されます。

サブタイプおよび属性ドメインの詳細

テキストに使用される文字は言語によって異なります。 言語間でのテキストの変換を容易にするために、ArcGIS では文字のエンコーディングに Unicode を使用しています。

日付

日付データ タイプには、日付、時間、または日付と時間を格納することができます。 この情報を表現するデフォルト形式は、mm/dd/yyyy hh:mm:ss と AM または PM の指定です。 ArcGIS でテーブル内の日付フィールドに入力した日付は、この形式に変換されます。

BLOB

BLOB は、長いバイナリ数値列として格納されるデータです。 ArcGIS はアノテーションとディメンションを BLOB として格納します。また、このタイプのフィールドには、画像、マルチメディア、またはコードのビットなどのアイテムを格納することができます。 BLOB フィールドにアイテムを読み込む、または BLOB フィールドの内容を参照するには、カスタム ローダー、カスタム ビューアー、またはサードパーティ アプリケーションを使用する必要があります。

ObjectID

ArcGIS でテーブルを作成すると、NULL 値が許可されない一意の整数フィールドがテーブルに追加され、オブジェクト識別子 (ObjectID) として機能します。 ArcGIS によって維持される ObjectID フィールドは、テーブル内の各行が一意の ID を持つことを保証します。 テーブルまたはレイヤーの属性テーブルでは、通常、テーブルの ObjectID (OID) と Web フィーチャ レイヤーおよびシェープファイルの FID のエイリアスの下に ObjectID フィールドが表示されます。 選択セットのスクロールや表示などの主な機能は、このフィールドが存在するかどうかに依存します。

ObjectID は、テーブルをエンタープライズ ジオデータベースに登録する際にも必要となります。 テーブルを登録する際の ObjectID の要件については、「ジオデータベースへのテーブルまたはビューの登録」をご参照ください。

個別属性ツールなど、ArcGIS Pro の大部分の機能では、ObjectID フィールド内の値が一意でなければならなりません。 このため、ArcGIS の外部でデータを直接操作する際には、ObjectID が重複しないよう注意してください。 たとえば、1 対多のリレーションシップを持つデータベースでビューを作成するときに ObjectID が重複する可能性があります。 ObjectID が重複している場合、ArcGIS Pro の機能が正常に動作しなくなります。

データベース テーブルをマップに追加する場合には、ObjectID が必要です。 ArcGIS が ObjectID として使用する NULL 以外の整数フィールドを検出できない場合、ObjectID として使用するフィールドを選択するように求められます。 詳細については、「一意識別子フィールド」をご参照ください。

注意:

ArcGIS はこれらのデータベース フィールド内の値を管理せず、これらのフィールド内のすべての値が一意であることは保証されません。

Global ID

GUID データ タイプは、中括弧 ({}) で囲まれた 36 文字のレジストリ形式の文字列を格納します。 Global ID はジオデータベースでのみサポートされています。 Microsoft SQL Server のジオデータベースを除いて、どのジオデータベースでも、Global ID はテキスト フィールドに格納され、テキスト Global ID フィールドに格納されている文字は常に大文字になります。

Global ID を生成する場合は、デバイスと時間が処理で考慮されます。 重複した値が生成されるわずかな可能性があるため、これらの文字列によって、ジオデータベース内およびジオデータベース間のフィーチャまたはテーブル行が一意に識別されます。 一方向と双方向のジオデータベース レプリケーションでは、フィーチャがこのようにして追跡されます。 開発者はそれらをリレーションシップや GUID が必要なアプリケーションに使用することができます。 リレーションシップでは、Global ID フィールドが関連元キーの場合、GUID フィールドは関連先キーでなければなりません。 ジオデータベース内のデータセットに Global ID を追加するには、[Global ID の追加 (Add Global IDs)] ジオプロセシング ツールを使用します。 これらの値はジオデータベースによって自動的に管理されます。 GUID フィールドを作成することもできますが、その値はユーザーが管理しなければなりません。

SQL Server など、ネイティブ GUID データ タイプを持つデータベースには、Global ID と GUID の値が 16 バイト データとして格納されます。 ネイティブ GUID データ タイプを持たないデータベースは、それらの値を 38 バイト データとして格納します。

Global ID に関する注意事項

Global ID を使用する際には、以下の点に注意してください。

  • GUID フィールドをジオデータベース データセットに追加するには、フィールド ビューを使用するか、テーブル ウィンドウ内にある [新しいフィールド] コマンドを使用します。
  • ジオデータベース内のスタンドアロン フィーチャクラス、テーブル、および属性リレーションシップ クラスに Global ID を追加することができます。 Global ID をフィーチャ データセット内のデータセットに個別に追加することはできません。フィーチャ データセットで Global ID を有効にすると、そのフィーチャ データセット内のすべてのデータセットに Global ID が追加されます。
  • また、データベースのテーブルに追加することもできません。
  • 既存の Global ID 列が存在する場合に、[Global ID の追加 (Add Global IDs)] ツールを実行すると、既存の Global ID 列を削除して新しい Global ID 列を追加するのではなく、元の列が未変更のままになります。
  • ジオデータベース内のフィーチャ データセットに追加するフィーチャクラスに Global ID 列を追加したい場合は、そのフィーチャ データセットに対して [Global ID の追加 (Add Global IDs)] ツールを実行する必要があります。 これにより、新しいフィーチャクラスに Global ID 列が追加されます。 フィーチャ データセット内で、既存の Global ID 列を含むフィーチャクラスは未変更のままになります。
  • コピーと貼り付け、データの抽出、XML ワークスペースのエクスポートとインポートを実行すると、出力ジオデータベースで Global ID 値が維持されるため、一意でない Global ID がデータベースに格納される可能性があります。 他のデータ エクスポートまたはインポート方法では、Global ID 値は維持されません。

ラスター タイプのフィールド

フィーチャのフィールドを画像にリンクするだけのハイパーリンクとは異なり、ラスター タイプのフィールドではラスター データをジオデータベース内またはジオデータベースとともに格納することができます。 詳細については、「ラスター データセットをフィーチャクラスの属性として追加」をご参照ください。

注意:
モバイル ジオデータベースはラスター列をサポートしません。ただし、アタッチメントを使用して写真や文書などの非地理データをフィーチャに関連付けることはできます。

アタッチメント ジオプロセシング ツールの操作の詳細

Geometry

ArcGIS のジオメトリ データ タイプは、テーブルに格納するジオメトリの種類 (ポイント、ライン、ポリゴン、マルチポイント、またはマルチパッチ) を示します。 ジオメトリ タイプとして格納されるフィールドは、ArcGIS で作成された場合には SHAPE という名前になります。

ジオメトリは、ArcGIS によって使用されるデータ タイプです。 たとえば、新しいフィーチャクラスに [ポリゴン フィーチャ] を選択すると、デフォルトで追加される SHAPE フィールドは ArcGIS のジオメトリのデータ タイプになります。

[フィーチャクラスの作成 (Create Feature Class)] ツールの [ジオメトリ タイプ] パラメーターでは、デフォルトのジオメトリ タイプがポリゴンになります。

フィーチャクラスを異なるフィーチャ タイプ (ライン、ポイント、マルチポイント、マルチパッチ、ディメンション、またはアノテーション) で作成した場合、SHAPE フィールドのジオメトリ タイプはフィーチャ タイプに応じて異なります (ライン、ポイント、マルチポイント、マルチパッチ、ポリゴン、ディメンション、およびアノテーション)。

データベースまたはエンタープライズ ジオデータベース内のフィーチャクラスにジオメトリ フィールドを作成する場合は、データベース データ タイプも検討する必要があります。 DBMS に SHAPE フィールドの値を格納する方法は、DBMS が使用するジオメトリ格納タイプによって異なります。 エンタープライズ ジオデータベース内にフィーチャクラスを作成する際に使用されるジオメトリ格納タイプは、指定したコンフィグレーション キーワードの GEOMETRY_STORAGE パラメーターの設定によって決まります。 データベース内にフィーチャクラスを作成する場合は、[フィーチャクラスの作成 (Create Feature Class)] ツールの [ジオデータベース設定] セクションにある [コンフィグレーション キーワード] パラメーターでフィールドの空間タイプを指定します。