Calcul d'orientation d'un bâtiment

classic Classic list List threaded Threaded
19 messages Options
Reply | Threaded
Open this post in threaded view
|

Calcul d'orientation d'un bâtiment

simogeo
Bonjour,

J'ai lu qu'il était possible de calculer l'orientation des bâtiments dans orbisGIS.
Ma première question est "comment?"

Est-ce possible d'en savoir davantage sur l'algorithme utilisé?
Merci,

simon
Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

ebocher
Administrator
Bonjour,


Qu'entendez-vous par orientation d'un bâtiment ? L'orientation moyenne de ses arcs ? L'orientation principale ?

Pouvez vous développer ?



Erwan.

Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

simogeo
Je veux définir une orientation générale (illustrée ci-dessous) par rapport à l'axe nord/sud.

azi

évidemment, tous les bâtiments n'ont pas des formes aussi simples, mais il s'agit d'une illustration!

J'avais lu ici   qu'orbisGis savait le faire. J'étais heureux de ne pas devoir le coder et curieux d'en savoir plus sur l'algo (en ce qui concerne les formes complexes).

merci




Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

ebocher
Administrator
Que voulez-vous dire par "orientation générale" notamment si les bâtiments ont des formes irrégulières ?
Vous voulez la diagonale ? La moyenne des sommes des angles des segments ?

Voir cette excellente présentation d'un collègue Eric Grosso : http://lamop.univ-paris1.fr/alpage/index.php/colloque-alpage/resumes-colloque-alpage/39-premieres-analyses-morphologiques-du-parcellaire-parisien


Erwan.

Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

ebocher
Administrator
In reply to this post by simogeo
From Eric Grosso

-----


Salut Erwan "et al.",

Je viens de regarder la présentation une nouvelle fois pour trouver où la notion
d'orientation générale avait été évoquée. Je ne l'ai pas vue.

Peu importe toutefois, j'en comprends le sens. L'"orientation générale" que tu évoques
fait référence à l'orientation calculée telle qu'évoquée en page 23 de la présentation.

La première question à se poser et se demander si, dans le cas des polygones aux formes
irrégulières, la notion d'orientation a un sens. Nous avons considéré que non dans un premier
temps, en regard de l'hypothèse qu'un polygone a une forme irrégulière s'il ne peut être rapprochée
d'une forme rectangulaire. C'est pourquoi nous avons décidé de calculer uniquement les orientations
des polygones sur la base des polygones qui étaient caractérisés comme étant rectangulaires.
De là, nous nous basons sur le plus grand axe caractéristique du rectangle minimum englobant
associé au polygone pour calculer l'orientation.

La seconde question est donc qu'est-ce qu'un polygone de forme irrégulière ? Nous n'y avons
pour l'instant pas répondu. Pour autant, dès que j'aurai un peu de temps libre, j'irai voir Sandrine
(Robert) avec qui entre autres, nous avons collaboré pour ce travail, pour améliorer l'outil.
Elle souhaite en effet l'utiliser dans le cadre de ses cours d'archéogéographie à Paris 1.
Une amélioration d'ores et déjà envisagée est de calculer l'orientation du polygone à partir du rectangle
englobant mais à partir de ses côtés, basé sur l'article suivant :
Duchêne C., Bard S., Barillot X., Ruas A., Trévisan J., Holzappfel F. 2003. Quantitative and qualitative description
of building orientation. 5th ICA Workshop on progress in automated map generalisation, Paris, 2003

Vous pouvez télécharger cet article en ligne  :
http://www.geo.unizh.ch/ICA/docs/paris2003/papers03.html

Nous pensons faire cela avant la fin de l'année.

J'espère que ces éléments répondent au moins partiellement à ta question.

A bientôt,
Eric
Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

simogeo
In reply to this post by ebocher
Merci pour le lien de la présentation d'Eric Grosso. C'est en effet très intéressant.

Je ne veux ni la diagonale, ni la moyenne des sommes des angles des segments.
Je veux mesurer l'orientation d'un polygone par rapport à l'axe nord/sud ou est/ouest.

Le terme azimuth n'est pas spécialement bien choisi. Ne vous y attardez pas, je veux juste calculer un ANGLE!

azi step

Je détaille les étapes du précédent schéma :
- étape 1 : positionnement du polygone sur axe virtuel (uniquement pour faciliter la compréhension)
- étape 2 : simplification des polygones (la méthode du rectangle minimum englobant qui figure dans la présentation d'E. Grosso est une piste intéressante pour cette étape!)
- étape 3 : Polygon to Polyline + Calcul de l'angle par rapport à axe Est/Ouest (dans l'illustration)

Suis-je plus clair?

Merci, simon


Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

simogeo
Erwan,

je viens de voir le forward du message d'E. Grosso.

Je commente par rapport à ma problématique :

Peu importe toutefois, j'en comprends le sens. L'"orientation générale" que tu évoques
fait référence à l'orientation calculée telle qu'évoquée en page 23 de la présentation.


>> Oui, c'est bien ça. Elle est déterminée par la longueur L

La première question à se poser et se demander si, dans le cas des polygones aux formes
irrégulières, la notion d'orientation a un sens. Nous avons considéré que non dans un premier
temps, en regard de l'hypothèse qu'un polygone a une forme irrégulière s'il ne peut être rapprochée
d'une forme rectangulaire. C'est pourquoi nous avons décidé de calculer uniquement les orientations
des polygones sur la base des polygones qui étaient caractérisés comme étant rectangulaires.
De là, nous nous basons sur le plus grand axe caractéristique du rectangle minimum englobant
associé au polygone pour calculer l'orientation.


>> J'ai bien conscience de ça. C'est pour cette raison que je m'intéresse dans un premier temps aux formes rectangulaires et non pas au formes complexes (l'étape 2 précédemment décrite est donc inutile dans le cas ou tous mes polygones sont des rectangles. En réalité, c'est là que se situe le vrai enjeu. Cette lors de cette étape qu'on devrait savoir si oui ou non, le calcul de l'orientation a un sens. Si "oui", on la calcule et la renseigne dans un champ. Si "non", identifions le polygone concerné en le précisant de façon attributaire).

Merci pour le suivi!
Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

ebocher
Administrator
Bonjour,


Le 14 octobre 2010 12:04, simogeo [via OrbisGIS] <[hidden email]> a écrit :
Erwan,

je viens de voir le forward du message d'E. Grosso.

Je commente par rapport à ma problématique :

Peu importe toutefois, j'en comprends le sens. L'"orientation générale" que tu évoques
fait référence à l'orientation calculée telle qu'évoquée en page 23 de la présentation.


>> Oui, c'est bien ça. Elle est déterminée par la longueur L

Ok. Je vais regarder ce que nous avons dans les tiroirs mais a priori cela ne pose aucun pb. 

La première question à se poser et se demander si, dans le cas des polygones aux formes
irrégulières, la notion d'orientation a un sens. Nous avons considéré que non dans un premier
temps, en regard de l'hypothèse qu'un polygone a une forme irrégulière s'il ne peut être rapprochée
d'une forme rectangulaire. C'est pourquoi nous avons décidé de calculer uniquement les orientations
des polygones sur la base des polygones qui étaient caractérisés comme étant rectangulaires.
De là, nous nous basons sur le plus grand axe caractéristique du rectangle minimum englobant
associé au polygone pour calculer l'orientation.


>> J'ai bien conscience de ça. C'est pour cette raison que je m'intéresse dans un premier temps aux formes rectangulaires et non pas au formes complexes (l'étape 2 précédemment décrite est donc inutile dans le cas ou tous mes polygones sont des rectangles. En réalité, c'est là que se situe le vrai enjeu. Cette lors de cette étape qu'on devrait savoir si oui ou non, le calcul de l'orientation a un sens. Si "oui", on la calcule et la renseigne dans un champ. Si "non", identifions le polygone concerné en le précisant de façon attributaire).

Dans la 3.0 nous avons ajouté des fonctions pour faire de l'analyse morpho plus poussée. Vous avez par exemple la fonction ST_IsRectangle pour tester si votre géométrie est un rectangle. Par contre nous n'avons pas encore le L et l car cela vient du faite que le rectangle n'est pas reconnu comme une géometrie en tant que telle. Il s'agit simplement d'un polygon. Je vais regarder cette affaire et vous tiens au courant.
 

Merci pour le suivi!

De nada.

 

View message @ http://orbisgis.3871844.n2.nabble.com/Calcul-d-orientation-d-un-batiment-tp5631480p5634403.html
To start a new topic under OrbisGIS Users, email [hidden email]
To unsubscribe from OrbisGIS Users, click here.




--
École Centrale de Nantes
Institut de recherche en sciences et techniques de la ville
BP 92101
1 rue de la Noë, 44321 NANTES Cedex 3
France
Tél : 02 40 37 68 67
http://www.irstv.cnrs.fr/
Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

simogeo
Salut à tous,

Pour suivi, Julien Gaffuri a eu la bonne idée de développer la librairie java opencarto qui implémente, entre autre, le calcul d'orientation général de Duchene et Al..

Pour mes besoins, je l'ai utilisé en standalone avec geotools mais une intégration à OrbisGis sous forme de plugin serait envisageable. Quoiqu'il en soit la librairie opencarto mérite d'être connue, donc je partage ici.

Encore une fois merci pour l'intérêt porté à ma question,
++



Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

Gwendall Petit
Administrator
Bonjour Simon,

Merci pour l'info, ça semble effectivement intéressant.
On va essayer de suivre le projet ... pour peut-être travailler au câblage avec OrbisGIS.

Cordialement,

Gwendall
Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

Eric Grosso
In reply to this post by simogeo
Bonjour à tous,

Pour suivi également (désolé de ne pas l'avoir posté précédemment), un plugin développé en surcouche
d'OpenJUMP (plugin appelé MorphAL) a été déposé sous licence GPLv2 il y a une semaine sur le site
d'ALPAGE à l'adresse suivante : http://lamop.univ-paris1.fr/alpage/index.php/cartographie/extension-sig

Il reprend les principes évoqués dans le message que j'avais transmis à Erwan, message que ce dernier
avait ici posté. MorphAL permet entre autre de calculer l'orientation et l'élongation de polygones, mais
également de dire si ceux-ci ont une forme rectangulaire ou circulaire. L'orientation comme l'élongation
sont calculées à partir du plus petit rectangle englobant calculé sur le polygone traité.

Une documentation expliquant de manière plus détaillée les fonctionnalités de MorphAL est également disponible :
http://lamop.univ-paris1.fr/alpage/documents/ressources/MorphAL-0.1-guide_utilisateur-1.0.pdf

Les méthodes déposés sont des méthodes basées sur JTS. Pour avoir discuté cet après-midi avec Erwan,
ce code sera peut-être intégré à l'avenir dans OrbisGIS.

Eric
Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

Gwendall Petit
Administrator
Que de bonnes nouvelles .... !

Merci pour les liens.

Gwendall
Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

ebocher
Administrator
Hello Eric,

Merci beaucoup à toi. C'est avec plaisir que nous travaillerons à l'intégration de Morphal dans OrbiGIS.

Amitiés

Erwan.
Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

quentindarakdjian
Bonjour,

J'ai bien lu vos précédents échanges et souhaite savoir si la librairie OrbisGIS a été depuis implémentée par ce calcul d'orientation de bâtiments (morphAL ou autre)?

Par ailleurs en essayant quelque chose de moi même, j'ai été confronté à un problème lors de l'étape de la création du rectangle minimum enveloppant.
En effet, la fonction SQL:
     select ST_MinimumRectangle(the_geom) from myTable;
renvoi des cercles (ou points ponctuels) plutôt que des rectangles.
Pourquoi?

Merci à tous

Quentin
Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

Gwendall Petit
Administrator
Bonjour Quentin,

Non malheureusement nous n'avons pas avancé sur morphAL.

Pour la fonction ST_MinimumRectangle pas de panique le résultat est bon
Dans la version beta 4.0 que tu utilises nous avons encore quelques soucis pour identifier directement le type de géométrie provenant de ce type de requêtes. La conséquence directe est que par défaut, la symbologie appliqué est le point.
Pour régler ton problème, il te suffit donc d'éditer la légende (clic droit sur le style de la couche dans le TOC / Edition de style simple --> clic sur la règle ou sur le "point symbolizer" puis clic sur l'icone pour ajouter une analyse --> Unique Symbol - Polygon ). Tu auras alors deux symboles : points et polygones (tu peux ensuite supprimer le point)

Cordialement,

Gwendall
Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

quentindarakdjian
Parfait Gwendall et pardon du dérangement, mais je suis déjà de retour car je planche sur l'étape suivante et ai besoin d'aide.

Pour le calcul d'orientation à proprement parlé, je pense suivre la logique suivante:
1- Créer une ligne à partir du plus grand coté de mon rectangle:
        Soit dans ma table les coordonnées d'un rectangle: POLYGON(xA yA , xB yB , xC yC , xD yD, xA yA ) -> POLYGON(2 1 , 6 3 , 5 5 , 1 3, 2 1)
        Je sélectionne le plus grand coté: MAX (√( (xB-xA)²+(yB-yA)); √((xC-xB)²+(yB-yB)) ) en tant que ligne et pas valeur :/
2- Créer une ligne horizontale Est-Ouest
        ?
3- Calculer l'angle correspondant pour mes bâtiments (sans utiliser la mesure d'angle manuelle, j'ai quelques centaines de bâtiments).


Voici l'idée

Merci de votre aide

Quentin
Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

Gwendall Petit
Administrator
Bonjour Quentin,

Avec un peu de retard, voici une approche qui pourrait t'aider.

1/ Déterminer le rectangle minimum englobant pour chacun de tes bâtiments
2/ Isoler la largeur (le plus petit côté) de chaque rectangle
3/ Calculer l'azimut (angle entre le nord et la largeur du rectangle)
-- rectangle minimum
CREATE TABLE polygons as select ST_MinimumRectangle(the_geom) as the_geom, ID  from BATI_INDIFFERENCIE;
-- plus petit côté = minimum diamètre
CREATE TABLE lines as select ST_MinimumDiameter(the_geom) as the_geom, ID from polygons;
-- ajout d'un champ numérique pour l'azimut
ALTER TABLE lines ADD COLUMN azimut double;
-- mise à jour de l'azimut (calculé entre le point de départ et le point d'arrivée du segment)
UPDATE lines SET azimut=ST_AZIMUT(ST_STARTPOINT(the_geom), ST_ENDPOINT(the_geom));
Dans ce script, on veille à conserver l'identifiant des bâtiments, ici stockés dans le champ "ID".

Je viens de tester l'opération sur les 393 000 bâtiments (indifférenciés) du département 44 (BD TOPO de l'IGN) et le script passe en 24s



Si je me fie à ton schéma, l'azimut que je calcule ici est égal (par équivalence) à ton angle formé entre la ligne AB et l'horizontal (15° dans ton cas).

J'espère que ça pourra t'aider.

Cordialement,

Gwendall
Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

quentindarakdjian
Merci Gwendall,

Le code est finalement plutôt simple!
Reply | Threaded
Open this post in threaded view
|

Re: Calcul d'orientation d'un bâtiment

Gwendall Petit
Administrator
Oui finalement ...
Le plus long était de se pencher sur le problème

Content si ça peux résoudre ton problème.

Cordialement,

Gwendall