英国NTF

司机简称

英国NTF

Driver built-in by default

This driver is built-in by default

英国军械测量局主要使用的国家传输格式支持读取访问。

此驱动程序将目录视为数据集,并尝试合并目录中的所有.NTF文件,为每种类型的功能(但通常不是为每个源文件)生成一个层。因此,包含多个固定电话文件的目录将具有三层(固定电话点、固定电话线和固定电话名称),而不管固定电话文件的数量如何。

NTF特性总是与英国国家网格坐标系一起返回。这可能不适合由英国军械测量局以外的组织编写的NTF文件。

驱动程序功能

Supports Georeferencing

This driver supports georeferencing

Supports VirtualIO

This driver supports virtual I/O operations (/vsimem/, etc.)

也见

实施说明

支持的产品(和层)

Landline (and Landline Plus):
    LANDLINE_POINT
    LANDLINE_LINE
    LANDLINE_NAME

Panorama Contours:
    PANORAMA_POINT
    PANORAMA_CONTOUR

    HEIGHT attribute holds elevation.

Strategi:
    STRATEGI_POINT
    STRATEGI_LINE
    STRATEGI_TEXT
    STRATEGI_NODE

Meridian:
    MERIDIAN_POINT
    MERIDIAN_LINE
    MERIDIAN_TEXT
    MERIDIAN_NODE

Boundaryline:
    BOUNDARYLINE_LINK
    BOUNDARYLINE_POLY
    BOUNDARYLINE_COLLECTIONS

    The _POLY layer has links to links allowing true polygons to
        be formed (otherwise the _POLY's only have a seed point for geometry.
    The collections are collections of polygons (also without geometry
    as read).  This is the only product from which polygons can be
    constructed.

BaseData.GB:
    BASEDATA_POINT
    BASEDATA_LINE
    BASEDATA_TEXT
    BASEDATA_NODE

OSCAR Asset/Traffic:
    OSCAR_POINT
    OSCAR_LINE
    OSCAR_NODE

OSCAR Network:
    OSCAR_NETWORK_POINT
    OSCAR_NETWORK_LINE
    OSCAR_NETWORK_NODE

Address Point:
    ADDRESS_POINT

Code Point:
    CODE_POINT

Code Point Plus:
    CODE_POINT_PLUS

整个数据集还将有一个FEATURE_CLASSES层,其中包含一个纯表,将FEAT_代码编号与FEATURE类名(FC_NAME)相关联。这适用于数据集中的所有产品。一些层类型(如代码点和地址点产品)不包括要素类。有些产品使用文件中未定义的要素类,因此它们不会出现在要素类层中。

产品架构

此读取器中采用的方法是将一个文件或一个文件目录视为单个数据集。打开时扫描数据集中的所有文件。对于每个特定产品(如上所列),创建一组层;但是,这些层可以从同一产品的多个文件中提取。

这些层基于NTF文件中的低级功能类型,但通常包含许多不同功能代码(FEAT_CODE属性)的功能。给定层中的不同特征在文件中可能具有多种属性;但是,模式是基于该产品系列(即OSCAR网络)的特定类型(即点)特征中可能存在的所有属性的联合而建立的。

如果读取的NTF产品与已知架构之一不匹配,它将通过一个不同的泛型处理程序,该处理程序只有泛型点和泛型线类型的层。这些功能只有一个FEAT_CODE属性。

哪些产品的哪些层具有哪些属性的详细信息可以在ntf_estlayers.cpp末尾的NTFFileReader::estureLayers()方法中找到。此文件还包含所有特定于产品的翻译代码。

特殊属性

FEAT_CODE: General feature code integer, can be used to lookup a name in the
           FEATURE_CLASSES layer/table.

TEXT_ID/POINT_ID/LINE_ID/NAME_ID/COLL_ID/POLY_ID/GEOM_ID:
          Unique identifier for a feature of the appropriate type.

TILE_REF: All layers (except FEATURE_CLASSES) contain a TILE_REF attribute
          which indicates which tile (file) the features came from.  Generally
          speaking the id numbers are only unique within the tile and so
          the TILE_REF can be used restrict id links within features from
          the same file.

FONT/TEXT_HT/DIG_POSTN/ORIENT:
    Detailed information on the font, text height, digitizing position,
        and orientation of text or name objects.  Review the OS product
        manuals to understand the units, and meaning of these codes.

GEOM_ID_OF_POINT:
    For _NODE features this defines the POINT_ID of the point layer object
        to which this node corresponds.  Generally speaking the nodes don't
        carry a geometry of their own.  The node must be related to a point
        to establish its position.

GEOM_ID_OF_LINK:
    A _list_ of _LINK or _LINE features to end/start at a node.  Nodes,
        and this field are generally only of value when establishing
        connectivity of line features for network analysis.   Note that this
        should be related to the target features GEOM_ID, not its LINE_ID.

        On the BOUNDARYLINE_POLY layer this attribute contains the GEOM_IDs
        of the lines which form the edge of the polygon.

POLY_ID:
    A list of POLY_ID's from the BOUNDARYLINE_POLY layer associated with
        a given collection in the BOUNDARYLINE_COLLECTIONS layer.

通用产品

如果文件未被标识为现有已知产品的一部分,则将对其进行常规处理。在这种情况下,会扫描整个数据集,以确定哪些功能具有哪些属性。因此,打开通用数据集可能比打开已识别的数据集慢得多。基于此扫描,从以下集合定义通用特征(层)的列表:

GENERIC_POINT
GENERIC_LINE
GENERIC_NAME
GENERIC_TEXT
GENERIC_POLY
GENERIC_NODE
GENERIC_COLLECTION

一般产品主要由ntf_Generic.cpp模块处理,而特定产品则在ntf_estlayers.cpp中处理。

由于与英国军械测量局相比,发现一些非军械测量局的数据产品(OSNI数据集)的记录组顺序异常,因此有必要缓存3级及以上通用产品的所有记录,并在此缓存中通过id引用而不是依赖于方便的记录订购。这是通过NTFFileReader.cpp底部附近的NTFFileReader“索引”功能实现的。由于这一点,访问通用数据集的内存索引比访问已知的数据产品占用的内存要多得多,尽管通用1级和2级产品不需要这样做。

通过使用OGRNTFDataSource::SetOptionsList()将force_generic选项设置为“ON”,可以强制将已知产品视为泛型,如ntfdump.cpp中所示。这也可以通过将OGR_NTF_OPTIONS环境变量设置为“FORCE_GENERIC=ON”从外部OGR应用程序实现。