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

#1 Tue 15 July 2008 23:12

Couret
Participant occasionnel
Lieu: Bouaké - Côte d'Ivoire
Date d'inscription: 29 Sep 2005
Messages: 42

[Arcgis9.2] Script et ZonalStatisticsAsTable

Bonjour,

je dois effectuer une analyse statistique sur des zones sur plus de 160 images et comme l'outil de la Toolbox (ZonalStatisticsAsTable) ne fonctionne que sur 1 images à analyser, j'essaye donc d'effectuer un script pour faire le travail.

L'outil de la ToolBox s'exécute parfaitement avec les images tests mais dans le script en utilisant la commande gp.ZonalStatisticsAsTable_sa j'obtiens la réponse :

An error was encountered while executing ZonalStatisticsAsTable.
("esriGeoAnalyst.GridEngine") One or more of the input raster datasets is not of type integer.

Quelqu'un aurait il une piste ou une réponse ?

merci

Daniel

Hors ligne

 

#2 Wed 16 July 2008 09:58

Tnarbiv
Participant assidu
Lieu: Véretz
Date d'inscription: 5 Sep 2005
Messages: 392

Re: [Arcgis9.2] Script et ZonalStatisticsAsTable

bonjour,
est ce que tous tes rasters sont de type entier ou bien certains ont des valeurs flottantes au sein des pixels ?

voici ce qu'il y a dans l'aide : If the input raster or feature zone data is a raster, it must be integer.


Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.

Hors ligne

 

#3 Wed 16 July 2008 11:27

Couret
Participant occasionnel
Lieu: Bouaké - Côte d'Ivoire
Date d'inscription: 29 Sep 2005
Messages: 42

Re: [Arcgis9.2] Script et ZonalStatisticsAsTable

Bonjour,

je supposais que oui puisque les rasters étaient parfaitement reconnus et traités par la ToolBox.
Dans le doute j'ai exécuté la commande de "building Raster Attribute Table" sur une des images à traitée => pas de changement

Depuis hier soir, j'ai quand même avancé, l'exécution de la commande ZonalStatisticAsTable s'est exécutée sur les 2 images tests mais les fichiers .dbf de résultats sont vides.

L'avancée est due au fait d'utiliser comme zone_field la colonne d'entier et non pas ma colonne text qui pourtant fonctionnait très bien dans la Toolbox

Je dois avoir un problème avec mon raster utilisé comme référence (buffer) ou plus exactement avec l'identification, car dans le cas ou je met comme image de référence  l'image qui sera traitée cela fonctionne.
La commande effectue les calculs statistique sur elle même et les enregistre dans le fichier .dbf


Si joint le script simplifié

Tnarbiv a écrit:

bonjour,
est ce que tous tes rasters sont de type entier ou bien certains ont des valeurs flottantes au sein des pixels ?

voici ce qu'il y a dans l'aide : If the input raster or feature zone data is a raster, it must be integer.


---------------------------------ce n'est que de la recopie du script dans l'help de ArcGis---------------------

Code:

#Import modules
import arcgisscripting, sys, os, string

# Create the geoprocessor object
gp = arcgisscripting.create()

# Check out any necessary licenses
gp.CheckOutExtension("Spatial")
gp.cellSize = 1

gp.Workspace = "D:\\Test"

try:

    #----------BUFFER------------------------------------
    # Zone des Buffers 
    InRasterBuffer = "D:\\Test\\buffer\\EssaiNDVI_2.tif"
    print InRasterBuffer

    zone_field = "Value"
    
    #---------RASTER-----------------------------------
    # Get a list of tif in the workspace.
    InputRasters = gp.ListRasters("", "TIF")
    Raster_uniq = InputRasters.next()
    i=0
    # boucle de lecture des raster
    while Raster_uniq:
        print Raster_uniq
        i=i+1
        Nom_Image = Raster_uniq[0:8] # sera ultérieurement rajouté dans la table pour identifier les résultats
        print Nom_Image

        output = "ZonalStats" + str(i) + ".dbf"
        print output
        
        # Process: Zonal Statistics as Table
        gp.ZonalStatisticsAsTable_sa(InRasterBuffer, zone_field, Raster_uniq, output, "DATA")
        print "image " + Nom_Image + " traitée"

        # retour boucle : Raster suivant
        Raster_uniq = InputRasters.next()
        print "C'est fini"
        
except:
    gp.AddMessage(gp.GetMessages())
    print gp.GetMessages()

Hors ligne

 

#4 Wed 16 July 2008 14:51

Couret
Participant occasionnel
Lieu: Bouaké - Côte d'Ivoire
Date d'inscription: 29 Sep 2005
Messages: 42

Re: [Arcgis9.2] Script et ZonalStatisticsAsTable

Difficile, difficile,

le script écrit bien un fichier .dbf pour chaque image traitée mais les fichiers sont vides !!!!

Alors que les mêmes images donnent un bon résultat avec l'outil de ToolBox !!!!!

j'y perd mon latin (plutôt mon geotin)

Les images ont la même taille de pixel, le même domaine spatial et le même système , alors que reste  il ?????

Daniel

Hors ligne

 

#5 Thu 17 July 2008 16:43

Couret
Participant occasionnel
Lieu: Bouaké - Côte d'Ivoire
Date d'inscription: 29 Sep 2005
Messages: 42

Re: [Arcgis9.2] Script et ZonalStatisticsAsTable

bon, c'est fini non sans mal

Le script fonctionne avec un vecteur ou un raster

l'erreur venait du fait que dans le script la cellsize était trop grande, cela m'a échappé

Daniel

Hors ligne

 

Pied de page des forums

Powered by FluxBB