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
    février 2011
    Localisation
    Jura
    Emploi
    Chargé d'études-animateur du Programme Proies-Prédateur Lynx
    Organisme
    Fédération départementale des chasseurs du Jura
    Âge
    27
    Messages
    84

    Mes réseaux sociaux


    Add jb43 on Linkedin

    Par défaut Import automatique données GPS

    Bonjour à tous.

    Dans le cadre d'un projet de recherche, nous équipons des chevreuils/chamois de colliers GPS. Ces colliers enregistrent la position de l'animal toutes les 2 heures, les stocke puis nous les transmets lorsqu'il a enregistré 5 localisations .

    Cette transmission se fait par mail sous la forme d'un fichier standard au format .txt (à la fin de la nuit, cela fait donc plusieurs fichiers).

    L'import des localisations se fait donc pour l'instant de la façon suivante chaque matin: import de tous les fichier .txt sur excel > export en csv > import vers QGIS.

    Je me tourne donc vers vous pour savoir s'il n'y aurait pas un moyen pour automatiser cette démarche compte tenu de la lourdeur du processus ? Je pensais à une macro pour la partie import sur excel, mais idéalement, je voudrais une démarche qui m'affranchi de cette étape.

    Avez-vous une idée ?

    Merci d'avance!

    JB

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

    Par défaut Re : Import automatique données GPS

    Alors, même si la donnée peut être floutée au niveau coordonnées, pourrais-tu nous donner le format du fichier texte ? (il est largement possible de lire directement le fichier texte depuis QGIS avec python).

  3. #3

    Date d'inscription
    février 2011
    Localisation
    Jura
    Emploi
    Chargé d'études-animateur du Programme Proies-Prédateur Lynx
    Organisme
    Fédération départementale des chasseurs du Jura
    Âge
    27
    Messages
    84

    Mes réseaux sociaux


    Add jb43 on Linkedin

    Par défaut Re : Import automatique données GPS

    Bonjour et désolé pour le retard de réponse.

    Voici à quoi ressemble le fichier .txt de base transmis par le collier GPS: T3H-5878_2017-10-13_220052.txt

    Merci d'avance!

    JB

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

    Par défaut Re : Import automatique données GPS

    Voici un début de code fonctionnel mais pas optimal (des répétitions, pas de fonction qui faciliterai l'import de plusieurs fichiers textes) qui va charger txt dans l'emplacement chemin et créer une couche temporaire de points :


    # coding: utf-8

    from PyQt4.QtCore import QVariant
    from qgis.core import QgsField
    import csv

    chemin = u'C:\\Users\\moi\\Desktop\\'
    txt = u'T3H-5878_2017-10-13_220052'

    vlayer = QgsVectorLayer('Point?crs=epsg:4326', txt, 'memory')

    fld1 = QgsField('Date', QVariant.Date)
    fld2 = QgsField('Time', QVariant.Time)
    fld3 = QgsField('TTF', QVariant.Int)
    fld4 = QgsField('Lat', QVariant.Double)
    fld5 = QgsField('Long', QVariant.Double)
    fld6 = QgsField('Sats', QVariant.Int)
    fld7 = QgsField('2D_3D', QVariant.String)
    fld8 = QgsField('Alt', QVariant.Int)
    fld9 = QgsField('H_DOP', QVariant.Double)
    fld10 = QgsField('Temp', QVariant.Int)
    fld11 = QgsField('X', QVariant.Int)
    fld12 = QgsField('Y', QVariant.Int)

    dpr = vlayer.dataProvider()

    dpr.addAttributes([fld1])
    dpr.addAttributes([fld2])
    dpr.addAttributes([fld3])
    dpr.addAttributes([fld4])
    dpr.addAttributes([fld5])
    dpr.addAttributes([fld6])
    dpr.addAttributes([fld7])
    dpr.addAttributes([fld8])
    dpr.addAttributes([fld9])
    dpr.addAttributes([fld10])
    dpr.addAttributes([fld11])
    dpr.addAttributes([fld12])

    vlayer.updateFields()
    feat = QgsFeature(vlayer.fields())

    vlayer.startEditing()

    with open(chemin + txt + '.txt', 'rb') as csvfile:
    for i in range(3):
    next(csvfile, None)
    dat = csv.reader(csvfile, delimiter='\t', quotechar='"')
    for row in dat:
    if len(row) > 0:
    for i in range(12):
    feat.setAttribute(i, row[i])
    feat.setGeometry(QgsGeometry.fromPoint(QgsPoint(float(row[4]), float(row[3]))))
    dpr.addFeatures([feat])

    vlayer.commitChanges()

    if vlayer.isValid():
    QgsMapLayerRegistry.instance().addMapLayer(vlayer)

  5. #5

    Date d'inscription
    février 2011
    Localisation
    Jura
    Emploi
    Chargé d'études-animateur du Programme Proies-Prédateur Lynx
    Organisme
    Fédération départementale des chasseurs du Jura
    Âge
    27
    Messages
    84

    Mes réseaux sociaux


    Add jb43 on Linkedin

    Par défaut Re : Import automatique données GPS

    Citation Envoyé par SkåL Voir le message
    Voici un début de code fonctionnel mais pas optimal (des répétitions, pas de fonction qui faciliterai l'import de plusieurs fichiers textes) qui va charger txt dans l'emplacement chemin et créer une couche temporaire de points :


    # coding: utf-8

    from PyQt4.QtCore import QVariant
    from qgis.core import QgsField
    import csv

    chemin = u'C:\\Users\\moi\\Desktop\\'
    txt = u'T3H-5878_2017-10-13_220052'

    vlayer = QgsVectorLayer('Point?crs=epsg:4326', txt, 'memory')

    fld1 = QgsField('Date', QVariant.Date)
    fld2 = QgsField('Time', QVariant.Time)
    fld3 = QgsField('TTF', QVariant.Int)
    fld4 = QgsField('Lat', QVariant.Double)
    fld5 = QgsField('Long', QVariant.Double)
    fld6 = QgsField('Sats', QVariant.Int)
    fld7 = QgsField('2D_3D', QVariant.String)
    fld8 = QgsField('Alt', QVariant.Int)
    fld9 = QgsField('H_DOP', QVariant.Double)
    fld10 = QgsField('Temp', QVariant.Int)
    fld11 = QgsField('X', QVariant.Int)
    fld12 = QgsField('Y', QVariant.Int)

    dpr = vlayer.dataProvider()

    dpr.addAttributes([fld1])
    dpr.addAttributes([fld2])
    dpr.addAttributes([fld3])
    dpr.addAttributes([fld4])
    dpr.addAttributes([fld5])
    dpr.addAttributes([fld6])
    dpr.addAttributes([fld7])
    dpr.addAttributes([fld8])
    dpr.addAttributes([fld9])
    dpr.addAttributes([fld10])
    dpr.addAttributes([fld11])
    dpr.addAttributes([fld12])

    vlayer.updateFields()
    feat = QgsFeature(vlayer.fields())

    vlayer.startEditing()

    with open(chemin + txt + '.txt', 'rb') as csvfile:
    for i in range(3):
    next(csvfile, None)
    dat = csv.reader(csvfile, delimiter='\t', quotechar='"')
    for row in dat:
    if len(row) > 0:
    for i in range(12):
    feat.setAttribute(i, row[i])
    feat.setGeometry(QgsGeometry.fromPoint(QgsPoint(float(row[4]), float(row[3]))))
    dpr.addFeatures([feat])

    vlayer.commitChanges()

    if vlayer.isValid():
    QgsMapLayerRegistry.instance().addMapLayer(vlayer)
    Bonjour et merci pour votre réponse.

    Si je comprends bien, ce code n'importe les fichiers que 1 par 1 ?

    Sinon, j'ai trouvé une autre solution en réalisant une macro Excel fusionnant tous les fichiers .txt puis les enregistrant en csv.

    Merci.

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

    Par défaut Re : Import automatique données GPS

    Oui, ce code importe un unique fichier txt.
    Après, il me fallait plus de détails pour aller plus loin.
    Il est très facile de transformer le bloc d'import en fonction et d'appeler via une seule ligne de code un fichier texte (une fonction générale et une ligne de code par fichier).
    Il me manquait la suite comme : est-il préférable d'avoir une couche mémoire par fichier ou plutôt une couche qui centralise un à plusieurs fichiers ? Dans ce dernier cas, faut-il rajouter un champ contenant le nom du fichier par exemple ?

    Là, c'était plus pour montrer que via QGIS et sa console python, on pouvait importer directement un fichier texte et localiser les points, limitant ainsi les manipulations "humaines".

  7. #7

    Date d'inscription
    février 2011
    Localisation
    Jura
    Emploi
    Chargé d'études-animateur du Programme Proies-Prédateur Lynx
    Organisme
    Fédération départementale des chasseurs du Jura
    Âge
    27
    Messages
    84

    Mes réseaux sociaux


    Add jb43 on Linkedin

    Par défaut Re : Import automatique données GPS

    Citation Envoyé par SkåL Voir le message
    Oui, ce code importe un unique fichier txt.
    Après, il me fallait plus de détails pour aller plus loin.
    Il est très facile de transformer le bloc d'import en fonction et d'appeler via une seule ligne de code un fichier texte (une fonction générale et une ligne de code par fichier).
    Il me manquait la suite comme : est-il préférable d'avoir une couche mémoire par fichier ou plutôt une couche qui centralise un à plusieurs fichiers ? Dans ce dernier cas, faut-il rajouter un champ contenant le nom du fichier par exemple ?

    Là, c'était plus pour montrer que via QGIS et sa console python, on pouvait importer directement un fichier texte et localiser les points, limitant ainsi les manipulations "humaines".
    Ok je comprends.

    Il est préférable d'avoir une couche centralisation tous les fichiers. Par contre, cela veut dire qu'il faut relever tous les noms des x fichiers situés dans le dossier à importer ?

 

 

Discussions similaires

  1. [AutoCAD] LT2011 Découpage et suppression automatique de données
    Par Timbal dans le forum Assistance Technique
    Réponses: 2
    Dernier message: 07/11/2011, 09h28
  2. Réponses: 4
    Dernier message: 23/06/2011, 16h43
  3. [Données] Import shape ou import psql ?
    Par Mathias Cazac dans le forum Assistance et Programmation
    Réponses: 1
    Dernier message: 16/06/2009, 17h52
  4. [GeoConcept 6.x] Import raster automatique
    Par coverHarry dans le forum Programmation
    Réponses: 2
    Dernier message: 25/03/2009, 08h40
  5. Réponses: 1
    Dernier message: 03/04/2008, 09h53

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
  •