Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 20 January 2005 09:35

Mgaland
Invité

probleme de calcul de surface

De: Marie Galand
Je calcule des surfaces dans un mbx et si je calcule deux fois la surface a quelques lignes de code d'intervalle (2 procedures differentes), je n'obtiens pas les memes surfaces (environ 6 m2 d'ecart). Je n'ai pourtant pas zoomer dans mon mbx entre mes deux commandes (ce qui aurait peut-etre pu avoir un impact sur la precision). J'ai essayer de modifier les bornes, ca ne change rien. Et en plus, quand j'utilise les outils standards de Mapinfo en double cliquant sur un polygone, j'obtiens encore des surfaces differentes .
A l'aide!
J'ai bien lu un mail de Jacques Paris, poste le 13/11/2000 qui dit : Il y a bien des mysteres la-dessous en parlant justement des superficies! Y'a-t-il du mieux depuis 2000 ou des gens qui auraient trouve des solutions? Y'a-t-il un parametre qui m'echappe? A titre indicatif, j'utilise le version 7.0 de mapinfo et mapbasic.
Merci d'avance

 

#2 Thu 20 January 2005 09:35

Michel Wurtz
Invité

Re: probleme de calcul de surface

MapInfo a deux methodes de calcul des surfaces : spherique et
cartesienne. Dans le premier cas, le calcul est theoriquement
independant des deformations (alteration lineaire) dues au systeme
de projection utilise. Dans le second cas, l'alteration lineaire
n'est pas corrigee.

Ceci signifie que ces deux surfaces ne sont pas les memes (a quelques
pouïemes de %, ne nous affolons pas :-). Mais il y a fort a parier (je
n'ai pas teste) que si le systeme de projection utilise pour les calculs
n'est pas le meme, on n'obtienne pas non plus les memes valeurs (par
exemple calcul cartesien en Lambert 2 etendu et en Lambert 3).

Tout ceci montre d'une part que les problemes de representation plane
et de leur impact sur les mesures n'est pas completement trivial,
et d'autre part qu'il faut parfois savoir etre modeste dans
la precision que l'on demande a un SIG, surtout quand on s'aperçoit
que bien souvent ces differences de surfaces sont bien inferieures a
la precision avec laquelle les donnees ont ete saisies...

Michel Wurtz
DGA/SDSI/CERIT/DIG
B.P. 12668 - 31326 Castanet-Tolosan Cedex

 

#3 Mon 24 January 2005 08:14

Mgaland
Invité

Re: probleme de calcul de surface

De: Marie Galand
J'ai ameliore mes performances puisque mon ecart entre mes deux calculs de superficies n’est plus que de 100 cm2, ce qui me parait beaucoup plus raisonnable! La technique que j’ai utilise c’est d’abord, comme on me l’a suggere de verifier mes projections, qu'elles soient identiques pour tous les fichiers (y compris les fichiers de travail detruit a la fin) et surtout de reduire l’ensemble de mes bornes sur chacun des fichiers (y compris de travail) et ainsi avoir quelque chose de bien plus precis !
Bon weekend

Marie Galand
IDEM'S, Saint Paul (La Reunion)
Responsable cartographie / SIG

 

#4 Fri 04 March 2005 09:20

Sig Cctva
Invité

Re: probleme de calcul de surface

De: Luc Guiavarc'h
Cherche du cote des unites:
- ( menu carte option, regarde quel sont tes coordonnees par default) : ca c'est pour ce qui est des surfaces quand tu doubles-cliques sur tes polygones.
- Par contre quand tu fait une requete SQL tu indiques les unites par exemple : Area(obj, sq mi )... et la surprise par default c'est en miles sq mi , il ne faut pas oublier d'indiquer en metres sq m
peut etre cela repondra t il a ta question...

 

#5 Wed 13 April 2005 10:33

Bmasson
Invité

Re: probleme de calcul de surface

De: Benoit Masson
bonjour,

une question dont la reponse est peut etre simple...

je voudrais calculer la surface bati d'une parcelle et integrer ce resultat a la table parcelle

pour ce faire j'ai une table bati avec les surfaces par batiment... mon probleme se pose lorque j'ai plusieurs batiments par parcelle.

comment peut on calculer la sommes des surfaces baties des parcelles sans devoir recommencer individuellement l'operation pour chaque parcelles ? ou y a t'il le moyen de faire automatiquement le calul de la surface batie pour chaque parcelle ?

merci de vos reponses
cordialement

Benoit Masson

 

#6 Wed 13 April 2005 10:33

Frédéric VIÑAS
Invité

Re: probleme de calcul de surface

Une solution :
Attribuer a vos batiments le numero de la parcelle,
Demander la somme des surfaces par parcelle,
Faire le lien entre ce nouveau tableau et la table parcelle.

Frederic

 

#7 Wed 13 April 2005 10:33

Lauffer Marc
Invité

Re: probleme de calcul de surface

Pour moi le plus simple serait de travailler sur une copie de la table bati enrichie d'un champ identifiant de parcelle (plusieurs enregistrements de bati pourront avoir le meme identifiant de parcelle.

A partir de la c'est du gateau :

SELECT id_parcelle, Sum(surface_bati) FROM table_parcelle GROUP BY id_parcelle

Ensuite il suffit de recuperer les valeurs de surfaces totales par parcelle dans la table parcelle par une MAJ colonne avec une jointure id_parcelle = id_parcelle.

Marc lauffer

 

#8 Wed 13 April 2005 19:57

Antoine DELARUE
Invité

Re: probleme de calcul de surface

faire une selection sur bati et parcelles, criteres batiment within parcelle, colonnes n°parcelle, sum(surf-bati), afficher dans une nouvelle table et l'enregistrer.
C'est telegraphique, mais ca doit marcher
Antoine

 

#9 Wed 13 April 2005 19:57

Jplartigau
Invité

Re: probleme de calcul de surface

De: JPLARTIGAU
Bonjour,

La reponse la plus simple est de passer par un requete SQL

dont voici un exemple

dans la case tables
BAYONNE_CARTE , BATI_LEGER

dans la case colonnes :
BAYONNE_CARTE . IDDGI , sum ( areaoverlap ( bayonne_carte . obj , bati_leger . obj ) )

dans la case criteres
BAYONNE_CARTE . Obj intersects BATI_LEGER . Obj

dans la case grouper par colonnes
BAYONNE_CARTE . IDDGI

et dans la case trier par colonnes
BAYONNE_CARTE . IDDGI

Dans ce cas la table des parcelle est bayonne_carte
et l'identifiant de la parcelle est le champ iddgi

Mes batis sont bati_leger

Ainsi vous obtenez pour chaque parcelle touchee un batiment la surface au sol occupee par les batis.
Attention toutefois car la fonction areaoverlap(obj1,obj2) calcule une surface spherique et non cartesienne (reprojetee selon la projection en usage) . Petite precaution prealable s'assurer que les unites des surfaces est celle que l'on veut commande dans la fenetre mapbasic
Set Area units  sq m
Set Area units  hectare
....

Bonne requete SQL qui marche plutot bien sur Mapinfo. Ne pas oublier d'enregistrer la requete quand elle est bonne car cela evite de ramer pour la reproduire plus tard..

A plus

 

#10 Thu 14 April 2005 09:52

Pierre Coroller
Invité

Re: probleme de calcul de surface

Attention a l'operateur Intersects : si une zone batie est en limite de 2
parcelles A et B (ou a cheval sur 2 parcelles A et B), elle sera comptee 2
fois.

Pour eviter ces doublons, il est preferable d'utiliser l'operateur Contains
(l'objet bati sera pris en compte uniquement pour la parcelle ou se trouve
son centroide)

Dans l'exemple donne, cela donne :

dans la case criteres
BAYONNE_CARTE . Obj contains BATI_LEGER . Obj

Cordialement.

Pierre Coroller
pierre.coroller@texte-a-enlever.camping-gaz.tm.fr

 

#11 Fri 15 April 2005 13:39

Jplartigau
Invité

Re: probleme de calcul de surface

De: JPLARTIGAU
Bonjour,

En ce qui concerne le intersects il faut absolument le garder car le calcul de la somme des surfaces baties se fait avec la commande areaoverlap.

Ce la permet de ne prendre que la partie de la surface rellement contenue par chaque parcelle.
En gros cette fonction coupe virtuellement chaque batiment selon les limites des parcelles qui l'intersects. Or on peut toujours avoir un bati sur plusieurs parcelles. On ne compte donc qu'une seule fois la surface totale du bati et encore si et seulement si le bati est entierement couvert par une ou plusieurs parcelles,
C'est la l'avantage de cette fonction areaoverlap contrairement a la fonction area (ou cartesianarea).
Il est juste domage que l'on ne dispose pas d'une fonction cartesianareaoverlap pour le probleme de projection et d'ecart du resultat (ecart de l'ordre de 0,5 a 1 pour cent il faut le reconnaitre en Lambert zone).
Danger en revanche avec un contains car si un bati est a cheval sur plusieurs parcelles seule la parcelle qui contient le centroide du bati se vera attribuer une partie de surface du bati. Les autres parties du bati sur les autres parcelles ne seront jamais comptabilisee.

Voila pour ce petit probleme.

 

Pied de page des forums

Powered by FluxBB