Παράρτημα 7Β Τεχνική Τεκμηρίωση προτύπου Urban Vector Map (UVMap) Introduction • VPF data model • Basic concepts • Structure and Implementation • The vector product format (VPF) is a standard format, structure, and organization for large geographic databases. • VPF is based on a Georelational Data Model. • In this model, geographic information is represented by using a combination of vector geometry, planar topology, and relational database tables. • Features • Attributes • Primitives • Feature Classes • Metadata • Topology • A feature is a model of a real world geographic entity. • Features can be zero-, one-, or two-dimensional. • Features are logically composed of attributes and primitives • Features are represented within the VPF data model by feature classes VPF Data Model Basic VPF Concepts Features ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β 25 Attributes • Attributes provide information about the property of an entity (feature). • Attributes are contained within VPF feature tables. • Primitives provide information about the location of an entity (feature). • All features must be composed of at least one primitive. • There are two basic types of primitives: Primitives •• •• • Geometric primitives Cartographic primitive Geometric primitives are further broken down into four categories: •• •• •• •• Entity nodes Connected nodes Edges Faces Feature Classes • “Feature classes” are the fundamental concept by which all features are modeled within VPF. • A feature class is logically composed of attribute data and primitive data. • A feature class is physically composed of a feature table and a primitive table. • Feature table • Primitive table • Primitive-to-feature relationships • Feature class relationships Feature class components ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β 26 Feature tables COLUMNS ID F_CODE ATR1 ATR2 ATRn TILE_ID* <PRIM>_ID* 1 ROWS 2 3 4 *Mandatory if tiled Related Attribute Tables • Attribute data may also be stored in tables separate from the feature table • ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β These tables are called “Related Attribute Tables” or RATs 27 Related attribute tables TEXT FEATURE TABLE CONTAINING SYMBOLOGY INFORMATION ID FCODE TILE_ID TXT_ID STYLE COLOR 1ZD040 Kern Black 2 ZD040 Kern Blue 3 ZD050 Kern Black 4 ZD050 Kern Blue 5 ZD050 Proportional Magenta FEATURE TABLE WITHOUT SYMBOLOGY INFORMATION RELATED ATTRIBUTE TABLE CONTAINING SYBOLOGY INFORMATIO ID STYLE COLOR ID FCODE SYMBOL_ID TILE_ID TXT_ID 1 ZDO40 1 1 1 1 2 ZD040 2 2 1 2 3 ZD050 1 3 2 3 4 ZD050 2 Primitive tables ID <COORDINAT ES> <T OPOLOGY> 1 2 3 4 ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β 28 Primitive types • There are four basic types of geometric primitives in VPF: — — — — • END CND EDG FAC There is one cartographic primitive: — • Entity node Connected node Edge Face Text TXT There are several types of supporting primitive tables: — — — Edge bounding rectangle Face bounding rectangle Ring table EBR FBR RNG Primitive type comparison VPF ARC/INFO Entity node Connected node Edge Face Text Point Node Arc Polygon Annotation Table relations in VMAP model FEAT URE T ABLE ID F_CODE ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β AT R1 PRIMIT IVE T ABLE AT Rn ID COORDINAT ES 29 Feature Class types • There are two basic types of feature classes in VPF: •• Simple — Point — Line — Area — Text •• Complex — Multiple simple feature classes Feature class types (cont’d) Entity Node Primitive Table + Point Feature Table = Entity Node Point Feature Class Connected Node Primitive Table + Node Feature Table = Entity Node Point Feature Class Edge Primitive Table + Line Feature Table = Line Feature Class Face Primitive Table + Area Feature Table = Area Feature Class Text Primitive Table + Text Feature Table = Text Feature Class ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β 30 Feature Class relationships Single Coincide nt One-to-one One-to-many Compound Many-to-one Compound-coincide nt Many-to-many Defining Feature Class relationships • VPF uses a several pre-defined tables in order to specify the relationships and characteristics of feature classes •• Feature class schema (fcs) table •• Feature class attribute (fca) table Metadata ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β • The VPF data model contains descriptive information called “metadata”. • Metadata allows a VPF database to be “self-defining”. • Metadata is used to : 31 •• •• Describe the contents of a table Provide information about other tables or files in the database Types of metadata used in VPF • Column definitions • Value description tables (vdt) • Narrative tables (*.doc) • Database header tables (dht) • Library header tables (lht) • Library attribute tables (lat) • Coverage attribute tables (cat) • Feature class attribute tables (fca) • Geographic reference tables (grt) • Data quality tables (dqt) and coverages (dq) • Reference coverages (tileref, libref) • The VPF data model recognizes four levels of topology: VPF Topology •• •• •• •• • ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β Level 0 Level 1 Level 2 Level 3 Boundary representation (“spaghetti”) Non-planar graph Planar graph Full topology Topology is implemented in VPF through the use of reference pointers. •• Faces •• Edges •• Nodes 32 Topology implementation – Faces Topology implementation – Edges ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β • Winged-edge topology • Forward edges 33 Topology implementation – Nodes • Additional topological information is contained in the node primitives. • Two types of node primitives are implemented in VPF: •• •• Connected nodes Entity nodes VPF Structure and Implementation • Directories • Tables • Indices • A directory is the basic structural component of a VPF database. • VPF directories are hierarchical. • Each level of a VPF database (e.g. library, coverage, tile, etc.) is represented by a directory level. Directories Database Database Metadata Libraries Library Metadata Reference Coverages T hematic Coverages Coverage Metadata Feature T ables Indices T ile Directories Primitive T ables ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β 34 Tables • A table is the basic organizational component of a VPF database. • The inclusion of some tables in a database is mandated by the VPF Standard. • The product spec may optionally require the use of additional tables not mandated by the VPF Standard. • Some tables require specific columns in order to maintain topology or pointers to other tables. • Additional columns may be required by the product spec in order to describe attributes or enhance performance. • VPF tables consist of two basic components: Table structure •• •• Table header Table contents Table header ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β • Byte count and byte order • Table description • Narrative file name (optional) • Column name • Column field type • Field width (number of data elements) • Column key type • Column textual description • Column value description file name (optional) • Column thematic index file name (optional) • Column narrative file name (optional) 35 Table contents • The contents component of a VPF table contains the actual data. • Data contents in VPF tables are organized into rows and columns. • All rows in a table share the same column definitions. • Each row in a table is defined by a unique row identifier. • VPF allows for indices to be implemented as part of the data structure. • An index is a mechanism used to quickly sort and identify records based on a “key”. • VPF allows for the following types of indices: Indices •• Spatial indices •• Thematic indices •• Join indices •• Variable-length table indices database design ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β • Product structure • Database organization • Feature coding scheme • Tiling 36 Product structure • Product format – The format of the VMap product is based on the Vector Product Format (VPF) data model. – By definition, therefore, the VMap product is relationally structured. • Product content – The content of the VMap product is based on the feature content of the hard copy Joint Operation Graphic (JOG) maps produced by NIMA. – All features in the VMap product are organized into thematic layers. Database organization Database Database Metadata Libraries Library Metadata Reference Coverages T hematic Coverages Coverage Metadata Feature T ables Indices T ile Directories Primitive T ables ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β 37 Database level • The VMap product will consist of many VMap databases, each of which will be contained on its own CD-ROM (i.e., one database per CDROM) • The names for the VMap databases have been based on the geographic area contained in the database. • Each database directory must contain at least one VMap library directory. • Each database directory must also contain two required VPF tables: – Database Header Table (dht) – Library Attribute Table (lat) Database: vmap lat dht Library: waco Library level • A VMap database can be composed of multiple libraries, which are determined by the location of the source JOGs • In addition, all VMap product discs will contain a special-purpose library: ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β 38 – reference • Each library directory must contain three required VPF tables: – Library Header Table (lht) – Coverage Attribute Table (cat) – Geographic Reference Table (grt) • In addition, the VMap product spec requires an additional table for each library: – Data Quality Table (dqt) VPF structure – Library level ELLAS cat dqt grt lht Metadata lineage.doc libref bnd dq elev hydro ind Reference coverages tileref phys pop trans util veg Data coverages VPF structure – Library level ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β bnd Boundaries coverage cat Coverage attribute table dq Data quality coverage dqt Data quality table elev Elevation coverage 39 grt Geo-reference table hydro Hydrography coverage ind Industry coverage lht Library header table libref Library reference coverage lineage.doc Lineage narrative file phys Physiography coverage pop Population coverage tileref Tiling scheme reference coverage trans Transportation coverage util Utilities coverage veg Vegetation coverage Coverage level • Each VMap library (except rference) may contain up to twelve coverages. • The rference library contains four coverages. • Each coverage name is represented as a directory. • To be VPF-compliant, each coverage directory must contain a minimum of three required VPF tables: – Feature Class Schema (fcs) table – At least one Feature Table (*ft) – At least one primitive table ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β 40 • The VMap product specification, however, requires the inclusion of many optional VPF tables. directories σε επίπεδο coverage • • Οι βιβλιοθήκες πρέπει να περιέχουν τα ακόλουθα 12 επίπεδα bnd Boundary elev dq hydro ind phys Elevation Data Quality Hydrography Industry Physiography pop trans util veg tileref Population Transportation Utility Vegetation Tile Reference libref Library Reference 4 coverages στην βιβλιοθήκη αναφοράς libref dbref polbnd placenam ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β Library Reference Database Reference Political Boundary Place Names 41 VPF structure – Coverage level hydro char.vdt fca fcs int.vdt dangerp.pft lakeresa.aft end2_id.pti end.fit end_fit1.fti end_fit2.fti fac.fit fac4_id.ati fac_fit1.fti fac_fit2.fti f_code2.pti f_code4.ati tile2_id.pti tile4_id.ati fjhb fjjb VPF structure – metadata coverages libref tileref cnd ebr edg edx esi fcs libref.lft libreft.tft tsi txt txx cnd ebr edg edx esi fac fbr fcs fsi rng tileref.aft tilereft.tft tsi txt txx VPF structure – tile subdirectories fjhb cnd csi ebr edg edx end esi fac fbr fsi nsi rng tsi txt txx ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β 42 VPF structure – tile subdirectories cnd Connected node primitive table csi Connected node spatial index ebr Edge bounding rectangle table edg Edge primitive table edx Edge primitive variable-length index end Entity node primitive table esi Edge primitive spatial index fac Face primitive table fbr Face bounding rectangle table fsi Face primitive spatial index nsi Entity node spatial index rng Ring table tsi Text primitive spatial index txt Text primitive table txx Text variable-length index Feature class level • Each VMap coverage will contain one or more feature classes • Each feature class is logically composed of at least two tables: – A feature table – A primitive table ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β 43 • Physically, each feature class is represented by its own feature table, but shares a common primitive table with other feature tables. Feature class naming conventions • Naming conventions are defined by the product specification • Names are limited to a single word of eight characters or less • All feature class names within a VMap coverage are unique • In combination with a VPF-defined four-character suffix, feature class names are used to form feature table names: –Entity node feature class name: +.pft –Connected node feature class name:+.pft –Line feature class name: + .lft –Area feature class name + .aft –Text feature class name: + .tft ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β = = = = = table name table name table name table name table name 44 Feature class schema (FCS) tables • Feature class name • Tables • Table keys Feature class schema (fcs) tables A feature class schema table stores the composition rules of each feature class. It describes the definition for each feature class and the way in which each table in a feature class relates (or joins) to other tables. A feature class schema table contains the following elements: • • • • • FEATURE_CLASS TABLE1 TABLE1_KEY TABLE2 TABLE2_KEY the feature class name the name of the first (outer) table of a join the join attribute in outer table the name of second (inner) table of a join the join attribute in inner table A Sample fcs table for a simple feature class • Simple feature classes are used in (for example) the libref coverage id feature_class table1 table1_key table2 table2_key 1 2 libref libref libref.lft edg edg_id libref.lft_id edg libref.lft id id ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β 45 An fcs table for a simple feature class with an rat • An fcs table with an rat is used in the VMap coverages with a text feature table id feature_class table1 table1_key table2 table2_key 1 2 3 4 5 markersp markersp bndtxt bndtxt bndtxt markersp.pft end bndtxt.tft txt bndtxt.tft end_id markersp.pft_id txt_id bndtxt.tft_id symbol_id end markerp.pft txt bndtxt.tft symbol.rat id id id id symbol_id Feature coding scheme • No specific feature coding scheme is defined by the VPF standard. • The coding scheme to be used for the VMap product is identified by the VMap product specification. • The coding scheme used allows features with similar attributes to be grouped together. • All features in the VMap are coded using the Feature and Attribute Coding Catalog (FACC) ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β • FACC consists of feature codes (F_CODEs), attribute codes (A_CODEs), and attribute code values • F_CODEs, A_CODEs, and attribute values will vary between libraries and coverages 46 FACC coding scheme • The basic structure of FACC is a unique five-character alphanumeric code. • The first character identifies the major feature category: A Culture B C D E Hydrography Hypsography Physiography Vegetation F G S Z Demarcation Aeronautical Terrain General • The second character identifies a feature subcategory. • The remaining three numeric characters assign a unique code to each feature within the subcategory. • Associated with each feature is a selection of attributes and values that provide descriptive Attribute codes information about the feature. ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β • Each attribute is identified by a three-character abbreviation or acronym (e.g., EXS – Existence Category). • Attribute values provide descriptive information about the specific type, form, pattern, activity, and so on for each feature. 47 • Attribute values can be either extracted or derived. Extracted attributes can be determined directly from the source. Derived attribute values must be determined from other sources. Attribute codes FACC coding heirarchy • The FACC coding scheme is hierarchical in nature AL015 BFC 010 FACC coding heirarchy The FACC coding scheme is hierarchical in nature. The characteristics of each feature determine the feature's attributes and (at the next lower level) attribute values. Each level of coding is determined by (specific to) the level above it. For example, the feature Building requires a set of attributes. One of those is the Building Function Code BFC. The attribute BFC requires a set of values specific to the feature. The Building in this example has a BFC attribute value of 010, but an attribute value of 010 may not be valid for other features that require the BFC attribute. Modeling FACC in a relational table Coverage F_CODE NM3 NM4 USE Feature Class Feature BND POLBNDL Armistice Line FA020 Name Name Null BND POLBNDL Cease-Fire Line FA030 Name Null BND POLBNDL Defacto Boundary FA060 Name Name 23 ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β Null 48 Modeling FACC in a relational table Table normalization First normal form Not normal • Second normal form Etc. All VMap feature tables have definitions that form a normalized table when populated. Table normalization Null values Field type Null value S Bit pattern 10000000 00000000 I Bit pattern 10000000 00000000 00000000 00000000 F Bit pattern representing NaN (Not a Number) T “N/A” (fixed length) or blank (variable length) D Blank filled (20 characters) Data types used in VPF tables ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β • T Fixed/variable-length text • I, S Integer (long and short) • R, F Floating point real number (long and short) • B, C 2-coordinate array (long and short) • Y, Z 3-coordinate array (long and short) 49 • D Date and time • K Triplet ID • X Null field Field types INFO Data Type D C (n) I (1-16) N (1-16) B (2) B (4) F (4) F (8) VPF Data Types F * * * _ * * _ * R * * * * * * * _ S * * * _ * * * I * * _ * * _ * * T * _ * * * * * * D _ * * _ = Default * = Valid Additional coverage-level metadata • Value description tables Value description tables Sample character value description table ID TABLE ATTRIBUTE VALUE 1 2 3 4 5 6 7 markersp.pft barrierl.lft coastl.lft polbndl.lft polbndl.lft polbndl.lft polbndl.lft ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β f_code f_code f_code f_code f_code f_code f_code AL025 AL070 BA010 FA000 FA020 FA030 FA050 DESCRIPTION Cairn Fence Coastline/Shoreline Administrative boundary Armistice Line Cease-Fire Line Convention Line/Mandate Line 50 Sample integer value description table ID TABLE ATTRIBUTE VALUE DESCRIPTION 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 markersp.pft markersp.pft markersp.pft markersp.pft markersp.pft markersp.pft markersp.pft coastl.lft coastl.lft coastl.lft coastl.lft coastl.lft coastl.lft coastl.lft coastl.lft coastl.lft cpa cpa cpa cpa cpa cpa zv2 acc acc acc slt slt slt slt slt slt 0 1 2 3 4 5 29999 1 2 3 0 6 8 10 11 13 Unknown Bench Mark Horizontal Horizontal with Bench Mark Astronomic Position Vertical Unknown Unknown Accurate Approximate Unknown Mangrove/Nipa Marsh/Swamp Rocky Rubble Sandy Tiling Overview • Tiling is the process of geographically subdividing a coverage solely for the purpose of enhancing data management. • The following concepts are used in the VPF data model in order to implement the tiling process: •• •• ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β A tile reference coverage (tileref) Cross-tile triplet IDs 51 Untiled Coverage Tiled Coverage Tile ID=1 Tile ID=2 Tile ID=3 Tiles Tile ID=4 Tile ID=7 Tile ID=5 Tile ID=8 Tile ID=6 Tile ID=9 VMap tiling requirements • The tile sizes used for the VMap Level 1 libraries will typically be 1_ by 1_. • The tiling scheme will change, however, by library in the northern and southern latitudinal parts of the world. • For example, a 2_ by 2_ tiling scheme will be used in northern Russia. Tiling naming conventions • All tiles in a VPF tiled database must have unique names. • The tiles in the VMap product are named using an implementation of the GEOREF naming convention. ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β 52 • The name of each tile is derived from the GEOREF coordinates located at the lower left (southwesternmost) corner of the tile. GEOREF description Divides the earth's surface into: • Twenty-four longitudinal zones 15 degrees wide each, lettered from A to Z (omitting I and O). • Twelve bands of latitude of 15 degrees each, lettered from A to M (omitting I). • Two hundred eighty-eight 15-degree quadrangles, each identified by a two-letter code. – The first letter identifies the longitude zone, the second letter the latitude band. GEOREF One 15x 15grid K 45N 15W Q P N M L K J H G F E D C B A 3W 59N 1 x 1 GE ORE F = MKN Q A B C D E F G H J K L M N P Q 15 x 15 GEOREF = M K ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β M 53 VMap Level 1 tiling scheme • The primitive tables for each coverage are partitioned among tile directories. • The tile directories are ordered in a four-tier hierarchy based on the GEOREF naming convention. • The first, second, and third tier subdirectores contain only pointers to the fourth subdirectory, where all primitives are stored. • The VMap data dictionary contains the following Data dictionary contents information: •• Data structure for metadata and feature tables •• Allowable content range for metadata and feature tables •• Brief description of each feature table •• Examples of the records that may be contained in the actual tables coverage structure (example) • The VMap features listed below are contained within three separate feature class tables in one coverage (util) in VPF: F_CODE AT010 AT080 AD010 AQ116 ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β Feature Disk/Dish Communication Tower Power Plant Pumping Station VPF Feature Class commp.pft commp.pft powerp.pft pumpingp.pft 54 VPF structure and metadata tables • Output database, library, coverage, tile and any required metadata tables will be created if they do not already exist. • Database-level tables: – Database Header Table (DHT) – Library Attribute Table (LAT) • Library-level tables: – Geographic Reference Table (GRT) – Library Header Table (LHT) – Coverage Attribute Table (CAT) • Coverage-level tables: – Feature Class Schema Table (FCS) – Feature Class Attribute Table (FCA) (with FIT option only) ΕΠΑΓΕΔ’97 – ΠΑΡΑΡΤΗΜΑ 7Β 55