ISOMetadata: ISOMetadata

ISOMetadataR Documentation

ISOMetadata

Description

ISOMetadata

ISOMetadata

Format

R6Class object.

Value

Object of R6Class for modelling an ISO Metadata

Super classes

geometa::geometaLogger -> geometa::ISOAbstractObject -> ISOMetadata

Public fields

fileIdentifier

fileIdentifier [0..1] : character

language

language [0..1] : character

characterSet

characterSet [0..1] : ISOCharacterSet = "utf8"

parentIdentifier

parentIdentifier [0..1] : character

hierarchyLevel

hierarchyLevel [0..*] : ISOHierarchyLevel = "dataset"

hierarchyLevelName

hierarchyLevelName [0..*] : character

contact

contact [1..*] : ISOResponsibleParty

dateStamp

dateStamp : POSIXct/POSIXt

metadataStandardName

metadataStandardName [0..1] : character

metadataStandardVersion

metadataStandardVersion [0..1] : character

dataSetURI

dataSetURI [0..1] : character

locale

locale [0..*]: ISOLocale

spatialRepresentationInfo

spatialRepresentationInfo [0..*]: ISOSpatialRepresentation

referenceSystemInfo

referenceSystemInfo [0..*]: ISOReferenceSystem

metadataExtensionInfo

metadataExtensionInfo [0..*]: ISOMetadataExtensionInformation

identificationInfo

identificationInfo [1..*]: ISOIdentification

contentInfo

contentInfo [0..*]

distributionInfo

distributionInfo [0..1] : ISODistribution

dataQualityInfo

dataQualityInfo [0..*]: ISODataQuality

metadataMaintenance

metadataMaintenance [0..1]: ISOMaintenanceInformation

portrayalCatalogueInfo

portrayalCatalogueInfo [0..*]

applicationSchemaInformation

applicationSchemaInfo [0..*]

Methods

Public methods

Inherited methods

Method new()

Initializes object

Usage
ISOMetadata$new(xml = NULL)
Arguments
xml

object of class XMLInternalNode-class


Method setFileIdentifier()

Set file identifier

Usage
ISOMetadata$setFileIdentifier(fileIdentifier)
Arguments
fileIdentifier

file identifier


Method setLanguage()

Set language

Usage
ISOMetadata$setLanguage(locale)
Arguments
locale

object of class ISOLanguage or any character from values returned by ISOLanguages$values()


Method setCharacterSet()

Set charset

Usage
ISOMetadata$setCharacterSet(charset)
Arguments
charset

object of class ISOCharacterSet or any character from values returned by ISOCharacterSet$values()


Method setParentIdentifier()

Set parent identifier

Usage
ISOMetadata$setParentIdentifier(parentIdentifier)
Arguments
parentIdentifier

parent identifier


Method addHierarchyLevel()

Adds hierarchy level

Usage
ISOMetadata$addHierarchyLevel(level)
Arguments
level

object of class ISOHierarchyLevel or any character from values returned by ISOHierarchyLevel$values()

Returns

TRUE if added, FALSE otherwise


Method setHierarchyLevel()

Sets hierarchy level

Usage
ISOMetadata$setHierarchyLevel(level)
Arguments
level

object of class ISOHierarchyLevel or any character from values returned by ISOHierarchyLevel$values()

Returns

TRUE if added, FALSE otherwise


Method delHierarchyLevel()

Deletes hierarchy level

Usage
ISOMetadata$delHierarchyLevel(level)
Arguments
level

object of class ISOHierarchyLevel or any character from values returned by ISOHierarchyLevel$values()

Returns

TRUE if deleted, FALSE otherwise


Method addHierarchyLevelName()

Adds hierarchy level name

Usage
ISOMetadata$addHierarchyLevelName(levelName)
Arguments
levelName

object of class character

Returns

TRUE if added, FALSE otherwise


Method delHierarchyLevelName()

Deletes hierarchy level name

Usage
ISOMetadata$delHierarchyLevelName(levelName)
Arguments
levelName

object of class character

Returns

TRUE if deleted, FALSE otherwise


Method addContact()

Adds contact

Usage
ISOMetadata$addContact(contact)
Arguments
contact

object of class ISOResponsibleParty

Returns

TRUE if added, FALSE otherwise


Method delContact()

Deletes contact

Usage
ISOMetadata$delContact(contact)
Arguments
contact

object of class ISOResponsibleParty

Returns

TRUE if deleted, FALSE otherwise


Method setDateStamp()

Set date stamp

Usage
ISOMetadata$setDateStamp(date)
Arguments
date

date


Method setMetadataStandardName()

Set metadata standard name

Usage
ISOMetadata$setMetadataStandardName(name)
Arguments
name

name


Method setMetadataStandardVersion()

Set metadata standard version

Usage
ISOMetadata$setMetadataStandardVersion(version)
Arguments
version

version


Method setDataSetURI()

Set dataset URI

Usage
ISOMetadata$setDataSetURI(dataSetURI)
Arguments
dataSetURI

dataset URI


Method addLocale()

Adds locale

Usage
ISOMetadata$addLocale(locale)
Arguments
locale

object of class ISOLocale

Returns

TRUE if added, FALSE otherwise


Method delLocale()

Deletes locale

Usage
ISOMetadata$delLocale(locale)
Arguments
locale

object of class ISOLocale

Returns

TRUE if deleted, FALSE otherwise


Method addSpatialRepresentationInfo()

Adds spatial representation info

Usage
ISOMetadata$addSpatialRepresentationInfo(spatialRepresentationInfo)
Arguments
spatialRepresentationInfo

object of class ISOSpatialRepresentation

Returns

TRUE if added, FALSE otherwise


Method setSpatialRepresentationInfo()

Sets spatial representation info

Usage
ISOMetadata$setSpatialRepresentationInfo(spatialRepresentationInfo)
Arguments
spatialRepresentationInfo

object of class ISOSpatialRepresentation

Returns

TRUE if added, FALSE otherwise


Method delSpatialRepresentationInfo()

Deletes spatial representation info

Usage
ISOMetadata$delSpatialRepresentationInfo(spatialRepresentationInfo)
Arguments
spatialRepresentationInfo

object of class ISOSpatialRepresentation

Returns

TRUE if deleted, FALSE otherwise


Method addReferenceSystemInfo()

Adds reference system info

Usage
ISOMetadata$addReferenceSystemInfo(referenceSystemInfo)
Arguments
referenceSystemInfo

object of class ISOReferenceSystem

Returns

TRUE if added, FALSE otherwise


Method setReferenceSystemInfo()

Sets reference system info

Usage
ISOMetadata$setReferenceSystemInfo(referenceSystemInfo)
Arguments
referenceSystemInfo

object of class ISOReferenceSystem

Returns

TRUE if added, FALSE otherwise


Method delReferenceSystemInfo()

Deletes reference system info

Usage
ISOMetadata$delReferenceSystemInfo(referenceSystemInfo)
Arguments
referenceSystemInfo

object of class ISOReferenceSystem

Returns

TRUE if deleted, FALSE otherwise


Method addMetadataExtensionInfo()

Adds metadata extension info

Usage
ISOMetadata$addMetadataExtensionInfo(metadataExtensionInfo)
Arguments
metadataExtensionInfo

object of class ISOMetadataExtensionInformation

Returns

TRUE if added, FALSE otherwise


Method delMetadataExtensionInfo()

Deletes metadata extension info

Usage
ISOMetadata$delMetadataExtensionInfo(metadataExtensionInfo)
Arguments
metadataExtensionInfo

object of class ISOMetadataExtensionInformation

Returns

TRUE if deleted, FALSE otherwise


Method addIdentificationInfo()

Adds metadata extension info

Usage
ISOMetadata$addIdentificationInfo(identificationInfo)
Arguments
identificationInfo

object of class inheriting ISOIdentification

Returns

TRUE if added, FALSE otherwise


Method setIdentificationInfo()

Sets metadata extension info

Usage
ISOMetadata$setIdentificationInfo(identificationInfo)
Arguments
identificationInfo

object of class inheriting ISOIdentification

Returns

TRUE if added, FALSE otherwise


Method delIdentificationInfo()

Deletes metadata extension info

Usage
ISOMetadata$delIdentificationInfo(identificationInfo)
Arguments
identificationInfo

object of class inheriting ISOIdentification

Returns

TRUE if deleted, FALSE otherwise


Method setDistributionInfo()

Sets metadata extension info

Usage
ISOMetadata$setDistributionInfo(distributionInfo)
Arguments
distributionInfo

object of class ISODistribution

Returns

TRUE if set, FALSE otherwise


Method addDataQualityInfo()

Adds data quality info

Usage
ISOMetadata$addDataQualityInfo(dataQualityInfo)
Arguments
dataQualityInfo

object of class ISODataQuality

Returns

TRUE if added, FALSE otherwise


Method setDataQualityInfo()

Sets data quality info

Usage
ISOMetadata$setDataQualityInfo(dataQualityInfo)
Arguments
dataQualityInfo

object of class ISODataQuality

Returns

TRUE if added, FALSE otherwise


Method delDataQualityInfo()

Deletes data quality info

Usage
ISOMetadata$delDataQualityInfo(dataQualityInfo)
Arguments
dataQualityInfo

object of class ISODataQuality

Returns

TRUE if deleted, FALSE otherwise


Method setMetadataMaintenance()

Sets metadata maintenance

Usage
ISOMetadata$setMetadataMaintenance(metadataMaintenance)
Arguments
metadataMaintenance

object of class ISOMaintenanceInformation

Returns

TRUE if added, FALSE otherwise


Method addContentInfo()

Adds content information

Usage
ISOMetadata$addContentInfo(contentInfo)
Arguments
contentInfo

object of class inheriting ISOContentInformation

Returns

TRUE if added, FALSE otherwise


Method delContentInfo()

Deletes content information

Usage
ISOMetadata$delContentInfo(contentInfo)
Arguments
contentInfo

object of class inheriting ISOContentInformation

Returns

TRUE if deleted, FALSE otherwise


Method clone()

The objects of this class are cloneable with this method.

Usage
ISOMetadata$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

Author(s)

Emmanuel Blondel <emmanuel.blondel1@gmail.com>

References

ISO 19115:2003 - Geographic information – Metadata

Examples

    #example 1 - WRITE: Create an ISO metadata and encode it as XML
    #######################################################
    md = ISOMetadata$new()
    md$setFileIdentifier("my-metadata-identifier")
    md$setParentIdentifier("my-parent-metadata-identifier")
    md$setCharacterSet("utf8")
    md$setLanguage("eng")
    md$setDateStamp(ISOdate(2015, 1, 1, 1))
    md$setMetadataStandardName("ISO 19115:2003/19139")
    md$setMetadataStandardVersion("1.0")
    md$setDataSetURI("my-dataset-identifier")
    
    #add 3 contacts
    for(i in 1:3){
      rp <- ISOResponsibleParty$new()
      rp$setIndividualName(paste0("someone",i))
      rp$setOrganisationName("somewhere")
      rp$setPositionName(paste0("someposition",i))
      rp$setRole("pointOfContact")
      contact <- ISOContact$new()
      phone <- ISOTelephone$new()
      phone$setVoice(paste0("myphonenumber",i))
      phone$setFacsimile(paste0("myfacsimile",i))
      contact$setPhone(phone)
      address <- ISOAddress$new()
      address$setDeliveryPoint("theaddress")
      address$setCity("thecity")
      address$setPostalCode("111")
      address$setCountry("France")
      address$setEmail("someone@theorg.org")
      contact$setAddress(address)
      res <- ISOOnlineResource$new()
      res$setLinkage("http://somelink")
      res$setName("someresourcename")
      contact$setOnlineResource(res)
      rp$setContactInfo(contact)
      md$addContact(rp)
   }
   
   #VectorSpatialRepresentation
   vsr <- ISOVectorSpatialRepresentation$new()
   vsr$setTopologyLevel("geometryOnly")
   geomObject <- ISOGeometricObjects$new()
   geomObject$setGeometricObjectType("surface")
   geomObject$setGeometricObjectCount(5L)
   vsr$addGeometricObjects(geomObject)
   md$addSpatialRepresentationInfo(vsr)
   
   #ReferenceSystem
   rs <- ISOReferenceSystem$new()
   rsId <- ISOReferenceIdentifier$new(code = "4326", codeSpace = "EPSG")
   rs$setReferenceSystemIdentifier(rsId)
   md$addReferenceSystemInfo(rs)
   
   #data identification
   ident <- ISODataIdentification$new()
   ident$setAbstract("abstract")
   ident$setPurpose("purpose")
   ident$addCredit("credit1")
   ident$addCredit("credit2")
   ident$addCredit("credit3")
   ident$addStatus("completed")
   ident$addLanguage("eng")
   ident$addCharacterSet("utf8")
   ident$addTopicCategory("biota")
   ident$addTopicCategory("oceans")
   
   #adding a point of contact
   rp <- ISOResponsibleParty$new()
   rp$setIndividualName("someone")
   rp$setOrganisationName("somewhere")
   rp$setPositionName("someposition")
   rp$setRole("pointOfContact")
   contact <- ISOContact$new()
   phone <- ISOTelephone$new()
   phone$setVoice("myphonenumber")
   phone$setFacsimile("myfacsimile")
   contact$setPhone(phone)
   address <- ISOAddress$new()
   address$setDeliveryPoint("theaddress")
   address$setCity("thecity")
   address$setPostalCode("111")
   address$setCountry("France")
   address$setEmail("someone@theorg.org")
   contact$setAddress(address)
   res <- ISOOnlineResource$new()
   res$setLinkage("http://somelink")
   res$setName("somename")
   contact$setOnlineResource(res)
   rp$setContactInfo(contact)
   ident$addPointOfContact(rp)
   
   #citation
   ct <- ISOCitation$new()
   ct$setTitle("sometitle")
   d <- ISODate$new()
   d$setDate(ISOdate(2015, 1, 1, 1))
   d$setDateType("publication")
   ct$addDate(d)
   ct$setEdition("1.0")
   ct$setEditionDate(as.Date(ISOdate(2015, 1, 1, 1)))
   ct$addIdentifier(ISOMetaIdentifier$new(code = "identifier"))
   ct$addPresentationForm("mapDigital")
   ct$addCitedResponsibleParty(rp)
   ident$setCitation(ct)
   
   #graphic overview
   go1 <- ISOBrowseGraphic$new(
     fileName = "http://wwww.somefile.org/png1",
     fileDescription = "Map Overview 1",
     fileType = "image/png"
   )
   go2 <- ISOBrowseGraphic$new(
     fileName = "http://www.somefile.org/png2",
     fileDescription = "Map Overview 2",
     fileType = "image/png"
   )
   ident$addGraphicOverview(go1)
   ident$addGraphicOverview(go2)
   
   #maintenance information
   mi <- ISOMaintenanceInformation$new()
   mi$setMaintenanceFrequency("daily")
   ident$addResourceMaintenance(mi)
   
   #adding legal constraints
   lc <- ISOLegalConstraints$new()
   lc$addUseLimitation("limitation1")
   lc$addUseLimitation("limitation2")
   lc$addUseLimitation("limitation3")
   lc$addAccessConstraint("copyright")
   lc$addAccessConstraint("license")
   lc$addUseConstraint("copyright")
   lc$addUseConstraint("license")
   ident$addResourceConstraints(lc)
   
   #adding security constraints
   sc <- ISOSecurityConstraints$new()
   sc$setClassification("secret")
   sc$setUserNote("ultra secret")
   sc$setClassificationSystem("no classification in particular")
   sc$setHandlingDescription("description")
   ident$addResourceConstraints(sc)
   
   #adding extent
   extent <- ISOExtent$new()
   bbox <- ISOGeographicBoundingBox$new(minx = -180, miny = -90, maxx = 180, maxy = 90)
   extent$addGeographicElement(bbox)
   ident$addExtent(extent)
   
   #add keywords
   kwds <- ISOKeywords$new()
   kwds$addKeyword("keyword1")
   kwds$addKeyword("keyword2")
   kwds$setKeywordType("theme")
   th <- ISOCitation$new()
   th$setTitle("General")
   th$addDate(d)
   kwds$setThesaurusName(th)
   ident$addKeywords(kwds)
   
   #add an INSPIRE spatial data theme?
   inspire_kwd <- ISOKeywords$new()
   anc1 <- ISOAnchor$new(
     name = "Environmental monitoring facilities",
     href = "http://inspire.ec.europa.eu/theme/ef"
   )
   inspire_kwd$addKeyword(anc1)
   inspire_kwd$setKeywordType("theme")
   th <- ISOCitation$new()
   th$setTitle(
     ISOAnchor$new(
       name = "GEMET - INSPIRE themes, version 1.0",
       href="http://www.eionet.europa.eu/gemet/inspire_themes"
     )
   )
   inspire_date <- ISODate$new()
   inspire_date$setDate(as.Date("2008-06-01"))
   inspire_date$setDateType("publication")
   th$addDate(inspire_date)
   inspire_kwd$setThesaurusName(th)
   ident$addKeywords(inspire_kwd)
   
   #supplementalInformation
   ident$setSupplementalInformation("some additional information")
   
   #spatial representation type
   ident$addSpatialRepresentationType("vector")
   
   md$addIdentificationInfo(ident)
   
   #Distribution
   distrib <- ISODistribution$new()
   dto <- ISODigitalTransferOptions$new()  
   for(i in 1:3){
     or <- ISOOnlineResource$new()
     or$setLinkage(paste0("http://somelink",i))
     or$setName(paste0("name",i))
     or$setDescription(paste0("description",i))
     or$setProtocol("WWW:LINK-1.0-http--link")
     dto$addOnlineResource(or)
   }
   distrib$setDigitalTransferOptions(dto)
   md$setDistributionInfo(distrib)
   
   #create dataQuality object with a 'dataset' scope
   dq <- ISODataQuality$new()
   scope <- ISOScope$new()
   scope$setLevel("dataset")
   dq$setScope(scope)
  
   #add data quality reports...
  
   #add a report the data quality
   dc <- ISODomainConsistency$new()
   result <- ISOConformanceResult$new()
   spec <- ISOCitation$new()
   spec$setTitle("Data Quality check")
   spec$addAlternateTitle("This is is some data quality check report")
   d <- ISODate$new()
   d$setDate(ISOdate(2015, 1, 1, 1))
   d$setDateType("publication")
   spec$addDate(d)
   result$setSpecification(spec)
   result$setExplanation("some explanation about the conformance")
   result$setPass(TRUE)
   dc$addResult(result)
   dq$addReport(dc)
  
   #add INSPIRE reports?
   #INSPIRE - interoperability of spatial data sets and services
   dc_inspire1 <- ISODomainConsistency$new()
   cr_inspire1 <- ISOConformanceResult$new()
   cr_inspire_spec1 <- ISOCitation$new()
   cr_title1 <- paste(
     "Commission Regulation (EU) No 1089/2010 of 23 November 2010 implementing Directive 2007/2/EC",
     "of the European Parliament and of the Council as regards interoperability of spatial data",
     "sets and services"
   )
   cr_inspire_spec1$setTitle(cr_title1)
   cr_inspire1$setExplanation("See the referenced specification")
   cr_inspire_date1 <- ISODate$new()
   cr_inspire_date1$setDate(ISOdate(2010,12,8))
   cr_inspire_date1$setDateType("publication")
   cr_inspire_spec1$addDate(cr_inspire_date1)
   cr_inspire1$setSpecification(cr_inspire_spec1)
   cr_inspire1$setPass(TRUE)
   dc_inspire1$addResult(cr_inspire1)
   dq$addReport(dc_inspire1)
   #INSPIRE - metadata
   dc_inspire2 <- ISODomainConsistency$new()
   cr_inspire2 <- ISOConformanceResult$new()
   cr_inspire_spec2 <- ISOCitation$new()
   cr_title2 <- paste(
     "COMMISSION REGULATION (EC) No 1205/2008 of 3 December 2008 implementing Directive 2007/2/EC",
     "of the European Parliament and of the Council as regards metadata"
   )
   cr_inspire_spec2$setTitle(cr_title2)
   cr_inspire2$setExplanation("See the referenced specification")
   cr_inspire_date2 <- ISODate$new()
   cr_inspire_date2$setDate(ISOdate(2008,12,4))
   cr_inspire_date2$setDateType("publication")
   cr_inspire_spec2$addDate(cr_inspire_date2)
   cr_inspire2$setSpecification(cr_inspire_spec2)
   cr_inspire2$setPass(TRUE)
   dc_inspire2$addResult(cr_inspire2)
   dq$addReport(dc_inspire2)
   
   #add lineage
   lineage <- ISOLineage$new()
   lineage$setStatement("statement")
   dq$setLineage(lineage)
   
   md$addDataQualityInfo(dq)
   
   #Content Information
   #-------------------------
   #add a feature catalogue description
   fcd <- ISOFeatureCatalogueDescription$new()
   fcd$setComplianceCode(FALSE)
   fcd$addLanguage("eng")
   fcd$setIncludedWithDataset(FALSE)
   cit = ISOCitation$new()
   cit$setTitle("sometitle")
   d <- ISODate$new()
   d$setDate(ISOdate(2015, 1, 1, 1))
   d$setDateType("publication")
   cit$addDate(d)
   cit$setEdition("1.0")
   cit$setEditionDate(as.Date(ISOdate(2015, 1, 1, 1)))
   contact = ISOContact$new()
   fcLink <- ISOOnlineResource$new()
   fcLink$setLinkage("http://somelink/featurecatalogue")
   contact$setOnlineResource(fcLink)
   rp = ISOResponsibleParty$new()
   rp$setRole("publisher")
   rp$setContactInfo(contact)
   cit$addCitedResponsibleParty(rp)
   fcd$addFeatureCatalogueCitation(cit)
   md$addContentInfo(fcd)
   
   #XML representation of the ISOMetadata
   xml <- md$encode()
   
   #example 2 - READ: Create an ISO metadata reading from XML
   ######################################################
   
   require(XML)
   xmlfile <- system.file("extdata/examples", "metadata.xml", package = "geometa")
   xml <- xmlParse(xmlfile)
   md <- ISOMetadata$new(xml = xml)
   


eblondel/geometa documentation built on April 18, 2024, 1:46 p.m.