Intergraph GeoMedia Access and SQL Server Warehouse Reader/Writer

Note: Licensing options for reading this format begin with FME Professional edition. Licensing options for writing this format begin with FME Database edition.

The GeoMedia Access Warehouse Reader/Writer module provides FME with access to Intergraph GeoMedia Access and SQL Server Warehouses, which store both spatial and attribute data.

Note: The following information applies both to GeoMedia Access and GeoMedia SQL Server warehouse reading and writing, unless otherwise specified.

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.

In order to retrieve information from a GeoMedia warehouse, an Open DataBase Connectivity (ODBC) source must be set up. Depending on the source dataset format, users can specify a filename, database name or a valid existing ODBC data source name. If the source format is of type “GeoMedia Access warehouse” then either a filename or DSN can be used. If the source format is of type “GeoMedia SQL Server warehouse” then either a database name with associated parameters or DSN can be used. Once the GeoMedia 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 ID and DEF lines specified in the mapping file or on the command line. 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 Access Warehouse Writer writes features to a Microsoft Access database identified by the DATASET keyword. If the database does not exist, an empty database file is copied and used as a template.

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 DATASET directive, they will be created provided the user has enough permissions 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 features are routed to either GeoMedia Warehouse writer by FME, they determine the layer (feature type) they are in and write the features to the corresponding table. Only one Microsoft Access file database is written during a single FME session, but many tables can be created within the database. Similarly, the SQL Server writer writes to one database, but may create many tables with that one database.