VPF 转换控制文件格式
使用导出到 VPF 或从 VPF 导入工具时,可以提供一个可选的转换控制文件。使用此控制文件,可对文件转换进行更高级的控制。例如,可在从 VPF 导入时忽略特定的 VPF 要素类,或在导出到 VPF 时忽略项目。
转换某个 coverage 后,该转换控制文件的 EXPORT 段可以(但不必须)包含三个子段:全局命令、原始命令和要素命令。每个子段可以包含任意数量的命令,并且以下一个 EXPORT 子段的开始、IMPORT 段的开始或者该转换控制文件的结束而结束(以 END 指示)。
控制文件命令
全局命令
全局命令会影响 VPF 表、coverage、库和数据库的某些特征。
- IGNORE <item1>....{item9} - 转换过程中忽略 INFO 项目。在任一忽略语句中可以最多指定九个项目。忽略某个 INFO 项目后,该数据会在转换到 VPF 期间丢失,即使使用 VPFIMPORT 也无法恢复。
- CREATE NARRATIVE <level> <table> <text_file> {textwidth} (description} - 将输入的 ASCII 文本文件转换为 VPF 叙述性表。
- CREATESPATIALINDEX <CELL | RANGE> - 指定将创建的空间索引类型。基于 RANGE 的索引使用在 MIL-STD-2402(第 164 页)的“附录 F”中找到的方程,并应被视为“较早的”方法。基于 CELL 的索引使用在 MIL-STD-2402(第 164 页)的 CHANGE NOTICE 1 的“附录 F”中找到的方程,并应被视为“较新的”方法。如果未在转换控制文件中指定空间索引的类型,则将基于 CELL 的索引创建为默认值。
- SET <table> <column> <value> - 将某个 VPF 表列设置为特定值。
- SET NARRATIVE <vpf_table> <narrative_name> {level} - 指定一个将与某个 VPF 表相关联的叙述性表。
- SET DESCRIPTION <vpf_table> <description> {level} - 指定一个将与某个 VPF 表相关联的描述字符串。
- SETVDT <vpf_table | Null> <item_name> <info_table> - 使用预定义格式为来自某个 INFO 查找表文件的 coverage 创建指定的 VDT 表。
- SETBYTEORDER <least | most> - 为所有转换的 VPF 表设置字节顺序。
- SET NULL <vpf_table> <item> <info_null_value> - 用于在 ARC/INFO 中预定义一个 VPF 空值。例如,在导出时可为特定 VPF 表中的特定项将“-9”定义为 VPF 空值。导出到 VPF 时,带有“-9”的记录将转换为该项类型的相应 VPF 空值。
- SET COVDESC <description> - 指定用于“Coverage 属性表”(CAT) 中的 coverage 的描述。
- NOCAT - 用于指定不得将此 coverage 添加到“Coverage 属性表”中。
- ITEMORDER <item1>....{item9} - 用于在导出时修改某个表的项目顺序。在此命令部分中必须表示所有项目,以便对项目正确排序。如果项目数超过九个,可以连续使用多个 ITEMORDER 行。如果此命令在全局部分中使用,则将仅在使用 TABLE 选项时起作用。
原始命令
原始命令以 PRIMITIVECLASS 命令开始,用于标识受后续命令影响的 VPF 原始类型。
- PRIMITIVECLASS < CND | END | EDG | FAC | RNG | TXT | EBR | FBR >(分别为连接的结点、实体结点、边缘、面、环、文本、边外接矩形和面外接矩形)。
- ITEMBECOMES <item> <column> {col_type) (count} {keytype} {description} {vdt} {thematic_index} {narrative}
- IGNORE <item1> {item2}............{item9} - 发生转换时忽略在 ARC/INFO 原始表中指定的列 (IGNORE)(但无法忽略 VPF 必需的列)。
- ITEMORDER <item1>....{item9} - 用于在导出时修改某个表的项目顺序。在此命令部分中必须表示所有项目,以便对项目正确排序。如果项目数超过九个,可以连续使用多个 ITEMORDER 行。
要素命令
要素命令以 FEATURECLASS 命令开始,用于标识受后续命令影响的 ARC/INFO 要素类。本部分介绍 FEATURECLASS 命令的语法和功能。
- FEATURECLASS <arc_feature_class> {feature_table | IGNORE} {description} {info_table | ONE} - 这些参数用于指定在转换期间将忽略的某个 ARC/INFO 要素类;重命名、描述及指定将用作 VPF 要素表的源的 INFO 表;用于创建复杂要素;以及在路径要素类和区域要素类中的要素与原始数据之间强制执行一对一的关系。
- <arc_feature_class> - 有效的要素类包括 ARC、NODE、POINT、POLY、ANNO.subclass、ROUTE.subclass、REGION.subclass、SECTION.subclass 和 COMPLEX。有关 COMPLEX 的说明,请参见以下的“创建复杂要素”。
- {feature_table | IGNORE} - 重命名将要创建的 VPF 表或者在转换期间忽略指定的 <arc_feature_class>。
- {description} - 为 VPF 要素表指定描述。
- {info_table | ONE} - 如果在该参数中指定某个 info_table 名称,则将直接从指定的 INFO 表创建一个 VPF 要素表。
- ADDCOLUMN <column> <col_type> <count> <keytype> {description} {vdt} {thematic_index} {narrative}
- ITEMBECOMES <item> <column> {col_type} {count} {keytype} {description} {vdt} {thematic_index} {narrative} - 为某个 INFO 项目进行 VPF 列定义。
- IGNORE <item1> {item2...item3} - 忽略 INFO 项目。
- GGROUPBY <column> - 指定 {info_name} 后,仅在 FEATURECLASS 块中有效。在进行转换的过程中,于 INFO 表中指定的列将变为 VPF 要素的 ID。此命令会为该列将具有相同值的所有记录组合为一条记录(单个要素)。
- JOIN <vpf_table> <info_table>
- SCHEMA {table1} {key1} {table2} {key2}
- ITEMORDER <item1>....{item9} - 用于在导出时修改某个表的项目顺序。在此命令部分中必须表示所有项目,以便对项目正确排序。如果项目数超过九个,可以连续使用多个 ITEMORDER 行。
创建复杂要素
通过将 COMPLEX 指定为 <arc_feature_class> 可以创建复杂 VPF 要素,例如下面的命令:
FEATURECLASS COMPLEX airport.cft ‘Airports’ airport.ftr
此命令从 INFO 表的 airport.ftr 创建一个名为“airport.cft”和描述为 airports 的复杂 VPF 要素表。
使用 COMPLEX 命令后,需要您定义要素与要素之间的关系以及要素与原始数据之间的关系。为此,用于指定 COMPLEX 要素类的 FEATURECLASS 命令后应跟随 SCHEMA 命令以及所有必要的 JOIN 命令。