#1 Mon 11 December 2023 11:53
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
QGIS 3.28+Python: creation d un outil d export des DU
Aloha
Je suis en train de migrer notre outil de création/export des zip pour le GPU, initialement en batch + sql, vers un QgsProcessingAlgorithm.
Rien de très compliqué, on prend des données, on les exporte en fonction de l'idurba. Grandement utile quand on a 143 communes sur son territoire et 200 DU à gérer.
J'ai bien lu le post ici https://georezo.net/forum/viewtopic.php?id=93448 qui parle des métadonnées.
J'ai commencé à rédiger la fonction de création du fichier de métadonnées, mais je bute sur la question des espaces de nommage en XML.
Code:
def oldmetadataInspire(idurba,chemin):
nom = f"fr-0000{idurba[0:5]}-{idurba[6:9]}{idurba[10:]}"
QgsMessageLog.logMessage(f"nom fichier metadonnées : {nom}", 'ExportGPU', level=Qgis.MessageLevel.Info)
#root = ET.Element("gmd:MD_Metadata")
# récupérer le modèle et renseigner les "champs" à renseigner
tree = ET.parse("C:/Users/<user>/nvelle_arbo/projets/exp_gpu_qgis/modele_fr-0000xxxxx-pluDATAPPRO.xml")
root = tree.getroot()
ElementInclude.include(root)
#print(root.tag)
#for child in root:
# print(child.tag, child.attrib)
#print('t')
#for id in root.findall('{http://www.isotc211.org/2005/gmd}fileIdentifier/{http://www.isotc211.org/2005/gco}CharacterString'):
# pourquoi {http://www.isotc211.org/2005/gmd} ? pourquoi lors de l'écriture, on se retrouve avec <ns0:fileIdentifier> et plus <gmd:fileIdentifier>
for id in root.findall('{http://www.isotc211.org/2005/gmd}fileIdentifier'):
for child in id:
#print(child.tag, child.attrib, child.text)
child.text = f"{nom}"
for ds in root.findall("{http://www.isotc211.org/2005/gmd}dateStamp/*"):
print(ds.tag, ds.attrib)
ds.text = date.today().isoformat()
#ET.SubElement(dateStamp,"gco:DateTime").text=date.today().isoformat()
for tit in root.findall("/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title"):
print(tit.tag, tit.attrib)
for orga in root.findall('./contact/CI_ResponsibleParty/organisationName'):
print(orga.tag, orga.attrib)
tree.write(os.path.join(chemin,f"{nom}.xml"))Le fichier "modele_fr-0000xxxxx-pluDATAPPRO.xml", téléchargé sur le site du CNIG sert de modèle. Je souhaite juste à l'aide de requête aller modifier les items qui doivent l'être au moment de la géénration du zip.
Pourquoi lors de l'écriture, on se retrouve avec <ns0:fileIdentifier> et plus <gmd:fileIdentifier> ?
Quelqu'un a-t-il une idée sur comment faire ? Une piste ?
D'avance, merci
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne


