Class TLcdS57ModelDescriptor

java.lang.Object
com.luciad.model.TLcdModelDescriptor
com.luciad.format.s57.TLcdS57ModelDescriptor
All Implemented Interfaces:
ILcdDataModelDescriptor, ILcdModelDescriptor, ILcdFeaturedDescriptorProvider, Serializable
Direct Known Subclasses:
TLcdS63ModelDescriptor

public class TLcdS57ModelDescriptor extends TLcdModelDescriptor implements ILcdDataModelDescriptor, ILcdFeaturedDescriptorProvider, Serializable
This ILcdModelDescriptor describes decoded S-57 models. It contains additional information about the S-57 data set, if present:
  • Data set general information:
    • Exchange usage
    • Intended usage
    • Data set name
    • Edition number
    • Update number
    • Update application date
    • Issue date
    • Edition number of S-57
    • Product specification
    • Product specification description
    • Product specification edition number
    • Application profile identification
    • Producing agency
    • Comment
  • Data set geographic reference:
    • Horizontal geodetic datum
    • Vertical datum
    • Sounding datum
    • Compilation scale
    • Units of depth measurement
    • Units of height measurement
    • Units of positional accuracy
  • Data set accuracy:
    • Absolute positional accuracy
    • Absolute measurement accuracy
    • Absolute sounding accuracy
  • This cell's level, also known as navigational purpose.

These properties are explained in "IHO Transfer Standard for Digital Hydrographic Data, Special Publication No. 57", Section 7.3, "Data set descriptive records", p. 3.34.

See Also:
  • Field Details

  • Constructor Details

    • TLcdS57ModelDescriptor

      public TLcdS57ModelDescriptor(String aSourceName, String aDisplayName, String[] aFeatureNames)
      Deprecated.
      Use the constructor with data model parameters instead.
      Creates a new TLcdS57ModelDescriptor.
      Parameters:
      aSourceName - the name of the data source.
      aDisplayName - the display name of the data source.
      aFeatureNames - this value is not used.
    • TLcdS57ModelDescriptor

      public TLcdS57ModelDescriptor(String aSourceName, String aDisplayName, TLcdDataModel aDataModel, Set<TLcdDataType> aModelElementTypes, Set<TLcdDataType> aModelTypes)
      Creates a new TLcdS57ModelDescriptor.
      Parameters:
      aSourceName - the name of the data source.
      aDisplayName - the display name of the data source.
      aDataModel - the data model describing the structure of the model.
      aModelElementTypes - set containing all the data types of which instances occur as elements in the model.
      aModelTypes - set containing all the types of which instances occur (including both top-level elements and child objects) in the model.
  • Method Details

    • getProductType

      public ELcdS57ProductType getProductType()
      Returns the S-57 product type (ENC, AML, ...) of this model.
      Returns:
      the S-57 product type of this model.
      See Also:
    • setProductType

      public void setProductType(ELcdS57ProductType aProductType)
      Sets the S-57 product type (ENC, AML, ...) of this model.
      Parameters:
      aProductType - the S-57 product type of this model.
      See Also:
    • getLevel

      public int getLevel()
      Returns the intended level, also known as the navigational purpose of this cell.

      For a full description of the possible levels, and at what scale they are displayed by default, see TLcdS52DisplaySettings.getScaleDenominators().

      Returns:
      The level, or "navigational purpose" of this cell.
      Since:
      2023.0
    • getWarnings

      public List<Exception> getWarnings()
      Returns the list of warnings (failed checksum, expired subscription license, ...), encountered during decoding of this model.
      Returns:
      the list of warnings encountered during decoding of this model.
    • addWarnings

      public void addWarnings(Collection<? extends Exception> aWarnings)
      Adds warnings to the list of warnings encountered during decoding of this model.
      Parameters:
      aWarnings - the warnings to add
      Since:
      2014.0
    • setNodeCount

      public void setNodeCount(int aNodeCount)
      Sets the number of unique S-57 nodes contained in the model.
      Parameters:
      aNodeCount - the number of unique S-57 nodes contained in the model.
      See Also:
    • getNodeCount

      public int getNodeCount()
      Returns the number of unique S-57 nodes contained in the model.
      Returns:
      the number of unique S-57 nodes contained in the model.
      See Also:
    • setEdgeCount

      public void setEdgeCount(int aEdgeCount)
      Sets the number of unique S-57 edges contained in the model.
      Parameters:
      aEdgeCount - the number of unique S-57 edges contained in the model.
      See Also:
    • getEdgeCount

      public int getEdgeCount()
      Returns:
      the number of unique S-57 faces contained in the model.
      See Also:
    • setFaceCount

      public void setFaceCount(int aFaceCount)
      Sets the number of unique S-57 faces contained in the model.
      Parameters:
      aFaceCount - the number of unique S-57 faces contained in the model.
      See Also:
    • getFaceCount

      public int getFaceCount()
      Returns the number of unique S-57 faces contained in the model.
      Returns:
      the number of unique S-57 faces contained in the model.
      See Also:
    • setExchangeUsage

      public void setExchangeUsage(int aExchangeUsage)
      Sets the exchange purpose of this cell (DSID.EXPP subfield).
      Parameters:
      aExchangeUsage - the exchange purpose of this cell
      See Also:
    • getExchangeUsage

      public int getExchangeUsage()
      Returns the exchange purpose of this cell (DSID.EXPP subfield). Possible values are:
      • 1: Data set is new
      • 2: Data set is a revision to an existing one
      Returns:
      the exchange purpose of this cell
    • setIntendedUsage

      public void setIntendedUsage(int aIntendedUsage)
      Sets the intended usage of this cell (DSID.INTU subfield).
      Parameters:
      aIntendedUsage - the intended usage of this cell
      See Also:
    • getIntendedUsage

      public int getIntendedUsage()
      Returns the intended usage of this cell (DSID.INTU subfield). A numeric value indicating the intended use for which the data has been compiled. See S-57 Appendix B - Product Specifications for more details.
      Returns:
      the intended usage of this cell
    • setDataSetName

      public void setDataSetName(String aDataSetName)
      Sets the name of this cell (DSID.DSNM subfield).
      Parameters:
      aDataSetName - the name of this dataset
      See Also:
    • getDataSetName

      public String getDataSetName()
      Returns the name of this cell (DSID.DSNM subfield). See S-57 Appendix B - Product Specifications for more details.
      Returns:
      the name of this cell
    • setEditionNumber

      public void setEditionNumber(String aEditionNumber)
      Sets the edition number of this cell (DSID.EDTN subfield).
      Parameters:
      aEditionNumber - the edition number of this cell
      See Also:
    • getEditionNumber

      public String getEditionNumber()
      Returns the edition number of this cell (DSID.EDTN subfield). See S-57 Appendix B - Product Specifications for more details.
      Returns:
      the edition number of this cell
    • setUpdateNumber

      public void setUpdateNumber(String aUpdateNumber)
      Sets the update number of this cell (DSID.UPDN subfield).
      Parameters:
      aUpdateNumber - the update number of this cell
      See Also:
    • getUpdateNumber

      public String getUpdateNumber()
      Returns the update number of this cell (DSID.UPDN subfield). The update number typically corresponds to the extension of the cell file (e.g. '.000' corresponds to update 0, '.001' to update 1, and so on). See S-57 Appendix B - Product Specifications for more details.
      Returns:
      the update number of this cell
    • setUpdateApplicationDate

      public void setUpdateApplicationDate(Date aUpdateApplicationDate)
      Sets the update application date of this cell (DSID.UADT subfield).
      Parameters:
      aUpdateApplicationDate - the update application date of this cell
      See Also:
    • getUpdateApplicationDate

      public Date getUpdateApplicationDate()
      Returns the update application date of this cell (DSID.UADT subfield). See S-57 Appendix B - Product Specifications for more details.
      Returns:
      the update application date of this cell
    • setIssueDate

      public void setIssueDate(Date aIssueDate)
      Sets the issue date of this cell (DSID.ISDT subfield).
      Parameters:
      aIssueDate - the issue date of this cell
      See Also:
    • getIssueDate

      public Date getIssueDate()
      Returns the issue date of this cell (DSID.ISDT subfield). The issue date is the date on which the data was made available by the data producer. See S-57 Appendix B - Product Specifications for more details.
      Returns:
      the issue date of this cell
    • setEditionNumberOfS57

      public void setEditionNumberOfS57(String aEditionNumberOfS57)
      Sets the edition number of S-57 of this cell (DSID.STED subfield).
      Parameters:
      aEditionNumberOfS57 - the edition number of S-57 of this cell
      See Also:
    • getEditionNumberOfS57

      public String getEditionNumberOfS57()
      Returns the edition number of S-57 of this cell (DSID.STED subfield). The edition number of S-57 typically is '03.1'.
      Returns:
      the edition number of S-57 of this cell.
    • setProductSpecification

      public void setProductSpecification(int aProductSpecification)
      Sets the product specification of this cell (DSID.PRSP subfield).
      Parameters:
      aProductSpecification - the product specification of this cell
      See Also:
    • getProductSpecification

      public int getProductSpecification()
      Returns the product specification of this cell (DSID.PRSP subfield). Typical values are:
      • 1: ENC
      • 51: MFF (AML)
      • 52: RAL (AML)
      • 53: LBO (AML)
      • 54: CLB (AML)
      • 55: ESB (AML)
      • 56: SBO (AML)
      Returns:
      the product specification of this cell
    • setProductSpecificationDescription

      public void setProductSpecificationDescription(String aProductSpecificationDescription)
      Sets the product specification description of this cell (DSID.PSDN subfield).
      Parameters:
      aProductSpecificationDescription - the product specification description of this cell
      See Also:
    • getProductSpecificationDescription

      public String getProductSpecificationDescription()
      Returns the product specification description of this cell (DSID.PSDN subfield). This is a string for identifying a non standard product specification.
      Returns:
      the product specification description of this cell
    • setProductSpecificationEditionNumber

      public void setProductSpecificationEditionNumber(String aProductSpecificationEditionNumber)
      Sets the product specification edition number of this cell (DSID.PRED subfield).
      Parameters:
      aProductSpecificationEditionNumber - the product specification edition number of this cell
      See Also:
    • getProductSpecificationEditionNumber

      public String getProductSpecificationEditionNumber()
      Returns the product specification edition number of this cell (DSID.PRED subfield).
      Returns:
      the product specification edition number of this cell
    • setApplicationProfileIdentification

      public void setApplicationProfileIdentification(int aApplicationProfileIdentification)
      Sets the application profile identification of this cell (DSID.PROF subfield).
      Parameters:
      aApplicationProfileIdentification - the application profile identification of this cell
      See Also:
    • getApplicationProfileIdentification

      public int getApplicationProfileIdentification()
      Returns the the application profile identification of this cell (DSID.PROF subfield). Possible values are:
      • 1: ENC New
      • 2: ENC Revision
      • 3: IHO Data dictionary
      Returns:
      the the application profile identification of this cell
    • setProducingAgency

      public void setProducingAgency(int aProducingAgency)
      Sets the producing agency of this cell (DSID.AGEN subfield).
      Parameters:
      aProducingAgency - the producing agency of this cell
      See Also:
    • getProducingAgency

      public int getProducingAgency()
      Returns the producing agency of this cell (DSID.AGEN subfield).

      With this key, you can look up the full details of the agency through https://iho.int/en/standards-and-specifications.

      Returns:
      the producing agency of this cell
    • setComment

      public void setComment(String aComment)
      Sets the DSID comment of this cell (DSID.COMT subfield).
      Parameters:
      aComment - the DSID comment of this cell
      See Also:
    • getComment

      public String getComment()
      Returns the DSID comment of this cell (DSID.COMT subfield).
      Returns:
      the DSID comment of this cell
    • setHorizontalGeodeticDatum

      public void setHorizontalGeodeticDatum(int aHorizontalGeodeticDatum)
      Sets the horizontal geodetic datum of this cell (DSPM.HDAT subfield).
      Parameters:
      aHorizontalGeodeticDatum - the horizontal geodetic datum of this cell
      See Also:
    • getHorizontalGeodeticDatum

      public int getHorizontalGeodeticDatum()
      Returns the horizontal geodetic datum of this cell (DSPM.HDAT subfield). See S-57 Appendix A - Attributes for a full list of possible values (HORDAT attribute).
      Returns:
      the horizontal geodetic datum of this cell
    • setVerticalDatum

      public void setVerticalDatum(int aVerticalDatum)
      Sets the vertical datum of this cell (DSPM.VDAT subfield).
      Parameters:
      aVerticalDatum - the vertical datum of this cell
      See Also:
    • getVerticalDatum

      public int getVerticalDatum()
      Returns the vertical datum of this cell (DSPM.VDAT subfield). See S-57 Appendix A - Attributes for a full list of possible values (VERDAT attribute).
      Returns:
      the vertical datum of this cell
    • setSoundingDatum

      public void setSoundingDatum(int aSoundingDatum)
      Sets the sounding datum of this cell (DSPM.SDAT subfield).
      Parameters:
      aSoundingDatum - the vertical datum of this cell
      See Also:
    • getSoundingDatum

      public int getSoundingDatum()
      Returns the sounding datum of this cell (DSPM.SDAT subfield). See S-57 Appendix A - Attributes for a full list of possible values (VERDAT attribute).
      Returns:
      the sounding datum of this cell
    • setCompilationScale

      public void setCompilationScale(int aCompilationScale)
      Sets the denominator of the compilation scale of this cell (DSPM.CSCL subfield).
      Parameters:
      aCompilationScale - the denominator of the compilation scale of this cell
      See Also:
    • getCompilationScale

      public int getCompilationScale()
      Returns the denominator of the compilation scale of this cell (DSPM.CSCL subfield). For example, a scale of 1:25000 will return a value 25000.
      Returns:
      the denominator of the compilation scale of this cell.
    • setUnitsOfDepthMeasurement

      public void setUnitsOfDepthMeasurement(int aUnitsOfDepthMeasurement)
      Sets the units of depth measurement of this cell (DSPM.DUNI subfield).
      Parameters:
      aUnitsOfDepthMeasurement - the units of depth measurement of this cell
      See Also:
    • getUnitsOfDepthMeasurement

      public int getUnitsOfDepthMeasurement()
      Returns the units of depth measurement of this cell (DSPM.DUNI subfield). Possible values are DUNITS attribute values:
      • 1: metres
      • 2: fathoms and feet
      • 3: feet
      • 4: fathoms and fractions
      Returns:
      the units of depth measurement of this cell
    • setUnitsOfHeightMeasurement

      public void setUnitsOfHeightMeasurement(int aUnitsOfHeightMeasurement)
      Sets the units of height measurement of this cell (DSPM.HUNI subfield).
      Parameters:
      aUnitsOfHeightMeasurement - the units of height measurement of this cell
      See Also:
    • getUnitsOfHeightMeasurement

      public int getUnitsOfHeightMeasurement()
      Returns the units of height measurement of this cell (DSPM.HUNI subfield). Possible values are HUNITS attribute values:
      • 1: metres
      • 2: feet
      Returns:
      the units of height measurement of this cell
    • setUnitsOfPositionalAccuracy

      public void setUnitsOfPositionalAccuracy(int aUnitsOfPositionalAccuracy)
      Sets the units of positional accuracy of this cell (DSPM.PUNI subfield).
      Parameters:
      aUnitsOfPositionalAccuracy - the units of positional accuracy of this cell
      See Also:
    • getUnitsOfPositionalAccuracy

      public int getUnitsOfPositionalAccuracy()
      Returns the units of positional accuracy of this cell (DSPM.PUNI subfield). Possible values are PUNITS attribute values:
      • 1: metres
      • 2: degrees of arc
      • 3: millimeters
      • 4: feet
      • 5: cables
      *
      Returns:
      the units of positional accuracy of this cell
    • setAbsolutePositionalAccuracy

      public void setAbsolutePositionalAccuracy(double aAbsolutePositionalAccuracy)
      Sets the absolute positional accuracy of this cell (DSAC.PACC subfield).
      Parameters:
      aAbsolutePositionalAccuracy - the absolute positional accuracy of this cell
      See Also:
    • getAbsolutePositionalAccuracy

      public double getAbsolutePositionalAccuracy()
      Returns the absolute positional accuracy of this cell (DSAC.PACC subfield). The absolute positional accuracy is the best estimate of the positional accuracy of the data. The expected input is the radius of the two-dimensional error.
      Returns:
      the absolute positional accuracy of this cell
    • setAbsoluteMeasurementAccuracy

      public void setAbsoluteMeasurementAccuracy(double aAbsoluteMeasurementAccuracy)
      Sets the absolute measurement accuracy of this cell (DSAC.HACC subfield).
      Parameters:
      aAbsoluteMeasurementAccuracy - the absolute positional accuracy of this cell
      See Also:
    • getAbsoluteMeasurementAccuracy

      public double getAbsoluteMeasurementAccuracy()
      Returns the absolute measurement accuracy of this cell (DSAC.HACC subfield). The absolute measurement accuracy is the best estimate of the horizontal/vertical measurement accuracy of the data. The error is assumed to be both positive and negative. Subfield must be used to indicate the accuracy of horizontal/vertical measurements. Accuracy of soundings is encoded in the SACC subfield.
      Returns:
      the absolute measurement accuracy of this cell
    • setAbsoluteSoundingAccuracy

      public void setAbsoluteSoundingAccuracy(double aAbsoluteSoundingAccuracy)
      Sets the absolute sounding accuracy of this cell (DSAC.SACC subfield).
      Parameters:
      aAbsoluteSoundingAccuracy - the absolute sounding accuracy of this cell
      See Also:
    • getAbsoluteSoundingAccuracy

      public double getAbsoluteSoundingAccuracy()
      Returns the absolute sounding accuracy of this cell (DSAC.SACC subfield). The absolute sounding accuracy is the best estimate of the sounding accuracy of the data. The error is assumed to be both positive and negative. Subfield must be used to indicate the vertical accuracy of soundings. Accuracy of horizontal/ vertical measurements is encoded in the HACC subfield.
      Returns:
      the absolute sounding accuracy of this cell
    • getATTFLexicalLevel

      public int getATTFLexicalLevel()
    • setATTFLexicalLevel

      public void setATTFLexicalLevel(int aATTFLexicalLevel)
    • getNATFLexicalLevel

      public int getNATFLexicalLevel()
    • setNATFLexicalLevel

      public void setNATFLexicalLevel(int aNATFLexicalLevel)
    • getDataModel

      public TLcdDataModel getDataModel()
      Description copied from interface: ILcdDataModelDescriptor

      Returns the data model that describes the elements of the model. Note that not necessarily all data in the model will be of a type of this data model. Very likely, types from the dependencies of the returned data model are used as well.

      In case the model accepts objects from multiple data models, an anonymous data model that depends on all these data models should be returned (see TLcdDataModelBuilder.createAnonymousDataModel(java.util.Collection)).

      Specified by:
      getDataModel in interface ILcdDataModelDescriptor
      Returns:
      the data model that describes the elements of the model
    • getModelElementTypes

      public Set<TLcdDataType> getModelElementTypes()
      Description copied from interface: ILcdDataModelDescriptor

      Returns a set containing all the data types of which instances can be elements in the model associated with this descriptor. Implementations are free to limit the result to only include the types of which there are actually elements in the model; but they are not required to do so.

      Implementations should return null in case they don't know which element types are present in the model.

      For each element of the model associated with this model descriptor, the following holds true : getModelElementTypes().contains( element.getDataType() ).

      Specified by:
      getModelElementTypes in interface ILcdDataModelDescriptor
      Returns:
      a set containing all the data types of which instances can be elements in the model associated with this descriptor
    • getModelTypes

      public Set<TLcdDataType> getModelTypes()
      Description copied from interface: ILcdDataModelDescriptor

      Returns a set containing all the types of which instances can be used (including both top-level elements and child objects) in the model associated with this descriptor. Implementations are free to limit the result to only include the types of which there are actually instances in the model; but they are not required to do so.

      A simple and correct implementation would be to return getDataModel().getTypes(). Implementations are encouraged to return a subset of this set if they can do so without spending an unreasonable amount of resources.

      Implementations should return null in case they don't know which types are present in the model.

      Specified by:
      getModelTypes in interface ILcdDataModelDescriptor
      Returns:
      a set containing all the data types of which instances can be used in the model associated with this descriptor
    • getFeaturedDescriptor

      public ILcdFeaturedDescriptor getFeaturedDescriptor(ILcdFeatured aFeatured)
      Description copied from interface: ILcdFeaturedDescriptorProvider
      Gets a ILcdFeaturedDescriptor that describes the ILcdFeatured passed.
      Specified by:
      getFeaturedDescriptor in interface ILcdFeaturedDescriptorProvider
      Parameters:
      aFeatured - a featured object to retrieve a featured descriptor for.
      Returns:
      a ILcdFeaturedDescriptor that describes the ILcdFeatured passed.