Bienvenue! Inscrivez-vous et rejoignez notre communauté :)
  • Login:

Bienvenue sur Forum SIG - Systèmes d'Information Géographique et Géomatique.

Bienvenue sur le forumSIG. S'il s'agit de votre première visite, assurez vous de faire une recherche préalable dans les FAQ SIG. Vous devez vous inscrire avant de pouvoir poster.

Affichage des résultats 1 à 7 sur 7
  1. #1

    Date d'inscription
    décembre 2005
    Localisation
    Entre l'Auvergne et la Lorraine
    Emploi
    Technicien géomatique
    Âge
    40
    Messages
    69

    Par défaut Import module Python Qgis dans environnement Arcgis

    Bonjour,

    Je viens de récupérer environ 200 projets réalisés sous Mapinfo, qui contiennent 25 fichier TAB chacun. Je dois donc les convertir en Shp, pour les utiliser dans Arcgis. Qgis fait cela très bien manuellement, mais là vous comprendrez que je n'envisage pas cette solution...
    Je m'oriente donc vers un script autonome en python, avec la bibliothèque pyqgis.

    Pour créer et lancer mes script je travail sous Pyscripter, Arcgis et Qgis étant tous les deux sous python 2.7.

    Cela fait 4 ans que j'utilise, la bibliothèque Arcpy, mais avec celle de qgis c'est une première. Donc première difficulté, importer la bibliothèque
    Pour cela j'ai tenté ceci:
    import sys
    path = r"C:\Program Files\QGIS 2.14\apps\Python27\lib"
    sys.path.append(path)
    from qgis.core import *


    Mais je tombe directe sur une première erreur; ImportError: No module named qgis.cor
    J'ai bien parcouru le livre de recette, mais je ne trouve pas mon information.

    Pouvez-vous me donner un coup de pouce svp?
    Merci
    Dernière modification par gene ; 15/12/2017 à 19h21.
    Un bougnat en Lorraine!

  2. #2
    Chasseur de Bots
    Date d'inscription
    août 2011
    Localisation
    Paris > Strasbourg
    Emploi
    Chargé de mission SIG
    Âge
    34
    Messages
    1 420

    Par défaut Re : Import module Python Qgis dans environnement Arcgis

    Par ici (tu peux aussi ajouter le dépôt aux plugins) :
    http://piece-jointe-carto.developpem...ns/plugins.xml

    tu as deux plugins : Openwor
    C'est un plugin qui ouvre les .WOR de Mapinfo sous QGIS, place les couches dans l'ordre et va même jusqu'à reprendre la symbologie.

    Ça c'est pour le projet.

    Pour les couches, je te conseille GDAL pour transformer du .TAB en .SHP avec son fabuleux ogr2ogr.

    Méthodologie :
    - Convertir avec openwor le document Mapinfo sous QGIS, l'enregistrer en .qgs.
    - Convertir les fichiers .TAB en .SHP grâce à ogr2ogr (en s'assurant que les fichiers créés, mis à part l'extension) ont le même nom
    - Éditer avec un éditeur de texte le fichier .qgs et rechercher / remplacer .TAB par .SHP, sinon, supprimer les .TAB et ouvrir le .qgs, QGIS demandera l'emplacement des couches, il suffira de lui indiquer les .shp.

  3. #3
    Modérateur et rédacteur Supporter(rice)


    Date d'inscription
    octobre 2005
    Localisation
    Louvain-la-neuve
    Emploi
    Géologue
    Organisme
    Université Catholique de Louvain - Région Wallonne
    Messages
    2 636

    Par défaut Re : Import module Python Qgis dans environnement Arcgis

    Vous avez bien lu Utiliser PyQGIS dans des scripts indépendants ? Il ne suffit pas d'utiliser le module sys

    Si vous voulez utiliser Python, vous n'avez besoin ni d'Arcpy ni de PyQGIS pour le faire (voir Les modules Python à finalités géospatiales: quid, quando, ubi ? par exemple)
    "Caminante, no hay camino, el camino se hace al andar" A. Machado

  4. #4

    Date d'inscription
    décembre 2005
    Localisation
    Entre l'Auvergne et la Lorraine
    Emploi
    Technicien géomatique
    Âge
    40
    Messages
    69

    Par défaut Re : Import module Python Qgis dans environnement Arcgis

    Merci à vous 2 pour votre aide, sur mon sujet.

    Je n'ai que les fichiers TAB. Ainsi, je n'ai pas les fichiers .WOR, ni les symbologies à traiter.

    gene
    Vous avez bien lu Utiliser PyQGIS dans des scripts indépendants ?
    Oui, je l'ai lu. Il est indiqué de commencer par

    from qgis.core import *


    puis quelques paramètres supplémentaires propres à la bibliothèque Qgis.
    Mais déjà cette première ligne ne fonctionne pas. Il est donc nécessaire que j'indique à python où trouver "Qgis.core", c'est bien ça?

    C'est pourquoi je cherche à utiliser sys pour donner le bon chemin. Mais je n'y arrive pas.

    Si je tente d'utiliser Qgis en python c'est parce qu'il y a l'aide est en français. Les modules géographiques indépendants demandent souvent un niveau en anglais et une technique python que je n'ai pas encore...
    Dernière modification par gene ; 18/12/2017 à 11h44.
    Un bougnat en Lorraine!

  5. #5
    Modérateur et rédacteur Supporter(rice)


    Date d'inscription
    octobre 2005
    Localisation
    Louvain-la-neuve
    Emploi
    Géologue
    Organisme
    Université Catholique de Louvain - Région Wallonne
    Messages
    2 636

    Par défaut Re : Import module Python Qgis dans environnement Arcgis

    Vous regarder quelques lignes plus bas dans Exécuter des applications personnalisées

    vous devrez indiquer au système où trouver les librairies de QGIS et les modules Python appropriés s’ils ne sont pas à un emplacement connu — autrement, Python se plaindra:

    >>> import qgis.core
    ImportError: No module named qgis.core



    Une autre solution est de travailler directement dans la console Python de QGIS et là vous n'avez pas besoin d'importer qgis.core.


    Citation Envoyé par little_kevin Voir le message
    Les modules géographiques indépendants demandent souvent un niveau en anglais et une technique python que je n'ai pas encore...
    Ils sont généralement plus faciles à utiliser que ceux de PyQGIS, surtout pour convertir des fichiers shapefiles (PyQGIS est vraiment très,très lourd...)
    Dernière modification par gene ; 18/12/2017 à 11h45.
    "Caminante, no hay camino, el camino se hace al andar" A. Machado

  6. #6

    Date d'inscription
    décembre 2005
    Localisation
    Entre l'Auvergne et la Lorraine
    Emploi
    Technicien géomatique
    Âge
    40
    Messages
    69

    Par défaut Re : Import module Python Qgis dans environnement Arcgis, TAB vers Shp

    Ils sont généralement plus faciles à utiliser que ceux de PyQGIS, surtout pour convertir des fichiers shapefiles (PyQGIS est vraiment très,très lourd...)
    Ah! Je ne m'attendais pas à ça . OK je vais m'y pencher un peu plus alors. Merci

    Mais comme j'avais besoin d'une solution rapidement, voici ce que j'ai fait;
    1. recherche des fichiers TAB dans chaque dossier
    2. pour chaque fichier tab écriture de la ligne ogr2ogr pour traduire le TAB en Shape, dans un cmd
    3. lancement du cmd

    Petit bémol, correction des accents dans les fichiers tab qui font planter ogr2ogr.
    Il y a sûrement mieux, mais ça fonctionne (moins de 3 minutes pour traiter 75 petits TAB).
    Alors si ça peut servir;

    # -*- coding:  latin-1 -*-
    import os

    data_source = r"C:\Temp\test_python\mapinfo"
    cmd_ogr=data_source+"\\commande_ogr_tabTOshp.cmd"

    wr_cmd=open(cmd_ogr,'w')
    wr_cmd.write("chcp cp1252"+"\n")
    wr_cmd.write("Set PGCLIENTENCODING=LATIN-1"+"\n")
    wr_cmd.close()

    list_dos=os.listdir(data_source) # liste des dossiers a traiter
    print list_dos_propri

    for dos in list_dos:
    wr_cmd=open(cmd_ogr,'a')
    wr_cmd.write("\n" + "ECHO traitement " + dos )
    if os.path.isdir (data_source+"\\"+dos):
    for filename in os.listdir(data_source+"\\"+dos): #pour chaque fichier dans le dossier"
    # correction des accents
    if "é" in filename: # correction des accents
    fullpath_fic0=os.path.join(data_source+"\\"+dos, filename)
    fullpath_fic=os.path.join(data_source+"\\"+dos, filename.replace("é","e"))
    os.rename(fullpath_fic0,fullpath_fic)
    elif "è" in filename:
    fullpath_fic0=os.path.join(data_source+"\\"+dos, filename)
    fullpath_fic=os.path.join(data_source+"\\"+dos, filename.replace("è","e"))
    os.rename(fullpath_fic0,fullpath_fic)
    else:
    fullpath_fic = os.path.join(data_source+"\\"+dos, str(filename)) #fullpath = chemin complet fichier tab
    basename, extension = os.path.splitext(fullpath_fic)
    #ecriture de la ligne ogr2ogr dans le cmd
    if extension.lower() == ".tab":
    commande ='ogr2ogr -f "ESRI Shapefile" "'+basename+'.shp" "'+fullpath_fic+'" '
    wr_cmd.write(commande+"\n")

    wr_cmd.write( "ECHO FIN traitement " + dos +"\n" )
    wr_cmd.close()
    wr_cmd=open(cmd_ogr,'a')
    wr_cmd.write( "\n" +"Pause" ) #pour voir le cmd a la fin
    wr_cmd.close()
    os.system('explorer '+cmd_ogr) #lancement du cmd
    Dernière modification par gene ; 18/12/2017 à 13h55.
    Un bougnat en Lorraine!

  7. #7
    Modérateur et rédacteur Supporter(rice)


    Date d'inscription
    octobre 2005
    Localisation
    Louvain-la-neuve
    Emploi
    Géologue
    Organisme
    Université Catholique de Louvain - Région Wallonne
    Messages
    2 636

    Par défaut Re : Import module Python Qgis dans environnement Arcgis

    Merci du retour, mais en fait vous utilisez la commande
    os.system
    qui est un peu dépassée (il faut utiliser la commande subprocess — Subprocess managementl) et vous n'utilisez pas du tout PyQGIS. Je vous montre ici quelques autre solutions

    1) Dans la console Python de QGIS (PyQGIS) (voir Converting ESRI SHP to MapInfo TAB via Python QGIS 2.18.1). Comme c'est l'inverse ici on utilise 0 au lieu de 5 (voir Transformation OGR)


    import processing
    def convert_layer(layer, filetype, save_location):
    processing.runalg('gdalogr:convertformat', layer, filetype, "", save_location)
    convert_layer("test.tab", 0, "conversion")


    2) avec GeoPandas


    import geopandas as gpd
    couche = gpd.read_file('test.tab')
    couche.to_file("test.shp")


    Mais l'important est que votre solution marche et vous satisfasse.
    "Caminante, no hay camino, el camino se hace al andar" A. Machado

 

 

Discussions similaires

  1. [QGIS 2.x] QGIS Python & arcgis installés : soucis en python sur QGIS
    Par tenson dans le forum Assistance et Programmation
    Réponses: 0
    Dernier message: 27/11/2014, 17h30
  2. [QGIS 1.x] LINUX qgis a installé des plugin qu'il n'utilise pas dans /usr/share/qgis/python/plug
    Par QGISTE76 dans le forum Assistance et Programmation
    Réponses: 6
    Dernier message: 24/06/2013, 09h15
  3. [Python] Environnement scientifique intégré
    Par merlinlelutin dans le forum Assistance Logiciel
    Réponses: 3
    Dernier message: 18/02/2013, 12h36
  4. [QGIS 1.x] Probleme de région, module grass dans qgis 1.6 et
    Par beugueur dans le forum Assistance et Programmation
    Réponses: 3
    Dernier message: 10/05/2011, 18h31
  5. [ArcGIS 10.x] Module calculatrice dans un programme python
    Par valentin.payen dans le forum Programmation
    Réponses: 0
    Dernier message: 04/04/2011, 15h46

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •