Message posté par : Coffee
----------------------------------------
Salut :-)
Je débute en géomatique et je découvre en particulier les SIG.
Je suis un manuel "Systèmes d'information géographique. Avec les logiciels libres
GRASS et QGIS" des éditions Dunod.
Je progresse pas à pas sur les deux logiciels mais j'ai parfois un peu de mal à
m'y retrouver. Le manuel est très bien mais j'ai l'impression qu'il y a
parfois des erreurs. Je bloque donc quelques temps puis finit par trouvé une solution en
m'adaptant ou passe à l'exercice suivant en essayant de m'approprier ce que je
peux de la notion.
En ce moment j'ai un problème sur un exercice qui concerne GRASS. On y découvre
différents environnements de programmation : l'interpréteur bash, R du CRAN et la
console python. Je me familiarise aux procédés, cela se passe bien pour l'interpréteur
bash, pour R du CRAN je suis bloqué à cause d'un package non installé mais je passe,
et pour la console python je suis confronté au problème suivant.
Le manuel propose d'écrire un script permettant d'importer puis de transférer une
couche vecteur en raster. Le script est le suivant :
-----------------
Code :
# coding: utf-8
if __name__ == '__main__':
exec(open("./envir.py").read())
cmd("v.in.ogr input=" + dirSrc + "/landuse/LU1998.shp --overwrite)
cmd("g.region vector=LU1998 res=10")
cmd("v.to.rast input=LU1998 output=LU1998 use=attr attribute_column=ID2 label
column=LU2 --overwrite")
-----------------
Je crée le script, l'ouvre dans l'éditeur simple de la console python, et
l'éxécute. J'obtiens une première erreur "[Errno 8] Erreur de format pour
exec():", j'y ai été confronté juste avant et l'ai résolue en rajoutant une
première ligne "#!/usr/bin/env python3". Je le fais. Ensuite j'obtiens
l'erreur suivante à l'éxécution :
-----------------
Code :
line 5
cmd("v.in.ogr input=" + dirSrc + "/landuse/LU1998.shp
--overwrite)
^
SyntaxError: unterminated string literal (detected at line
5)
-----------------
Je pense comprendre ce que c'est, sans doute une erreur dans le manuel, un guillemet
manquant. Je pense en voir une autre, un espace manquant devant "cmd" à la
dernière ligne. Je les corrige et le sript serait donc le suivant :
-----------------
Code :
#!/usr/bin/env python3
# coding: utf-8
if __name__ == '__main__':
exec(open("./envir.py").read())
cmd("v.in.ogr input=" + dirSrc + "/landuse/LU1998.shp
--overwrite")
cmd("g.region vector=LU1998 res=10")
cmd("v.to.rast input=LU1998 output=LU1998 use=attr attribute_column=ID2 label
column=LU2 --overwrite")
-----------------
J'obtiens alors l'erreur suivante :
-----------------
Code :
line 5, in <module>
cmd("v.in.ogr input=" + dirSrc + "/landuse/LU1998.shp
--overwrite")
NameError: name 'cmd' is not defined
-----------------
"cmd" n'est donc pas reconnu. J'ai cherché sur internet et apparemment
les commandes sont introduites différemment, par "grass.run_command" par
exemple. Mais quand j'essaye, j'ai la même erreur.
Pourriez-vous m'aider s'il vous plaît?
Merci :-)
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=365184#p365184
Pour y répondre : geolibre(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net