Developer Reference ENC Seasonal Features

Buoyage can be seasonally changed and this can be reflected in the chart. The chart producer can have a set of features that are drawn in the summer and a set of features that are drawn in the winter.

Some buoys on chart US5NY1HM are an example. These features have PERSTA and PEREND attributes in the data.

Overall these attributes are very rarely used (outside of ENC test datasets).

When an S57Draw is made its S57DisplaySettings.Date property is initialized with the current date and time and is not updated. It is the responsibility of the client application to keep this information up to date if the application is expected to be long-running enough to see changes in the chart display owing to seasonal features.

The value could be updated on some sort of timer or immediately before each called to S57Draw.Draw. In a planning situation where a system was for example display tide information for 2 months in the future then perhaps the chart display should reflect that plan?

(Note: from ENCX Version 3.0, you can set DateMode to S57DateMode_UseSystemDate to use the date-time set on the PC.)

In C#/.NET the code looks like:

s57draw.DisplaySettings.Date = DateTime.UtcNow;

Version 3.0

This version of ENCX introduced a couple of new properties to S57Settings for seasonal features to make it compliant with S-52 Presentation Library edition 4.0.1.

  • HighlightDateDependent - when set to true, the new presentation library symbol CHDATD01 is drawn with seasonal features to make them easier to spot.
  • DateMode - set to S57DateMode_UseSystemDate (use time set on PC), S57DateMode_UseSetDate (use time set in S57Settings) or S57DateMode_IgnoreDates (draw features regardless of date) to determine if seasonal features are drawn.