`

Arc/Info Export (E00)文件格式分析[翻译]

    博客分类:
  • GIS
阅读更多

Original Author: Unknown

Last Update: 2000-02-24, Daniel Morissette, danmo@videotron.ca

局部翻译简单整理:wallimn 时间:2009-02-25

1. INTRODUCTION

Note: ESRI considers the export/import file format to be proprietary. As a consequence, the identified format can only constitute a "best guess" and must always be considered as tentative and subject to revision, as more is learned.
注意:ESRI认为导入、导出文件格式是私人拥有的,这就导致分析格式只能建立在猜的基础上,而且要认识到这种分析是试验性的、可能经常要修改的、最好是以学术研究为目的。

It appears that all ARC/INFO files except user-created lookup tables are exported, including .ACODE and .PCODE.
看起来好象所有的ARC/INFO文件(除用户创建的查找表)导出后都包含.ACODE及.PCODE。

2. OVERALL ORGANIZATION

The export file begins with a line with three fields.
导出文件以包含三个字段的一行开始。

  • 1- an initial 'EXP'
    1-开始标识“EXP”。
  • 2- what appears to be a constant of '0' for uncompressed files, and 1 for compressed files (FULL or PARTIAL).
    2-好象是一个常量标识,0表示未压缩文件、1表示压缩文件。
  • 3- the pathname for the creation of the export file
    3-导出文件的命名。

The export file ends with a line beginning 'EOS'.
导出文件以开始为“EOS”的一行为结束标志。

The ARC files are included first, in the following order (note that all these sections are not always present):
导出文件第一节(section,后面的翻译中,我统一将其称为节)为ARC,接下来的节为(注意,并不是所有的节都会出现):

  • ARC
  • CNT
  • LAB
  • PAL
  • PAR
  • TOL
  • TXT, TX6, TX7, ...
  • SIN
  • LOG
  • PRJ
  • RXP
  • RPL

Then the INFO files are included in alphabetical order (???not sure???). (There does not seem to be any real rule for the ordering of the INFO files, it probably depends on the version of Arc/Info that was used to generate the file. For instance, the .BND table sometimes comes first, but it also happens to come last with the .TIC...)
信息节(文件里好象是IFO)是以字母顺序排列的(不是很确定)。(看起来好象没有任何规则,好象与导出文件用的arc/info软件的版本有关。例如,.BND表有时排第一,但是有时也出现在.TIC后面...)。

The beginning of each ARC file is indicated by the file name (a three-character identifier) followed by ' 2' for single- precision or ' 3' for double-precision. Floating point values carry 8 digits (ex: -1.0000000E+02) in single-precision coverages, and 15 digits (ex: -1.19299887000023E+02) in double-precision coverages.
However, there has to be an exception(!): double-precision floating point values inside INFO tables carry 18 digits (ex: -5.70000000000000000E+01).
ARC节以一个三字母的文件名开始(我手上的文件不是这个样子,难道这是旧版本?),然后跟一个2或3,2表示单精度数字,小数点后的8位小数,如(ex: -1.00000000E+02,原文少写一位??),3表示双精,小数点后面15位数字,如:-1.19299887000023E+02。不过有时有例外,双精度有时小数点后会有18位数字。

Each ARC file ends with a line of seven numbers beginning with a -1 and followed by six zeros, except the SIN, LOG, and PRJ files which end in 'EOX', 'EOL', and 'EOP', respectively. The LAB file uses a slight variation of this -1 ending line (see below). The format for each ARC file is specific to that type of file. These formats are covered below.
ARC节会以-1 0 0 0 0 0 0为结束标识,而SIN, LOG, and PRJ会分别以EOX、EOL、EOP为结束标志(暗含的意思好象是其它多数都以-1 0 0 0 0 0 0结尾)。LAB节有些小变化,以-1作为结束行标识(见下文)。ARC节的格式是明确的(统一的),下文会谈到。

TX6, TX7, RXP and RPL sections start with the usual "TX6 2", etc. line, and end with "JABBERWOCKY". These sections are divided in sub-sections (called "subclasses" in Arc/Info), each sub-section starts with a line with the name of the subclass, and end with the same "-1 0 0 0 0 0 0" line as the other ARC files (except for RXP sub-sections, which end with "-1 0" only).

The beginning of the INFO file section is indicated by 'IFO 2', and its end is indicated by 'EOI'. The INFO files each begin with the file name. For example, the polygon attribute table would be 'STDFIG24C.PAT' on a line by itself. The format is the same for every INFO file. This format is given below.
INFO节以“IFO 2”开始,以“EOI”为结束标识,每个INFO节以一个文件名开始。每个INFO节的格式都是相同的,格式下文会谈到。

3. ARC FILE FORMATS

Formats will be given for the most common ARC files:
下面说一下常见的ARC节格式:

  • ARC
  • CNT
  • LAB
  • PAL
  • PAR
  • TOL
  • TXT, TX6, TX7, ...
  • SIN
  • LOG
  • PRJ
  • RXP
  • RPL

3.1 ARC

The ARC (arc coordinates and topology) file consists of repeating sets of arc information. The first line of each set has seven numbers:
ARC(坐标及拓扑信息)节由一系列的弧信息组成,每一组的第一行都是由7个数字组成:

  • 1. coverage#               ARC的序号
  • 2. coverage-ID             ARC的ID
  • 3. from node              开始点
  • 4. to node                 结束点
  • 5. left polygon            左面
  • 6. right polygon          右面
  • 7. number of coordinates   坐标数

The subsequent lines of a set are the coordinates with two x-y pairs per line, if the coverage is single-precision. If there are an odd number of coordinates, the last line will have only one x-y pair. Double-precision puts one coordinate pair on each line.
下面展示单精、双精两种情况下的文件内容示例,不译了。

An example of an actual ARC section follows:

    ARC  2
             1         2         2         1         1         2         2
     3.4029994E+05 4.1001998E+06 3.4009988E+05 4.1002000E+06
             2         3         3         2         3         2         2
     3.4050000E+05 4.1001998E+06 3.4029994E+05 4.1001998E+06
             3         1         1         4         1         2         4
     3.4009988E+05 4.1002000E+06 3.4040006E+05 4.1003995E+06
     3.4090012E+05 4.1002000E+06 3.4070003E+05 4.1001995E+06
             4         4         4         3         4         2         2
     3.4070003E+05 4.1001995E+06 3.4050000E+05 4.1001998E+06
             5         6         3         4         4         3         3
     3.4050000E+05 4.1001998E+06 3.4059997E+05 4.1001002E+06
     3.4070003E+05 4.1001995E+06
             6         7         4         5         1         3         3
     3.4070003E+05 4.1001995E+06 3.4079997E+05 4.1000002E+06
     3.4019978E+05 4.1000000E+06
             7         5         5         2         1         3         2
     3.4019978E+05 4.1000000E+06 3.4029994E+05 4.1001998E+06
            -1         0         0         0         0         0         0
    

    An example of a double-precision ARC section follows:

      ARC  3
               1         0         0         0         0         0         7
       3.40200000000000E+05 4.10000000000000E+06
       3.40300000000000E+05 4.10020000000000E+06
       3.40500000000000E+05 4.10020000000000E+06
       3.40600000000000E+05 4.10010000000000E+06
       3.40700000000000E+05 4.10020000000000E+06
       3.40800000000000E+05 4.10000000000000E+06
       3.40200000000000E+05 4.10000000000000E+06
               2         0         0         0         0         0         4
       3.40100000000000E+05 4.10020000000000E+06
       3.40400000000000E+05 4.10040000000000E+06
       3.40900000000000E+05 4.10020000000000E+06
       3.40100000000000E+05 4.10020000000000E+06
              -1         0         0         0         0         0         0
      

      3.2 CNT

      The CNT (Polygon Centroid Coordinates) file contains the centroid of each polygon in the coverage. It has sets of centroid information with an initial coordinate line and, if there are labels, the label ids will follow, with up to 8 label ids per line.
      CNT物类包含了每个多边形物类的质心。它包含一系列的质心信息行,这些行以坐标开始,如果有标签,标签后有索引,每行最多有8个索引。

      The coordinate line has three fields:

      • 1- number of labels in polygon
      • 2- centroid x
      • 3- centroid y

      An example of an actual CNT section follows:

        CNT  2
                 0 3.4048516E+05 4.1001702E+06
                 1 3.4046691E+05 4.1002662E+06
                 1
                 1 3.4048875E+05 4.1000852E+06
                 2
                 0 3.4060000E+05 4.1001665E+06
                -1         0         0         0         0         0         0
        

        The following example shows centroids with more than one label attached to them:

          CNT  2
                   0-1.1930000E+02 4.9150002E+01
                   1-1.1934029E+02 4.9169064E+01
                   1
                  13-1.1927331E+02 4.9168560E+01
                   2         3         4         5         6         7         8         9
                  10        11        12        13        14
                   1-1.1921005E+02 4.9199642E+01
                  15
                  -1         0         0         0         0         0         0
          

          3.3 LAB

          The LAB (Label Points) section consists of repeating sets of label point information. The first line of each set has four numbers:
          LAB节包含多组重复的标签点信息。每组的第一行由四个数字组成:

          • 1. coverage-ID: Label User ID
          • 2. Polygon ID: System ID of the polygon which encloses the label (or 0 in a point coverage)
          • 3. x coordinate
          • 4. y coordinate

          The second and final line of the set gives the label box window. This information is marked as marked as obsolete in the SDL documentation. It currently contains repetitions of the x and y coordinates.
          第二行及最后一行指定的标签包围盒的坐标。...它目前包含的是重复的X,Y坐标。

          Note that the LAB section ends with a different '-1' line than the other files.

          An example of an actual LAB section follows:

            LAB  2
                     1         2 3.4046650E+05 4.1002668E+06
             3.4046650E+05 4.1002668E+06 3.4046650E+05 4.1002668E+06
                     2         3 3.4048869E+05 4.1000852E+06
             3.4048869E+05 4.1000852E+06 3.4048869E+05 4.1000852E+06
                    -1         0 0.0000000E+00 0.0000000E+00
            

            An example of a double-precision LAB section follows:

              LAB  3
                       1         2 3.40500000000000E+05 4.10006225000000E+06
               3.40500000000000E+05 4.10006225000000E+06
               3.40500000000000E+05 4.10006225000000E+06
                       2         3 3.40468812500000E+05 4.10026225000000E+06
               3.40468812500000E+05 4.10026225000000E+06
               3.40468812500000E+05 4.10026225000000E+06
                      -1         0 0.00000000000000E+00 0.00000000000000E+00
              

              Labels are usually linked to the .PAT (Point or Polygon Attribute Table) file and the way LAB entries relate to .PAT records depends on the type of coverage.

              In a POINT COVERAGE, the polygon ID in each label entry will always be 0 and in this case there would be a 1 to 1 relationship between the LAB entries and the .PAT records. I.E. Label#1 would correspond to .PAT record#1, etc...
              对于点,每个标签元素的polygon ID总为0,LAB的元素ID与.PAT的元素ID是1对1的关系。即:1号标签,对应着1号.PAT的记录。

              In a POLYGON COVERAGE, labels are attached to polygons (PAL section) and their centroids, (CNT section), which are all linked to the .PAT table. In this case, the second value in a LAB entry is the associated polygon ID and can also be used as the 1-based record index in the .PAT table.
              对于多边形,标签被联系到多边形和多边形的中心点上,所有的标签都链接到.PAT表中。此时,标签元素的第二个值指明多边形元素的ID,是从1开始的序号,对应着.PAT表中的索引

              Also note that in a polygon coverage, there can be 0, 1 or more labels attached to each polygon. So we cannot assume that there is always a 1 to 1 relationship between labels and polygons.

              Here is a portion of a E00 LAB section and the associated .PAT file:

                LAB  2
                      3027         2-1.5342091E+02 5.7450005E+01
                -1.5342091E+02 5.7450005E+01-1.5342091E+02 5.7450005E+01
                      3063         3 1.0056972E+01 5.7236324E+01
                 1.0056972E+01 5.7236324E+01 1.0056972E+01 5.7236324E+01
                     12092         4-1.6142227E+02 5.5626617E+01
                -1.6142227E+02 5.5626617E+01-1.6142227E+02 5.5626617E+01
                     12091         5-1.6280910E+02 5.5155094E+01
                -1.6280910E+02 5.5155094E+01-1.6280910E+02 5.5155094E+01
                     12090         6-1.6383534E+02 5.4822258E+01
                -1.6383534E+02 5.4822258E+01-1.6383534E+02 5.4822258E+01
                      3680         7-1.3228665E+02 5.3464508E+01
                -1.3228665E+02 5.3464508E+01-1.3228665E+02 5.3464508E+01
                ...
                ...
                COUNTRY.PAT                     XX   4   4  16       270
                AREA              4-1   14-1  12 3 60-1  -1  -1-1                   1-
                PERIMETER         4-1   54-1  12 3 60-1  -1  -1-1                   2-
                COUNTRY#          4-1   94-1   5-1 50-1  -1  -1-1                   3-
                COUNTRY-ID        4-1  134-1   5-1 50-1  -1  -1-1                   4-
                -2.1156395E+04 5.6565942E+03          1          0
                 9.2814314E-01 5.3587232E+00          2       3027
                 8.4326690E-01 5.9903331E+00          3       3063
                 6.9115734E-01 4.9834957E+00          4      12092
                 1.0414843E-01 1.2769473E+00          5      12091
                 5.7765609E-01 4.0451255E+00          6      12090
                ...
                ...
                

                3.4 LOG

                The LOG (Coverage History) file contains a free form set of lines of indeterminate number which are separated by lines which begins with a tilde, "~".
                LOG节,包含不确定数量的任意格式的行,这些行以一以“~”字符的开始的行分隔。

                ARC records many commands and their resource impacts in this file. The standard ARC format for writing in the LOG has nine fields:

                • Year (I4)
                • Month (I2)
                • Day (I2)
                • Hours (I2)
                • Minutes (I2)
                • Connect Time in minutes (I4)
                • CPU Time in seconds (I6)
                • I/O Time in seconds (I6)
                • Command line (A100)

                However, any information can be added to the LOG file in free- form format.

                An example of an actual LOG section follows:

                  LOG  2
                  19940118 849   0     3    35export cover landli stdfigc none
                  ~
                  19940118 850   0     7   190clean landli landlicp # # poly
                  ~
                  EOL
                  

                  3.5 PAL

                  The PAL (Polygon Topology) file consists of repeating sets of polygon information. For single-precision, the first line of each set has five numbers:
                  PAL节,由一系列重复的多边形信息组成。

                  • 1. number of arcs in polygon
                  • 2. x min of polygon
                  • 3. y min of polygon
                  • 4. x max of polygon
                  • 5. y max of polygon

                  The subsequent lines of a set give information on the arcs which comprise the polygon. There are three numbers per arc with information for two arcs per line.
                  接下来的行,给出了组成多边形的弧的信息。每个弧的信息由三个数字组成,每行由两组弧信息组成。(也就是每行6个数字)

                  • 1. Arc_Id (negative if reversed)
                    若反向则为负
                  • 2. From_Node_Id (if arc is reversed, then this is the arc's To_Node_Id)
                    弧起点,弧反向时为终点
                  • 3. Adjacent_Polygon_Id (Id of the polygon that shares this arc with the current polygon)
                    相邻的多边形的ID,也就是与当前多边形共用这个弧的多边形ID

                  The first polygon given is the universal polygon.

                  "The PAL file contains the polygon topology for a coverage and min-max boxes for the polygons. For each polygon in a coverage the PAL file has a (usually) clockwise list of the arcs, nodes that comprise the polygons, as well as the adjacent polygons, and a min-max box. To keep a continuous list, 'virtual' arcs with arc# of 0 are used to connect to holes (thus forming donuts), which are connected in counter-clockwise order. The PAL file is a random access, variable record length file, with the length dependent on the number of arcs surrounding the polygon (1 to 10000).
                  PAL节包含多边形的拓扑关系及包围盒。每个多边形包含以下信息:一系列顺时针环绕的弧、节点、相邻多边形以及包围盒。为了使弧连续,使用ID为0的虚拟弧依反时针方向连接断口。PAL节是可随机访问、记录数可变的,其长度由组成多边形的弧的数量决定(从1到10000)。

                  The arc# in the PAL file is the record number of that arc within the coverage's ARC file, the node# is the same as the node# in the arc file at the appropriate end, and the polygon# is the record number of that polygon within the coverage's PAL file. The PAL file record number for a polygon is the same as the PAT file record number and the CNT file record number." SDL documentation, July 1989, p. 24.
                  此节中,弧的ID(有时译成索引、编号,译得有点乱,不好意思) 对应着ARC节中的ID,节点ID对应着相应的“终”点ID(顺时针、逆时针有所区别)。多边形的ID与PAL节中的ID对应。....

                  An example of an actual PAL section follows:

                    PAL  2
                             5 3.4009988E+05 4.1000000E+06 3.4090012E+05 4.1003995E+06
                             0         0         0        -1         1         2
                            -7         2         3        -6         5         3
                            -3         4         2
                             4 3.4009988E+05 4.1001995E+06 3.4090012E+05 4.1003995E+06
                             1         2         1         3         1         1
                             4         4         4         2         3         3
                             4 3.4019978E+05 4.1000000E+06 3.4079997E+05 4.1001998E+06
                            -2         2         2         5         3         4
                             6         4         1         7         5         1
                             2 3.4050000E+05 4.1001002E+06 3.4070003E+05 4.1001998E+06
                            -4         3         2        -5         4         3
                            -1         0         0         0         0         0         0
                    

                    An example of a double precision PAL section follows:

                      PAL  3
                             375-1.80000000000000E+02-9.00000000000000E+01
                       1.80000000000000E+02 8.35960388183594E+01
                               0         0         0       304       401       242
                               0         0         0      -305       399       241
                      ...
                      ...
                      ...
                               2-1.80000000000000E+02 6.43997573852539E+01
                      -1.69628768920898E+02 6.89338989257812E+01
                            -332       428         1      -333       424         1
                               1-7.70438766479492E+01 6.72657470703125E+01
                      -7.49158401489258E+01 6.83600692749023E+01
                            -329       253         1
                               7-1.80000000000000E+02-9.00000000000000E+01
                       1.80000000000000E+02-6.32283134460449E+01
                             579       389         1       584       390         1
                             583       394         1       585       395         1
                             586       396         1      -588       430         1
                             587       429         1
                              -1         0         0         0         0         0         0
                       0.00000000000000E+00 0.00000000000000E+00
                      

                      Note that the last line of the section (-1 plus 6 zeros) is followed by an extra line. IMHO, this line does not really belong there, but it has to be taken into account when reading the E00 file!!!

                      3.6 PRJ

                      The PRJ (Projection Parameters) file consists of a set of projection keywords and values including a set of parameters following the keyword "Parameters".
                      PRJ(投影参数)节由一系列投影关键字、以及投影关键字的参数组成。

                      This file needs further research for specific keywords and parameters for the projections supported by ADS and MOSS.
                      特定的关键字及参数需要进一步的研究,由ADS、MOSS支持。(人名吗?)

                      An example of an actual PRJ section follows:

                        PRJ  2
                        Projection    UTM
                        ~
                        Zone          13
                        ~
                        Datum         NAD27
                        ~
                        Zunits        NO
                        ~
                        Units         METERS
                        ~
                        Spheroid      CLARKE1866
                        ~
                        Xshift        0.0000000000
                        ~
                        Yshift        0.0000000000
                        ~
                        Parameters
                        ~
                        EOP
                        

                        3.7 SIN

                        Spatial Index

                        It usually is comprised of a single line with the value "EOX".

                        An example of an actual SIN section follows:

                          SIN  2
                          EOX
                          

                          3.8 TOL

                          This consists of ten lines with a tolerance type, a tolerance status, and a tolerance value on each line. The tolerance types are:
                          由十行组成,每行包括:容差类型、容差状态(1启用、2不启用)、容差值。容差如下:(容差、公差??不知在地理信息专业领域对应着什么概念)

                          • 1. fuzzy
                          • 2. generalize (unused)
                          • 3. node match (unused)
                          • 4. dangle
                          • 5. tic match
                          • 6. undefined
                          • 7. undefined
                          • 8. undefined
                          • 9. undefined
                          • 10. undefined

                          The tolerance status "is set to 1 if the tolerance is verified (been applied to operations of the coverage) and to 2 if the tolerance is not verified (been set by the TOLERANCE command, but not yet used in processing)."

                          An example of an actual TOL section follows:

                            TOL  2
                                     1         1 8.1813842E-01
                                     2         2 0.0000000E+00
                                     3         2 0.0000000E+00
                                     4         1 0.0000000E+00
                                     5         2 0.0000000E+00
                                     6         2 8.0025000E+00
                                     7         2 8.0025000E-01
                                     8         2 8.0025000E-01
                                     9         2 8.0025000E-01
                                    10         2 8.0025000E-01
                                    -1         0         0         0         0         0         0
                            

                            An example of a double-precision TOL section follows:

                              TOL  3
                                       1         2 8.00000000000000E-02
                                       2         2 0.00000000000000E+00
                                       3         2 0.00000000000000E+00
                                       4         2 0.00000000000000E+00
                                       5         2 0.00000000000000E+00
                                       6         2 8.00000000000000E+00
                                       7         2 8.00000000000000E-01
                                       8         2 8.00000000000000E-01
                                       9         2 8.00000000000000E-01
                                      10         2 8.00000000000000E-01
                                      -1         0         0         0         0         0         0
                              

                              Note that this section does not always contain ten lines, as we can see in the following example:

                                TOL  2
                                         1         1 2.0000000E+00
                                         4         2 0.0000000E-01
                                        -1         0         0         0         0         0         0
                                

                                3.9 TXT - Annotations

                                A TXT section starts with "TXT 2" or "TXT 3" and ends with the usual "-1 0 0 0 0 0 0" line.
                                TXT节以“TXT 2”或者“TXT 3”开始,以“-1 0 0 0 0 0 0”行结束。

                                Here is an example of an empty TXT section ... (not very useful, I know, but it at least confirms that empty TXT sections can exist!):

                                  TXT  2
                                          -1         0         0         0         0         0         0
                                  

                                  Here is a double-precision TXT section:

                                    TXT  3
                                             1         1         0        21         2
                                     5.92753812500000E+05 0.00000000000000E+00 0.00000000000000E+00
                                     0.00000000000000E+00 6.09405200000000E+06 0.00000000000000E+00
                                     0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00
                                     0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00
                                     0.00000000000000E+00 0.00000000000000E+00 8.00000000000000E+01
                                    -1.0000000E+02
                                    AB
                                             1         1         0        21         3
                                     5.98056937500000E+05 0.00000000000000E+00 0.00000000000000E+00
                                     0.00000000000000E+00 6.08779850000000E+06 0.00000000000000E+00
                                     0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00
                                     0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00
                                     0.00000000000000E+00 0.00000000000000E+00 8.00000000000000E+01
                                    -1.0000000E+02
                                    ABC
                                            -1         0         0         0         0         0         0
                                    

                                    And this is an entry from a single-precision TXT:

                                      TXT  2
                                               0         2         0         0         6
                                       5.8053578E+05 5.8293578E+05 0.0000000E+00 0.0000000E+00 2.1061998E+06
                                       2.1061998E+06 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00
                                       0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 5.0000000E+02
                                      -1.0000000E+02
                                      ABCDEF
                                              -1         0         0         0         0         0         0
                                      
                                      • The first line of each entry contains 5 values:
                                        1. LEVEL
                                        2. num_vertices1: for the line along which the text is drawn.
                                        3. num_vertices2: for the text arrow. If this value is negative then
                                        4. SYMBOL (Text Font)
                                        5. Number of chars. in text string
                                      • Then we have 15 floating point values (when unused, these values default to 0.0000E+00):
                                        • Values 1 to 4 are the X coordinates of the line along which the text should be drawn (unused vertices are set to 0.000E+00)
                                        • Values 5 to 8 are the Y coordinates for this same line.
                                        • Values 9 to 11 are the X coordinates for the text arrow
                                        • Values 12 to 14 are the Y coordinates for the text arrow
                                        • The 15th value is probably the height???
                                      • Then the next line (line 5 for single, line 7 for double-prec.) contains an unknown value... in most cases, it is a value of -1.0000000E+02, but it is different sometimes. An important thing to note about this value is that it is always in single-precision format, even inside double-precision coverages.
                                      • And the the text string follows. Like the rest of the E00 file, the text string will be split in 80 characters lines if the annotation is longer than 80 chars. One should look at the string length parameter to know how many lines of text string to expect.

                                      3.10 TX6/TX7 - Annotations

                                      TX6/TX7 sections start with "TX6 2", etc. and end with a line with the word "JABBERWOCKY". They can contain several sub-sections (subclasses), each sub-section start with a line with the subclass name and ends with a "-1 0 0 0 0 0 0" line. The main (and only?) difference between TX6 and TX7 sections is that the first line of each entry in a TX7 section has one more value (8 values instead of 7).
                                      TX6/TX7节,以“TX6 2”开始,以“JABBERWOCKY”结束。他们可以包含子节(子类),每个子节以子类的名字开始,以“-1 0 0 0 0 0 0”行结束。TX6与TX7的主要差别(可能是仅有的差别)是TX7第一行有8个值,而TX6第一行有7个值。

                                      Here is one entry from a single-precision TX7 section:

                                                89         1         3         2         2         0        10         0
                                                 5         0         0         0         0         0         0
                                                 0         0         0         0         0         0         0
                                                 0         0         0         0         0         0
                                                 1         0         0         0         0         0         0
                                                 0         0         0         0         0         0         0
                                                 0         0         0         0         0         0
                                        -1.0000000E+02
                                         5.0997402E-04 0.0000000E+00 0.0000000E+00
                                        -1.1926495E+02 5.0306187E+01
                                        -1.1926391E+02 5.0306408E+01
                                        -1.1926808E+02 5.0305916E+01
                                        -1.1926808E+02 5.0305916E+01
                                        -1.1926457E+02 5.0305916E+01
                                        AB DEFGHIJ
                                        
                                        • The first line contains 8 values:
                                          1. USER-ID
                                          2. LEVEL
                                          3. num_vertices1: for the line along which the text is drawn.
                                          4. num_vertices2: for the text arrow. If this value is negative then the arrow is reversed.
                                          5. SYMBOL (Text Font)
                                          6. ??? Always 0
                                          7. Number of chars. in text string
                                          8. ??? Always 0, this value is not present in a TX6
                                        • Then we have 2 sets of 20 integer values, (3 lines each):
                                          • The first value of the first set is the text justification (See note below).
                                          • The first value of the second set seems to always be 1 ???
                                          • The 38 other values seem to be always 0.
                                        • Then line 8 contains an unknown value... in most cases, it is a value of -1.0000000E+02, but it is different sometimes. An important thing to note about this value is that it is always in single-precision format, even inside double-precision coverages.
                                        • And line 9 contains 3 values... the 1st one is probably the text height???
                                        • Followed by (num_vertices1 + num_vertices2) pairs of coordinates.
                                        • And the the text string follows. Like the rest of the E00 file, the text string will be split in 80 characters lines if the annotation is longer than 80 chars. One should look at the string length parameter to know how many lines of text string to expect.

                                        Note about text justification:

                                        If you look at the image e00_textjust.gif , the red line indicates the line defined by the coordinates of the text feature. The blue dot is the point of the line to which the text is aligned, and the black number is the actual text. Justifications (1,2,3) place text above the line, (4,5,6) place it centered on the line, and (7,8,9) place the text below the line. Horizontally, (1,4,7) left-align the text to the first coordinate of the text line, (2,5,8) center-align the text to the midpoint of the text line, and (3,6,9) right-align the text to the last coordinate of the line.

                                        A TX6 section in a double-precision coverage:

                                          TX6  3
                                          STREETS
                                                   1         1         2         0         5         0         7
                                                   1         0         0         0         0         0         0
                                                   0         0         0         0         0         0         0
                                                   0         0         0         0         0         0
                                                   0         0         0         0         0         0         0
                                                   0         0         0         0         0         0         0
                                                   0         0         0         0         0         0
                                          -1.0000000E+02
                                           6.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00
                                           4.47348339990000E+06 5.33074571997000E+06
                                           4.47348339990000E+06 5.33074571997000E+06
                                          ABCDEFG
                                                   2         1         3         0         5         0        18
                                                   1         0         0         0         0         0         0
                                                   0         0         0         0         0         0         0
                                                   0         0         0         0         0         0
                                                   0         0         0         0         0         0         0
                                                   0         0         0         0         0         0         0
                                                   0         0         0         0         0         0
                                          -1.0000000E+02
                                           3.50000000000000E+00 0.00000000000000E+00 0.00000000000000E+00
                                           4.47347279980000E+06 5.33087457983000E+06
                                           4.47347279980000E+06 5.33087457983000E+06
                                           4.47351938175583E+06 5.33083216377889E+06
                                          ABCDEFGHI JKLMNOPQ
                                                  -1         0         0         0         0         0         0
                                          DESC
                                                 497         2         2         0         1         0        10
                                                   1         0         0         0         0         0         0
                                                   0         0         0         0         0         0         0
                                                   0         0         0         0         0         0
                                                   0         0         0         0         0         0         0
                                                   0         0         0         0         0         0         0
                                                   0         0         0         0         0         0
                                          -1.0000000E+02
                                           2.50000000000000E+00 0.00000000000000E+00 0.00000000000000E+00
                                           4.47363686987000E+06 5.33098710986000E+06
                                           4.47363686987000E+06 5.33098710986000E+06
                                          ABCDEFGHIJ
                                                  -1         0         0         0         0         0         0
                                          JABBERWOCKY
                                          

                                          3.11 RXP - Specific to Regions

                                          RXP sections are specific to region coverages. They contains sub-sections, corresponding to the region subclasses. As for the other sections of this type, it ends with a "JABBERWOCKY" line.
                                          RXP节用对应于区域对象。它们包含子节,对应于区域的子类。与这种类型的其它节一样,它也以“JABBERWOCKY”行结束。

                                          The RXP section seems to connect the region ids for each subclass to the polygons (from the PAL section) that are part of each region. The first column would be the region IDs, and the second column the corresponding PAL polygon IDs...

                                          The format is quite simple:

                                            RXP  2
                                            NAME1
                                                     1       159
                                                    -1         0
                                            OTHER_NAME
                                                     1       214
                                                     1       216
                                                     1       217
                                                     1       218
                                                     1       222
                                                     1       226
                                                     1       227
                                                    -1         0
                                            LAST_NAME
                                                     1        28
                                                     1        31
                                                     1        36
                                                     1        47
                                                     1        48
                                                    -1         0
                                            JABBERWOCKY
                                            

                                            3.12 RPL - Specific to Regions

                                            RPL sections are also specific to region coverages. The RPL section contains one or more subsections (called subclasses in Arc/Info)... like for all other section types that contain subclasses, it ends with a JABBERWOCKY line. Each region subclass is in the exact same format as a PAL section, the difference is that each entry in a RPL subclass seems to contain the list of arcs that define a region and not a single polygon.

                                            Here is an example of a single-precision RPL section:

                                              RPL  2
                                              NAME1
                                                       8 7.0712538E+05 6.1982350E+06 7.3062950E+05 6.2321335E+06
                                                     677       548         0      -671       543         0
                                                    -670       542         0       632       513         0
                                                     631       510         0      -660       504         0
                                                    -686       535         0      -676       547         0
                                                      -1         0         0         0         0         0         0
                                              OTHER_NAME
                                                      20 3.0415478E+05 5.9847795E+06 3.6067356E+05 6.0342510E+06
                                                    -876       709         0      -877       706         0
                                                       0         0         0       913       731         0
                                                     886       715         0       879       711         0
                                                    -881       707         0      -883       712         0
                                                    -912       713         0      -919       730         0
                                                    -920       735         0         0         0         0
                                                    -935       745         0      -936       746         0
                                                    -931       738         0      -934       744         0
                                                       0         0         0      -928       741         0
                                                    -929       742         0      -927       740         0
                                                      -1         0         0         0         0         0         0
                                              LAST_NAME
                                                     215 3.1433966E+05 6.0253455E+06 6.7686263E+05 6.5089305E+06
                                                     112        89         0         0         0         0
                                                     115        85         0       114        91         0
                                                     104        76         0         0         0         0
                                                     169       103         0       168       139         0
                                              ...
                                              ...
                                                      -1         0         0         0         0         0         0
                                              JABBERWOCKY
                                              

                                              4. INFO FILE FORMATS

                                              INFO files follow the same format:

                                              1. name of the info file and summary information
                                              2. definitions for each of the attributes
                                              3. actual data values

                                              The name line consists of six fields:

                                              Note: the values inside brackets are the start-end position of the field in the line.

                                              1. (0-31) name of the INFO file
                                              2. (32-33) external flag: "XX" indicates an external table (stored in the coverage directory) and "  " indicates an internal table (stored in the info directory).
                                              3. (34-37) number of attributes in a record (valid attributes only)
                                              4. (38-41) number of attributes total, including deleted ones (deleted attributes have an index of -1)
                                              5. (42-45) length of data record
                                              6. (46-55) number of data records

                                              The definitions for each attribtue consist of eight fields:

                                              1. (0-15) name of attribute
                                              2. (16-18) attribute size in its internal (binary) representation
                                              3. (19-20) appears to be constant of '-1'
                                              4. (21-24) start position of attribute in the binary data records
                                              5. (25-25) appears to be constant of '4'
                                              6. (26-27) appears to be constant of '-1'
                                              7. (28-31) attribute output format width (see below for discussion)
                                              8. (32-33) attribute output format precision
                                              9. (34-36) type of attribute (see below for discussion)
                                              10. (37-38) appears to be constant of '-1'
                                              11. (39-42) appears to be constant of ' -1'
                                              12. (43-46) appears to be constant of ' -1'
                                              13. (47-48) appears to be constant of '-1'
                                              14. (49-64) Alternate field name (almost always blank)
                                              15. (65-69) attribute index (sequential identifier starting at 1, value of -1 for deleted attributes which should be ignored)

                                              The output format field is handled differently for numeric and character attributes. Numeric attributes give the output width followed by a space then the number of decimal positions. Character attributes give the output width followed by a constant of '-1'.

                                              The type of the attribute is specified by the following codes:

                                              	10-1 (D) Date (stored as 8 bytes, display width must be either
                                              	         8 chars (12/31/99) or 10 chars (12/31/1999) )
                                              	20-1 (C) Character string
                                              	30-1 (I) Integer with fixed number of digits (1 byte storage per digit)
                                              	40-1 (N) Numeric value with decimals and fixed number of digits 
                                              	         (using 1 byte storage per digit in memory)
                                              	50-1 (B) Binary integer (2 or 4 bytes)
                                              	60-1 (F) Binary float (4 or 8 bytes, depends on coverage precision)
                                              

                                              Here is the form that each data type takes in the data records of an E00 INFO table:

                                              	10 (D) 8 characters
                                              	20 (C) Nbr of chars = attribute size (field 2 in attr. def. line).
                                              	30 (I) Nbr of chars = attribute size (field 2 in attr. def. line), 
                                                             value is right-justified
                                              	40 (N) stored as single prec. floats = 14 chars, ex: "-1.7735416E+00"
                                                             (Uses 1 byte storage per digit internally, but always stored
                                                              as single precision floats in both single and double 
                                                              precision E00 tables.)
                                              	50 (B) 32 bits integer = 11 chars total, right-justified
                                              	       16 bits integer = 6 chars total, right-justified
                                              	60 (F) single prec. = 14 chars total, ex: "-1.7735416E+00"
                                              	       double prec. = 24 chars total, ex: "-2.60358875000000000E+05"
                                              

                                              Note that it is possible to have 4 bytes binary floats inside double-precision tables, or to have 8 bytes binary floats inside single-precision tables. The representation used for the Binary float values inside the E00 table data records is on 14 chars for 4 byte floats, and 24 chars for 8 byte floats, independently of the precision of the coverage. (eg. 4 bytes floats would use 14 chars (-1.7735416E+00) even inside a double-precision table, and 8 byte floats will always use 24 chars, even inside single-precision tables).

                                              Formats will be given for the most common INFO files:

                                              • .AAT
                                              • .ACODE
                                              • .BND
                                              • .PAT
                                              • .PCODE
                                              • .TIC

                                              4.1 .AAT

                                              The .AAT (Arc Attribute Table) contains seven fields whose attribute names are self-explanatory. However, additional attributes may be added as desired, after the -ID attribute.

                                              An example of an actual .AAT section follows:

                                                LANDLICL.AAT                    XX   7   7  28         7
                                                FNODE#            4-1   14-1   5-1 50-1  -1  -1-1                   1-
                                                TNODE#            4-1   54-1   5-1 50-1  -1  -1-1                   2-
                                                LPOLY#            4-1   94-1   5-1 50-1  -1  -1-1                   3-
                                                RPOLY#            4-1  134-1   5-1 50-1  -1  -1-1                   4-
                                                LENGTH            4-1  174-1  12 3 60-1  -1  -1-1                   5-
                                                LANDLICL#         4-1  214-1   5-1 50-1  -1  -1-1                   6-
                                                LANDLICL-ID       4-1  254-1   5-1 50-1  -1  -1-1                   7-
                                                          2          1          0          0 2.0006265E+02          1         
                                                2
                                                          3          2          0          0 2.0006250E+02          2         
                                                3
                                                          1          4          0          0 1.0989176E+03          3         
                                                1
                                                          4          3          0          0 2.0003140E+02          4         
                                                4
                                                          3          4          0          0 2.8198248E+02          5         
                                                6
                                                          4          5          0          0 8.2309576E+02          6         
                                                7
                                                          5          2          0          0 2.2345322E+02          7         
                                                5
                                                

                                                4.2 .ACODE

                                                The .ACODE (Arc Lookup Table) contains seven fields whose attribute names are the same (except the -ID) as that in the ADS files documentation. However, additional attributes should be able to be be added as desired, after the LABEL attribute.

                                                An example of an actual .ACODE section follows:

                                                  LANDLICP.ACODE                       8   8  80         7
                                                  LANDLICP-ID       4-1   14-1   8-1 50-1  -1  -1-1                   1-
                                                  XLABEL            4-1   54-1   8 2 60-1  -1  -1-1                   2-
                                                  YLABEL            4-1   94-1   8 2 60-1  -1  -1-1                   3-
                                                  SIZE              4-1  134-1   8 2 60-1  -1  -1-1                   4-
                                                  ANGLE             4-1  174-1   8 2 60-1  -1  -1-1                   5-
                                                  SZLBL             4-1  214-1   4-1 50-1  -1  -1-1                   6-
                                                  IFONTF            4-1  254-1   4-1 50-1  -1  -1-1                   7-
                                                  LABEL            52-1  294-1  52-1 20-1  -1  -1-1                   8-
                                                            1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00          0
                                                          0
                                                            2 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00          0
                                                          0
                                                            3 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00          0
                                                          0
                                                            4 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00          0
                                                          0
                                                            5 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00          0
                                                          0
                                                            6 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00          0
                                                          0
                                                            7 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00          0
                                                          0
                                                  

                                                  4.3 .BND

                                                  The .BND (Coverage Min/Max Coordinates) table contains four fields whose attribute names are self-explanatory.

                                                  An example of an actual .BND section follows:

                                                    LANDLICP.BND                    XX   4   4  16         1
                                                    XMIN              4-1   14-1  12 3 60-1  -1  -1-1                   1-
                                                    YMIN              4-1   54-1  12 3 60-1  -1  -1-1                   2-
                                                    XMAX              4-1   94-1  12 3 60-1  -1  -1-1                   3-
                                                    YMAX              4-1  134-1  12 3 60-1  -1  -1-1                   4-
                                                     3.4009988E+05 4.1000000E+06 3.4090012E+05 4.1003995E+06
                                                    

                                                    An example of a double-precision .BND section follows:

                                                      STDFIG11CPX.BND                 XX   4   4  32         1
                                                      XMIN              8-1   14-1  18 5 60-1  -1  -1-1                   1-
                                                      YMIN              8-1   94-1  18 5 60-1  -1  -1-1                   2-
                                                      XMAX              8-1  174-1  18 5 60-1  -1  -1-1                   3-
                                                      YMAX              8-1  254-1  18 5 60-1  -1  -1-1                   4-
                                                       3.40100000000000000E+05 4.10000000000000000E+06 3.40900000000000000E+05
                                                      4.10040
                                                      000000000000E+06
                                                      

                                                      4.4 .PAT

                                                      The .PAT (Polygon or Point Attribute Table) contains four fields whose attribute names are self-explanatory. However, additional attributes may be added as desired, after the -ID attribute.

                                                      An example of an actual .PAT section follows:

                                                        LANDLICP.PAT                    XX   4   4  16         4
                                                        AREA              4-1   14-1  12 3 60-1  -1  -1-1                   1-
                                                        PERIMETER         4-1   54-1  12 3 60-1  -1  -1-1                   2-
                                                        LANDLICP#         4-1   94-1   5-1 50-1  -1  -1-1                   3-
                                                        LANDLICP-ID       4-1  134-1   5-1 50-1  -1  -1-1                   4-
                                                        -1.7982806E+05 2.3455293E+03          1          0
                                                         8.0025000E+04 1.6990741E+03          2          1
                                                         8.9864000E+04 1.5285940E+03          3          2
                                                         9.9390586E+03 4.8201389E+02          4          0
                                                        

                                                        An example of a double-precision .PAT section follows:

                                                          STDFIG11CPX.PAT                 XX   5   5  54         3
                                                          AREA              8-1   14-1  18 5 60-1  -1  -1-1                   1-
                                                          PERIMETER         8-1   94-1  18 5 60-1  -1  -1-1                   2-
                                                          STDFIG11CPX#      4-1  174-1   5-1 50-1  -1  -1-1                   3-
                                                          STDFIG11CPX-ID    4-1  214-1   5-1 50-1  -1  -1-1                   4-
                                                          DATA             30-1  254-1  30-1 20-1  -1  -1-1                   5-
                                                          -1.70000000000000000E+05 0.00000000000000000E+00          1          0
                                                          
                                                           9.00000000000000000E+04 1.53005627441406250E+03          2          1SMALL
                                                          
                                                           8.00000000000000000E+04 1.69907165527343750E+03          3          2LARGE
                                                          

                                                          4.5 .PCODE

                                                          The .PCODE (Polygon Lookup Table) contains eight fields whose attribute names are the same (except the -ID) as that in the ADS files documentation. However, additional attributes should be able to be be added as desired, after the LABEL attribute.

                                                          An example of an actual .PCODE section follows:

                                                            LANDLICP.PCODE                       8   8  80         2
                                                            LANDLICP-ID       4-1   14-1   8-1 50-1  -1  -1-1                   1-
                                                            XLABEL            4-1   54-1   8 2 60-1  -1  -1-1                   2-
                                                            YLABEL            4-1   94-1   8 2 60-1  -1  -1-1                   3-
                                                            SIZE              4-1  134-1   8 2 60-1  -1  -1-1                   4-
                                                            ANGLE             4-1  174-1   8 2 60-1  -1  -1-1                   5-
                                                            SZLBL             4-1  214-1   4-1 50-1  -1  -1-1                   6-
                                                            IFONTF            4-1  254-1   4-1 50-1  -1  -1-1                   7-
                                                            LABEL            52-1  294-1  52-1 20-1  -1  -1-1                   8-
                                                                      1 1.6050000E+00 1.4490000E+00 7.0000000E-02 0.0000000E+00          5
                                                                    0LARGE
                                                                      2 1.6470000E+00 1.1520000E+00 7.0000000E-02 0.0000000E+00          5
                                                                    0SMALL
                                                            

                                                            4.6 .TIC

                                                            The .TIC (Tic Coordinates) table contains three fields whose attribute names are self-explanatory.

                                                            An example of an actual .TIC section follows:

                                                              LANDLICP.TIC                    XX   3   3  12         4
                                                              IDTIC             4-1   14-1   5-1 50-1  -1  -1-1                   1-
                                                              XTIC              4-1   54-1  12 3 60-1  -1  -1-1                   2-
                                                              YTIC              4-1   94-1  12 3 60-1  -1  -1-1                   3-
                                                                        1 3.4009244E+05 4.1000002E+06
                                                                        2 3.4010028E+05 4.1004150E+06
                                                                        3 3.4090753E+05 4.1003998E+06
                                                                        4 3.4089972E+05 4.0999850E+06
                                                              

                                                              An example of a double-precision .TIC section follows:

                                                                STDFIG11CPX.TIC                 XX   3   3  20         4
                                                                IDTIC             4-1   14-1   5-1 50-1  -1  -1-1                   1-
                                                                XTIC              8-1   54-1  18 5 60-1  -1  -1-1                   2-
                                                                YTIC              8-1  134-1  18 5 60-1  -1  -1-1                   3-
                                                                          1 3.40900000000000000E+05 4.10000000000000000E+06
                                                                          4 3.40900000000000000E+05 4.10040000000000000E+06
                                                                          2 3.40100000000000000E+05 4.10000000000000000E+06
                                                                          3 3.40100000000000000E+05 4.10040000000000000E+06
                                                                

                                                                5. CONCLUSION

                                                                The content and format of the ARC EXPORT file seems to be straightforward in most cases. The remaining areas of uncertainty include:
                                                                ACR EXPORT文件的内容与格式大多数时候看起来非常简单易懂。仍有一些不太确定的内容,包括:

                                                                • the meaning of the 'SIN 2' section
                                                                • the precise format of the PRJ file for different projections
                                                                • possible variation in the '-1' suffixes of INFO definitions

                                                                However, none of these appears to be that serious, and the indicated formats should be used to identify any errors or limitations.

                                                                Because this information was derived from limited experimentation, it should be considered as tentative and subject to revision at any time.

                                                                 

                                                                分享到:
                                                                评论

                                                                相关推荐

                                                                Global site tag (gtag.js) - Google Analytics