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é ?

#1 Fri 23 January 2009 16:29

sekar
Participant occasionnel
Lieu: Alma, Québec
Date d'inscription: 1 Dec 2006
Messages: 39

ArcGIS 9.2 - Calculer la sommation d'un champs dans un autre

Bonjour
je voudrais savoir comment calculer la somme de tous les enregistrements d'un champs afin de pouvoir l'inscrire dans un autre champs.
Ex:       Source        Resultat
                5                21
                2                21 
                3                21
                8                21
                3                21

Merci et bonne journée


Ministère des ressources naturelles et de la faune
801 avenue du pont Taché nord
Alma, Québec, Canada

Hors ligne

 

#2 Mon 26 January 2009 17:24

sekar
Participant occasionnel
Lieu: Alma, Québec
Date d'inscription: 1 Dec 2006
Messages: 39

Re: ArcGIS 9.2 - Calculer la sommation d'un champs dans un autre

Bonjour à tous,

J'ai écris vendredi, à propos du calcul de la sommation d'un champs.  J'ai vu que plusieurs avaient lu le message mais personne n'a répondu.  Je me demande donc si la question a été bien comprise ou si cela est possible.  Je vais donc préciser ma demande.

J'aimerais savoir s'il est possible d'obtenir une expression, permettant d'inscrire dans un champs la somme des valeurs d'un autre champs.  Ce, dans le but d'obtenir ce resultat.
Ex:       Source        Resultat
                5                21
                2                21 
                3                21
                8                21
                3                21

J'ai essayé avec un .cal de easycalculate 5.0 obtenu sur le site de ET SpatialTechnique.  Il s'agit de field_CumulateValues.cal.  Voici l'expression

Code:

'=========================
'field_CumulateValues.cal
'Author: Ianko Tchoukanski
'http://www.ian-ko.com
'=========================
Static rec As Long
Static dSum As Double
Dim sourceField
'=================
'adjust the source field name below
sourceField = [A]
'=================
If (rec = 0) Then
  dSum = sourceField
Else
  dSum = sourceField + dSum
End If
rec = rec + 1

Mon problème est que le résultat n'est pas tout à fait ce que je cherche. en voici un exemple.         
Source        Résultats obtenus     Résultats Souhaités
     5                     5                               21
     2                     7                               21
     3                     10                             21
     8                     18                             21
     3                     21                             21
               

Pouvez vous m'aider. 

Merci d'avance et bonne journée.

Dernière modification par sekar (Mon 26 January 2009 17:28)


Ministère des ressources naturelles et de la faune
801 avenue du pont Taché nord
Alma, Québec, Canada

Hors ligne

 

#3 Tue 27 January 2009 11:13

Fabien.Krzewinski
Participant occasionnel
Date d'inscription: 19 Aug 2008
Messages: 18

Re: ArcGIS 9.2 - Calculer la sommation d'un champs dans un autre

Salut,

Tout d'abord, pourrais-tu préciser si une solution en VBA te conviendrait sinon sous quelle autre forme ?

Fabien

Hors ligne

 

#4 Tue 27 January 2009 13:44

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: ArcGIS 9.2 - Calculer la sommation d'un champs dans un autre

Hello,

Solution manuelle : clic droit sur la colonne /statistiques regarder la somme.

Solution ArcToolbox via Statistics analysis (Analysis Tools), tu dois pouvoir récupérer tes infos via la création d'une table, peut être ?
Je ne connais pas la traduction en français, n'ayant pas installé l'extension.

En script, un exemple d'utilisation de cet outil donné par l'aide :

Code:

#Purpose: Determine the area by vegetation type within 100 meters of all stream crossings

# Create the Geoprocessor object
import arcgisscripting
gp = arcgisscripting.create()

try:
   # Set the workspace (to avoid having to type in the full path to the data every time)
    gp.Workspace = "c:/projects/RedRiverBasin/data.mdb"

    # Process: Find all stream crossings (points)
    gp.Intersect("roads ; streams ", "stream_crossings", "#", 1.5, "point")

    # Process: Buffer all stream crossings by 100 meters
    gp.Buffer("stream_crossings","stream_crossings_100m", "100 meters")

    # Process: Clip the vegetation feature class to stream_crossing_100m
    gp.Clip("vegetation", "stream_crossings_100m", "veg_within_100m_of_crossings")

    # Process: Summarize how much (area) of each type of vegetation is found within 100 meter of the stream crossings
  [b]gp.Statistics("veg_within_100m_of_crossings", "veg_within_100m_of_crossings_stats","shape_area sum","veg_type")[/b]

except:
    # If an error occurred while running a toolprint the messages
    print gp.GetMessages()

Hors ligne

 

#5 Tue 27 January 2009 14:03

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: ArcGIS 9.2 - Calculer la sommation d'un champs dans un autre

Bonjour à tous
Je vais dans la direction de Robin, première intervention, dans les staitisques, trouver le nombre et le placer dans la colonne.  "Simple is beautiful".
Autre solution, si possible, ouvrir le DBF dans Excel, dans la colonne B (colonne de sommation) faire =somme(A2:Ax).  Resauver en DBF.
Je me permet ce petit commentaire.  Pourquoi y'a rien de simple dans ArcGIS.  Un simple calcul de somme et mettre le résultat dans une colonne prends des proportions incroyables!!!!!

Daniel


De retour à la géomatique

Hors ligne

 

#6 Tue 27 January 2009 14:32

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: ArcGIS 9.2 - Calculer la sommation d'un champs dans un autre

Hello,

Bizarrement, je me dis que programmationnellement (hum), il doit y avoir moyen de récupérer la variable "Somme" qui est dans le récapitulatif par colonne, mais bon..
Sinon, je rajoute que l'outil précité permet aussi de regrouper les calculs par champ à la manière d'un "Récapituler" ou "Summarize".

Plus d'infos (en anglais)
http://edndoc.esri.com/arcobjects/9.2/N … alysis.htm
et
http://webhelp.esri.com/arcgisdesktop/9 … 0a%20table

Robin.

Hors ligne

 

#7 Tue 27 January 2009 14:52

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: ArcGIS 9.2 - Calculer la sommation d'un champs dans un autre

Robin a écrit:

Hello,
... programmationnellement ...


hmm hmm hmm Il n'est pas dans mon dictionnaire celui-là tongue

Daniel


De retour à la géomatique

Hors ligne

 

#8 Tue 27 January 2009 15:07

sekar
Participant occasionnel
Lieu: Alma, Québec
Date d'inscription: 1 Dec 2006
Messages: 39

Re: ArcGIS 9.2 - Calculer la sommation d'un champs dans un autre

Bonjour et merci pour vos réponses.

Ce que je voudrais, c'est une expression de type .cal, un peu comme celle que j'ai obtenue avec easycalculate 5.0 sur le site de ETSpatialTechnique.  Ceci est dans le but d'intégrer ça à un Modelbuilder pour simplifier la tâche au maximum pour un grand nombre d'utilisateurs extrêmement débutant.
Pour ce qui est de Statistic Analysis j'ai déjà fait des tests avec ça.  Le problème est qu'une fois la table obtenue, avec le résultat souhaité, je n'ai pas trouvé le moyen de joindre cette nouvelle table au fichier d'origine.  L'outils Jointure ne fonctionne qu'avec des Layers ou des tables.  Il ne fonctionne pas si la couche n'est pas chargée dans ArcMap. 
C'est pourquoi une expression de type .cal est vraiment souhaitable, à la fois solide, rapide et efficace. 

Merci encore et bonne journée
Sébastien K.

Dernière modification par sekar (Tue 27 January 2009 15:08)


Ministère des ressources naturelles et de la faune
801 avenue du pont Taché nord
Alma, Québec, Canada

Hors ligne

 

Pied de page des forums

Powered by FluxBB