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 Mon 23 August 2010 22:01

nicolas.degarne
Participant occasionnel
Date d'inscription: 18 Apr 2008
Messages: 14

Afficher un raster grace a un script python

Bonjour,

Je souhaiterais savoir si il était possible d'afficher un raster dans arc map à partir d'un script python.

Code:

# Import des packages
import sys, os, subprocess, time
try:
    #pour les utilisateurs ArcGIS 9.2/9.3
    import arcgisscripting
    gp = arcgisscripting.create()
    print "\n" + "Utilisation de ArcGIS 9.2/9.3 avec arcgisscripting..." + "\n"
    gp.AddMessage("\n" + "Utilisation de ArcGIS avec arcgisscripting..." + "\n")

except:
    #pour les utilisateurs ArcGIS 9.0/9.1
    import win32com.client
    gp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")
    print "\n" + "Utilisation de ArcGIS 9.0/9.1 avec win32com..." + "\n"
    gp.AddMessage("\n" + "Utilisation de ArcGIS 9.0/9.1avec win32com..." + "\n")

# Lecture arguments paths
inputfilename = sys.argv[1]
wsize = sys.argv[2]
tfactor = sys.argv[3]
outputworkspace = sys.argv[4]
algo = sys.argv[5]

try:
    (inpath,infile)=os.path.split(inputfilename)
    infile=infile[:len(infile)-4]+'_ALGO_'+str(wsize)+'_'+str(tfactor)+'.tif'
    outputfilename=os.path.join(outputworkspace, infile)
    print outputfilename
    
    paramsfile = open('C:\\IDL\\parameters.txt', "w")
    paramsfile.write(inputfilename)
    paramsfile.write('\n')
    paramsfile.write(wsize)
    paramsfile.write('\n')
    paramsfile.write(tfactor)
    paramsfile.write('\n')
    paramsfile.write(outputfilename)
    paramsfile.close()

        
except:
    gp.AddMessage(gp.GetMessages(2))
    print gp.GetMessages(2)
    
elif algo =="GDAL":
    print "GDAL"
        subprocess.call('C:/gdalalgo.exe', shell=True)
    
elif algo =="IDL":
    print "IDL"
    subprocess.call('C:/gdalalgo.sav', shell=True)
else :
    print "ERROR"
    
time.sleep(2)

Je souhaiterais savoir si il existe ou non un fonction du style :
     gp.AddLayer(outputfilename,".tif")?

Mes recherche ont montré que VBA permettait une plus grande interaction avec arcmap.

Donc je voulais savoir si il était possible de faire des interactions avec un script python ou si il fallait que je me résous à travailler avec VBA.


Merci d'avance et bonne journée

Nicolas

Hors ligne

 

#2 Tue 24 August 2010 14:12

Nicolas Granier
Participant assidu
Date d'inscription: 19 Apr 2007
Messages: 271

Re: Afficher un raster grace a un script python

Bonjour,

L'avantage d'utiliser des scripts python est sans aucun doute le fait de pouvoir exécuter des taches Arcgis sans utiliser ArcMap ou ArcAtalogue
Ouvrir un raster dans ArcMap depuis un script python n'est pas possible à ma connaissance.

Pour connaitre les fonctionnalités (limitées) du géoprocesseur, vous pouvez consulter ce document  http://webhelp.esri.com/arcgisdesktop/9 … sor_93.pdf.

Pour toute intéraction avec l'interface User d'Arcgis je vous conseille de travailler au plus simple en VBA sinon en VB ou autre.

Bon courage
A+

Hors ligne

 

#3 Tue 24 August 2010 14:19

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

Re: Afficher un raster grace a un script python

Pour toute intéraction avec l'interface User d'Arcgis je vous conseille de travailler au plus simple en VBA sinon en VB ou autre.


Le VBA n'est plus vraiment à conseiller pour ceux qui utilisent les dernières versions d'ArcGIS, cf http://blogs.esri.com/Dev/blogs/arcgis/ … 3F00_.aspx et la discussion sur GeoRezo http://georezo.net/forum/viewtopic.php? … 05#p175205


Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !

Hors ligne

 

#4 Tue 24 August 2010 15:01

n314
Participant assidu
Date d'inscription: 6 Sep 2005
Messages: 706

Re: Afficher un raster grace a un script python

D'autant plus qu'en version 10, la cartographie (au sens mise en page) peut se piloter via Python (cf par exemple la mise en avant esri des fonctionnalités d'atlas grâce à l'api python)

Dernière modification par n314 (Tue 24 August 2010 15:02)

Hors ligne

 

Pied de page des forums

Powered by FluxBB