#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