FAQ ArcGIS に CSV ファイルを読み込んだ際,フィールド タイプを指定する方法 (schema.ini の作成)

ナレッジ番号:1564 | 登録日:2023/05/29 | 更新日:2023/06/21

説明

テキスト ファイルのデータを ArcGIS で読み込む場合、フィールドに格納されている値に基づきにArcGIS が自動でフィールドのタイプを決定します。そのため、Double 型で作成したかったフィールドが Single Interger のフィールドとして読み込まれることがあります。そのような場合は、フィールドのタイプを定義することができる「schema.ini」 ファイルをご利用ください。

ArcGIS は、Open Database Communication (ODBC) ドライバ用のMicrosoft OLE DBプロバイダ、Microsoft ODBC Text Driver を使用して、テキストファイル内のデータにアクセスします。このドライバは、「schema.ini」という名前のファイルにテキスト ファイルに関するスキーマ情報を格納します。
ArcGIS でテキスト ファイルが格納されているディレクトリを閲覧したり開いたりすると、自動的にそのディレクトリに「schema.ini」が作成されます。

この「schema.ini」ファイルに各フィールドのデータ型やフィールド長などを定義することができます。

  • テキスト ファイルの名前
  • ファイルのフォーマット
  • フィールドの名前、長さ、データ型
  • 文字セット
  • データ型の変換
ArcGIS からテキスト または CSV 形式で出力を行うと、「Schema.ini」ファイルが自動的に作成されます。
「schema.ini」 でフィールドの設定をしても、 ArcGIS で読み込むことができない情報もあります。

「Schema.ini」ファイルについて


テキスト ファイルの名前


「schema.ini」の最初に記述されるのが角括弧で囲まれたテキスト ファイルの名前です。
( 例 )
---------------------
[SampleData.txt]
---------------------

 

ファイルのフォーマット


テキスト ファイルのフォーマットを指定します。

ArcGISでは、ファイルの拡張子をみて、各テキスト ファイルの区切り文字を決定しています。拡張子が「.txt」「.asc」「.csv」のファイルは、カンマ区切りのファイルとして認識され、拡張子が「.tab」ファイルは、タブ区切りのファイルとして認識されます。ですから、拡張子が例えば「.txt」のファイルがあり、そのファイル内でカンマ以外の区切り文字 ( 例えば " ; " ) が使用されている場合、デフォルトではファイルが正しく解釈されません。そのような場合には下記のように記述します。
( 例 )
Format=Delimited(;)



フォーマットの種類


TabDelimited    - タブ区切り
CSVDelimited    - カンマ区切り
Delimited(custom character) - ダブルクォーテーション( " )を除く任意の一文字
FixedLength    - 固定長



フィールドの名前、長さ、データ型

フィールド名を指定する方法は2通りあります。

  1. テキスト ファイルの1 行目をフィールドの名前に指定します。
    また、フィールドのデータ型を決定するためにフィールドの先頭から何レコード目までに格納されているレコードを検査するかを MaxScanRows オプションで指定することができます。下記の例のように「0」を指定するとファイル内のすべてのレコードを検査します。 (デフォルトでは 25 レコード目までを検査します)
    ( 例 )
    ---------------------
    ColNameHeader=True
    MaxScanRows=0
    ---------------------
  2. 各フィールドのフィールド名、データ型、フィールド長を指定します。
    固定長のファイルには必ず各フィールドの名前、データ型、長さを指定する必要があります。固定長以外のファイルでもフィールドの名前や型などを指定することはできますが、Char 型以外のフィールド長はデータ型に依存します。

    Coln=ColumnName type [Width #]

    ColumnName - フィールド名にスペースが含まれている場合は、クォーテーションで囲む必要があります。

    type - データ タイプには次のようなものがあります。
    ArcGISでサポートされていないデータ型はご利用になれません。
    ()内は ArcGIS で読み込んだ場合のデータ型です。

    Microsoft Jetのデータ型:
    Byte (Short Integer)
    Short (Short Integer)
    Long (Long Integer)
    Single (Float)
    Double (Double)
    DateTime (Date)
    Text
    Memo (Blob)

    ODBCのデータ型:
    Char (Text)
    Float (Double)
    Integer (Short Integer)
    LongChar (Blob)
    Date
    -------------------------
    Col1=NAME Char Width 30
    Col2=XCOORD Float
    Col3=YCOORD Float
    --------------------------

文字セット


文字セットには、ANSIまたはOEMのどちらかを選択できます。
Shift-JISをお使いの場合のコードページ番号は「932」になります。
( 例 )
-----------------------------
CharacterSet=OEM
-----------------------------

データ型の変換

(ArcGISでエクスポートする際に事前に「schema.ini」で設定しますが、ArcGISでサポートされていないデータ型は利用できません。)

データを下記の書式で表示することができます。
DateTimeFormat    - 日付と時刻の書式を設定します。( エクスポートのみ有効 )
DecimalSymbol    - 数値の整数部分と端数部分を分けるための 1 文字を設定します。
NumberDigits    - 数値の小数点以下の桁数を指定します。(エクスポートのみ有効)
NumberLeadingZeros    - 「-1」より大きく、「1」より小さい10進値の前に「0」を付けるかどうかを指定します。 値は False 「0」を付けないか、 またはTrueです。 (ArcGISでは利用できません。)

Currency の書式は ArcGIS ではサポートされていないデータ型なので、ご利用になれません。
CurrencySymbol    - テキスト ファイルの通貨の値に使われる通貨記号を指定します。(例: $ )
CurrencyPostFormat    - 通貨記号と値の表示方法を指定します。  
CurrencyDigits    - 通貨値の小数点以下の桁数を指定します。
CurrencyNegFormat    - マイナスの通貨値の表示方法を指定します。
CurrencyThousandSymbol  - 通貨値を3桁の値で区切るために使われる 1 文字のシンボルを指定します。 CurrencyDecimalSymbol    - 通貨値の整数部分と端数部分を分けるための 1 文字を設定します。

これまでにご紹介した「schema.ini」ファイルの項目を指定しない場合は、Windows コントロール パネルの既定値が使われます。

「schema.ini」ファイルでの設定はWindows レジストリの設定をファイルベースで無効にします。

サンプル


「schema.ini」のサンプル
--------------------------------------
[交通事故.txt]
ColNameHeader=False
CharacterSet=932
Format=CSVDelimited
Col1=道路ID Integer
Col2=負傷者数 Integer
Col3=死者数 Integer
Col4=飲酒運転 Char Width 16
Col5=速度 Char Width 9
Col6=事故地点 Integer
---------------------------------------

カンマ区切りのテキスト ファイルのサンプル ( 交通事故.txt )
---------------------------------------
123,2,0,該当,30-60km,18053
124,2,1,,0-30km,18053
125,1,0,,0-30km,18053
126,0,0,,60km以上,18053
127,2,0,,30-60km,18085
---------------------------------------

上記の「schema.ini」とともに「交通事故.txt」をArcGISで読み込むと、「schema.ini」で指定したフィールド名やデータ型で下記のように表示されます。
---------------------------------------
道路ID Long Integer
負傷者数 Long Integer
死傷者数 Long Integer
飲酒運転 Text
速度 Text
事故地点 Long Integer
---------------------------------------

メタデータ

カテゴリ

製品

バージョン