Hexagon GeoMedia SQL Server Warehouse Reader/Writer

FME can read from and write to Hexagon GeoMedia Access and SQL Server Warehouses, which store both spatial and attribute data.

Hexagon GeoMedia SQL Server Warehouse (FM0_SQL) Product and System Requirements

Format

FME Platform

Operating System

Reader/Writer

FME Form

FME Flow

FME Flow Hosted

Windows 64-bit

Linux

Mac

Reader

Yes

Yes

No

Yes

No

No

Writer

Yes

Yes

No

Yes

No

No

Overview

GeoMedia warehouses store both geometry and attributes for features in the form of columns within the tables of a database. Tables can be divided into two groups based on content. The first group contains meta-information about the formatting of the data, including coordinate systems, tables aliases, modification logs, a data table list, and a field level index. The second group is the list of tables that actually contain the geometry features and their attributes. For example, a single Microsoft Access .mdb or .accdb file or a single SQL Server database contains all the necessary information for an image.

To retrieve information from a GeoMedia warehouse, an Open DataBase Connectivity (ODBC) source must be set up. GeoMedia SQL Server Warehouse requires a database name with associated parameters (and will also accept a data source name [DSN]).

Once the reader has all the required information, it then dynamically creates a temporary ODBC source (when a filename or database name is supplied) to connect to that database.

Point, line, area, arc, and text primitive geometric data can be stored in the tables produced by GeoMedia, as well as composites (aggregates), boundaries (donuts) and collections (aggregates) of those types. A given data table holding multiple types of geometries can be read by the reader, but the writer only produces tables containing one specific geometry type each, including boundaries, composites or collections of that type. The result is that one table containing many types of features may be converted into several tables – one for each type of feature by the writer.

This is especially true of the collection type in GeoMedia which is very generally a collection of any primitive type and has no corresponding equivalent in FME. Syntactically, the type is simply appended to the table name separated by an underscore (for example, tableOfManyTypes_area).

Reader Overview

The GeoMedia Warehouse Reader produces FME features for all data held in the Microsoft Access .mdb or .accdb files or a Microsoft SQL Server database, with the exception of image (coverage) data. The reader opens the connection to the source dataset and reads the GAliasTable to determine the proper table names to be used. Next it reads the table of GFeaturesTable type to determine the list of tables that contain geometry data. This list of data tables to be read is modified by the specified reader and feature type parameters. Each geometry table is then read and its features are processed and returned one at a time. When a table is exhausted, the reader starts on the next data table in the list until all tables are read. Issues with reading in a table may result in a specific feature being skipped and sometimes an entire table depending on the severity of the error, but the reader will always try to perform as much translation as possible.

Geometries from GeoMedia do not map exactly to FME geometries. This will have the following effects on the resulting FME features:

  • Collections map to one aggregate feature for each FME fm0_type depending on which types exist in the collection.
  • Multilevel composites may be flattened out to simpler first- or second-level nesting.
  • Because GeoMedia is not strict in its typing, the reader can produce some nonsensical features that may be skipped, e.g., a line aggregate containing points.

Writer Overview

The GeoMedia SQL Server Warehouse Writer writes to existing Microsoft SQL Server databases.

If the database does not exist, the translation will be terminated. If the metadata tables and/or data tables do not exist in the database specified in the Writer Connection parameter, they will be created if the user has permission to create and write to tables to the database.

If the metadata tables exist, information about newly created data table(s) will be appended to them.

As FME routes features to the writer, the writer determines the layer (feature type) they are in and write the features to the corresponding table. The writer writes to one database, but may create many tables with that one database.