Both IENC (InlandECDIS) and AML (Additional Military Layers) are S-57 based products, specifically designed for river navigation and maritime military applications, respectively. They define their own object classes, attributes and symbology. The LuciadLightspeed Maritime Standards component includes all necessary resources to support both the reading and visualization of IENC and AML data.

If you want to set up a standard visualization using the TLcdS57UnifiedModelDecoder in combination with a TLspS52LayerBuilder or TLcdS52GXYLayerFactory, you do not need to take any special steps to support IENC or AML visualization. Both the model decoder and the layer factory/builder support ENC, IENC and AML, and choose the correct visualization based on the available data.

It is also possible to create a TLcdS57ProductConfiguration and TLcdS52ProductConfiguration for a specific type by passing the ELcdS57ProductType.IENC or ELcdS57ProductType.AML product type code to their static factory methods. Once constructed, you can use the S-57 and S-52 product configuration to create model decoders and layer factories in a similar way to ENC. This allows for the use of the more advanced options of the model decoders and layer factories.

The decoder supports IENC versions 2.0, 2.1, 2.2, 2.3 and 2.4. The visualization will use the display rules from IENC 2.4.

If you’re using InlandECDIS, you can configure your ship’s beam and air draft on the S-52 display settings (see TLcdS52DisplaySettings). These settings affect the visualization of the safety of fixed bridges.

Working with mixed IENC and ENC data

LuciadLightspeed supports InlandECDIS (IENC) cells that contain regular ENC data.

While this does not comply with the specification, some InlandECDIS data providers do this. For example, cells can have achare objects (part of IENC) and ACHARE objects (part of regular ENC).

The IENC specification overlaps to a large extent with ENC: it takes over many object classes, attributes and styling rules. However, it does not take over everything.

Our IENC object classes and attributes automatically fall back to those from ENC if they were not already part of the IENC specification. Similarly, the IENC visualization rules include the full S-52 rules as a fallback.

If you have catalogs or multicatalogs that contain only IENC cells, all this will be picked up automatically.

If you have catalogs or multicatalogs that contain cells of product type IENC as well as regular ENC, you have to manually force IENC. This is necessary because the cells themselves contain this information, and are lazy-loaded. As such, we can’t determine the type up front efficiently.

Program: Handling mixed IENC and ENC catalogs
    // Decode the model
    TLcdS57CatalogueModelDecoder decoder = TLcdS57ProductConfiguration.getInstance(ELcdS57ProductType.IENC).createCatalogueModelDecoder();
    ILcdModel model = decoder.decode("/path/to/CATALOG.031");