Calcul aire polygone dans un anneau
Répondre à la discussion
Affichage des résultats 1 à 26 sur 26

Calcul aire polygone dans un anneau



  1. #1
    MachineV5

    Calcul aire polygone dans un anneau


    ------

    Bonjour à toutes et à tous,

    J'aurais besoin d’une petite aide pour mon projet. Nous devons réfléchir sur une thématique. Mon projet porte sur la mise en place de panneaux solaires autour de l’aéroport de Carcassonne afin de voir s’il est possible de l’alimenter.

    Pour vous donner un peu de contexte, mon groupe et moi avons récupéré les coordonnées (long/lat) de chaque zone rouge (ce sont les zones interdites, ie les habitations) et je dois maintenant calculer la densité des panneaux solaires de chaque secteur (j’appelle secteur les anneaux de rayon 0.2).

    Je n’arrive pas à implémenter un code qui me permette de calculer l’aire que représente chaque zone rouge dans les anneaux de rayon 0.2. Le but est de calculer la densité de zone blanche dans un anneau. Je ferais seulement 1 – densité_zones_rouges pour avoir celle de la zone blanche.

    Par exemple, si nous prenons l’anneau 5, je veux exprimer la densité de zone blanche que représenterait ces panneaux.
    Je connais les sommets de chaque zone (coordonnées long/lat).
    Je suis capable de calculer l’aire de chaque zone rouge grâce à la formule de lacet.

    Sans titre.png

    Sansf titre.png

    Mais je ne vois pas comment faire avoir l’aire dans l’anneau x.

    Auriez-vous une idée ou une piste pour faire cela ?
    Il y a beaucoup trop de cas possibles pour faire des if non ? Je suis un peu à la ramasse ..


    Merci d'avance à vous,
    Je vous souhaite de bonnes fêtes

    -----

  2. #2
    Appex

    Re : Calcul aire polygone dans un anneau

    Perso j'aurais fait très simple non pas en calculant mais en mesurant vu que vous semblez capable de dessiner la carte sous la forme d'une image.
    Supprimez déjà les anneaux et toutes les fioritures histoire de ne conserver que le dessin des zones rouges.
    Ensuite vous examinez la couleur de chaque pixel (rouge ou blanc) par exemple en commençant en haut à gauche puis en descendant puis en passant à la prochaine ligne verticale et ainsi de suite.
    Pour ce qui est de savoir ensuite à quel anneau appartient votre pixel et donc à quel anneau l'attribuer c'est assez élémentaire en vérifiant si x au carré + y au carré est plus ou moins grand que le r au carré.

  3. #3
    Merlin95

    Re : Calcul aire polygone dans un anneau

    Ou méthode de Monté Carlo pour avoir l'aire de zones rouges sur le grand cercle après faire un rapport de proportionnalité en fonction de l'aire d'un anneau donné "d'épaisseur" 0,2 et de rayon r.

  4. #4
    MachineV5

    Re : Calcul aire polygone dans un anneau

    Merci pour vos réponses !

    Petite question Merlin95,
    Une fois que j’ai l’aire en dessous du cercle de rayon r. Qu’entends-tu par faire un rapport de proportionnalité*». J’aurais juste à faire aire du cercle de rayon r - Aire cercle de rayon r_0.2
    Non ?

  5. A voir en vidéo sur Futura
  6. #5
    Merlin95

    Re : Calcul aire polygone dans un anneau

    Et bien je parle à priori de la même chose que toi c'est à dire l'aire d'un anneau qui se calcule facilement, par exemole comme sur ce lien : https://calculis.net/aire/anneau

    Le rapport de proportionnalité est simplement cette aire divisée par l'aire totale, l'aire du cercle de plus grand rayon sur ton dessin. Mais est-ce plus clair ou ais-je loupé qq chose ?

  7. #6
    MachineV5

    Re : Calcul aire polygone dans un anneau

    Je ne suis pas sûr d'avoir compris :

    la méthode de Monté Carlo permet d'avoir l'aire de mon polygone dans une zone.

    Je pensais appliquer cette méthode à chaque secteur sur chaque cercle. Par exemple, pour le secteur 1 (n'importe quelle zone rouge), si j'applique ça sur le cercle de rayon 0.4, alors pour avoir l'aire sur l'anneau 4. Je fais l'aire trouvée grâce à Monté Carlo - aire trouvée grâce à Monté Carlo lors du cercle de rayon 0.2.

    Ne faut-il pas faire ça ?

    C'est peut être un peu confus ... excuse moi ^^'

  8. #7
    Merlin95

    Re : Calcul aire polygone dans un anneau

    Non pas de souci, c'est peut-être pas ce que vous voulez.

    Mon idée était de faire Monte-Carlo sur toute la zone entière dans le plus grand cercle donc, ainsi vous obtenez une estimation de l'aire totale de toutes les zones rouges

    Ensuite pour avoir l'aire moyenne dans chaque anneau, je disais d'appliquer le rapport de proportionnalité indiqué avant.

  9. #8
    MachineV5

    Re : Calcul aire polygone dans un anneau

    Ah non non. Grâce à la formule de lacet, je peux calculer l'aire d'un secteur rouge.

    Ce que je souhaite faire c'est calculer l'aire d'un secteur rouge dans un anneau.

    Comme ceci :

    Nom : Sansf titre.png
Affichages : 124
Taille : 49,4 Ko

    Pour l'anneau 5, et le grand secteur (ABCD). Je veux calculer l'aire en bleu. et ainsi de suite pour les autres zones...

    Voyez-vous ce à quoi je pense ?

  10. #9
    Merlin95

    Re : Calcul aire polygone dans un anneau

    Ha ok oui je vois, c'est différent en effet.

  11. #10
    MachineV5

    Re : Calcul aire polygone dans un anneau

    Auriez-vous donc une solution ?

    Je n'ai pas encore creusé l'idée de la pixellisation évoquée par Appex mais étant donné que j'ai les points géographiques (long/lat) cela serait mieux non ? :/

  12. #11
    Merlin95

    Re : Calcul aire polygone dans un anneau

    La solution de Appex est pas mal, vous parcourez l'image comme indiqué par Appex par exemple et vous testez si un pixel est rouge ou blanc et à quel anneau il appartient (c'est assez facile puisqu'il est facile d'avoir la distance du pixel au centre des anneaux à partir des coordonnées du pixel). Le nombre de pixels rouges comptés ainsi dans un anneau correspondra à l'aire des polygones rouges appartenant l'anneau.
    Dernière modification par Merlin95 ; 20/12/2021 à 12h52.

  13. #12
    MachineV5

    Red face Re : Calcul aire polygone dans un anneau

    D'accord merci beaucoup pour votre aide.

    J'aurais deux questions :

    - comment faire pour effacer les "infos" inutiles ?
    Code HTML:
    def plot_cercle_iter(dictionnaire):
        """Affiche les zones interdites autour de l'aérodrome"""
        fig = plt.figure()
        ax = fig.add_subplot(111, projection='polar')
        ax.set_xticks(np.arange(0,2.0*np.pi,np.pi/6.0))
        ax.set_theta_zero_location("N")
        ax.set_theta_direction(-1)
        ax.set_ylim(0,0.22) 
        ax.set_yticks(np.arange(0,0.22,0.02))
        i=0
        for zone in dictionnaire.items():
            liste_theta = []
            liste_r = []
            for points_zone in zone[1]:
                r = points_zone.r
                theta = np.deg2rad(points_zone.theta)
                liste_theta.append(theta)
                liste_r.append(r)
    J'ai essayé d'enlever des lignes mais ça ne marche pas ...


    - Je n'ai jamais manipulé des images avec python.
    Comment puis-je connaître la position du pixel par rapport au centre (qui est l'aérodrome) ?

    Merci à vous !

  14. #13
    MachineV5

    Re : Calcul aire polygone dans un anneau

    C'est tout simplement plt.axis('off') ^^'

  15. #14
    CM63

    Re : Calcul aire polygone dans un anneau

    J'avais compris que c'était en vectoriel, mais si c'est en pixels, effectivement tu peux faire comme ça, c'est du "Monte-Carlo systématique" mais ça va être un peu laborieux non? Ça risque de demander du temps.
    Quoi? Quelque chose que je ne connais pas et qui me fait l'affront d'exister?!

  16. #15
    Appex

    Re : Calcul aire polygone dans un anneau

    Vectoriel ou pas n'est pas la question.
    Pour faire l'analyse pixel par pixel il faut une image point barre (qu'on peut analyse pixel par pixel of course) qu'on peut produire par du vectoriel ou pas (c'est sans importance pour la suite)
    Donc étape 1 : Produire l'image
    Etape 2 : Analyser l'image.
    La question qui se pose tôt ou tard au cours du traitement (l'analyse) sera de savoir à quelle coordonnée correspond le pixel de l'image.
    Il faut donc produire une fonction qui va fournir la position GPS selon celle du pixel (pour savoir si on est dans la bande circulaire)
    On doit avoir si j'ai bien compris l'image initiale une coordonnée (x,y) (0.5, 0.5) en coordonnées "image" qui correspond en GPS au centre de la carte (le centre des cercles)
    Dernière modification par Appex ; 20/12/2021 à 18h48.

  17. #16
    Merlin95

    Re : Calcul aire polygone dans un anneau

    Heuuu décidément je comprends pas grand chose, quand on obtient via une api un pixel, on a forcément les coordonnées du pixel dans l'image, c'est la moindre des choses. On peut même l'avoir en entrée puisqu'on parcourt de manière incrémentale l'image. Que vient faire le ... GPS ici (????).

    Forcément si on a réussi à tracer les cercles des anneaux c'est qu'on connait leurs diamètres.
    Dernière modification par Merlin95 ; 20/12/2021 à 19h12.

  18. #17
    Appex

    Re : Calcul aire polygone dans un anneau

    Quand je dis GPS c'est pour préciser la position dans le monde réel.
    A un moment donné il faudra bien définir les zones "en anneau" qui j'imagine ne sont pas définies en pixel dans le monde réel mais en position GPS
    Dernière modification par Appex ; 20/12/2021 à 19h13.

  19. #18
    Merlin95

    Re : Calcul aire polygone dans un anneau

    Pourquoi faire ? L'auteur n'a pas dit qu'il voulait se faire un barbeuk sur un top roof

  20. #19
    Appex

    Re : Calcul aire polygone dans un anneau

    Forcément si on a réussi à tracer les cercles des anneaux c'est qu'on connait leurs diamètres.
    Bien sûr et on a aussi su tracer les aires en rouge selon les positions "GPS".

    Mais pendant le traitement on doit savoir si le pixel est dans la zone (le bandeau circulaire) ou pas et ce traitement demande soit d'avoir traduit le bandeau circulaire réel en coordonnées images (coordonnées pixel qui ne l'oublions pas n'a rien à voir avec le monde réel puisque selon le langage de programmation la position en haut à gauche d'une image peut valoir 0;0 ou que sais-je )

  21. #20
    Merlin95

    Re : Calcul aire polygone dans un anneau

    Citation Envoyé par Appex Voir le message
    ce traitement demande soit d'avoir traduit le bandeau circulaire réel en coordonnées images
    Comment aurait-on pu ne pas avoir fait cela, tout en ayant ces bandeaux affichés sur l'image ?

  22. #21
    Appex

    Re : Calcul aire polygone dans un anneau

    Comment aurait-on pu ne pas avoir fait cela, tout en ayant ces bandeaux affichés sur l'image ?
    En multipliant avec un valeur non maitrisée.

    Maintenant si le primoposteur sait dire ce que vaut en GPS la position en haut à gauche de l'image tout va bien.

  23. #22
    Merlin95

    Re : Calcul aire polygone dans un anneau

    Bon je comprends toujours pas, pas grave.

  24. #23
    Appex

    Re : Calcul aire polygone dans un anneau

    C'est pas grave on va attendre les question éventuelles du primoposteur.

  25. #24
    MachineV5

    Re : Calcul aire polygone dans un anneau

    Je vous donne un peu de contexte :

    Grâce à un site, j'ai pu récupérer les coordonnées géographiques (long/lat) de chaque secteur (ce sont les zones d'habitation).
    Nom : Capture d’écran 2021-12-20 à 20.49.14.png
Affichages : 90
Taille : 31,7 Ko

    Puis j'ai traité les lignes pour réussir à représenter cela de manière circulaire en ayant l'aérodrome au milieu.

    J'ai, par la suite, ploté cela :

    Code:
    class Point():
        def __init__(self,long,lat):
            self.long = long 
            self.lat = lat
            self.r = None
            self.theta = None
            self.convert_to_polar()
    
        def __repr__(self):
            return f'Point(r={self.r}, theta={self.theta})'
    
        
        def convert_to_polar(self):
            long_ref = REFERENCE[0]
            lat_ref = REFERENCE[1]
    
            self.r = np.sqrt((float(self.long)-long_ref)**2+(float(self.lat)-lat_ref)**2) 
            if self.lat > lat_ref:
                if self.long > long_ref:
                    self.theta = np.rad2deg(m.atan((float(self.long) - long_ref)/(float(self.lat) - lat_ref)))
                else: 
                    self.theta = np.rad2deg(m.atan(abs((float(self.lat) - lat_ref)/(float(self.long) - long_ref)))) + 270
            else:
                if self.long > long_ref:
                    self.theta = np.rad2deg(m.atan(abs((float(self.lat) - lat_ref)/(float(self.long) - long_ref)))) + 90
                else:
                    self.theta = np.rad2deg(m.atan((float(self.long) - long_ref)/(float(self.lat) - lat_ref))) + 180
    Code:
    def plot_cercle_iter(dictionnaire):
        """Affiche les zones interdites autour de l'aérodrome"""
        fig = plt.figure()
        ax = fig.add_subplot(111, projection='polar')
        ax.set_xticks(np.arange(0,2.0*np.pi,np.pi/6.0))
        ax.set_theta_zero_location("N")
        ax.set_theta_direction(-1)
        ax.set_ylim(0,0.22) 
        ax.set_yticks(np.arange(0,0.22,0.02))
        i=0
        for zone in dictionnaire.items():
            liste_theta = []
            liste_r = []
            for points_zone in zone[1]:
                r = points_zone.r
                theta = np.deg2rad(points_zone.theta)
                liste_theta.append(theta)
                liste_r.append(r)
                #ax.scatter(theta,r,color="red")
                #ax.plot([theta,theta],[0,r])
    
            if i == 0:
                plt.fill(liste_theta,liste_r,'b')
                i=1 
            else:
                plt.fill(liste_theta,liste_r,'r')
        #plt.axis('off') 
        #Permet d'avoir les zones sans les axes. Utilisation dans Densité_Carca.py
        plt.show()
    Pour la suite de l'étude, les anneaux sont juste des secteurs afin de leur attribuer une densité de panneau solaire. Donc aire de la surface blanche / aire de l'anneau. J'aurais donc la densité associé à la luminosité.

    Utiliser les pixels n'est pas trop imprécis ? alors que je possède les coordonnées géographiques ?

  26. #25
    Merlin95

    Re : Calcul aire polygone dans un anneau

    Si tu as les données géométriques autant les utilisées au lieu de passer par une image (ce n'est pas que c'est imprécis, c'est juste inutile et donc augmente le risque d'erreurs bêtes de traduction, mais bon apparemment ton image est correcte) qui constitue une étape inutile au traitement de ton problème, mais c'est le même principe, les deux sont des cartes du (même) territoire. Rien d'extraordinaire dans tout çà, on t'a donné me semble-t-il les quelques éléments (qui vraiment pas très compliqués) pour ta question.

  27. #26
    Garion

    Re : Calcul aire polygone dans un anneau

    Ci dessous une bibliothèque qui pourrait répondre à ton problème :

    http://www.angusj.com/delphi/clipper.php

Discussions similaires

  1. Aire d'un polygone régulier
    Par The_Anonymous dans le forum Mathématiques du collège et du lycée
    Réponses: 19
    Dernier message: 18/02/2013, 10h54
  2. Calcul de Polygone spécifique
    Par JF6 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 20/01/2010, 10h20
  3. anneau de fractions dans l´anneau des polynômes complexes
    Par christophe_de_Berlin dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 30/04/2009, 18h50
  4. Aire d'un polygone M1(z1)...Mn(zn)
    Par inviteb1ffa2c7 dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 13/10/2008, 15h55
  5. aire et CG d'un polygone irregulier
    Par ABN84 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 21/01/2007, 12h39