IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Calculer les points gps d'un perimetre de tonte


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2023
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2023
    Messages : 89
    Par défaut Calculer les points gps d'un perimetre de tonte
    Bonjour, j'ai encore besoin d'aide pour trouver les points périmetriques pour un futur robot tondeuse.

    J'ai récupéré mon perimetre de tonte grace à mon gps rtk, sa ressemble à ceci:

    Nom : Screenshot_5.png
Affichages : 289
Taille : 71,7 Ko

    Je cherche à calculer une tonte perimetrique, comme sur cette image en rouge:

    Nom : Screenshot_6.png
Affichages : 283
Taille : 82,4 Ko


    J'ai donc des coordonées gps de chaques points et j'ai tracé le périmetre.

    Quelqu'un aurait t'il une idée sur la façon de procéder pour obtenir les coordonées des points en rouges, j'aurais aimé avoir 1 metre entre le périmetre du jardin et le périmetre en rouge. Peu être existe t'il une librairie python pour effectuer cette tache qui me semble assez complexe.


    Pour le moment voici mon logiciel qui utilise tkinter.




    Merci de votre aide

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 541
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 541
    Par défaut
    Sans grosse certitude, tu peux peut-être regarder ça https://shapely.readthedocs.io/en/la...t.offset_curve
    Dans l'idée de la fonction, on a un sens de lecture des coordonnées, et on fait un décalage à droite ou à gauche d'une certaine valeur; c'est peut-être applicable sans utiliser le package. (j'ai cru avoir lu que 1m, ça se jouait au niveau de la sixième décimale de la coordonnée)

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2023
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2023
    Messages : 89
    Par défaut
    Merci pour le lien, je vais regarder

  4. #4
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2023
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2023
    Messages : 89
    Par défaut
    Je viens de tester (j'utilise pycharm), j'ai cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    C:\Users\cyril\AppData\Local\Microsoft\WindowsApps\python3.12.exe C:\Users\cyril\Documents\projet_tondeuse\perimetre\shaply1.py 
    Traceback (most recent call last):
      File "C:\Users\cyril\Documents\projet_tondeuse\perimetre\shaply1.py", line 1, in <module>
        import matplotlib.pyplot as plt
      File "C:\Users\cyril\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\matplotlib\__init__.py", line 276, in <module>
        _check_versions()
      File "C:\Users\cyril\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\matplotlib\__init__.py", line 270, in _check_versions
        module = importlib.import_module(modname)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1264.0_x64__qbz5n2kfra8p0\Lib\importlib\__init__.py", line 90, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\cyril\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\kiwisolver\__init__.py", line 8, in <module>
        from ._cext import (
    ImportError: DLL load failed while importing _cext: Le module spécifié est introuvable.
    Je vais essayer demain sur un autre pc, si quelqu'un a une idée du problème?

  5. #5
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Bonjour,

    Citation Envoyé par carlita_84
    DLL load failed while importing _cext
    Et vous avez dû logiquement faire une recherche sur votre moteur de recherches préférés je suppose ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2023
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2023
    Messages : 89
    Par défaut
    Je suis maintenant sur un autre pc, je test ce scripte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    import matplotlib.pyplot as plt
    from shapely import LineString, get_point
    from shapely.plotting import plot_line, plot_points
     
    from figures import SIZE, BLUE, GRAY, set_limits
     
    line = LineString([(0, 0), (1, 1), (0, 2), (2, 2), (3, 1), (1, 0)])
    line_bounds = line.bounds
    ax_range = [int(line_bounds[0] - 1.0), int(line_bounds[2] + 1.0)]
    ay_range = [int(line_bounds[1] - 1.0), int(line_bounds[3] + 1.0)]
     
    fig = plt.figure(1, figsize=(SIZE[0], 1.5 * SIZE[1]), dpi=90)
     
    # 1
    ax = fig.add_subplot(221)
     
    plot_line(line, ax, add_points=False, color=GRAY)
    plot_points(get_point(line, 0), ax=ax, color=GRAY)
    offset = line.parallel_offset(0.5, 'left', join_style=1)
    plot_line(offset, ax=ax, add_points=False, color=BLUE)
     
    ax.set_title('a) left, round')
    set_limits(ax, -2, 4, -1, 3)
     
    #2
    ax = fig.add_subplot(222)
     
    plot_line(line, ax, add_points=False, color=GRAY)
    plot_points(get_point(line, 0), ax=ax, color=GRAY)
    offset = line.parallel_offset(0.5, 'left', join_style=2)
    plot_line(offset, ax=ax, add_points=False, color=BLUE)
     
    ax.set_title('b) left, mitred')
    set_limits(ax, -2, 4, -1, 3)
     
    #3
    ax = fig.add_subplot(223)
     
    plot_line(line, ax, add_points=False, color=GRAY)
    plot_points(get_point(line, 0), ax=ax, color=GRAY)
    offset = line.parallel_offset(0.5, 'left', join_style=3)
    plot_line(offset, ax=ax, add_points=False, color=BLUE)
     
    ax.set_title('c) left, beveled')
    set_limits(ax, -2, 4, -1, 3)
     
    #4
    ax = fig.add_subplot(224)
     
    plot_line(line, ax, add_points=False, color=GRAY)
    plot_points(get_point(line, 0), ax=ax, color=GRAY)
    offset = line.parallel_offset(0.5, 'right', join_style=1)
    plot_line(offset, ax=ax, add_points=False, color=BLUE)
     
    ax.set_title('d) right, round')
    set_limits(ax, -2, 4, -1, 3)
     
    plt.show()


    J'ai maintenant cette erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    C:\Users\cyril\PycharmProjects\test1\venv\Scripts\python.exe C:\Users\cyril\PycharmProjects\test1\shapely1.py 
    Traceback (most recent call last):
      File "C:\Users\cyril\PycharmProjects\test1\shapely1.py", line 5, in <module>
        from figures import SIZE, BLUE, GRAY, set_limits
    ImportError: cannot import name 'SIZE' from 'figures' (C:\Users\cyril\PycharmProjects\test1\venv\lib\site-packages\figures\__init__.py)

  7. #7
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2023
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2023
    Messages : 89
    Par défaut
    Toujours sur mon deuxieme pc, Je viens de remplir le fichier __init__.py avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # __init__.py dans le module figures
     
    # Définissez les constantes
    SIZE = (6, 4)  # ou toute autre valeur appropriée
    BLUE = 'blue'  # ou une définition de couleur appropriée
    GRAY = 'gray'  # ou une définition de couleur appropriée
     
    # Définissez la fonction set_limits
    def set_limits(ax, x_min, x_max, y_min, y_max):
        ax.set_xlim(x_min, x_max)
        ax.set_ylim(y_min, y_max)
    Et la sa semble fonctionner, l'exemple donne ceci:


    Nom : Screenshot_7.png
Affichages : 215
Taille : 98,4 Ko

    Curieux que sa fonctionne pas sur mon premier pc, la version de python est differente, ici j'ai du python 3.9, je vais essayer de reproduire sa sur mon 1er pc

  8. #8
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2023
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2023
    Messages : 89
    Par défaut
    Je viens de re-tester sur mon premier pc avec python 3.9 j'ai toujours un problème de dll apparement:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    C:\Users\cyril\AppData\Local\Programs\Python\Python39\python.exe C:\Users\cyril\Documents\shapely\shapely1.py 
    Traceback (most recent call last):
      File "C:\Users\cyril\Documents\shapely\shapely1.py", line 1, in <module>
        import matplotlib.pyplot as plt
      File "C:\Users\cyril\AppData\Local\Programs\Python\Python39\lib\site-packages\matplotlib\__init__.py", line 291, in <module>
        _check_versions()
      File "C:\Users\cyril\AppData\Local\Programs\Python\Python39\lib\site-packages\matplotlib\__init__.py", line 285, in _check_versions
        module = importlib.import_module(modname)
      File "C:\Users\cyril\AppData\Local\Programs\Python\Python39\lib\importlib\__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "C:\Users\cyril\AppData\Local\Programs\Python\Python39\lib\site-packages\kiwisolver\__init__.py", line 8, in <module>
        from ._cext import (
    ImportError: DLL load failed while importing _cext: Le module spécifié est introuvable.
    Je ne trouve pas le problème

  9. #9
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 219
    Par défaut
    hello,
    c'est certainement le Visual C++ Redistributable for Visual Studio 2015 qui n'est pas installé.
    Ami calmant, J.P

  10. #10
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Citation Envoyé par carlita_84 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File "C:\Users\cyril\AppData\Local\Programs\Python\Python39\lib\site-packages\kiwisolver\__init__.py", line 8, in <module>
        from ._cext import (
    ImportError: DLL load failed while importing _cext: Le module spécifié est introuvable.
    Je ne trouve pas le problème
    Pourquoi faire 36 messages/tests sur cette erreur qui est pourtant claire, il suffit de lire la doc (comme toujours)
    https://kiwisolver.readthedocs.io/en...g-your-install

    Il te dit quelle librairie plante et qu'il manque quelque chose, aller dans sa doc et lire le paragraphe "installation" n'a rien que compliqué.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment sont calculés les points et nombre de points qui ne bouge plus !
    Par vttman dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 4
    Dernier message: 20/01/2017, 07h20
  2. Réponses: 4
    Dernier message: 11/12/2011, 07h40
  3. Récupérer tous les points GPS suivant une distance
    Par megaloplex dans le forum SPARQL
    Réponses: 0
    Dernier message: 29/07/2011, 15h25
  4. Réponses: 2
    Dernier message: 15/07/2009, 22h51
  5. Calculer les points
    Par ameno_123 dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2007, 22h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo