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
fileIdentifierfileIdentifier [0..1] : character (ISO 19139)
metadataIdentifiermetadataIdentifier [0..1] : ISOMetaIdentifier (ISO 19115-3)
languagelanguage [0..1] : character (ISO 19139)
defaultLocale[0..1] : ISOLocale (ISO 19115-3)
characterSetcharacterSet [0..1] : ISOCharacterSet = "utf8"
parentIdentifierparentIdentifier [0..1] : character
parentMetadataparentMetadata [0..1]: ISOCitation (ISO 19115-3)
hierarchyLevelhierarchyLevel [0..*] : ISOScopeCode = "dataset"
hierarchyLevelNamehierarchyLevelName [0..*] : character
metadataScopemetadataScope [0..*] : ISOMetadataScope (ISO 19115-3)
contactcontact [1..*] : ISOResponsibleParty
dateStampdateStamp : POSIXct/POSIXt
dateInfodateInfo [1..*] : ISODate
metadataStandardNamemetadataStandardName [0..1] : character (ISO 19139)
metadataStandardVersionmetadataStandardVersion [0..1] : character (ISO 19139)
metadataStandardmetadataStandard [0..*] : ISOCitation (ISO 19115-3)
metadataProfilemetadataProfile [0..*] : ISOCitation (ISO 19115-3)
alternativeMetadataReferencealternativeMetadataReference [0..*] : ISOCitation (ISO 19115-3)
otherLocaleotherLocale [0..*] : ISOLocale (ISO 19115-3)
dataSetURIdataSetURI [0..1] : character (ISO 19139)
metadataLinkagemetadataLinkage [0..*] : ISOOnlineResource (ISO 19115-3)
localelocale [0..*]: ISOLocale (ISO 19139)
spatialRepresentationInfospatialRepresentationInfo [0..*]: ISOSpatialRepresentation
referenceSystemInforeferenceSystemInfo [0..*]: ISOReferenceSystem
metadataExtensionInfometadataExtensionInfo [0..*]: ISOMetadataExtensionInformation
identificationInfoidentificationInfo [1..*]: ISOIdentification
contentInfocontentInfo [0..*]
distributionInfodistributionInfo [0..1] : ISODistribution
dataQualityInfodataQualityInfo [0..*]: ISODataQuality
resourceLineageresourceLineage [0..*]: ISOLineage (ISO 19115-3)
metadataMaintenancemetadataMaintenance [0..1]: ISOMaintenanceInformation
portrayalCatalogueInfoportrayalCatalogueInfo [0..*]
applicationSchemaInformationapplicationSchemaInfo [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)xmlobject of class XMLInternalNode-class
setLanguage()Set language
localeobject of class ISOLanguage or any character
from values returned by ISOLanguages$values()
setCharacterSet()Set charset
charsetobject of class ISOCharacterSet or any character
from values returned by ISOCharacterSet$values()
addHierarchyLevel()Adds hierarchy level
levelobject of class ISOScopeCode or any character
from values returned by ISOScopeCode$values()
delHierarchyLevel()Deletes hierarchy level
levelobject of class ISOScopeCode or any character
from values returned by ISOScopeCode$values()
addHierarchyLevelName()Adds hierarchy level name
levelNameobject of class character
delHierarchyLevelName()Deletes hierarchy level name
levelNameobject of class character
addMetadataScope()Adds metadata scope
metadataScopeobject of class ISOMetadataScope or any character among
values returned by ISOScopeCode$values()
delMetadataScope()Deletes metadata scope
metadataScopeobject of class ISOMetadataScope or any character among
values returned by ISOScopeCode$values()
addContact()Adds contact
contactobject of class ISOResponsibleParty for ISO 19139 or inheriting class ISOAbstractResponsibility for ISO 19115-3
delContact()Deletes contact
contactobject of class ISOResponsibleParty for ISO 19139 or inheriting class ISOAbstractResponsibility for ISO 19115-3
addMetadataStandard()Adds metadata standard
metadataStandardobject of class ISOCitation or character
delMetadataStandard()Deletes metadata standard
metadataStandardobject of class ISOCitation or character
addMetadataProfile()Adds metadata profile
metadataProfileobject of class ISOCitation or character
delMetadataProfile()Deletes metadata profile
metadataProfileobject of class ISOCitation or character
addAlternativeMetadataReference()Adds alternative metadata reference
alternativeMetadataReferenceobject of class ISOCitation or character
delAlternativeMetadataReference()Deletes alternative metadata reference
alternativeMetadataReferenceobject of class ISOCitation or character
addMetadataLinkage()Adds metadata linkage
metadataLinkageobject of class ISOOnlineResource
delMetadataLinkage()Deletes metadata linkage
metadataLinkageobject of class ISOOnlineResource
addSpatialRepresentationInfo()Adds spatial representation info
spatialRepresentationInfoobject of class ISOSpatialRepresentation
setSpatialRepresentationInfo()Sets spatial representation info
spatialRepresentationInfoobject of class ISOSpatialRepresentation
delSpatialRepresentationInfo()Deletes spatial representation info
spatialRepresentationInfoobject of class ISOSpatialRepresentation
addReferenceSystemInfo()Adds reference system info
referenceSystemInfoobject of class ISOReferenceSystem
setReferenceSystemInfo()Sets reference system info
referenceSystemInfoobject of class ISOReferenceSystem
delReferenceSystemInfo()Deletes reference system info
referenceSystemInfoobject of class ISOReferenceSystem
addMetadataExtensionInfo()Adds metadata extension info
metadataExtensionInfoobject of class ISOMetadataExtensionInformation
delMetadataExtensionInfo()Deletes metadata extension info
metadataExtensionInfoobject of class ISOMetadataExtensionInformation
addIdentificationInfo()Adds metadata extension info
identificationInfoobject of class inheriting ISOIdentification
setIdentificationInfo()Sets metadata extension info
identificationInfoobject of class inheriting ISOIdentification
delIdentificationInfo()Deletes metadata extension info
identificationInfoobject of class inheriting ISOIdentification
setDistributionInfo()Sets metadata extension info
distributionInfoobject of class ISODistribution
addDataQualityInfo()Adds data quality info
dataQualityInfoobject of class ISODataQuality
setDataQualityInfo()Sets data quality info
dataQualityInfoobject of class ISODataQuality
delDataQualityInfo()Deletes data quality info
dataQualityInfoobject of class ISODataQuality
setMetadataMaintenance()Sets metadata maintenance
metadataMaintenanceobject of class ISOMaintenanceInformation
addContentInfo()Adds content information
contentInfoobject of class inheriting ISOAbstractContentInformation
delContentInfo()Deletes content information
contentInfoobject of class inheriting ISOAbstractContentInformation
addPortrayalCatalogueInfo()Adds portrayal catalogue info
portrayalCatalogueInfoobject of class inheriting ISOPortrayalCatalogueReference
delPortrayalCatalogueInfo()Deletes portrayal catalogue info
portrayalCatalogueInfoobject of class inheriting ISOPortrayalCatalogueReference
#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)
# }