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 Fri 11 November 2011 09:45

morin72
Participant actif
Date d'inscription: 16 Jun 2011
Messages: 58

Calcul de surface via Field Calculator (erreur) ArcMap 9.3

Bonjour,

Je travaille sur ArcMap 9.3.
J'ai dessiné manuellement plusieurs polygones (qui se juxtaposent) dont je souhaite connaître les surfaces en hectares. Pour cela je crée un nouveau champ dans la table attributaire intitulé Area_ha et que je définis en "Double" pour le data type. Ensuite je sélectionne ce champ, et via l'outil Field Calculator, je coche la case "Advanced", je colle la formule suivante :

Code:

Dim Output as double
Dim pArea as IArea
Set pArea = [shape]
Output = pArea.area

Et dans la case Area_ha = j'entre Output/10000

Et j'obtiens que des zéros...
Alors l'outil Xtools Pro me donne un résultat (pas dans les unités voulues) mais je veux résoudre le problème du Field Calculator...

Quelqu'un saurait-il m'éclairer ? J'ai déjà vu des discussions de ce genre (c'est d'ailleurs ainsi que j'ai trouvé les autres outils du type Xtools Pro ou calculate area dans la ToolBox) mais n'ai pas trouvé de réponses à ce problème.

Merci d'avance.
AM

Hors ligne

 

#2 Fri 11 November 2011 11:46

morin72
Participant actif
Date d'inscription: 16 Jun 2011
Messages: 58

Re: Calcul de surface via Field Calculator (erreur) ArcMap 9.3

Re...

Alors en utilisant l'outil calculate geometry en m² çà fonctionne, je crée ensuite un champ supplémentaire que je calcule en divisant mon champ en m² par 10000. J'obtiens mes aires en ha.
En revanche si je sélectionne ha comme unités dans calculate geometry çà me donne des valeurs erronées différentes des m². Je ne comprend pas, et le souci de l'outil field calculator n'est pas résolu...

am

Hors ligne

 

#3 Fri 11 November 2011 12:03

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Calcul de surface via Field Calculator (erreur) ArcMap 9.3

Salut,

As tu essayé en ajoutant --> Output = pArea.area/1000
Celà donne:

Code:

Dim Output as double
Dim pArea as IArea
Set pArea = [shape]
Output = pArea.area/1000(0) 'Merci Forestis

Mettre Output dans le champ "Area_ha ="
A+
Joël

Hors ligne

 

#4 Fri 11 November 2011 13:15

morin72
Participant actif
Date d'inscription: 16 Jun 2011
Messages: 58

Re: Calcul de surface via Field Calculator (erreur) ArcMap 9.3

Merci Joël mais, non, çà ne change rien...

Hors ligne

 

#5 Fri 11 November 2011 16:46

Forestis
Participant assidu
Lieu: Aniane (Hérault)
Date d'inscription: 5 Sep 2005
Messages: 168
Site web

Re: Calcul de surface via Field Calculator (erreur) ArcMap 9.3

La solution de Joel devrait fonctionnr (sauf que c'est /10000 et pas /1000) donc je te propose de procéder autrement :

Vu que tu veux calculer tes surfaces je suppose que tu travaille en shp, exporte ce shp dans une geodatabase (fichier ou personnelle) et tu auras un champ shape_area qui se calculera automatiquement (en m² si tu est en projection française) puis il te suffit de diviser ce champ par 10000 dans un autre champ.
voilou
a+
Matthieu


[Matthieu Pette - Ad Terram] (@Ad_Terram sur le PiouPiou bleu)

~Géomaticien Indépendant~

Hors ligne

 

#6 Mon 14 November 2011 13:55

morin72
Participant actif
Date d'inscription: 16 Jun 2011
Messages: 58

Re: Calcul de surface via Field Calculator (erreur) ArcMap 9.3

Merci Matthieu pour le conseil. En effet je travaille avec des shapes. J'ai donc exporter le shape en question dans une Geadatabase que j'ai récupéré du projet sur lequel je travaille.

Avec la technique proposée, je trouve des résultats différents que ceux obtenus avec l'outil "Calculate geometry"... C'est très gênant, d'autant plus que çà devient "un peu" urgent maintenant... Quels chiffres sont à considérer comme juste selon vous ?

Merci pour les réponses d'avance.
Bonne journée

Hors ligne

 

#7 Tue 15 November 2011 13:22

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1670

Re: Calcul de surface via Field Calculator (erreur) ArcMap 9.3

Tu peux aussi par Arctoolbox.
Rechercher : superficie
Ouvrir l'outil "calcul des superficies" mais cela te crée un nouveau shp.

Hors ligne

 

#8 Tue 15 November 2011 14:14

Forestis
Participant assidu
Lieu: Aniane (Hérault)
Date d'inscription: 5 Sep 2005
Messages: 168
Site web

Re: Calcul de surface via Field Calculator (erreur) ArcMap 9.3

Le champ Shape_Area de la geodatabase est assez sûr mais il ne devrait pas être différent du calcul (calculer la geometrie)

Peut être est-ce du a une mauvaise définition de la projection? quand on calcul la surface il te propose quoi comme projection? est ce que ça correspond vraiment a celle de ta couche?

L'autre éventualité et que ta couche polygone ne soit pas très "propre" et qu'il délire lors des calculs. Il faudrait peut être que tu utilise l'outil de réparation des géométries (arctoolbox). tu peux m'envoyer ton fichier par mail pour que j'y jette un oeil si tu le souhaite.


[Matthieu Pette - Ad Terram] (@Ad_Terram sur le PiouPiou bleu)

~Géomaticien Indépendant~

Hors ligne

 

#9 Wed 16 November 2011 14:44

morin72
Participant actif
Date d'inscription: 16 Jun 2011
Messages: 58

Re: Calcul de surface via Field Calculator (erreur) ArcMap 9.3

Merci Matthieu.

En ce qui concerne l'outil de réparation des polygones, il n'y avait pas d'erreur. L'ayant dessiné à la main, je pensais qu'il pouvait en effet y en avoir. Après regardé comment utilisé cet outil, j'ai d'abord fait une vérification, mais il n'y avait rien.

Ensuite, je dois bien avouer que il doit y avoir un problème de projection... enfin j'imagine !

En fait, çà fait un moment que çà traine. J'ai repris le travail d'une personne qui avez centralisé ses données dans une personal geodatabase. Quand j'affiche une couche en provenance de cette base de données, voilà ce que j'ai dans l'onglet source pour la projection (...) :
Geographic Coordinate System:    unnamed
Datum:     D_WGS_1984
Prime Meridian:     Greenwich
Angular Unit:     degree

Je travaille aussi avec de nouvelles données plus actualisées, n'appartenant pas à une geodatabase, et voici ce que j'ai dans l'onglet source d'un de ses shapefile :
Projected Coordinate System:    Gtm_Gabon
Projection:    Transverse_Mercator
False_Easting:    500000,00000000
False_Northing:    500000,00000000
Central_Meridian:    12,00000000
Scale_Factor:    0,99960000
Latitude_Of_Origin:    0,00000000
Linear Unit:     Meter

Geographic Coordinate System:    GCS_WGS_1984
Datum:     D_WGS_1984
Prime Meridian:     Greenwich
Angular Unit:     Degree

Quand j'ai dessiné mes polygones, des couches de ses deux sources étaient affichées. Et c'est peut-être pour cela que j'ai eu ce problème en utilisant Field Calculator étant donné que les projections sont différentes.

Il y a plusieurs choses...

En écrivant ce message j'ai refait une manip du Field calculator avec seulement mon shapefile et un autre shapefile ayant la même projection afin de voir si ce n'était pas çà qui posait problème. Et çà à correctement fonctionné, il me donne un résultat, le même que le Calculate geometry, et le même que l'outil Calculate areas d'Arc Toolbox (merci Conejo). Donc pour le Field Calculator c'est bon, çà fonctionne.

Par contre ce n'est pas bon quand je compare ce résultat à celui obtenu lorsque j'exporte mon shapefile dans ma geodatabase via l'outil Feature class to Geodatabase (multiple) d'Arc Toolbox... Alors où est l'erreur ? J'aimerai simplement savoir lequel des résultats je dois considérer.
Résoudre mon problème de projection me semble difficile, non ? Je peux tenter un envoi aussi du shapefile en question via mail, Matthieu.

Je ne saisis pas bien ta question "quand on calcul la surface il te propose quoi comme projection?"

Voilà...

Hors ligne

 

#10 Wed 16 November 2011 16:50

Forestis
Participant assidu
Lieu: Aniane (Hérault)
Date d'inscription: 5 Sep 2005
Messages: 168
Site web

Re: Calcul de surface via Field Calculator (erreur) ArcMap 9.3

Comme tu peux le voir l'une de tes couches est en coordonnées geographiques ("Geographic Coordinate System") et les unités sont des degrés minutes secondes. L'autre couche est en coordonnées ("Projected Coordinate System") projetées donc en metres.

La première couche que tu amène dans ton projet (mxd) fixe le système de coordonnées du projet ou plus précisément du bloc de données. Les couches suivantes, si elles n'ont pas le même système de coordonnées, sont reprojetées a la volée dans le système de coordonnées de ton bloc. C'est transparent pour toi (ormis le petit message du debut) ce qui est très pratique pour l'utilisateur, si il a compris ce qu'il se passe...

Ce système de coordonnées de ton bloc de données peut être changé à tous moments dans les propriétés de ce bloc  (bouton droit-> propriétés sur ton bloc de données qui par defaut est intitulé "Couches"->onglet "Systeme de coordonnées")

Pour calculer les surfaces il faut qu'il se base sur un système de coordonnées. Par defaut il choisit celui du projet. Il me semble que déjà dans la V9.3 tu as le choix, quand tu fait "calculate geometry", de ne pas choisir le système de coordonnées du projet mais celui de la couche.

le problème est que je n'ai pas la v9.3 sous les yeux et donc je ne me souviens plus des options du "calculate geometry" que tu as, et si il te dit comme dans la 10 que tu ne peux pas faire le calcul car tu en degré minute secondes.

Voila j’espère que c'est plus clair pour toi
sinon n’hésite pas a demander un complément d'info

ps: j'ai testé ton fichier et je n'ai aucun problème de calcul de la surface dans la projection du Gabon
ps2 : tu devrais passer ton bloc de données dans la projection du Gabon ça sera plus simple pour toi

Dernière modification par Forestis (Wed 16 November 2011 17:00)


[Matthieu Pette - Ad Terram] (@Ad_Terram sur le PiouPiou bleu)

~Géomaticien Indépendant~

Hors ligne

 

#11 Thu 17 November 2011 10:05

morin72
Participant actif
Date d'inscription: 16 Jun 2011
Messages: 58

Re: Calcul de surface via Field Calculator (erreur) ArcMap 9.3

Bonjour,

Merci de ta réponse Matthieu.
Tout ce qui est projection à la volée, définition du système de coordonnées du mxd (...) je connaissais à peu près.
Je n'avais en revanche pas tenter de redéfinir celui du bloc de données afin d'harmoniser tout çà.
Et en effet, dans l'outil calculate geometry on me propose de choisir entre le système de coordonnées de ma couche ou du bloc de données. Je n'avais pas prêter attention, et ne m'en souvenais pas. Quand j'essaie de calculer l'aire avec un bloc de données en coordonnées géographiques, en effet, çà ne fonctionne pas étant donné je ne suis en mètre.

J'aurai trois autres questions alors.
- Par rapport au résultat que me donnait l'exportation du shape dans une geodatabase, je laisse tomber et ne le considère pas comme juste ?
- Dans l'outil Field calculator, après avoir passer mon bloc de données dans la projection Gabon, on a le choix des unités du résultat. J'obtiens des résultats différents selon que je demande des ha directement ou des m² que je divise ensuite par 10000... bizarre, non ?
- Et le fait que la base de données que j'ai récupérée soit en coordonnées géographiques est-il un problème ? Je dois juste veiller à passer le bloc de données dans la projection appropriée si je travaille des données de cette database avec d'autres données en coordonnées projetées, comme tu me le préconises.

En tout cas merci pour ces éclaircissements, et pour le temps.
Bonne journée

Hors ligne

 

#12 Fri 18 November 2011 17:34

Forestis
Participant assidu
Lieu: Aniane (Hérault)
Date d'inscription: 5 Sep 2005
Messages: 168
Site web

Re: Calcul de surface via Field Calculator (erreur) ArcMap 9.3

Ce que je te conseil:
-Créée une Geodatabase avec ArcCatalog
-Passe ton bloc en système de coordonnées Gabon
-Exporte toutes couches dans la geodatabase en choisissant de l'exporter avec le systeme de coordonnées du bloc de données. (quand tu exporte en faisant bouton droit sur la couches->Données->Exporter des données->même système de coordonnées que le bloc de données)

Quand tu auras fait ça tu auras déjà harmonisée ton projet et c'est mieux.

Je crois pas prendre trop de risque en te disant qu'il faut te fier au champ shape_area de tes couches et de le diviser par 10000 pour avoir des Ha, car c'est un champ automatique assez fiable.
Tandis que toutes opérations de calcul postérieures sur la couche dépendront de routine ou on ne maîtrise pas grand chose vu qu'on ne sait pas la qualité de leur programmation. (en version 9.3 l'outil de calcul de géométrie est un outil encore jeune, il peut être mal finit pour certains cas précis de type de données ou de projection)
Une couche exportée dans une geodatabase est généralement débarrassée de ses éventuels artéfacts (qui sont souvent du au bon vieux format shape) car c'est un format plus récent et plus rigoureux sur la qualité de la donnée.

Bref le shape c'est bien pratique pour échanger des données mais pour bosser sur ArcGis je te conseille le dernier format de Geodatabase soit la GDB quitte à retransformer en shape après. c'est plus carré et plus stable.

voilou


[Matthieu Pette - Ad Terram] (@Ad_Terram sur le PiouPiou bleu)

~Géomaticien Indépendant~

Hors ligne

 

Pied de page des forums

Powered by FluxBB