banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#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

 

Pied de page des forums

Powered by FluxBB