Developer Reference Vector and Raster

Fundamentals

Raster charts have one or more 'panels' of bounded area just like paper charts.

ENC Vector chart information is provided as a continuous grid of cells covering the world.

Raster charts consist of an image and the ability to convert between pixel positions on the image and positions on the earth (latitude and longitude).

Vector information is a collection of objects representing different features on the planet - e.g. buoys, soundings, lights.

Vector and Raster

There is no such thing as an ENC chart despite the fact that ENC stands for Electronic Navigational Chart. ENC data is continuous charting information provided as a grid of cells covering the world. It is continous data, there are no charts - it is charting information not a collection of charts.

At any particular scale cells do not overlap.

Also, there are and always will be gaps, there is no need to provide highly detailed information in the middle of the ocean.

The terms ENC and S-57 are often used as if they are the same thing, in fact ENC is a use of the S-57 vector data standard and so ENC is a type of S-57 data.

Raster charts are like paper charts, some raster charts (not ARCS) are simply scanned paper charts. Paper charts are designed to be useful and make best use of paper often this means they have inset panels, to show the detail of a port for example. Inserts are often at a more detailed scale than the rest of the chat.

It also means that North is not necessarily up, this is again to make best use of paper.

Each raster panel (there may just be one panel) has a set of polynomials to convert between geographic positions (expressed as latitude and longitude) and pixel positions on the raster image. This is directly concerned with the projection used. The projection is how the slightly squashed sphere of our planet is represented on a flat surface (a chart). Many different projections are used, Mercator and Transverse Mercator are common projections.

The S-57 standard does not actually specify a projection although it implies a simple linear relationship between latitude and longitude and pixel position over the display area. This relationship changes depending on the geographical area in view.

So already we have some differences:

ENC data is a continuous grid of cells covering the globe.

A raster chart consists of one or more bounded panels. Each panel has a bounding polygon and a set of polynomials to handle conversion between geographic and pixel space.

ENC data is made up of a collection of features which are drawn by ENCX to render the display. Features classify into points, lines and areas. Features have attributes which provide information about that feature and it's relationship with other features. A point feature could be a sounding, the depth would be held as an attribute. A line might a depth contour or part of a shipping lane. An area could be an island for example. All features carry relevant geographic postions. 

Raster data is a simple picture of a chart as laid out by a cartographer. ENC is more complicated to display as the display system must lay the features out on screen itself. The fact that the display engine works from a load of features makes ENC data very flexible as compared to raster data but there are some downsides.

ENC data can be zoomed in and out, it can be displayed at a variety of scales. The data has a compilation scale at which it was surveyed and this is the obvious scale to display ENC data, but..

The computer lays out the vector information on screen rather than a cartographer (skilled, experienced, knows what is useful) as for raster charts. The human cartographer is able to achieve a higher density of readable information than the computer. For this reason many people view vector data at a more detailed scale that the compilation scale - this reduces the density of the information which makes it more readable. This is especially helpful in 'busy' areas like a port entrance.

Vector data can be zoomed in and this is fortunate because one often has to do this in order to see what's there. The downside to zooming in is that a person looking at data 1:10,000 when the compilation scale is 1:100,000 may think the chart is more accurate than it really is.

Looking at a 1:100,000 map with a magnifying glass does not make it a 1:10,000 map, this is easy to remember when holding the magnifying glass but harder to bear in mind whilst using a computer. For this reason ECDIS navigation systems display overscale warnings. However these systems can display a lot of warnings!

A downside to zooming out too much is that you have too much information cluttering the display.

ENC data can easily be rotated without a loss of image quality unlike raster charts.

The display system can choose which features to display. For example not displaying any depth soundings. By leaving out features the display can be made less cluttered. There is certainly plenty of information in ENC data that most people would not want cluttering the display normally.

But if things are turned off people tend to assume that they are not there, because they cannot see them. And that might not be safe! The ECDIS standard limits which parts of the display can be turned off for this reason but it can be argued that cluttered displays do not improve safety. I would argue this but I'm trying to stay on topic.

Because we have features we can do more with the information than just display it. We can get a list of features at a point or in an area and do something with their attributes. We could generate a printed list of all the light houses in an area, we could do text searching on attributes and so on. All this is possible with ENCX!

To tie these differences back to the ENCX library..

The S-57/ENC side of the library has a host of objects to allow developers to find out about cells and features.

S57CellIdentifier
S57CellInfo
S57FeatureQuery
S57FeatureIdentifier
S57FeatureInfo
S57FeaturePoint
SS57FeatureLine
SS57FeatureArea
S57ObjectClass
S57ProviderInfo
S57FeatureSounding
S57Attribute
...

The raster side of the library has a collection of structures and classes to represent panels, datums and so on.

RasChartInfo
RasChartPanelIdentifier
RasPanelInfo
RasPanelNote
HorizontalDatum
RasNativeFormat
...