[GRASS-SVN] r61586 - in grass-addons/grass7/gui/wxpython: . wx.metadata wx.metadata/config wx.metadata/templates
svn_grass at osgeo.org
svn_grass at osgeo.org
Mon Aug 11 04:21:41 PDT 2014
Author: krejcmat
Date: 2014-08-11 04:21:41 -0700 (Mon, 11 Aug 2014)
New Revision: 61586
Added:
grass-addons/grass7/gui/wxpython/wx.metadata/
grass-addons/grass7/gui/wxpython/wx.metadata/config/
grass-addons/grass7/gui/wxpython/wx.metadata/config/init_md
grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata.html
grass-addons/grass7/gui/wxpython/wx.metadata/r.info.iso.html
grass-addons/grass7/gui/wxpython/wx.metadata/templates/
grass-addons/grass7/gui/wxpython/wx.metadata/templates/basicTemplate.xml
grass-addons/grass7/gui/wxpython/wx.metadata/templates/inspireTemplate.xml
grass-addons/grass7/gui/wxpython/wx.metadata/v.info.iso.html
Modified:
grass-addons/grass7/gui/wxpython/wx.metadata/editor.py
grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata.py
Log:
wx.metadata second try
Added: grass-addons/grass7/gui/wxpython/wx.metadata/config/init_md
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/config/init_md (rev 0)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/config/init_md 2014-08-11 11:21:41 UTC (rev 61586)
@@ -0,0 +1,5 @@
+self.md.identification = MD_DataIdentification()
+self.md.dataquality = DQ_DataQuality()
+self.md.distribution = MD_Distribution()
+self.md.identification.extent = EX_Extent()
+self.md.identification.extent.boundingBox = EX_GeographicBoundingBox()
Modified: grass-addons/grass7/gui/wxpython/wx.metadata/editor.py
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/editor.py 2014-08-11 05:37:43 UTC (rev 61578)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/editor.py 2014-08-11 11:21:41 UTC (rev 61586)
@@ -145,7 +145,7 @@
return outPath
except Exception, e:
- GError('Error writing xml:\n' + str(e))
+ GError('Error writing xml:\n' + str(e))
#=========================================================================
# CREATE BOX (staticbox+button(optional)
@@ -414,21 +414,21 @@
try:
items = self.valueCtrl.GetParent().mdItems
if self.isChecked:
- self.valueCtrl.Disable()
- self.isChecked = False
+ self.valueCtrl.Disable()
+ self.isChecked = False
else:
- self.valueCtrl.Enable()
- self.isChecked = True
+ self.valueCtrl.Enable()
+ self.isChecked = True
for item in items:
- if self.isChecked:
- item.valueCtrl.Enable()
- item.chckBoxEdit.SetValue(True)
- item.isChecked = True
- else:
- item.valueCtrl.Disable()
- item.chckBoxEdit.SetValue(False)
- item.isChecked = False
+ if self.isChecked:
+ item.valueCtrl.Enable()
+ item.chckBoxEdit.SetValue(True)
+ item.isChecked = True
+ else:
+ item.valueCtrl.Disable()
+ item.chckBoxEdit.SetValue(False)
+ item.isChecked = False
except:
pass
else:
@@ -694,8 +694,8 @@
num = 1
self.c += num
if self.c >= self.max:
- self.c -= 1 # ensure to'list out of bounds'
- self.stop = True
+ self.c -= 1 # ensure to'list out of bounds'
+ self.stop = True
def minusC(self, num=None):
'''iterator for handling jinja teplate items in self.generateGUI and self.createNewMD
@@ -945,48 +945,43 @@
indexowsTagList = 0
finalTemplate = ''
chcked = False
- forST = 0
- ifST = 0
forSTS = False
ifSTS = False
for line in template.readlines():
if '{% for' in line:
- forSTS = True # handler for correct end statements in jinja template
- forST += 1
+ forSTS = True
if '{% if' in line:
- ifSTS = True # handler for correct end statements in jinja template
- ifST += 1
- # iterate over all jinjainfo::MdDescription.selfInfoString and finding match with string in xml file(line)
+ ifSTS = True
+
for r, item in enumerate(self.mdDescription):
str1 = item.selfInfoString
- if str1 in line: #
+ if str1 in line: # owslib definition in line
try:
if item.mdItem[0].isChecked == False:
- chcked = True
+ chcked = False
except:
try:
if self.mdDescription[r + 1].mdItem[0].isChecked == False:
- chcked = True
+ chcked = False
except:
try:
if self.mdDescription[r + 2].mdItem[0].isChecked == False:
- chcked = True
+ chcked = False
except:
try:
if self.mdDescription[r + 3].mdItem[0].isChecked == False:
- chcked = True
+ chcked = False
except:
pass
- if chcked: # chckbox in gui
+ if not chcked: # chckbox in gui
+
if forSTS:
forSTS = False
- forST -= 1
if ifSTS:
ifSTS = False
- ifST -= 1
owsTagList.append(str1)
templateStr = '{{ owsTagList[' + str(indexowsTagList) + '] }}'
@@ -995,35 +990,37 @@
line = line.replace(str1, templateStr)
tag = '{{ ' + item.tag + ' }}'
line = line.replace(tag, templateStr)
+
finalTemplate += line
continue
- if chcked == False:
- if '{% endfor -%}' in line and forST == 0:
- str1 = '{% endfor -%}'
- owsTagList.append(str1)
- templateStr = '{{ owsTagList[' + str(indexowsTagList) + '] }}'
- indexowsTagList += 1
+ if chcked:
+ if '{% endfor -%}' in line and forSTS == 0:
+ str1 = '{% endfor -%}'
+ owsTagList.append(str1)
+ templateStr = '{{ owsTagList[' + str(indexowsTagList) + '] }}'
+ indexowsTagList += 1
- line = line.replace(str1, templateStr)
- tag = '{{' + item.tag + '}}'
- line = line.replace(tag, templateStr)
- finalTemplate += line
+ line = line.replace(str1, templateStr)
+ tag = '{{' + item.tag + '}}'
+ line = line.replace(tag, templateStr)
+ finalTemplate += line
- elif '{% endif -%}' in line and ifSTS == 0:
- str1 = '{% endif -%}'
- owsTagList.append(str1)
- templateStr = '{{ owsTagList[' + str(indexowsTagList) + '] }}'
- indexowsTagList += 1
+ elif '{% endif -%}' in line and ifSTS == 0:
+ str1 = '{% endif -%}'
+ owsTagList.append(str1)
+ templateStr = '{{ owsTagList[' + str(indexowsTagList) + '] }}'
+ indexowsTagList += 1
- line = line.replace(str1, templateStr)
- tag = '{{' + item.tag + '}}'
- line = line.replace(tag, templateStr)
- finalTemplate += line
+ line = line.replace(str1, templateStr)
+ tag = '{{' + item.tag + '}}'
+ line = line.replace(tag, templateStr)
+ finalTemplate += line
- else:
- finalTemplate += line
- chcked = False
+ else:
+ finalTemplate += line
+ chcked = True
+
head, tail = os.path.split(self.templatePath)
tail = 'EXPT' + tail
self.templatePath = os.path.join(head, tail)
@@ -1036,7 +1033,7 @@
def executeStr1(self, stri, item):
'''note- exec cannot be in sub function
- for easy understanding to product of self.createNewMD()- print stri
+ for easier understanding to product of self.createNewMD()- print stri
'''
# print stri
exec stri
@@ -1274,7 +1271,7 @@
try:
keyWordLen = len(mdDes[self.c].mdItem[n])
for k in range(keyWordLen):
- kw['keywords'].append(mdDes[self.c].mdItem[n][k].getValue())
+ kw['keywords'].append(mdDes[self.c].mdItem[n][k].getValue())
except:
kw['keywords'].append(mdDes[self.c].mdItem[n].getValue())
Added: grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata.html
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata.html (rev 0)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata.html 2014-08-11 11:21:41 UTC (rev 61586)
@@ -0,0 +1,5 @@
+<h2>DESCRIPTION</h2>
+Metadata editor according to EN ISO 19115 and EN ISO 19119
+<h2>AUTHOR</h2>
+
+Matej Krejci, Czech Technical University in Prague, Czech Republic
Modified: grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata.py
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata.py 2014-08-11 05:37:43 UTC (rev 61578)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/g.gui.metadata.py 2014-08-11 11:21:41 UTC (rev 61586)
@@ -91,7 +91,7 @@
pub.subscribe(self.onRefreshTreeBrowser, 'REFRESH_TREE_BROWSER.update')
pub.subscribe(self.onChangeEditMapProfile, 'ISO_PROFILE.update')
pub.subscribe(self.onUpdateGrassMetadata, 'GRASS_METADATA.update')
- pub.subscribe(self.onSetJaX, 'MD_DESTINATION.update')
+ pub.subscribe(self.setMdDestionation, 'MD_DESTINATION.update')
pub.subscribe(self.onSetJaX, 'SET_JINJA_AND_XML.update')
def onSetJaX(self, jinja, xml):
@@ -1044,6 +1044,7 @@
if self.GetParent().configPanelLeft.rbGrass is False:
self.bttLoad.Enable()
self.bttLoadXml.Enable()
+ self.statusBar.SetStatusText('')
self.bttsave.Disable()
self.bttUpdateGRASS.Disable()
self.jinjaPath = None
@@ -1080,6 +1081,8 @@
dlg.Destroy()
def onSaveTemplate(self, evt=None):
+ self.xmlPath=self.GetParent().xmlPath
+
dlg = wx.FileDialog(self,
"Select output file",
self.mdDestination,
@@ -1109,6 +1112,7 @@
dlg.Destroy()
def onSaveXML(self, evt=None):
+ self.xmlPath=self.GetParent().xmlPath
self.XMLhead, self.XMLtail = os.path.split(self.xmlPath)
if not self.batch: # if normal saving with user-task-dialog
Added: grass-addons/grass7/gui/wxpython/wx.metadata/r.info.iso.html
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/r.info.iso.html (rev 0)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/r.info.iso.html 2014-08-11 11:21:41 UTC (rev 61586)
@@ -0,0 +1,5 @@
+<h2>DESCRIPTION</h2>
+Metadata creator according to EN ISO 19115 and EN ISO 19119
+<h2>AUTHOR</h2>
+
+Matej Krejci, Czech Technical University in Prague, Czech Republic
Added: grass-addons/grass7/gui/wxpython/wx.metadata/templates/basicTemplate.xml
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/templates/basicTemplate.xml (rev 0)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/templates/basicTemplate.xml 2014-08-11 11:21:41 UTC (rev 61586)
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gmd:MD_Metadata xsi:schemaLocation="http://www.isotc211.org/2005/gmd http://schemas.opengis.net/iso/19139/20060504/gmd/gmd.xsd" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <gmd:fileIdentifier>
+ <gco:CharacterString>{{ md.identifier }}{# tag="md.identifier",ref="Part B 1.5", name ="Resource Identifier", desc ="Unique Resource Identifier", example ="286c0725-046e-4533-b0bf-d6e367f6c342", type = "CharacterString", multi = 0, group = "Identification", multiline=False #}</gco:CharacterString>
+ </gmd:fileIdentifier>
+ <gmd:hierarchyLevel>
+ <gmd:MD_ScopeCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_ScopeCode" codeListValue="dataset" codeSpace="ISOTC211/19115">{{ md.identification.identtype }}{# tag="md.identification.identtype", name ="Resource Type", desc ="Scope to which metadata applies", example ="dataset", type = "MD_ScopeCode", multi = 0, group = "Identification",multiline=False #}</gmd:MD_ScopeCode>
+ </gmd:hierarchyLevel>
+ {% for co in md.contact -%}{# tag="for co in md.contact", inboxmulti = 1, group = "Metadata",inbox="Metadata point of contact",object="CI_ResponsibleParty()" #}
+ <gmd:contact>
+ <gmd:CI_ResponsibleParty>
+ <gmd:organisationName>
+ <gco:CharacterString>{{ co.organization }}{# tag="co.organization",ref="Part B 9.1", inboxmulti = 1,multi = 0,type = "string",group = "Metadata",object="CI_ResponsibleParty()", inbox="Metadata point of contact",name="Organisation name",example="SDI Unit, Institute for Environment and Sustainability, Joint ResearchCentre",desc="identification of, and means of communication with, person(s) and organization(s) associated with theresource(s)" #}</gco:CharacterString>
+ </gmd:organisationName>
+ <gmd:contactInfo>
+ <gmd:CI_Contact>
+ <gmd:address>
+ <gmd:CI_Address>
+ <gmd:electronicMailAddress>
+ <gco:CharacterString>{{ co.email }}{# tag="co.email",name="E-mail",ref="Part B 10.1", multi = 0,object="CI_ResponsibleParty()", inboxmulti = 1,group = "Metadata", inbox="Metadata point of contact",type = "email",example="image2000 at jrc.it", desc="Party responsible for the metadata information." #}</gco:CharacterString>
+ </gmd:electronicMailAddress>
+ </gmd:CI_Address>
+ </gmd:address>
+ </gmd:CI_Contact>
+ </gmd:contactInfo>
+ <gmd:role>
+ <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="{{ co.role }}{# tag="co.role",name="Responsible party role",ref="Part B 9.2" , multi = 0,type = "CI_RoleCode", inboxmulti = 1,group = "Responsible party",object="CI_ResponsibleParty()", inbox="Metadata pointt of contact",example="custodian", desc="function performed by the responsible party" #}" codeSpace="ISOTC211/19115">{{ co.role }}</gmd:CI_RoleCode>
+ </gmd:role>
+ </gmd:CI_ResponsibleParty>
+ </gmd:contact>
+ {% endfor -%}
+ <gmd:dateStamp>
+ <gco:Date>{{ md.datestamp }}{# tag="md.datestamp" , name="Metadata date" , ref= "Part B 10.2" , desc= "Date that the metadata was created.",type = "date" , example = "2005-03-27" , multi= 0 , group= "Metadata" , multiline= False #}</gco:Date>
+ </gmd:dateStamp>
+ <gmd:metadataStandardName>
+ <gco:CharacterString>ISO 19115</gco:CharacterString>
+ </gmd:metadataStandardName>
+ <gmd:metadataStandardVersion>
+ <gco:CharacterString>2003/Cor.1:2006</gco:CharacterString>
+ </gmd:metadataStandardVersion>
+ <gmd:identificationInfo>
+ <gmd:MD_DataIdentification>
+ <gmd:citation>
+ <gmd:CI_Citation>
+ <gmd:title>
+ <gco:CharacterString>{{ md.identification.title }}{# tag="md.identification.title", ref="Part B 1.1", name ="Resource title", desc ="Name by which the cited resource is known.", example ="Image2000 Product 1 (nl2) MultispectB 10.1" , multi = 0, group ="Identification", type = "string", multiline=True #}</gco:CharacterString>
+ </gmd:title>
+ {% for d in md.identification.date -%}{# tag="for d in md.identification.date" ,name="",object="CI_Date()",group= "Temporal" , inbox= "Date of creation/publication/revision", inboxmulti=1, multiline= False #}
+ <gmd:date>
+ <gmd:CI_Date>
+ <gmd:date>
+ <gco:DateTime>{{ d.date }}{# tag="d.date" , group= "Temporal" ,object="CI_Date()", inbox= "Date of creation/publication/revision", inboxmulti=1, multiline= False, name="Date of: type(below)",type = "date",desc="reference date for the cited resource - publication/creation/revision",example="2007-09-15" #}</gco:DateTime>
+ </gmd:date>
+ <gmd:dateType>
+ <gmd:CI_DateTypeCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode" codeListValue="{{ d.type }}{# tag="d.type" , group= "Temporal" ,type = "CI_DateTypeCode",object="CI_Date()", inbox= "Date of creation/publication/revision", inboxmulti=1, multiline= False, name="type: creation/publication/revision",desc="reference date for the cited resource - publication/creation/revision",example="creation" #}" codeSpace="ISOTC211/19115">{{ d.type }}</gmd:CI_DateTypeCode>
+ </gmd:dateType>
+ </gmd:CI_Date>
+ </gmd:date>
+ </gmd:CI_Citation>
+ </gmd:citation>
+ {% endfor -%}
+ <gmd:abstract>
+ <gco:CharacterString>{{ md.identification.abstract }}{# tag="md.identification.abstract ",ref="Part B 1.2", name ="Resource Abstract", desc ="Brief narrative summary of the content of the resource(s).", example ="IMAGE2000 product 1 individual orthorectified scenes. IMAGE2000 was produced from ETM+ Landsat 7 satellite data and provides a consistent European coverage of individual orthorectified scenes in national map projection systems. The year 2000 was targeted as reference year, but a deviation of maximum 1-year was allowed to obtain a full coverage of Europe, which involves approximately 450 Landsat TM Frames. Where Landsat 7 data were not available, Landsat 5 data have been used instead. The spatial resolution is 25 metres for multispectral and 12.5 metres for panchromatic imagery", type = "string", multi = 0, group = "Identification", multiline=True #}</gco:CharacterString>
+ </gmd:abstract>
+ {% for co in md.identification.contact -%}{# tag="for co in md.identification.contact",object="CI_ResponsibleParty()", inboxmulti=1, group = "Responsible party",inbox="Point of contact" #}
+ <gmd:pointOfContact>
+ <gmd:CI_ResponsibleParty>
+ <gmd:organisationName>
+ <gco:CharacterString>{{ co.organization }}{# tag="co.organization",ref="Part B 9.1", multi = 0, group = "Responsible party",inboxmulti=1 ,inbox="Point of contact",object="CI_ResponsibleParty()",name="Organisation name",example="SDI Unit, Institute for Environment and Sustainability, Joint ResearchCentre",type = "string",desc="identification of, and means of communication with, person(s) and organization(s) associated with theresource(s)" #}</gco:CharacterString>
+ </gmd:organisationName>
+ <gmd:contactInfo>
+ <gmd:CI_Contact>
+ <gmd:address>
+ <gmd:CI_Address>
+ <gmd:electronicMailAddress>
+ <gco:CharacterString>{{ co.email }}{# tag="co.email",name="E-mail",ref="Part B 10.1" , group = "Metadata",inboxmulti=1, inbox="Responsible party",multi=0,type ="email",example="image2000 at jrc.it",object="CI_ResponsibleParty()", desc="Party responsible for the metadata information." #}</gco:CharacterString>
+ </gmd:electronicMailAddress>
+ </gmd:CI_Address>
+ </gmd:address>
+ </gmd:CI_Contact>
+ </gmd:contactInfo>
+ <gmd:role>
+ <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="{{ co.role }}{# tag="co.role",inboxmulti=1,name="Responsible party role",object="CI_ResponsibleParty()",ref="Part B 9.2", type = "CI_RoleCode", multi = 0, group = "Responsible party", inbox="Responsible party",example="custodian", desc="function performed by the responsible party" #}" codeSpace="ISOTC211/19115">{{ co.role }}</gmd:CI_RoleCode>
+ </gmd:role>
+ </gmd:CI_ResponsibleParty>
+ </gmd:pointOfContact>
+ {% endfor -%}
+ {% for (u,d) in zip(md.identification.uom,md.identification.distance) -%}{# tag="for (u,d) in zip(md.identification.uom,md.identification.distance)", group = "Quality and Validity", inbox="Spatial resolution-distance",inboxmulti= 1 #}
+ <gmd:spatialResolution>
+ <gmd:MD_Resolution>
+ <gmd:distance>
+ <gco:Distance uom="{{ u }}{# tag="u" , name="Units" , ref= "Part B 6.2" , desc= "Ground sample distance" , example = "m" , type ="string" , group = "Quality and Validity" ,inbox="Spatial resolution-distance", multi=0 , inboxmulti=1, multiline= False #}"
+>{{ d }}{# tag="d" , name="Resolution" , ref= "Part B 6.2" , desc= "Ground sample distance" , example = "25" , type ="integer" , group = "Quality and Validity" ,inbox="Spatial resolution-distance", multi=0 , inboxmulti=1, multiline= False #}</gco:Distance>
+ </gmd:distance>
+ </gmd:MD_Resolution>
+ </gmd:spatialResolution>
+ {% endfor -%}
+ <gmd:extent>
+ <gmd:EX_Extent>
+ <gmd:geographicElement>
+ <gmd:EX_GeographicBoundingBox>
+ <gmd:westBoundLongitude>
+ <gco:Decimal>{{ md.identification.extent.boundingBox.minx }}{# tag="md.identification.extent.boundingBox.minx" , name="West Bound Longitude" , ref= "Part B 4.1" , desc= "Western-most coordinate of the limit of the dataset extent, expressed in longitude in decimal degrees (positive east)." , example = "3.93" , type ="decimal" , group= "Geographic" , multi=0 , multiline= False #}</gco:Decimal>
+ </gmd:westBoundLongitude>
+ <gmd:eastBoundLongitude>
+ <gco:Decimal>{{ md.identification.extent.boundingBox.maxx }}{# tag="md.identification.extent.boundingBox.maxx" , name="East Bound Longitude" , ref= "Part B 4.1" , desc= "Eastern-most coordinate of the limit of the dataset extent, expressed in longitude in decimal degrees (positive east)." , example = "7.57" , type ="decimal" , group= "Geographic" , multi=0 , multiline= False #}</gco:Decimal>
+ </gmd:eastBoundLongitude>
+ <gmd:southBoundLatitude>
+ <gco:Decimal>{{ md.identification.extent.boundingBox.miny }}{# tag="md.identification.extent.boundingBox.miny" , name="South Bound Latitude" , ref= "Part B 4.1" , desc= "Southern-most coordinate of the limit of the dataset extent, expressed in latitude in decimal degrees (positive north)." , example = "52.10" , type ="decimal" , group= "Geographic" ,multi=0 , multiline= False #}</gco:Decimal>
+ </gmd:southBoundLatitude>
+ <gmd:northBoundLatitude>
+ <gco:Decimal>{{ md.identification.extent.boundingBox.maxy }}{# tag="md.identification.extent.boundingBox.maxy" , name="North Bound Latitude" , ref= "Part B 4.1" , desc= "Northern-most coordinate of the limit of the dataset extent, expressed in latitude in decimal degrees (positive north)." , example = "54.10" , type ="decimal" , group= "Geographic" , multi=0 , multiline= False #}</gco:Decimal>
+ </gmd:northBoundLatitude>
+ </gmd:EX_GeographicBoundingBox>
+ </gmd:geographicElement>
+ </gmd:EX_Extent>
+ </gmd:extent>
+ </gmd:MD_DataIdentification>
+ </gmd:identificationInfo>
+ <gmd:distributionInfo>
+ <gmd:MD_Distribution>
+ <gmd:distributionFormat>
+ <gmd:MD_Format>
+ <gmd:name gco:nilReason="inapplicable"/>
+ <gmd:version gco:nilReason="inapplicable"/>
+ </gmd:MD_Format>
+ </gmd:distributionFormat>
+ </gmd:MD_Distribution>
+ </gmd:distributionInfo>
+ <gmd:dataQualityInfo>
+ <gmd:DQ_DataQuality>
+ <gmd:lineage>
+ <gmd:LI_Lineage>
+ <gmd:statement>
+ <gco:CharacterString>{{ md.dataquality.lineage }}{# tag="md.dataquality.lineage" , name="Lineage" , ref= "Part B 6.1" , desc= "General explanation of the data producers knowledge about the lineage of a dataset." , example = "Product 1 scenes correspond to the path/row of the Landsat orbit.." , type ="string" , group= "Quality and Validity" , multiline= True #}</gco:CharacterString>
+ </gmd:statement>
+ </gmd:LI_Lineage>
+ </gmd:lineage>
+ </gmd:DQ_DataQuality>
+ </gmd:dataQualityInfo>
+ </gmd:MD_Metadata>
Added: grass-addons/grass7/gui/wxpython/wx.metadata/templates/inspireTemplate.xml
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/templates/inspireTemplate.xml (rev 0)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/templates/inspireTemplate.xml 2014-08-11 11:21:41 UTC (rev 61586)
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gmd:MD_Metadata xsi:schemaLocation="http://www.isotc211.org/2005/gmd http://schemas.opengis.net/iso/19139/20060504/gmd/gmd.xsd"
+ xmlns:gmd="http://www.isotc211.org/2005/gmd"
+ xmlns:gco="http://www.isotc211.org/2005/gco"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:gml="http://www.opengis.net/gml"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <gmd:fileIdentifier>
+ <gco:CharacterString>{{ md.identifier }}{# tag="md.identifier",ref="Part B 1.5", name ="Resource Identifier", desc ="Unique Resource Identifier", example ="286c0725-046e-4533-b0bf-d6e367f6c342", type = "string", multi = 0, group = "Identification", multiline=False #}</gco:CharacterString>
+ </gmd:fileIdentifier>
+ <gmd:language>
+ <gmd:LanguageCode codeList="http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/Codelist/ML_gmxCodelists.xml#LanguageCode" codeListValue="{{ md.languagecode }}{# tag="md.languagecode", name ="Metadata language", desc ="Language(s) used within the datasets", example ="eng", type = "string", multi = 0, group = "Metadata",multiline=False #}">{{ md.languagecode }}</gmd:LanguageCode>
+ </gmd:language>
+ <gmd:hierarchyLevel>
+ <gmd:MD_ScopeCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_ScopeCode" codeListValue="dataset" codeSpace="ISOTC211/19115">{{ md.identification.identtype }}{# tag="md.identification.identtype", name ="Resource Type", desc ="Scope to which metadata applies", example ="dataset", type = "string", multi = 0, group = "Identification",multiline=False #}</gmd:MD_ScopeCode>
+ </gmd:hierarchyLevel>
+ {% for co in md.contact -%}{# tag="for co in md.contact", inboxmulti = 1, group = "Metadata",inbox="Metadata point of contact",object="CI_ResponsibleParty()" #}
+ <gmd:contact>
+ <gmd:CI_ResponsibleParty>
+ <gmd:organisationName>
+ <gco:CharacterString>{{ co.organization }}{# tag="co.organization",ref="Part B 9.1", inboxmulti = 1,multi = 0,type = "string",group = "Metadata",object="CI_ResponsibleParty()", inbox="Metadata point of contact",name="Organisation name",example="SDI Unit, Institute for Environment and Sustainability, Joint ResearchCentre",desc="identification of, and means of communication with, person(s) and organization(s) associated with theresource(s)" #}</gco:CharacterString>
+ </gmd:organisationName>
+ <gmd:contactInfo>
+ <gmd:CI_Contact>
+ <gmd:address>
+ <gmd:CI_Address>
+ <gmd:electronicMailAddress>
+ <gco:CharacterString>{{ co.email }}{# tag="co.email",name="E-mail",ref="Part B 10.1", multi = 0,object="CI_ResponsibleParty()", inboxmulti = 1,group = "Metadata", inbox="Metadata point of contact",type = "email",example="image2000 at jrc.it", desc="Party responsible for the metadata information." #}</gco:CharacterString>
+ </gmd:electronicMailAddress>
+ </gmd:CI_Address>
+ </gmd:address>
+ </gmd:CI_Contact>
+ </gmd:contactInfo>
+ <gmd:role>
+ <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="{{ co.role }}{# tag="co.role",name="Responsible party role",ref="Part B 9.2" , multi = 0,type = "CI_RoleCode", inboxmulti = 1,group = "Responsible party",object="CI_ResponsibleParty()", inbox="Metadata pointt of contact",example="custodian", desc="function performed by the responsible party" #}" codeSpace="ISOTC211/19115">{{ co.role }}</gmd:CI_RoleCode>
+ </gmd:role>
+ </gmd:CI_ResponsibleParty>
+ </gmd:contact>
+ {% endfor -%}
+ <gmd:dateStamp>
+ <gco:Date>{{ md.datestamp }}{# tag="md.datestamp" , name="Metadata date" , ref= "Part B 10.2" , desc= "Date that the metadata was created." , example = "2005-03-27" , type ="date" , multi= 0 , group= "Metadata" , multiline= False #}</gco:Date>
+ </gmd:dateStamp>
+ <gmd:metadataStandardName>
+ <gco:CharacterString>ISO 19115</gco:CharacterString>
+ </gmd:metadataStandardName>
+ <gmd:metadataStandardVersion>
+ <gco:CharacterString>2003/Cor.1:2006</gco:CharacterString>
+ </gmd:metadataStandardVersion>
+ <gmd:identificationInfo>
+ <gmd:MD_DataIdentification>
+ <gmd:citation>
+ <gmd:CI_Citation>
+ <gmd:title>
+ <gco:CharacterString>{{ md.identification.title }}{# tag="md.identification.title", ref="Part B 1.1", name ="Resource title", desc ="Name by which the cited resource is known.", example ="Image2000 Product 1 (nl2) MultispectB 10.1" , multi = 0, group ="Identification", type = "string", multiline=True #}</gco:CharacterString>
+ </gmd:title>
+ {% for d in md.identification.date -%}{# tag="for d in md.identification.date" ,name="",object="CI_Date()",group= "Temporal" , inbox= "Date of creation/publication/revision", inboxmulti=1, multiline= False #}
+ <gmd:date>
+ <gmd:CI_Date>
+ <gmd:date>
+ <gco:DateTime>{{ d.date }}{# tag="d.date" , group= "Temporal" ,object="CI_Date()",type = "date", inbox= "Date of creation/publication/revision", inboxmulti=1, multiline= False, name="Date of: type(below)",desc="reference date for the cited resource - publication/creation/revision",example="2007-09-15" #}</gco:DateTime>
+ </gmd:date>
+ <gmd:dateType>
+ <gmd:CI_DateTypeCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode" codeListValue= "{{ d.type }}{# tag="d.type" , group= "Temporal" ,object="CI_Date()",type = "CI_DateTypeCode", inbox= "Date of creation/publication/revision", inboxmulti=1, multiline= False, name="type: creation/publication/revision",desc="reference date for the cited resource - publication/creation/revision",example="creation" #}" codeSpace="ISOTC211/19115">{{ d.type }}</gmd:CI_DateTypeCode>
+ </gmd:dateType>
+ </gmd:CI_Date>
+ </gmd:date>
+ {% endfor -%}
+{% for (cod,code) in zip(md.identification.uricode,md.identification.uricodespace) -%}{# tag="for (cod,code) in zip(md.identification.uricode,md.identification.uricodespace)", inboxmulti=1, group = "Identification",inbox="Unique resource identifier" #}
+ <gmd:identifier>
+ <gmd:RS_Identifier>
+ <gmd:code>
+ <gco:CharacterString>{{ cod }}{# tag="cod", inboxmulti=1, group = "Identification",inbox="Unique resource identifier" ,ref="Part B 1.5", name ="Idetifier- code", desc ="A value uniquely identifying the resource.The value domain of this metadata element is a mandatory character string code, generally assigned by the data owner, and a character string namespace uniquely identifying the context of the identifier code (for example, the data owner).", example ="http://image2000.jrc.it # image2000_1_nl2_multi", type = "string", multi = 0 #}</gco:CharacterString>
+ </gmd:code>
+ <gmd:codeSpace>
+ <gco:CharacterString>{{ code }}{# tag="code", inboxmulti=1, group = "Identification",inbox="Unique resource identifier" ,ref="Part B 1.5", name ="Idetifier- code space", desc ="A value uniquely identifying the resource.The value domain of this metadata element is a mandatory character string code, generally assigned by the data owner, and a character string namespace uniquely identifying the context of the identifier code (for example, the data owner).", example ="http://image2000.jrc.it", type = "string", multi = 0 #}</gco:CharacterString>
+ </gmd:codeSpace>
+ </gmd:RS_Identifier>
+ </gmd:identifier>
+ {% endfor -%}
+ </gmd:CI_Citation>
+ </gmd:citation>
+ <gmd:abstract>
+ <gco:CharacterString>{{ md.identification.abstract }}{# tag="md.identification.abstract ",ref="Part B 1.2", name ="Resource Abstract", desc ="Brief narrative summary of the content of the resource(s).", example ="IMAGE2000 product 1 individual orthorectified scenes. IMAGE2000 was produced from ETM+ Landsat 7 satellite data and provides a consistent European coverage of individual orthorectified scenes in national map projection systems. The year 2000 was targeted as reference year, but a deviation of maximum 1-year was allowed to obtain a full coverage of Europe, which involves approximately 450 Landsat TM Frames. Where Landsat 7 data were not available, Landsat 5 data have been used instead. The spatial resolution is 25 metres for multispectral and 12.5 metres for panchromatic imagery", type = "string", multi = 0, group = "Identification", multiline=True #}</gco:CharacterString>
+ </gmd:abstract>
+ {% for co in md.identification.contact -%}{# tag="for co in md.identification.contact",object="CI_ResponsibleParty()", inboxmulti=1, group = "Responsible party",inbox="Point of contact" #}
+ <gmd:pointOfContact>
+ <gmd:CI_ResponsibleParty>
+ <gmd:organisationName>
+ <gco:CharacterString>{{ co.organization }}{# tag="co.organization",ref="Part B 9.1", type = "string", multi = 0, group = "Responsible party",inboxmulti=1 ,inbox="Point of contact",object="CI_ResponsibleParty()",name="Organisation name",example="SDI Unit, Institute for Environment and Sustainability, Joint ResearchCentre",desc="identification of, and means of communication with, person(s) and organization(s) associated with theresource(s)" #}</gco:CharacterString>
+ </gmd:organisationName>
+ <gmd:contactInfo>
+ <gmd:CI_Contact>
+ <gmd:address>
+ <gmd:CI_Address>
+ <gmd:electronicMailAddress>
+ <gco:CharacterString>{{ co.email }}{# tag="co.email",name="E-mail",ref="Part B 10.1" , group = "Metadata",inboxmulti=1, inbox="Responsible party",multi=0,example="image2000 at jrc.it",object="CI_ResponsibleParty()", type = "email",desc="Party responsible for the metadata information." #}</gco:CharacterString>
+ </gmd:electronicMailAddress>
+ </gmd:CI_Address>
+ </gmd:address>
+ </gmd:CI_Contact>
+ </gmd:contactInfo>
+ <gmd:role>
+ <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="{{ co.role }}{# tag="co.role",inboxmulti=1,name="Responsible party role",type = "CI_RoleCode",object="CI_ResponsibleParty()",ref="Part B 9.2", multi = 0, group = "Responsible party", inbox="Responsible party",example="custodian", desc="function performed by the responsible party" #}" codeSpace="ISOTC211/19115">{{ co.role }}</gmd:CI_RoleCode>
+ </gmd:role>
+ </gmd:CI_ResponsibleParty>
+ </gmd:pointOfContact>
+ {% endfor -%}
+{% for k in md.identification.keywords -%}{# tag="for k in md.identification.keywords" ,group = "Keywords",inbox="Free keywords",inboxmulti=1 #}
+ <gmd:descriptiveKeywords>
+ <gmd:MD_Keywords>
+ {% for kw in k["keywords"] -%}{# tag='for kw in k["keywords"]',group = "Keywords",inbox="Free keywords",inboxmulti=1 #}
+
+ <gmd:keyword>
+ <gco:CharacterString>{{ kw }}{# tag="kw",ref="Part B 3.1", name ="Keyword",example="Land cover (INSPIRE Spatial Data Theme),humanCatalogueViewer (spatial data service,subcategory), water springs (AGROVOC), freshwater (GEMET Concepts)", desc ="Commonly used word(s) or formalised word(s) or phrase(s) used to describe the subject." , type = "string",inboxmulti=1, multi = 1, group = "Keywords", multiline=False, inbox="Free keywords" #} </gco:CharacterString>
+ </gmd:keyword>
+ {% endfor -%}
+ <gmd:thesaurusName>
+ <gmd:CI_Citation>
+ <gmd:title>
+ <gco:CharacterString>{{ k["thesaurus"]["title"] }}{# tag='k["thesaurus"]["title"]', name ="Title", desc ="This citation shall include title of keywords )" , type = "string", multi = 0,inboxmulti=1, group = "Keywords", multiline=False, inbox="Free keywords" #}</gco:CharacterString>
+ </gmd:title>
+ <gmd:date>
+ <gmd:CI_Date>
+ <gmd:date>
+ <gco:Date>{{ k["thesaurus"]["date"] }}{# tag='k["thesaurus"]["date"]', name ="Reference date", desc ="This citation shall include at least the title a reference date(publication, revision, creation." , type = "date",inboxmulti=1, multi = 0, group = "Keywords", multiline=False, inbox="Free keywords" #}</gco:Date>
+ </gmd:date>
+ <gmd:dateType>
+ <gmd:CI_DateTypeCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode" codeListValue= "{{ k["thesaurus"]["datetype"] }}{{ k["thesaurus"]["datetype"] }}{# tag='k["thesaurus"]["datetype"]', type = "CI_DateTypeCode",name ="Date type",inboxmulti=1, desc ="Options Date of creation, Date of last revision, date of publication" , multi = 0, group = "Keywords", multiline=False, inbox="Free keywords" #}" >{{ k["thesaurus"]["datetype"] }}</gmd:CI_DateTypeCode>
+ </gmd:dateType>
+ </gmd:CI_Date>
+ </gmd:date>
+ </gmd:CI_Citation>
+ </gmd:thesaurusName>
+ </gmd:MD_Keywords>
+ </gmd:descriptiveKeywords>
+ {% endfor -%}
+ {% for rc in md.identification.uselimitation -%}{# tag="for rc in md.identification.uselimitation" , group= "Constraints" ,inbox="Condition applying to access and use", inboxmulti=1 #}
+ <gmd:resourceConstraints>
+ <gmd:MD_Constraints>
+ <gmd:useLimitation>
+ <gco:CharacterString>{{ rc }}{# tag="rc" , name="Use limitation" , ref= "Part B 8.1" , desc= "restrictions on the access and use of a resource or metadata" , example = "no conditions apply" , type ="string" ,group= "Constraints" , multi= 0, multiline= False,inbox="Condition applying to access and use", inboxmulti=1 #}</gco:CharacterString>
+ </gmd:useLimitation>
+ </gmd:MD_Constraints>
+ </gmd:resourceConstraints>
+ {% endfor -%}
+ {% for oc in md.identification.otherconstraints -%}{# tag="for oc in md.identification.otherconstraints" , group= "Constraints",inbox="Other restriction", inboxmulti=1 #}
+ <gmd:resourceConstraints>
+ <gmd:MD_LegalConstraints>
+ <gmd:accessConstraints>
+ <gmd:MD_RestrictionCode codeList="http://www.isotc211.org/2005/resources/Codelist/ML_gmxCodelists.xml#MD_RestrictionCode" codeListValue="{{ oc }}{# tag="oc" , name="Other constraionts" , ref= "Part B 8.1" , desc= "Restrictions on the access and use of a resource or metadata" , example = "No conditions apply" , type ="MD_RestrictionCode" ,group= "Constraints" , multi= 0, multiline= False,inbox="Other restriction", inboxmulti=1 #}">{{ oc }}</gmd:MD_RestrictionCode>
+ </gmd:accessConstraints>
+ {% endfor -%}
+ {% for ac in md.identification.accessconstraints -%}{# tag="for oc in md.identification.accessconstraints" , group= "Constraints",inbox="Limitation on public access", inboxmulti=1 #}
+ <gmd:otherConstraints>
+ <gco:CharacterString>{{ ac }} {# tag="ac" ,name="Access constraints", group= "Constraints",inbox="Limitations on public access", inboxmulti=1,ref= "Part B 8.2" , desc= "access constraints applied to assure the protection of privacy or intellectual property, and any special restrictionsor limitations on obtaining the resource." , example = "intellectualPropertyRights (rights to financial benefit from and control of distribution of non tangible property that is a result of creativity)." , type ="string", multi=0 , multiline= False #}</gco:CharacterString>
+ </gmd:otherConstraints>
+ </gmd:MD_LegalConstraints>
+ </gmd:resourceConstraints>
+ {% endfor -%}
+ {% if md.identification.denominators|length > 0 -%}{# tag="if md.identification.denominators|length > 0", group = "Quality and Validity", inbox="Spatial resolution-scale",inboxmulti= 1 #}
+{% for den in md.identification.denominators -%}{# tag="for den in md.identification.denominators", group = "Quality and Validity", inbox="Spatial resolution-scale",inboxmulti= 1 #}
+ <gmd:spatialResolution>
+ <gmd:MD_Resolution>
+ <gmd:equivalentScale>
+ <gmd:MD_RepresentativeFraction>
+ <gmd:denominator>
+ <gco:Integer>{{ den }}{# tag="den" , name="Equivalent scale" , ref= "Part B 6.2" , desc= "level of detail expressed as the scale denominator of a comparable hardcopy map or chart" , example = "50000 (e.g. 1:50000 scale map)" , type ="integer" , group = "Quality and Validity" ,inbox="Spatial resolution-scale", multi=0 , inboxmulti=1, multiline= False #}</gco:Integer>
+ </gmd:denominator>
+ </gmd:MD_RepresentativeFraction>
+ </gmd:equivalentScale>
+ </gmd:MD_Resolution>
+ </gmd:spatialResolution>
+ {% endfor -%}
+ {% endif -%}
+
+ {% for lan in md.identification.resourcelanguage -%}{# tag="for lan in md.identification.resourcelanguage" , group= "Identification" ,inbox='Languages',inboxmulti=1, multiline= False #}
+ <gmd:language>
+ <gmd:LanguageCode codeList="http://www.isotc211.org/2005/resources/Codelist/ML_gmxCodelists.xml#LanguageCode" codeListValue="{{ lan }}{# tag="lan" , name="Metadata language" , ref= "Part B 10.3" , desc= "Language used for documenting metadata." , example = "eng" , type ="LanguageCode (ISO/TS 19139)" ,multi=0,inbox='Languages',inboxmulti=1, group= "Identification" , multiline= False #}">{{ lan }}</gmd:LanguageCode>
+ </gmd:language>
+ {% endfor -%}
+ {% for tc in md.identification.topiccategory -%}{# tag="for tc in md.identification.topiccategory", inbox='Topic category',group= "Classification", multiline= False #}
+ <gmd:topicCategory>
+ <gmd:MD_TopicCategoryCode>{{ tc }}{# tag="tc" , name="Topic" , ref= "Part B 2.1" , desc= "Main theme(s) of the dataset" ,inbox='Topic category', example = "imageryBaseMapsEarthCover" , type ="MD_TopicCategory" , group= "Classification" , multi=0 , multiline= False #}</gmd:MD_TopicCategoryCode>
+ </gmd:topicCategory>
+ {% endfor -%}
+{% for (u,d) in zip(md.identification.uom,md.identification.distance) -%}{# tag="for (u,d) in zip(md.identification.uom,md.identification.distance)", group = "Quality and Validity", inbox="Spatial resolution-distance",inboxmulti= 1 #}
+ <gmd:spatialResolution>
+ <gmd:MD_Resolution>
+ <gmd:distance>
+ <gco:Distance uom="{{ u }}{# tag="u" , name="Units" , ref= "Part B 6.2" , desc= "Ground sample distance" , example = "m" , type ="string" , group = "Quality and Validity" ,inbox="Spatial resolution-distance", multi=0 , inboxmulti=1, multiline= False #}">
+{{ d }}{# tag="d" , name="Resolution" , ref= "Part B 6.2" , desc= "Ground sample distance" , example = "25" , type ="integer" , group = "Quality and Validity" ,inbox="Spatial resolution-distance", multi=0 , inboxmulti=1, multiline= False #}</gco:Distance>
+ </gmd:distance>
+ </gmd:MD_Resolution>
+ </gmd:spatialResolution>
+ {% endfor -%}
+ <gmd:extent>
+ <gmd:EX_Extent>
+ <gmd:geographicElement>
+ <gmd:EX_GeographicBoundingBox>
+ <gmd:westBoundLongitude>
+ <gco:Decimal>{{ md.identification.extent.boundingBox.minx }}{# tag="md.identification.extent.boundingBox.minx" , name="West Bound Longitude" , ref= "Part B 4.1" , desc= "Western-most coordinate of the limit of the dataset extent, expressed in longitude in decimal degrees (positive east)." , example = "3.93" , type ="decimal" , group= "Geographic" , multi=0 , multiline= False #}</gco:Decimal>
+ </gmd:westBoundLongitude>
+ <gmd:eastBoundLongitude>
+ <gco:Decimal>{{ md.identification.extent.boundingBox.maxx }}{# tag="md.identification.extent.boundingBox.maxx" , name="East Bound Longitude" , ref= "Part B 4.1" , desc= "Eastern-most coordinate of the limit of the dataset extent, expressed in longitude in decimal degrees (positive east)." , example = "7.57" , type ="decimal" , group= "Geographic" , multi=0 , multiline= False #}</gco:Decimal>
+ </gmd:eastBoundLongitude>
+ <gmd:southBoundLatitude>
+ <gco:Decimal>{{ md.identification.extent.boundingBox.miny }}{# tag="md.identification.extent.boundingBox.miny" , name="South Bound Latitude" , ref= "Part B 4.1" , desc= "Southern-most coordinate of the limit of the dataset extent, expressed in latitude in decimal degrees (positive north)." , example = "52.10" , type ="decimal" , group= "Geographic" ,multi=0 , multiline= False #}</gco:Decimal>
+ </gmd:southBoundLatitude>
+ <gmd:northBoundLatitude>
+ <gco:Decimal>{{ md.identification.extent.boundingBox.maxy }}{# tag="md.identification.extent.boundingBox.maxy" , name="North Bound Latitude" , ref= "Part B 4.1" , desc= "Northern-most coordinate of the limit of the dataset extent, expressed in latitude in decimal degrees (positive north)." , example = "54.10" , type ="decimal" , group= "Geographic" , multi=0 , multiline= False #}</gco:Decimal>
+ </gmd:northBoundLatitude>
+ </gmd:EX_GeographicBoundingBox>
+ </gmd:geographicElement>
+ </gmd:EX_Extent>
+ </gmd:extent>
+ {% if md.identification.temporalextent_start != None -%}{# tag="if md.identification.temporalextent_start != None", group = "Temporal", inbox="Temporal Extent",inboxmulti= 0 #}
+ <gmd:extent>
+ <gmd:EX_Extent>
+ <gmd:temporalElement>
+ <gmd:EX_TemporalExtent>
+ <gmd:extent>
+ <gml:TimePeriod xsi:type="gml:TimePeriodType">
+ <gml:beginPosition>{{ md.identification.temporalextent_start }}{# tag="md.identification.temporalextent_start" , name="Starting date" , ref= "Part B 5.1" , desc= "Time period covered by the content of the dataset." , example = "2000-11-30" , type ="date" , group= "Temporal" , inbox= "Temporal extend", multi=0 , inboxmulti= 0, multiline= False #}</gml:beginPosition>
+ <gml:endPosition>{{ md.identification.temporalextent_end }}{# tag="md.identification.temporalextent_end" , name="Ending date" , ref= "Part B 5.1" , desc= "Time period covered by the content of the dataset." , example = "2000-11-30" , type ="date" , group= "Temporal" , inbox= "Temporal extend", multi=0 , inboxmulti= 0, multiline= False #}</gml:endPosition>
+ </gml:TimePeriod>
+ </gmd:extent>
+ </gmd:EX_TemporalExtent>
+ </gmd:temporalElement>
+ </gmd:EX_Extent>
+ </gmd:extent>
+ {% endif -%}
+ </gmd:MD_DataIdentification>
+ </gmd:identificationInfo>
+ <gmd:distributionInfo>
+ <gmd:MD_Distribution>
+ <gmd:distributionFormat>
+ <gmd:MD_Format>
+ <gmd:name gco:nilReason="inapplicable"/>
+ <gmd:version gco:nilReason="inapplicable"/>
+ </gmd:MD_Format>
+ </gmd:distributionFormat>
+ <gmd:transferOptions>
+ <gmd:MD_DigitalTransferOptions>
+ {% for ln in md.distribution.online -%}{# tag="for ln in md.distribution.online" , group= "Identification",object='CI_OnlineResource()' #}
+ <gmd:onLine>
+ <gmd:CI_OnlineResource>
+ <gmd:linkage>
+ <gmd:URL>{{ ln.url }}{# tag="ln.url" , name="Linkage" , ref= "Part B 1.4" ,object='CI_OnlineResource()', desc= "Location (address) for on-line access using a Uniform Resource Locator address or similar addressing scheme." , example = "http://image2000.jrc.it" , type ="url" , group= "Identification" ,multi=1, multiline= False #}</gmd:URL>
+ </gmd:linkage>
+ </gmd:CI_OnlineResource>
+ </gmd:onLine>
+ {% endfor -%}
+ </gmd:MD_DigitalTransferOptions>
+ </gmd:transferOptions>
+ </gmd:MD_Distribution>
+ </gmd:distributionInfo>
+ <gmd:dataQualityInfo>
+ <gmd:DQ_DataQuality>
+ <gmd:scope>
+ <gmd:DQ_Scope>
+ <gmd:level>
+ <gmd:MD_ScopeCode codeListValue="{{ md.identification.identtype }}{# tag="md.identification.identtype", name ="Resource Type", desc ="Scope to which metadata applies", example ="dataset", type = "string", multi = 0, group = "Conformity",multiline=False #}" codeList="http://www.isotc211.org/2005/resources/Codelist/ML_gmxCodelists.xml#MD_ScopeCode">{{ md.identification.identtype }}</gmd:MD_ScopeCode>
+ </gmd:level>
+ </gmd:DQ_Scope>
+ </gmd:scope>
+ {% for (t,d,dt,dg) in zip(md.dataquality.conformancetitle,md.dataquality.conformancedate,md.dataquality.conformancedatetype,md.dataquality.conformancedegree) -%}{# tag="for (t,d,dt,dg) in zip(md.dataquality.conformancetitle,md.dataquality.conformancedate,md.dataquality.conformancedatetype,md.dataquality.conformancedegree)", group = "Conformity", inbox="Conformity",inboxmulti= 1 #}
+ <gmd:report>
+ <gmd:DQ_DomainConsistency xsi:type="gmd:DQ_DomainConsistency_Type">
+ <gmd:measureIdentification>
+ <gmd:RS_Identifier>
+ <gmd:code>
+ <gco:CharacterString>Conformity</gco:CharacterString>
+ </gmd:code>
+ <gmd:codeSpace>
+ <gco:CharacterString>INSPIRE</gco:CharacterString>
+ </gmd:codeSpace>
+ </gmd:RS_Identifier>,
+ </gmd:measureIdentification>
+ <gmd:result>
+ <gmd:DQ_ConformanceResult xsi:type="gmd:DQ_ConformanceResult_Type">
+ <gmd:specification>
+ <gmd:CI_Citation>
+ <gmd:title>
+ <gco:CharacterString>{{ t }}{# tag="t" , name="Specification" , ref= "Part B 7.1" , desc= "citation of the product specification or user requirement against which data is being evaluated." , example = "INSPIRE Data Specification on orthoimagery - Guidelines" , type ="string" , group= "Conformity" , inbox= "Conformity", multi=0 , inboxmulti= 1, multiline= True #}</gco:CharacterString>
+ </gmd:title>
+ <gmd:date>
+ <gmd:CI_Date>
+ <gmd:date>
+ <gco:Date>{{ d }}{# tag="d" , name="Date" , ref= "Part B 7.1" , desc= "citation of the product specification or user requirement against which data is being evaluated." , example = "2010-04-26" , type ="date" , group= "Conformity" , inbox= "Conformity", multi=0 , inboxmulti= 1, multiline= False #}</gco:Date>
+ </gmd:date>
+ <gmd:dateType>
+ <gmd:CI_DateTypeCode codeList="http://www.isotc211.org/2005/resources/Codelist/ML_gmxCodelists.xml#CI_DateTypeCode" codeListValue={{ "\"%s\"" % dt }}>{{ dt }}{# tag="dt" , name="Date type" , ref= "Part B 7.1" , desc= "a date type: creation, revision or publication." , example = "publication" , type ="dateType" , group= "Conformity" , inbox= "Conformity", multi=0 , inboxmulti= 1, multiline= False #}</gmd:CI_DateTypeCode>
+ </gmd:dateType>
+ </gmd:CI_Date>
+ </gmd:date>
+ </gmd:CI_Citation>
+ </gmd:specification>
+ <gmd:explanation>
+ <gco:CharacterString>See the referenced specification</gco:CharacterString>
+ </gmd:explanation>
+ <gmd:pass>
+ <gco:Boolean>{{ dg }}{# tag="dg" , name="Degree/Pass" , ref= "Part B 7.2" , desc= "indication of the conformance result" , example = "True." , type ="boolean" , group= "Conformity" , inbox= "Conformity", multi=0 , inboxmulti= 1, multiline= False #}</gco:Boolean>
+ </gmd:pass>
+ </gmd:DQ_ConformanceResult>
+ </gmd:result>
+ </gmd:DQ_DomainConsistency>
+ </gmd:report>
+ {% endfor -%}
+ <gmd:lineage>
+ <gmd:LI_Lineage>
+ <gmd:statement>
+ <gco:CharacterString>{{ md.dataquality.lineage }}{# tag="md.dataquality.lineage" , name="Lineage" , ref= "Part B 6.1" , desc= "General explanation of the data producers knowledge about the lineage of a dataset." , example = "Product 1 scenes correspond to the path/row of the Landsat orbit.." , type ="string" , group= "Quality and Validity" , multiline= True #}</gco:CharacterString>
+ </gmd:statement>
+ </gmd:LI_Lineage>
+ </gmd:lineage>
+ </gmd:DQ_DataQuality>
+ </gmd:dataQualityInfo>
+</gmd:MD_Metadata>
Added: grass-addons/grass7/gui/wxpython/wx.metadata/v.info.iso.html
===================================================================
--- grass-addons/grass7/gui/wxpython/wx.metadata/v.info.iso.html (rev 0)
+++ grass-addons/grass7/gui/wxpython/wx.metadata/v.info.iso.html 2014-08-11 11:21:41 UTC (rev 61586)
@@ -0,0 +1,5 @@
+<h2>DESCRIPTION</h2>
+Metadata creator according to EN ISO 19115 and EN ISO 19119
+<h2>AUTHOR</h2>
+
+Matej Krejci, Czech Technical University in Prague, Czech Republic
More information about the grass-commit
mailing list