在 ArcGIS AllSource 中,可以访问分隔文本文件中的数据并将这些文件用作表。 目录窗格和添加数据对话框列出了扩展名为 .txt、.asc、.csv、.psv、.tsv 或 .tab 的文件并将其指定为文本文件类型。
默认情况下,扩展名为 .txt、.asc 或 .csv的文件会被解释为以逗号分隔的文件,扩展名为 .psv 的文件会被解释为以管道符分隔的文本,而扩展名为 .tsv 或 .tab 的文件会被解释为以制表符分隔的文件。 具有这些扩展名之一的任意文件(即使此文件不包含表格数据)都将被解释为一个文本文件表。 如果您尝试显示不包含表格数据的文本文件,则数据将尽可能显示为表格,否则会发生错误。 要避免该错误,请确保分隔文本文件扩展名为 .csv 或 .tab,以区分具有分隔数据的文本文件和无格式文本文件。
文本文件的第一行可以包含列标题,后续行可以包含坐标和属性。 使用逗号或制表符来描绘各个列。 以下是逗号分隔文本文件的一个示例:
x,y,ID,color
8.6,5.6,001,blue
99.3,77.0,002,blue and red
8.01,44.3,003,orange
如何确定坐标信息
如果分隔文本文件包含数据坐标信息,例如 x,y 数据,则 ArcGIS AllSource 会将坐标信息识别为数字字段,可使用这些字段将您的信息显示为图层或任务的输入(例如地理编码)。 在以上示例中,坐标信息简单且易识别,包含在字段 x 和 y 中。
有时,您所需要的信息将采用不同格式或命名约定进行存储。 例如,如果坐标信息以度分秒的形式存储在文本字段中(例如,-120 13 58),则会将其转换为十进制度来显示。
如果采用单字段格式,例如 UTM,则将保持原始的 UTM 字段,添加两个附带 _X 和 _Y 的字段,并采用十进制度显示坐标信息。 例如,当您打开名为 UTM 的文本字段时,其中有三个字段:UTM、UTM_X 和 UTM_Y。
如果采用双字段文本字段,例如纬度和经度,则将保持原始字段并添加两个新字段,以包含转换后的十进制度坐标信息。 例如,当您打开一个包含名为 Lat 和 Lon 的两个文本字段的文本文件时,将添加两个字段:Lat_D 和 Lon_D。 许多格式的文本文件将支持所存储的数值信息。 有关这些格式的列表,包括所支持记法的详细描述,请参阅受支持的记法格式。
要采用十进制度以外的格式显示文本文件的内容,请使用转换坐标记法工具来转换坐标信息。
字段名称
ASCII 和文本文件的字段名称与地理数据库要素类字段名称所遵循的命名约定相同。 请参阅定义表中字段中的“字段名称”部分。
唯一不支持的字符是单双引号。 您必须编辑分隔文本文件中的字段名称以移除所有单双引号,可以移除它们,也可以用其他字符代替。
覆盖文本文件的格式化方法
在执行分隔文本文件信息以在 ArcGIS AllSource 中显示时,系统将支持显示文本文件的最常见情况。 系统将支持使用方案信息文件 (schema.ini) 中指定的设置(该设置由 Microsoft ODBC 文本驱动程序用于存储数据描述信息)来帮助确定文本文件的显示方式。 在之前的版本中,显示分隔文本文件信息不需要 schema.ini 文件。
如果您打开的分隔文本文件中包含无法可靠确定的字段,则将在文件位置自动创建一个 schema.ini 文件。 该文件将假定该字段的格式。 如果分隔文本文件中的信息显示正确,则可以保留 schema.ini 文件。 如果字段类型被误解,则可以编辑 schema.ini 文件以覆盖信息的显示方式。 移除或重命名 schema.ini 文件,以测试分隔文本文件中信息的处理方式。
以下示例显示了如何修改 schema.ini 文件以覆盖默认行为。 在本例中,PLOTS 字段显示为“文本”类型,但是却被解释为“双精度”类型。
[Trees.CSV]
Col14=PLOTS Text
您必须创建一个 schema.ini 文件(如果不存在)以覆盖文件的显示方式。 有关 schema.ini 文件的详细信息,请在 Microsoft MSDN 网站上搜索 schema.ini。
在考虑编辑 schema.ini 文件时,请记住以下几点:
- 如果属性值被特殊字符(例如双引号)括起来,则字段将被视为文本字段。 对于数值字段,确保删除双引号。
- 如果不想更新 schema.ini 文件,但想将所有数据保留为浮点型字段,请确保数据的第一行中有小数点且其他所有要素都将保留为浮点。 例如,如下所示设置文本文件:
ID Name Number 1 One 1.0 2 Two 2.4564 3 Three 3.45464