Understanding IMD Types
IMD Types are configuration records used to define how initial measurements are processed using Direct Measurement Processing.
There are two main categories of IMD types - seeder types (based on the Seeder IMD Type (D1-IMDSeederType) business object) and specific types (based on the Specific IMD Type (D1-IMDType) business object).
-
Seeder IMD types represents an initial measurement data (IMD) seeder, which serves as the universal input into the system for external callers or for initial measurement payload processing. The main purpose of the seeder IMD type is to determine the most appropriate specific IMD type (such as interval or scalar, or a type used with a particular Smart Grid Gateway adapter) to use for further processing and prepare the input data for that IMD type. Additionally, the seeder IMD type is used to perform critical validation (such as an interval count validation), device and channel identification, mapping of external values (such as Unit of Measure and time zone) to internal values, and time zone conversion for date/time fields.
Note: There can only be one seeder IMD type active at any one time.
- Specific IMD types define the rules for processing a specific initial measurement data (IMD) record. Different specific IMD types contain rules for processing the different types of initial measurement data that can be received. For example, one IMD type defines the rules for processing a scalar measurement from the Landys+Gyr head end system while another IMD Type instance defines the rules for processing an interval initial measurement from the Sensus head end system. There are four types of algorithms supported for specific IMD types: Pre Processing, Pre-VEE, VEE, and Post-VEE. These algorithms are responsible for validating that the measurement has been correctly mapped to the IMD Type (Pre Processing), calculating consumption (Pre-VEE), performing VEE (VEE), writing to the final measurement table (Post-VEE), among other responsibilities.
IMD Types are defined for specific measuring component types in the the "Initial Measurement Creation" processing method (“How to Create MC Related Information”) for each head end system. See Creating Head End Systems for more information.
IMD Types are defined by the following:
- Initial Measurement Data Seeder: A flag that indicates (Yes or No) if the IMD type represents a seeder IMD type. There can only be one active IMD type designated as a seeder IMD type at the same time. Seeder IMD types only use Pre-processing Algorithms (see below).
-
IMD Business Object: The business object to use when creating IMDs for the
IMD type.
- For seeder IMD types, this should be "IMD Seeder" (D1-IMDSeeder).
- For non-seeder IMD types, this should be an initial load IMD business object such as "Initial Load IMD (Interval)" (D1-InitialLoadIMDInterval) or "Initial Load IMD (Scalar)" (D1-InitialLoadIMDScalar).
-
Status: The status of the IMD type.
-
Algorithms: Algorithms used when processing initial measurement data for the
IMD type, including:
- Pre-processing Algorithms
- Pre-VEE Algorithms
- VEE Algorithms
- Post-VEE Algorithms
System Data
IMD Types are based on the following system data:
| Data Type | Description |
|---|---|
| Maintenance Object | Initial Measurement Data Type (D1-IMDTYPE) |
| Business Object(s) |
Specific IMD Type (D1-IMDType) Seeder IMD Seeder Type (D1-IMDSeederType) |
Base Package IMD Types
The base package includes several pre-defined IMD types that can be used when processing data from different head end systems supported through Smart Grid Gateway Adapters. These IMD types use vendor-specific initial measurement business objects and algorithms when processing data. The table below lists the IMD types provided with the base package.
| IMD Type | Description |
| IMD Seeder Type (D1-IMDSEEDERTYPE) | Used as the seeder, which determines the appropriate specific IMD type to use and to prepare the input data for that IMD type |
| Interval IMD Type (D1-INT-IMDTYPE) | Used when processing interval data |
| Interval Passthrough IMD Type D1-INT-PT-IMDTYPE) | Used with "pass through" interval external measuring components to capture errors in pass through interval measurements |
| Scalar IMD Type (D1-SCA-IMDTYPE) | Used when processing scalar data |
| Scalar Passthrough IMD Type (D1-INT-SC-IMDTYPE) | Used with "pass through" scalar external measuring components to capture errors in pass through scalar measurements |
| Landis+Gyr - Interval IMD Type (D3-INT-IMDTYPE) | Used when processing interval data using the Landis+Gyr Adapter |
| Landis+Gyr - Scalar IMD Type (D3-SCA-IMDTYPE) | Used when processing scalar data using the Landis+Gyr Adapter |
| MV90 - Interval IMD Type (D5-INT-IMDTYPE) | Used when processing interval data using the MV90 Adapter |
| MV90 - Scalar IMD Type (D5-SCA-IMDTYPE) | Used when processing scalar data using the MV90 Adapter |
| Sensus - Interval IMD Type (D6-INT-IMDTYPE) | Used when processing interval data using the Sensus Adapter |
| Sensus - Scalar IMD Type (D6-SCA-IMDTYPE) | Used when processing scalar data using the Sensus Adapter |
| SSN - Interval IMD Type (D7-INT-IMDTYPE) | Used when processing interval data using the Silver Spring Networks Adapter |
| SSN - Scalar IMD Type (D7-SCA-IMDTYPE) | Used when processing scalar data using the Silver Spring Networks Adapter |
| Itron - Interval IMD Type (D8-INT-IMDTYPE) | Used when processing interval data using the Itron Adapter |
| Itron - Scalar IMD Type (D8-SCA-IMDTYPE) | Used when processing scalar data using the Itron Adapter |
| ADK - Interval IMD Type (DG-INT-IMDTYPE) | Used when processing interval data using the Adapter Development Kit |
| ADK - Scalar IMD Type (DG-SCA-IMDTYPE) | Used when processing scalar data using the Adapter Development Kit |
Changing and Extending Base Package IMD Types
The base package IMD types can be changed and/or extended by adding new algorithms to one or more of the algorithm areas (Pre-Processing, Pre-VEE, VEE, or Post-Vee).
When adding new algorithms to a base package IMD type, we recommend creating the algorithm logic in a Groovy Library Script that can be called from an IMD type algorithm as well as from an IMD business object algorithm. See Groovy Library Scripts for more information.
