ISOMetadata
ISOMetadata
R6Class
object.
Object of R6Class
for modelling an ISO Metadata
- ISO 19139 https://schemas.isotc211.org/19139/-/gmd/1.0/gmd/#element_MD_Metadata
- ISO 19115-3 https://schemas.isotc211.org/19115/-3/mdb/2.0/mdb/#element_MD_Metadata
geometa::geometaLogger
-> geometa::ISOAbstractObject
-> ISOMetadata
fileIdentifier
fileIdentifier [0..1] : character (ISO 19139)
metadataIdentifier
metadataIdentifier [0..1] : ISOMetaIdentifier (ISO 19115-3)
language
language [0..1] : character (ISO 19139)
defaultLocale
[0..1] : ISOLocale (ISO 19115-3)
characterSet
characterSet [0..1] : ISOCharacterSet = "utf8"
parentIdentifier
parentIdentifier [0..1] : character
parentMetadata
parentMetadata [0..1]: ISOCitation (ISO 19115-3)
hierarchyLevel
hierarchyLevel [0..*] : ISOScopeCode = "dataset"
hierarchyLevelName
hierarchyLevelName [0..*] : character
metadataScope
metadataScope [0..*] : ISOMetadataScope (ISO 19115-3)
contact
contact [1..*] : ISOResponsibleParty
dateStamp
dateStamp : POSIXct/POSIXt
dateInfo
dateInfo [1..*] : ISODate
metadataStandardName
metadataStandardName [0..1] : character (ISO 19139)
metadataStandardVersion
metadataStandardVersion [0..1] : character (ISO 19139)
metadataStandard
metadataStandard [0..*] : ISOCitation (ISO 19115-3)
metadataProfile
metadataProfile [0..*] : ISOCitation (ISO 19115-3)
alternativeMetadataReference
alternativeMetadataReference [0..*] : ISOCitation (ISO 19115-3)
otherLocale
otherLocale [0..*] : ISOLocale (ISO 19115-3)
dataSetURI
dataSetURI [0..1] : character (ISO 19139)
metadataLinkage
metadataLinkage [0..*] : ISOOnlineResource (ISO 19115-3)
locale
locale [0..*]: ISOLocale (ISO 19139)
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
resourceLineage
resourceLineage [0..*]: ISOLineage (ISO 19115-3)
metadataMaintenance
metadataMaintenance [0..1]: ISOMaintenanceInformation
portrayalCatalogueInfo
portrayalCatalogueInfo [0..*]
applicationSchemaInformation
applicationSchemaInfo [0..*]
Inherited methods
geometa::geometaLogger$ERROR()
geometa::geometaLogger$INFO()
geometa::geometaLogger$WARN()
geometa::ISOAbstractObject$addFieldAttrs()
geometa::ISOAbstractObject$addListElement()
geometa::ISOAbstractObject$checkMetadataStandardCompliance()
geometa::ISOAbstractObject$contains()
geometa::ISOAbstractObject$createLocalisedProperty()
geometa::ISOAbstractObject$decode()
geometa::ISOAbstractObject$delListElement()
geometa::ISOAbstractObject$encode()
geometa::ISOAbstractObject$getClass()
geometa::ISOAbstractObject$getClassName()
geometa::ISOAbstractObject$getNamespaceDefinition()
geometa::ISOAbstractObject$isDocument()
geometa::ISOAbstractObject$isFieldInheritedFrom()
geometa::ISOAbstractObject$print()
geometa::ISOAbstractObject$save()
geometa::ISOAbstractObject$setAttr()
geometa::ISOAbstractObject$setCodeList()
geometa::ISOAbstractObject$setCodeListValue()
geometa::ISOAbstractObject$setCodeSpace()
geometa::ISOAbstractObject$setHref()
geometa::ISOAbstractObject$setId()
geometa::ISOAbstractObject$setIsNull()
geometa::ISOAbstractObject$setValue()
geometa::ISOAbstractObject$stopIfMetadataStandardIsNot()
geometa::ISOAbstractObject$validate()
geometa::ISOAbstractObject$wrapBaseElement()
new()
Initializes object
ISOMetadata$new(xml = NULL)
xml
object of class XMLInternalNode-class
setLanguage()
Set language
locale
object of class ISOLanguage or any character
from values returned by ISOLanguages$values()
setCharacterSet()
Set charset
charset
object of class ISOCharacterSet or any character
from values returned by ISOCharacterSet$values()
addHierarchyLevel()
Adds hierarchy level
level
object of class ISOScopeCode or any character
from values returned by ISOScopeCode$values()
delHierarchyLevel()
Deletes hierarchy level
level
object of class ISOScopeCode or any character
from values returned by ISOScopeCode$values()
addHierarchyLevelName()
Adds hierarchy level name
levelName
object of class character
delHierarchyLevelName()
Deletes hierarchy level name
levelName
object of class character
addMetadataScope()
Adds metadata scope
metadataScope
object of class ISOMetadataScope or any character among
values returned by ISOScopeCode$values()
delMetadataScope()
Deletes metadata scope
metadataScope
object of class ISOMetadataScope or any character among
values returned by ISOScopeCode$values()
addContact()
Adds contact
contact
object of class ISOResponsibleParty for ISO 19139 or inheriting class ISOAbstractResponsibility for ISO 19115-3
delContact()
Deletes contact
contact
object of class ISOResponsibleParty for ISO 19139 or inheriting class ISOAbstractResponsibility for ISO 19115-3
addMetadataStandard()
Adds metadata standard
metadataStandard
object of class ISOCitation or character
delMetadataStandard()
Deletes metadata standard
metadataStandard
object of class ISOCitation or character
addMetadataProfile()
Adds metadata profile
metadataProfile
object of class ISOCitation or character
delMetadataProfile()
Deletes metadata profile
metadataProfile
object of class ISOCitation or character
addAlternativeMetadataReference()
Adds alternative metadata reference
alternativeMetadataReference
object of class ISOCitation or character
delAlternativeMetadataReference()
Deletes alternative metadata reference
alternativeMetadataReference
object of class ISOCitation or character
addMetadataLinkage()
Adds metadata linkage
metadataLinkage
object of class ISOOnlineResource
delMetadataLinkage()
Deletes metadata linkage
metadataLinkage
object of class ISOOnlineResource
addSpatialRepresentationInfo()
Adds spatial representation info
spatialRepresentationInfo
object of class ISOSpatialRepresentation
setSpatialRepresentationInfo()
Sets spatial representation info
spatialRepresentationInfo
object of class ISOSpatialRepresentation
delSpatialRepresentationInfo()
Deletes spatial representation info
spatialRepresentationInfo
object of class ISOSpatialRepresentation
addReferenceSystemInfo()
Adds reference system info
referenceSystemInfo
object of class ISOReferenceSystem
setReferenceSystemInfo()
Sets reference system info
referenceSystemInfo
object of class ISOReferenceSystem
delReferenceSystemInfo()
Deletes reference system info
referenceSystemInfo
object of class ISOReferenceSystem
addMetadataExtensionInfo()
Adds metadata extension info
metadataExtensionInfo
object of class ISOMetadataExtensionInformation
delMetadataExtensionInfo()
Deletes metadata extension info
metadataExtensionInfo
object of class ISOMetadataExtensionInformation
addIdentificationInfo()
Adds metadata extension info
identificationInfo
object of class inheriting ISOIdentification
setIdentificationInfo()
Sets metadata extension info
identificationInfo
object of class inheriting ISOIdentification
delIdentificationInfo()
Deletes metadata extension info
identificationInfo
object of class inheriting ISOIdentification
setDistributionInfo()
Sets metadata extension info
distributionInfo
object of class ISODistribution
addDataQualityInfo()
Adds data quality info
dataQualityInfo
object of class ISODataQuality
setDataQualityInfo()
Sets data quality info
dataQualityInfo
object of class ISODataQuality
delDataQualityInfo()
Deletes data quality info
dataQualityInfo
object of class ISODataQuality
setMetadataMaintenance()
Sets metadata maintenance
metadataMaintenance
object of class ISOMaintenanceInformation
addContentInfo()
Adds content information
contentInfo
object of class inheriting ISOAbstractContentInformation
delContentInfo()
Deletes content information
contentInfo
object of class inheriting ISOAbstractContentInformation
#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)
#> [1] TRUE
md$addSpatialRepresentationInfo(vsr)
#> [1] TRUE
#ReferenceSystem
rs <- ISOReferenceSystem$new()
rsId <- ISOReferenceIdentifier$new(code = "4326", codeSpace = "EPSG")
rs$setReferenceSystemIdentifier(rsId)
md$addReferenceSystemInfo(rs)
#> [1] TRUE
#data identification
ident <- ISODataIdentification$new()
ident$setAbstract("abstract")
ident$setPurpose("purpose")
ident$addCredit("credit1")
#> [1] TRUE
ident$addCredit("credit2")
#> [1] TRUE
ident$addCredit("credit3")
#> [1] TRUE
ident$addStatus("completed")
#> [1] TRUE
ident$addLanguage("eng")
#> [1] TRUE
ident$addCharacterSet("utf8")
#> [1] TRUE
ident$addTopicCategory("biota")
#> [1] TRUE
ident$addTopicCategory("oceans")
#> [1] TRUE
#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)
#> [1] TRUE
#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"))
#> [1] TRUE
ct$addPresentationForm("mapDigital")
#> [1] TRUE
ct$addCitedResponsibleParty(rp)
#> [1] TRUE
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)
#> [1] TRUE
ident$addGraphicOverview(go2)
#> [1] TRUE
#maintenance information
mi <- ISOMaintenanceInformation$new()
mi$setMaintenanceFrequency("daily")
ident$addResourceMaintenance(mi)
#> [1] TRUE
#adding legal constraints
lc <- ISOLegalConstraints$new()
lc$addUseLimitation("limitation1")
#> [1] TRUE
lc$addUseLimitation("limitation2")
#> [1] TRUE
lc$addUseLimitation("limitation3")
#> [1] TRUE
lc$addAccessConstraint("copyright")
#> [1] TRUE
lc$addAccessConstraint("license")
#> [1] TRUE
lc$addUseConstraint("copyright")
#> [1] TRUE
lc$addUseConstraint("license")
#> [1] TRUE
ident$addResourceConstraints(lc)
#> [1] TRUE
#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)
#> [1] TRUE
#adding extent
extent <- ISOExtent$new()
bbox <- ISOGeographicBoundingBox$new(minx = -180, miny = -90, maxx = 180, maxy = 90)
extent$addGeographicElement(bbox)
#> [1] TRUE
ident$addExtent(extent)
#> [1] TRUE
#add keywords
kwds <- ISOKeywords$new()
kwds$addKeyword("keyword1")
#> [1] TRUE
kwds$addKeyword("keyword2")
#> [1] TRUE
kwds$setKeywordType("theme")
th <- ISOCitation$new()
th$setTitle("General")
th$addDate(d)
kwds$setThesaurusName(th)
ident$addKeywords(kwds)
#> [1] TRUE
#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)
#> [1] TRUE
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)
#> [1] TRUE
#supplementalInformation
ident$setSupplementalInformation("some additional information")
#spatial representation type
ident$addSpatialRepresentationType("vector")
#> [1] TRUE
md$addIdentificationInfo(ident)
#> [1] TRUE
#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)
#> Warning: Method 'setDigitalTransferOptions' is deprecated, please use 'addDigitalTransferOptions'!
#> [1] TRUE
md$setDistributionInfo(distrib)
#create dataQuality object with a 'dataset' scope
dq <- ISODataQuality$new()
scope <- ISODataQualityScope$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")
#> [1] TRUE
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)
#> [1] TRUE
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)
#> [1] TRUE
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)
#> [1] TRUE
dq$addReport(dc_inspire2)
#add lineage
lineage <- ISOLineage$new()
lineage$setStatement("statement")
dq$setLineage(lineage)
md$addDataQualityInfo(dq)
#> [1] TRUE
#Content Information
#-------------------------
#add a feature catalogue description
fcd <- ISOFeatureCatalogueDescription$new()
fcd$setComplianceCode(FALSE)
fcd$addLanguage("eng")
#> [1] TRUE
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)
#> [1] TRUE
fcd$addFeatureCatalogueCitation(cit)
#> [1] TRUE
md$addContentInfo(fcd)
#> [1] TRUE
#XML representation of the ISOMetadata
xml <- md$encode()
#> [geometa][INFO] Object 'ISOMetadata' is VALID according to ISO 19139 XML schemas!
#example 2 - READ: Create an ISO metadata reading from XML
######################################################
# \donttest{
require(XML)
xmlfile <- system.file("extdata/examples", "metadata.xml", package = "geometa")
xml <- xmlParse(xmlfile)
md <- ISOMetadata$new(xml = xml)
# }