Using the VPF Writer
In order to use the VPF writer, users should be familiar with not only the Military Standard, Vector Product Format, MIL-STD-2407, but also the specific product specifications (DNC, VMAP0, etc.). Each VPF product is defined by a different product specification. Each specification describes the specific implementation of the general VPF structures that are defined in the VPF Military Standard.
The VPF writer uses the schema templates installed in the FME installation folder to create and populate default metadata tables and their attributes (i.e., dht, lat, etc.).
VPF writer uses the product name as the default database_name if one is not specified (e.g., vmap0,dnc). To specify the database name, set the database_name attribute on the dht feature type. For the tileref metadata table, set the tile_name attribute.
When writing attributes, the required attribute values or codes must match the relevant product specification. For example, for the Culture Transportation line feature type (<libname>\CUL\TRANSL) the f_code attribute values must match the allowed FCC codes defined in the product specification.
In general, VPF writer follows these rules:
- Allows writing multiple libraries at a time.
- Allows adding a library to an existing database (Note that WRITER_MODE should be UPDATE to achieve this)
- Allows adding coverage to an existing library (Note that WRITER_MODE should be UPDATE to achieve this).
The VPF writer does not, however, allow adding a feature class to an existing coverage. Once a coverage gets written, it cannot be updated. This is because the topology is built at the coverage level and adding a feature class to a coverage would require rebuilding of the topology, thus making all the existing primitive tables invalid.
Note that following metadata tables are created internally by the writer and the user has no control over them. An attempt to modify the following metadata tables will be ignored.
- lat (Library Attribute Table) – since the library name is dictated by the feature type
- lht (Library Header Table) – since the library name is dictated by the feature type
- cat (Coverage Attribute Table)
- fcs (Feature Class Schema) – independent of WRITER_MODE since feature class updating is not supported
- fca (Feature Class Attribute) – independent of WRITER_MODE since feature class updating is not supported
The dht table, however, can be updated. For instance, dht feature types can be used to set the database name, as described earlier. Note that the VPF specification limits the length of database name to 8 characters.