Skip To Content

Customizing configuration files

The Maritime Chart Service has various control files that can be configured to meet your specific needs. Configuration options include the ability to expand the type of S-57 objects and attributes that the system will recognize if you've created a custom specification, S-52 presentation library customizations to change default symbol colors, and the ability to alter the text format used to portray your data. There are also configuration options for the Maritime Chart Service that control how updates are applied, what coordinate system is used, and what size you want your symbols and text to be displayed.

Configuration settings related to IHO standards such as S-57, ENC, S-52, and S-63 are all configured by default to those specifications.

All configuration files are under your controlFilesDirectory location, which is <Installation path>:\arcgisserver\directories\maritimeserver\maritimechartservice. This location is in your controlFilesDirectory property; see Modifying Maritime Chart Service capabilities properties for additional information on setting this location. Back up this location if you make any changes. Future installations will overwrite this location.

S-57 data dictionary

The S57DataDictionary.xml file contains all the S-57 objects and attribute IDs as well as acronyms and descriptive values. It also contains a list of agency codes.

Localization changes can be made to this file to display object and attribute names in the local language. You can extend this file to include new objects, attributes, and enumerations if you support unpublished product specifications.

Note:

The map service must be stopped and restarted for changes to the S57DataDictionary.xml file to be recognized by the service.

Server configuration

The ServerConfiguration.xml file provides support for various coordinate systems, display parameters, Web Map Server (WMS) service layer name, and automatic update support.

WMS layer name

By default your WMS layer name will be S57. This value can be changed by updating the WMSServiceLayerName value in your ServerConfiguration.xml file.

  1. Open your ServerConfiguration.xml file and modify the WMSServiceLayerName value.
  2. Click Save.
  3. Note:

    The map service must be stopped and restarted for changes to the ServerConfiguration.xml file to be recognized by the service.

  4. Stop your map service.
  5. Start your map service.

Coordinate system users

ArcGIS for Maritime: Server supports projection in real time with more than 5,000 EPSG codes. By default, your coordinate system is set to 102100 (Web Mercator Auxiliary Sphere).

The crs.xml file under your controlfiles folder contains all the supported EPSG codes.

Tip:

If you do not expect your clients to request different projections, it's recommended that you set your EPSG value to the required coordinate system. If you expect to support multiple projections such as several UTM zones, it's recommended that you use EPSG = 4326 (WGS 84) to optimize performance.

Consider the following:

  • The newly created .senc file will contain the set CoordinateSystem value in the name.
  • To change projections, you must modify the CoordinateSystem value, which is defaulted to 102100 (Web Mercator Auxiliary Sphere).
  • S-57 datasets that fall outside the coordinate system boundary will not be generated, and a warning message will be written to the log file.

  1. Open your ServerConfiguration.xml file and modify the CoordinateSystem value.
  2. Save your changes.

    The map service must be stopped and restarted for changes to the ServerConfiguration.xml file to be recognized by the service.

  3. Stop your map service.

    You don't have to delete your existing .senc files. They'll be deleted and re-created automatically by the service.

  4. Start your map service.

Your .senc files are now re-created with the new coordinate system. The CoordinateSystem value will be in the name of your .senc file for reference.

DisplayParameters

Note:

At 10.6.1, DisplayParameters will no longer be in the ServerConfiguration.xml file. They've been added to the S52DisplayProperties.xml file as individual display properties that client applications can pass to the service. The behavior of each new property will be the same.

The following DisplayParameters table shows the property name changes between 10.6 and 10.6.1.

See S-52 display properties for more information.

Removed from ServerConfiguration.xmlAdded to S52DisplayProperties.xml

Chart

DatasetDisplayRange

Symbol

PointSymbolSize

Line

LineSymbolSize

Area

AreaSymbolSize

Text

TextSize

removeDuplicateText

RemoveDuplicateText

halo

TextHalo

These settings allow an administrator to optimize their display based on the S-57 datasets they are required to host. Typically, these settings are not modified but allow for fine-tuning.

<DisplayParameters>
<Chart minZoom=".05" maxZoom="1.2"/>
<Symbol scaleFactor="1.0" minZoom=".05" maxZoom="1.2"/>
<Line scaleFactor="1.0" minZoom=".05" maxZoom="1.2"/>
<Area scaleFactor="1.0" minZoom=".05" maxZoom="1.2"/>
<Text scaleFactor="1.0" minZoom=".05" maxZoom="1.2" removeDuplicateText="true" halo="on"/>
</DisplayParameters>

Chart

This setting controls when your dataset will be displayed based on the S-57 dataset's scale and the view scale. The display of the S-57 datasets can be determined by the following: X = Dataset Scale / View Scale where X is your reference scale.

  • If X is < minZoom, the dataset will not display.
  • If X is > maxZoom, the dataset will display as long as another dataset doesn’t have a better reference scale value.
  • If X is within the range of minZoom or maxZoom, the dataset will display.

By increasing the minZoom to a larger number (for example, 0.28), you'll need to zoom in closer before the dataset displays.

If two S-57 datasets fall within the minZoom and maxZoom range, the dataset with the smaller reference scale will be displayed. For example, you have two S-57 datasets (A at 1:1,500,000 and B at 1:90,000) and your view scale is 1:587,862.

  • Reference scale for A = 1500000/587862, which is 2.55
  • Reference scale for B = 90000/587862, which is 0.153
Since 0.153 is less than 1, you divide 1 by the reference scale (1/0.153) to get the new reference scale value of 6.5 for Dataset B. The Dataset A reference scale is 2.55 and the Dataset B reference scale is now 6.5. Because 2.55 is closer to the 1:1 view scale of the dataset, Dataset A will be displayed.

Symbol, Line, and Area

These properties all contain a scaleFactor as well as minZoom and maxZoom settings. Changing these values will either increase or decrease the size at which your symbols will draw. Once X (reference scale) is calculated, that value is multiplied by the scaleFactor. The new value is compared to the minZoom and maxZoom settings as follows:

  • If X is < minZoom, set it to minZoom
  • If X is > maxZoom, set it to maxZoom

Text

The Text property’s scaleFactor as well as minZoom and maxZoom settings behave the same way as Symbol, Line, and Area. Changing these values will either increase or decrease the size at which your text will draw. The Text property also contains two additional settings for removing duplicate text (removeDuplicateText) and removing the halo from around text features in all color schemes. When removeDuplicateText is turned on (the default setting), it will remove duplicate text for features from S-52 text group 21 Names for position reporting, with the same S-57 object class name. If S-57 object class names are different, the duplicate text is not removed.

Modifying display parameters

  1. Open your ServerConfiguration.xml file and modify the DisplayParameters settings.
  2. Save your changes.

    The map service must be stopped and restarted for changes to the ServerConfiguration.xml file to be recognized by the service.

  3. Stop your map service.
  4. Start your map service.

The display parameters of your existing S-57 datasets have not been modified. Any new S-57 datasets that are added to the datasets folder will display with the updated parameters. DisplayParameters settings are used at draw time.

Note:

At 10.6.1, DisplayParameters are now dynamic and can be updated the same way as other S-52 display properties.

See S-52 display properties for more information.

If you want your display to be 1:1 like an ECDIS, you must set your symbol, line, area, and text values for minZoom and maxZoom to 1.

<DisplayParameters>
<Chart minZoom=".05" maxZoom="1.2"/>
<Symbol scaleFactor="1.0" minZoom="1" maxZoom="1"/>
<Line scaleFactor="1.0" minZoom="1" maxZoom="1"/>
<Area scaleFactor="1.0" minZoom="1" maxZoom="1"/>
<Text scaleFactor="1.0" minZoom="1" maxZoom="1" removeDuplicateText="true" halo="on"/>
</DisplayParameters>

AutoCellUpdate

AutoCellUpdate allows you to automatically apply dataset changes without having to stop and restart the service. This feature allows you to configure 24/7 support. By default, the Maritime Chart Service is installed with this setting turned off. Before turning this setting on, you need to understand how long it takes to copy a 5 MB file across your network and what your dataset update strategy is.

Once the AutoCellUpdate property is enabled by setting use="true", the Maritime Chart Service will detect if there are any changes to your datasets folder. Once a modification is detected, the same logic that's used when the service is started is run against the datasets folder. This will detect what dataset changes have occurred and update the service’s .senc and find.dat files, accordingly, while the service is still running. Users will only notice the change when the display is refreshed or search or identify is used on the dataset that is actively being processed.

The delaySeconds setting sets how long the Maritime Chart Service will wait before running its logic. For example, if set to 10 seconds, the Maritime Chart Service, once it detects a change to the datasets folder, will wait to run its logic for another 10 seconds. If another change is detected before it counts to 10, it will start counting over. Once it reaches the delaySeconds count value, it will process the changes. Each file that is copied to the datasets folder counts as a change. That means if you copy, for example, 10 files at once, each file restarts the count as it's copied.

If you don't set a large enough delaySeconds value and your dataset file takes longer than the setting to copy, Maritime Chart Service will not be able to process that dataset. This is no different than if you tried to manually start the map service before you finished copying data into the datasets folder. It's recommended that you set your delaySeconds value by at least a factor of 3 based on how long it takes to copy a single 5 MB .000 file into the datasets folder from your staging location.

  1. Open your ServerConfiguration.xml file and modify the AutoCellUpdate settings.

    It should look similar to the following:

    <AutoCellUpdate use="true" delaySeconds="10"/>
  2. Save your changes.
  3. Stop your map service.
  4. Start your map service.

The .senc files will not be re-created for this change unless new S-57 datasets were added to the datasets folder while the service was shut down.

Display frames and S-52 color tokens

You have an option to set the display color for your dataset frames. The default color for Maritime Chart Service is red and magenta for Products on Demand. In the ServerConfiguration.xml file, there are two settings: one for Maritime Chart Service named DisplayFramesMCS and another for Products on Demand named DisplayFramesPOD.

The color token values added to these properties are set using standardized S-52 color tokens. You can modify any color token value and restart your map service to see the changes. The Display Frames property found in your S52DisplayProperties.xml file is the setting that allows you to turn your dataset frames on or off.

All S-52 color token values can be found in the DAY.clr file under your colcalib folder located in the controlFilesDirectory location, which is <Installation path>:\arcgisserver\directories\maritimeserver\maritimechartservice. This location is in your controlFilesDirectory property; see Modifying Maritime Chart Service capabilities properties for additional information on setting this location. Back up this location if you make any changes. Future installations may require you to overwrite this location.

To use the override values, you must set IntendedUsageOverrideCodes use = true and restart your map service.

S-52 display properties

The S52DisplayProperties.xml control file allows the system administrator to configure how the service will behave based on the S-52 standard.

Note:

The map service must be stopped and restarted for changes to the S52DisplayProperties.xml file to be recognized by the service.

Display parameters

There are many S-52-based mariner settings and other parameters that the client applications can pass to the service, which allows the display to be modified independently by each client request. You can download sample Maritime Chart Service Web AppBuilder for ArcGIS widgets from GitHub that show how to take advantage of these parameters. By default, when the service is started, the settings in S52DisplayProperties.xml will be used. The sample application will display those values to the user and provide additional values to be set that can also be found in the S52DisplayProperties.xml file.

Note:

Not all parameters found in S52DisplayProperties.xml may be supported by the sample widget.

All parameters are defined in the S52DisplayProperties.xml along with additional comments.

Following is an example of Data Quality:

<Parameter name="DataQuality" type="E" default="1" value="1">
			<Description>Show data quality</Description>
			<Comments>New at 10.5 </Comments>
			<ExpectedInput code="1" value="False"/>
			<ExpectedInput code="2" value="True"/>
		</Parameter>

ParameterDescription

Parameter name

Name of the parameter that is passed to the service.

type

E: Enumerated list

F: Floating point value can be used

L: List value when more than one value can be passed to the service

default

Default value that S-52 recommends if the parameter is referenced in the S-52 standards.

Value

Value that is used by the service when it starts. This value can be overwritten by the client.

ExpectedInput

Used when type is E or L

Code: Value that is used by the service

Value: Description of the code that is passed to the service

  • Area Symbol Size
  • Area Symbolization
  • Attribute Description
  • Color Scheme
  • Compass Rose
  • Data Quality
  • Dataset Display Range
  • Deep Contour
  • Display Category
  • Display Depth Units
  • Display Frames
  • Display Frames Text
  • Display Frames Text Placement
  • Display NOBJNM
  • Honor SCAMIN
  • Intended Usage
  • Isolated Dangers
  • Label Contours
  • Label Safety Contours
  • Line Symbol Size
  • Optional Deep Soundings
  • Point Symbolization
  • Remove Duplicate Text
  • Safety Contour
  • Shallow Contour
  • Shallow Depth Pattern
  • Text Groups
  • Text Halo
  • Text Size
  • Two Depth Shades
Note:

Data Frames is set to automatic by default. When set to automatic, the intelligent zoom chooses the best charts for the area based on the current reference scale and displays them. If a chart is the best one for the area but has a reference scale lower than the chart minZoom, the cell extent is drawn instead of the chart. The client can override this and turn all cell extents on or off using the client side parameters. When turned on, all dataset extents are visible regardless of your reference scale.

Note:

The compass rose is set to False by default. This will not display any compass rose points for MAGVAR point features. By default, S-52 symbology will also be used. If you want to see MAGVAR point features as INT1 compass rose symbols, the value for compass rose in the S52DisplayProperties.xml file must be set to True, then the service can be restarted. When a compass rose is displayed, the deviation from true north will be calculated based on the current date.

Tip:

It's recommended that you remove IntendedUsage ExpectedInput values from your S52DisplayProperties.xml that won't be loaded into your service. For example, if you're only going to publish ENC datasets, remove those values for AML and IENC that are not used by ENC products.

Here is an example of what gets passed to the service by the client. You can also access this information by using the Maritime Chart Service parameter operation. For example, http://<machine.domain.com>/arcgis/rest/services/SampleWorldCities/MapServer/exts/MaritimeChartService/MapServer/parameters?f=json&full=true.

View over groups

The S52DisplayProperties.xml file comes with various samples of how to configure feature layers within your service layer. By default, the ParameterGroup name ViewOverGroups will be used. You must make sure all other samples have a different name.

The concept of view over groups comes directly from S-52 and can be configured and extended in the same way as S-52.

Note:

With the release of AML 1.1.3 Portrayal Specification, a new set of view groups has been defined. To use these groups for your S-57 AML datasets, you must change your ViewOverGroups Parameter Group setting to use ViewOverGroups_AML_Sample. Make sure to change the name of ViewOverGroups_AML_Sample to ViewOverGroups and rename your existing Parameter Group something other than ViewOverGroups. The AML view groups contain 23 layers, while the default view group contains 8 layers.

Note:

You must restart your map service after making changes to your S52DisplayProperties.xml file.

<ParameterGroup name="ViewOverGroups" defaultVisibility="false">
	<ViewoverGroupsDescription>This example includes all view groups into 8 feature layers</ViewoverGroupsDescription>
	<Parameter name="0" type="E" default="2" range="11000-11060,21010-21060,31000-31080">
		<Description>Information about the chart display</Description>
		<ExpectedInput code="1" value="False"/>
		<ExpectedInput code="2" value="True"/>
	<Parameter>

ParameterDescription

ParameterGroup name

Must be set to ViewOverGroups for the system to recognize it; otherwise, rename it if used as a sample reference.

ParameterGroup defaultVisibility

True or False

Note:

See Default Visibility Options for View Over Groups.

ViewOverGroupDescription

Internal documentation describing the feature layer.

Parameter name

This attribute no longer has to be unique. The service automatically assigns a value starting with 0 when the service starts.

Parameter default

The system default value. This field is for documentation only. The options are as follows:

  • 1—The feature layer will be turned off by default when brought into an application.
  • 2—The feature layer will be turned on by default when brought into an application.

Parameter range

S-57 objects that are included in this feature layer. Values come from View Groups located at the bottom of the S52DisplayProperties.xml.

Description

This text is displayed on your contents tab or in the table of contents.

Default visibility options for view over groups

Option

Default setting: Set to True for an OverViewGroup group containing only one feature layer.

For example, soundings. It's expected that feature layers can be turned on or off only. All other S-57 service layer information will be displayed unless you turn the parent layer off. For this example, if you turn off soundings, all other information in the service layer will be displayed. This option is a way to quickly create a single feature layer that can be turned on and off without the need to define other feature layers.

Set to True for an OverViewGroup containing more than one feature layer.

You get the same behavior as in the default setting. The exception is when you have all view groups represented in the OverViewGroup, whether that's one or more feature layers. When you turn the last feature layer off, that feature layer will still be displayed unless you turn off the parent layer. To avoid this, make sure you set defaultVisibility to False when you include all view groups in your OverViewGroup.

Set to False and it is a single layer.

When the feature layer is turned off, the parent layer is also turned off since nothing should be displayed. This option should be used when only one feature layer, for example, navaids, is to be displayed from the data. Only the data from the feature layer will be displayed. No other data from the service will be displayed.

Set to False and there is more than one feature layer.

When all the feature layers are turned off, the parent layer is also turned off. This option should be used when one or more feature layers are required. Another example of this is to have a feature layer for soundings and a feature layer for navaids. Those will be the only two feature layers displayed. All other S-57 service layer information is suppressed.

An OverViewGroup is defined with no feature layer information.

You should set the defaultVisibility setting to False. Otherwise, the feature layer node will not work to turn off the layer.

Note:

If the setting is not included, it will default to True.

Viewing group descriptions (View Group)

According to S-52, S-57 objects are grouped into View Groups. The View Group IDs are what your ViewOverGroups range values are set to. These View Group IDs are related to entries in your .dic files.

The .dic files, which are located with the rest of your control files, are part of the S-52 Standard and control how features are displayed. These view groups can be configured as necessary to create OverViewGroup feature layers for your service.

For example, the ViewGroup for beacon contains five individual S-57 objects, but they are all controlled by one ViewGroup.

<ViewGroup id="17020" Description="beacon"/>
	<ViewGroupS57Objects Code="" Acronym="BCNCAR" Description="" Dictionary="psymrefs" Comments=""/>
	<ViewGroupS57Objects Code="" Acronym="BCNISD" Description="" Dictionary="psymrefs" Comments=""/>
	<ViewGroupS57Objects Code="" Acronym="BCNLAT" Description="" Dictionary="psymrefs" Comments=""/>
	<ViewGroupS57Objects Code="" Acronym="BCNSAW" Description="" Dictionary="psymrefs" Comments=""/>
	<ViewGroupS57Objects Code="" Acronym="BCNSSP" Description="" Dictionary="psymrefs" Comments=""/>

If you want to turn on or off each beacon type individually, you have to create new ViewGroups for each beacon type and modify your associated .dic files.