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 recognizes if you've created a custom specification, S-52 presentation library customization 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 to those specifications by default.

All configuration files are located in the <ArcGIS Server installation drive>:\arcgisserver\directories\maritimeserver\maritimechartservice\ path.

Note:

This location is in your controlFilesDirectory property. Back up this location if you make any changes. Future installations overwrite this location.

Learn more about modifying Maritime Chart Service properties

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.

You can make localization changes 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 names, custom symbology, and automatic update support.

Coordinate system users

Maritime Chart Service supports projection in real time with more than 5,000 EPSG codes. The coordinate system is set to 102100 (Web Mercator Auxiliary Sphere) by default.

The crs.xml file in the controlFilesDirectory 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.

Customize your crs.xml file

There are two overrides that can be used within the crs.xml file: WGS84Bounds and Axis Order. WGS84Bounds allows you to override the extent of the projection. The default values used by the projection engine are from https://spatialreference.org. In many cases, users want values that correspond to those published on https://epsg.io or custom values for their specific situation. Axis Order is used to override the y- and x- axis directions.

WGS84Bounds example
<PROJCS name="ETRS_1989_UTM_Zone_30N" wkid="25830" geogcs="GCS_ETRS_1989" projection="Transverse_Mercator" unit="Meter">
			<Parameters>
				<Parameter name="Central_Meridian" value="-3.0"/>
				<Parameter name="False_Easting" value="500000.0"/>
				<Parameter name="False_Northing" value="0.0"/>
				<Parameter name="Latitude_Of_Origin" value="0.0"/>
				<Parameter name="Scale_Factor" value="0.9996"/>
			</Parameters>
			<WGS84Bounds xmin="-6.000000" ymin="34.750000" xmax="0.000000" ymax="62.330000"/>

Axis Order Example:
<PROJCS name="SWEREF99_TM" wkid="3006" geogcs="GCS_SWEREF99" projection="Transverse_Mercator" unit="Meter" axisOrder="NE">
                     <Parameters>
                           <Parameter name="Central_Meridian" value="15.0"/>
                           <Parameter name="False_Easting" value="500000.0"/>
                           <Parameter name="False_Northing" value="0.0"/>
                           <Parameter name="Latitude_Of_Origin" value="0.0"/>
                           <Parameter name="Scale_Factor" value="0.9996"/>
                     </Parameters>
              </PROJCS>

Consider the following:

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

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

    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 are deleted and re-created automatically by the service.

  4. Start your map service.

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

WMS layer name

The WMS layer name is S57 by default. This value can be changed by updating the WMSServiceLayerName value in the ServerConfiguration.xml file.

  1. Open the 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.

Custom symbology

When set to True, your datasets are converted using custom symbols (SVG) instead of traditional S-52 symbols for those features with lookup values in the CustomSymbolMap.xml. By default (False), S-52 symbology is applied during .senc file creation.

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

    • If you already have .senc files built, you need to manually delete your .senc files before restarting the map service. Otherwise, the symbology changes are not applied. It is recommended that you stop your map service to remove any locks before deleting your .senc files.
    • 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.

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. The Maritime Chart Service is installed with this setting turned off by default. Before turning this setting on, you must understand your dataset update strategy and determine how long it takes to copy a 5 MB file across your network

Once the AutoCellUpdate property is enabled by setting use="true", the Maritime Chart Service detects 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 detects what dataset changes have occurred and updates the service’s .senc and find.dat files, accordingly, while the service is still running. Users only notice the change when the display is refreshed or when search or identify is used on the dataset that is actively being processed.

The delaySeconds setting sets how long the Maritime Chart Service waits before running its logic. For example, if set to 10 seconds, once the Maritime Chart Service detects a change to the datasets folder, it waits 10 seconds before running its logic. If another change is detected before the 10-second delay, the delay starts over. Once it reaches the delaySeconds count value, it processes the changes. Each file that is copied to the datasets folder counts as a change. For example, if you copy 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 cannot 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 the ServerConfiguration.xml file and modify the AutoCellUpdate settings.

    It should look similar to the following:

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

The .senc files are not 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

The color for Maritime Chart Service dataset frames is red, and the color for Custom Chart Builder (CCB) dataset frames is magenta by default. In the ServerConfiguration.xml file, there are two settings: one for Maritime Chart Service named DisplayFramesMCS and another for Custom Chart Builder (CCB) 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 <ArcGIS Server installation drive>:\arcgisserver\directories\maritimeserver\maritimechartservice. This location is in your controlFilesDirectory property. Back up this location if you make any changes. Future installations may require you to overwrite this location.

Note:

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

Learn more about modifying Maritime Chart Service properties

Zones of Confidence Diagram colors

To support the creation of a Zones of Confidence Diagram using Custom Chart Builder (CCB), the ability to set RGB color values is provided.

There are six settings in the ServerConfiguration.xml file, one for each CATZOC category. You can modify any color token value and restart your map service to see the changes.

  1. Open the ServerConfiguration.xml file and modify the ZOCColors CATZOC settings.
    <CATZOC code="1" description="A1" color="#59FCD4" colorDescription=''/>
    <CATZOC code="2" description="A2" color="#50E4DB" colorDescription=''/>
    <CATZOC code="3" description="B" color="#48CCE2" colorDescription=''/>
    <CATZOC code="4" description="C" color="#3FB4EA" colorDescription=''/>
    <CATZOC code="5" description="D" color="#379CF1" colorDescription=''/>
    <CATZOC code="6" description="U" color="#2f89f5" colorDescription=''/>
  2. Click Save.
  3. Stop your map service.
  4. Start your map service.

S-52 display properties

The S52DisplayProperties.xml control file allows the system administrator to configure how the service behaves 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 apps can pass to the service, which allows the display to be modified independently by each client request. You can download sample Maritime Chart Service ArcGIS Web AppBuilder widgets from GitHub that show how to take advantage of these parameters. When the service is started, the settings in S52DisplayProperties.xml are used by default. The sample app displays those values to the user and provides 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 Display Light Sectors:

<Parameter name="DisplayLightSectors" type="E" default="2" value="2">
	<Description>Display light sectors</Description>
	<Comments>New at 10.6.1 Patch 2 </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.

Additional parameters:

  • Area Symbol Size
  • Area Symbolization
  • Attribute Description
  • Color Scheme
  • Compass Rose
  • Dataset Display Range
  • Date Dependency Range
  • Date Dependency Symbol
  • Deep Contour
  • Display AIO Features
  • Display Bathymetric IENC
  • Display Category
  • Display Depth Units
  • Display Frames
  • Display Frames Text
  • Display Frames Text Placement
  • Display Light Sectors
  • Display NOBJNM
  • Display Safe Soundings
  • Honor SCAMIN
  • Intended Usage
  • Isolated Dangers
  • Isolated Dangers Off
  • Label Contours
  • Label Safety Contours
  • Line Symbol Size
  • Moving Centroid
  • Optional Deep Soundings
  • Point Symbolization
  • Remove Duplicate Text
  • Safety Contour
  • Safety Depth
  • Shallow Contour
  • 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 does not display any compass rose points for MAGVAR point features. S-52 symbology is also used by default. 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, and then the service can be restarted. When a compass rose is displayed, the deviation from true north is calculated based on the current date.

Tip:

It's recommended that you remove IntendedUsage and 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, which can be accessed 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. The ParameterGroup name ViewOverGroups is used by default. 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 eight layers.

Note:

You must restart your map service after making changes to the 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 the next section for 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 is turned off by default when brought into an app.
  • 2—The feature layer is turned on by default when brought into an app.

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 file.

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 is displayed unless you turn the parent layer off. For this example, if you turn off soundings, all other information in the service layer is 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 is still 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 is displayed. No other data from the service is 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 are 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 does not work to turn off the layer.

Note:

If the setting is not included, it defaults 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 ViewGroups for each beacon type and modify your associated .dic files.

Special display parameters

The special display parameter settings allow an administrator to optimize their display based on the S-57 datasets they are required to host. These settings allow for fine-tuning, but they typically do not need to be modified.

<ParameterGroup name="DatasetDisplayRange">
		<Description>Dataset Display Range:  Determines at what view scale a dataset is displayed.</Description>	  
 		<DetailedDescription>Controls when your dataset is displayed based on the S-57 dataset's scale and view scale.</DetailedDescription>
		<Comments>New at 10.6.1</Comments>
      		<Parameter name="minZoom" type="F" default="0.05" value="0.05">
				<Description>Minimum dataset display value.</Description>
				<DetailedDescription>Sets the minimum dataset display value.  A larger value requires you to zoom closer before a datasets displays.</DetailedDescription>
      		</Parameter>
      		<Parameter name="maxZoom" type="F" default="1.2" value="1.2">
				<Description>Maximum dataset display value.</Description>
				<DetailedDescription>Sets the maximum dataset display value.</DetailedDescription>
      		</Parameter>
      </ParameterGroup>

	<ParameterGroup name="PointSymbolSize">
		<Description>Point Symbol Size:  Change the size of point symbology.</Description>	  
 		<DetailedDescription>Determines when and how big point symbols display.</DetailedDescription>
		<Comments>New at 10.6.1</Comments>
      		<Parameter name="scaleFactor" type="F" default="1.0" value="1.0">
				<Description>Scale factor.</Description>
      		</Parameter>
      		<Parameter name="minZoom" type="F" default="0.05" value="0.05">
				<Description>Minimum zoom.</Description>
      		</Parameter>
			<Parameter name="maxZoom" type="F" default="1.2" value="1.2">
				<Description>Maximum zoom.</Description>
      		</Parameter>
      </ParameterGroup>

	  <ParameterGroup name="LineSymbolSize">
		<Description>Line Symbol Size:  Change the size of line symbology.</Description>	  
 		<DetailedDescription>Determines when and how big line symbols display.</DetailedDescription>
		<Comments>New at 10.6.1</Comments>
      		<Parameter name="scaleFactor" type="F" default="1.0" value="1.0">
				<Description>Scale factor.</Description>
      		</Parameter>
      		<Parameter name="minZoom" type="F" default="0.05" value="0.05">
				<Description>Minimum zoom.</Description>
      		</Parameter>
			<Parameter name="maxZoom" type="F" default="1.2" value="1.2">
				<Description>Maximum zoom.</Description>
      		</Parameter>
      </ParameterGroup>


        <ParameterGroup name="AreaSymbolSize">
		<Description>Area Symbol Size:  Change the size of area symbology.</Description>
 		<DetailedDescription>Determines when and how big area symbols display.</DetailedDescription>
		<Comments>New at 10.6.1</Comments>
      		<Parameter name="scaleFactor" type="F" default="1.0" value="1.0">
				<Description>Scale factor.</Description>
      		</Parameter>
      		<Parameter name="minZoom" type="F" default="0.05" value="0.05">
				<Description>Minimum zoom.</Description>
      		</Parameter>
			<Parameter name="maxZoom" type="F" default="1.2" value="1.2">
				<Description>Maximum zoom.</Description>
      		</Parameter>
      </ParameterGroup>

	 <ParameterGroup name="TextSize">
		<Description>Text Size:  Change the size of feature text.</Description>		 
 		<DetailedDescription>Determines when and how big feature text display.</DetailedDescription>
		<Comments>New at 10.6.1</Comments>
      		<Parameter name="scaleFactor" type="F" default="1.0" value="1.0">
				<Description>Scale factor.</Description>
      		</Parameter>
      		<Parameter name="minZoom" type="F" default="0.05" value="0.05">
				<Description>Minimum zoom.</Description>
      		</Parameter>
			<Parameter name="maxZoom" type="F" default="1.2" value="1.2">
				<Description>Maximum zoom.</Description>
      		</Parameter>
       </ParameterGroup>

Chart

The chart setting controls when your dataset is displayed based on the S-57 dataset's scale and the view scale. The display of the S-57 datasets can be determined using the following formula where X is your reference scale:

X = Dataset Scale / View Scale

  • If X is < (less than) the minZoom, the dataset is not displayed.
  • If X is > (greater than) the maxZoom, the dataset is displayed as long as another dataset doesn’t have a better reference scale value.
  • If X is within the range of the minZoom or maxZoom, the dataset is displayed.

By increasing the minZoom to a larger number (for example, 0.28), you must 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 is 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, 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 is displayed.

Symbol, Line, and Area

The Symbol, Line, and Area properties all contain a scaleFactor as well as minZoom and maxZoom settings. Changing these values either increases or decreases the size at which your symbols 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 < (less than) the minZoom, set it to minZoom.
  • If X is > (greater than) the 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 either increases or decreases the size at which your text 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 removes 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

Complete the following steps to modify display parameters:

  1. Open the S52DisplayProperties.xml file and modify the necessary settings.
  2. Save the changes.

    The map service must be stopped and restarted for changes to the S52DisplayProperties.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 display with the updated parameters.

If you want your display to be 1:1 as with an ECDIS, you must set your AreaSymbolSize, LineSymbolSize, PointSymbolSize, and TextSize values for minZoom and maxZoom to 1.