This section describes the process needed to create an MIO product. Other specialized products can be created using similar methods.
Create Product Dictionary
The product dictionary is an XML file that defines available features and attributes. It is used in conjunction with the profile to form a product catalogue.
You should create a separate dictionary with its own file name then add specific features and attributes. You can use an existing dictionary and rename it or create a new dictionary.
The following guidelines should be followed:
• The feature or attribute acronym must be unique. This applies not only to S-57 Composer, but worldwide. See the International Hydrographic Organization (IHO) Registry to view existing feature and attributes.
• The feature or attribute acronym should be six characters long. This reduces compatibility issues with other software applications that can view the product file.
• The ExternalID and ID attributes are currently not used, but it is recommended that you specify a unique ID for both to match the ID entered in the object lookup table.
• The Name, Description, References and Remarks attributes are not mandatory and can consist of any text, though they are not of unlimited size.
• The Type attribute is for administrative purposes only. It makes it easier to separate types of object classes but is not exported to the S-57 file.
• The <ExpectedValues> and <ExpectedValue> tags are used only if the values are an enumerated or numbered list.
The example MIO contains two features as listed here:
Feature Acronym | Description | Type |
|---|---|---|
crlref | Coral Reef | Point, line, area |
mpaare | Marine Protected Area | Point, line, area |
The example MIO contains the following attributes:
Attribute Acronym | Description | Type |
|---|---|---|
density | Biologic cover density | List |
bndcit | Boundary citation | String |
catiuc | Category of IUCN protected area | List |
catref | Category of reef | Enumeration |
crlzne | Coral ecological zone | Enumeration |
biocov | Ecosystem biological zone | List |
geostr | Reef geomorphological structures | Enumeration |
confcs | Conservation focus | List |
consty | Constancy of protection | Enumeration |
contct | Contact information | String |
ecoscl | Ecological scale of protection | Enumeration |
lglmnd | Legal mandate | String |
levprt | Level of protection afforded to resources | Enumeration |
manage | Management entity | String |
perman | Permanence of protection | Enumeration |
purpos | Purpose of marine management area | String |
regcit | Regulations citation | String |
websit | Websites | String |
The attribute entries must correspond to the structure of the product dictionary. This is an example of an entry for a biocov attribute class:
<AttributeClass Acronym="biocov" ID="38" Type="LIST"> |
<Name>Coral Ecosystem Biological Cover</Name> |
<Description></Description> |
<References>not specified;</References> |
<Remarks></Remarks> |
<DisplayFormat>XX</DisplayFormat> |
<ExpectedValues> |
<ExpectedValue Value="0" Description="-" /> |
<ExpectedValue Value="1" Description="Live Coral" /> |
<ExpectedValue Value="2" Description="Mollusk reef" /> |
<ExpectedValue Value="3" Description="Annelid reef" /> |
<ExpectedValue Value="6" Description="Seagrass" /> |
<ExpectedValue Value="7" Description="Macroalgae" /> |
<ExpectedValue Value="8" Description="Coralline Algae" /> |
<ExpectedValue Value="9" Description="Turf Algae" /> |
<ExpectedValue Value="10" Description="Uncolonized" /> |
<ExpectedValue Value="11" Description="Unknown" /> |
<ExpectedValue Value="12" Description="Unclassified" /> |
</ExpectedValues> |
</AttributeClass> |
The feature entries must also correspond to the structure of the product dictionary. This is example of an feature class entry for the crlref feature.
<ObjectClass Acronym="crlref" ID="1" Type="GEOGRAPHIC"> |
<Name>Coral Reef</Name> |
<Description>Definition: reef (general) - A mass of rock or coral |
which either reaches close to the sea surface or is exposed at |
low tide, posing a hazard to navigation. (IHO Dictionary, S-32, |
5th Edition) |
Coral reef - A reef, often of large extent, composed |
chiefly of coral and its derivatives. (IHO Dictionary, S-32, |
5th Edition) |
</Description> |
<References>not specified;</References> |
<Remarks>Remarks: </Remarks> |
</ObjectClass> |
When you are finished, save the file to ...\CARIS\<application>\<version>\system\S57Config\system.
Create Product Profile
A profile defines links between product features and attributes, including relationships and allowed primitives. The profile is combined with a dictionary to form a product catalogue.
For a custom product type, you should create a separate profile with its own file name, then add features and attributes.
Attribute entries must correspond to the structure of the product profile. This is an example of the biocov attribute class.
<Attribute value="biocov"> |
<Permittedvalue value="1" /> |
<Permittedvalue value="2" /> |
<Permittedvalue value="3" /> |
<Permittedvalue value="6" /> |
<Permittedvalue value="7" /> |
<Permittedvalue value="8" /> |
<Permittedvalue value="9" /> |
<Permittedvalue value="10" /> |
<Permittedvalue value="11" /> |
<Permittedvalue value="12" /> |
</Attribute> |
Feature entries must correspond to the structure of the product dictionary. This is an example of a crlref feature class entry.
<Object value="crlref"> |
<Primitives value="ALP" /> |
<Attribute value="COLOUR" /> |
<Attribute value="INFORM" /> |
<Attribute value="NATQUA" /> |
<Attribute value="NATSUR" /> |
<Attribute value="NINFOM" /> |
<Attribute value="NOBJNM" /> |
<Attribute value="NTXTDS" /> |
<Attribute value="OBJNAM" /> |
<Attribute value="PICREP" /> |
<Attribute value="RECDAT" /> |
<Attribute value="RECIND" /> |
<Attribute value="SCAMAX" /> |
<Attribute value="SCAMIN" /> |
<Attribute value="SORDAT" /> |
<Attribute value="SORIND" /> |
<Attribute value="TXTDSC" /> |
<Attribute value="biocov" /> |
<Attribute value="catref"> |
<Mandatory /> |
</Attribute> |
<Attribute value="crlzne" /> |
<Attribute value="densty" /> |
<Attribute value="geostr" /> |
</Object> |
When you are finished, save the file to ...\CARIS\<application>\<version>\system\S57Config\system
Add Feature and Attribute Code Entries
S-57 files do not contain feature or attribute acronyms directly. Instead they contain numeric codes that are matched to the feature or attribute acronym. When an S-57 file is read or written, the application looks up the feature acronym matching the code and vice versa.
All numeric codes must be unique.
There are two lookup files:
• obj_lut.txt matches feature acronyms to numeric codes
• atr_lut.txt matches attribute acronyms to numeric codes
Both files are located in ...\CARIS\<application>\<version>\system\S57Config\system.
This is an example of obj_lut.txt:
ADMARE 1 |
AIRARE 2 |
ACHBRT 3 |
ACHARE 4 |
BCNCAR 5 |
BCNISD 6 |
BCNLAT 7 |
BCNSAW 8 |
BCNSPP 9 |
BERTHS 10 |
BRIDGE 11 |
BUISGL 12 |
The features and attributes in the catalogue must have unique numeric codes. Every feature and attribute acronym has to be added to these files and assigned a numeric value.
To edit the catalogue:
1. Open obj_lut.txt.
2. Add these two lines:
crlref 30500
mpaare 30501
3. Save and close the file.
Repeat for attribute acronyms in atr_lut.txt. Each attribute must be added and assigned a unique numeric code.
4. Save and close the file.
Create Group Table
When a product is exported to an S-57 file, you must indicate which features are Group 1 (skin-of-the-earth) and which features are Group 2 (non-skin-of-the-earth). The Group table defines the two groups.
This is an example of a group table for an ENC:
<?xml version="1.0" encoding="UTF-8" ?> |
|
<GroupLookupTable version="1.0" title="ENC Group Lookup Table"> |
<group value="1"> |
<object acronym="DEPARE" primitive="A" /> |
<object acronym="DRGARE" primitive="A" /> |
<object acronym="FLODOC" primitive="A" /> |
<object acronym="HULKES" primitive="A" /> |
<object acronym="LNDARE" primitive="A" /> |
<object acronym="PONTON" primitive="A" /> |
<object acronym="UNSARE" primitive="A" /> |
</group> |
<group value="2"> |
<object acronym="*" primitive="*" /> |
</group> |
</GroupLookupTable> |
In this example, seven features are declared as Group 1, according to the ENC specification. All other features are considered Group 2.
All S-57 group tables are stored in ...\CARIS\<application>\<version>\system\S57Config\system.
Since the example MIO contains no Group 1 features, all features by default are Group 2.
This XML file can be used as a group table for the MIO product:
<?xml version="1.0" encoding="UTF-8" ?> |
<GroupLookupTable version="1.0" title="MIO Group Lookup Table"> |
<group value="2"> |
<object acronym="*" primitive="*" /> |
</group> |
</GroupLookupTable> |
Each product must have its own group table so the above file must be saved as separate file.
Update Product Information File
A product information file defines the product types that can be created. For more information, see Product Information File.
All product-related information must be between the <product> tags. The attributes associated with that tag must also be included. For example,
<product id="MIO" version="1.0" key="MIO">
When creating a product file, make sure it uses the same structure as other products.
Use the Product Information option in the Options dialog box to define the location of your custom product information files.
Update Catalogue Control File
The catalogue control file links the data opened in S-57 Composer with the appropriate product catalogue.
The file is named cataloguecontrol.xml and is located in ...\CARIS\<application>\<version>\system\.
Use the Catalogue Control option in the Options dialog box to define the location of your custom catalogue control files.
See the following example:
<Product Name="MIO 1.0" Id="60" Version="1.0"> |
<Profile Type="XML" Name="%S57Config%\system\mio_profile.xml"/> |
<Dictionary Type="XML" Name="%S57Config%\system\s5731Pool.xml"/> |
<Dictionary Type="XML" Name="%S57Config%\system\mio_dict.xml"/> |
</Product> |
The S-57 ENC 3.1 dictionary is also used when opening an MIO.
Once the files are complete, you can open an MIO product. When you use the New Product command, the Marine Information Overlays are listed in the product type option.