Re: [GRASS-Italia] Primi passi con python - GRASS. Debuggare il codice

2019-05-22 Per discussione Giacomo Fontanelli
Ciao Markus

grazie per il consiglio.

Alla fine le librerie python di GRASS sono molto più intuitive di quello
che credevo e sono riuscito a scrivere il mio codice.

Lo allego.

Ciao

#!/usr/bin/env python

import grass.script as gscript

def main():

# define out folder
folderOut = '/home/giacomo/Desktop/aaa'

# define region
gscript.run_command('g.region', vector='region_prova_costa', res=1)

# create a list of files in the mapset
rastList = gscript.read_command('g.list',type='rast').splitlines()

# export all files as geotiff
for rasterOut in rastList:

if rasterOut.startswith("S"):
#print(rasterOut)
folderFileOut = folderOut + "/" + rasterOut + '.tif'
gscript.run_command("r.out.gdal", input=rasterOut,
output=folderFileOut, format="GTiff")

if __name__ == '__main__':
main()


Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno lun 20 mag 2019 alle ore 13:33 Markus Neteler 
ha scritto:

> Ciao Giacomo,
>
> segnalo questo che è molto intuitivo:
>
> https://grasswiki.osgeo.org/wiki/GRASS_Debugging#Python_debugging_with_pdb
>
> Scrivo sul cellulare, di corsa..
>
> Saluti
> Markus
>
>
> Giacomo Fontanelli  schrieb am Mo., 20.
> Mai 2019, 11:28:
>
>> Salve a tutti
>>
>>
>> oggi mi sono cimentato per la prima volta con uno script in python per
>> automatizzare l'operazione di esportazione di molti raster dal mapset,
>> sottoforma di geotiff.
>>
>> Per la precisione vorrei esportare tutti i raster che iniziano con la
>> lettera maiuscola S.
>>
>>
>> Sono partito da un pezzo di codice trovato in rete e l'ho modificato.
>>
>>
>> #!/usr/bin/env python
>>
>>
>> import grass.script as gscript
>>
>> import sys
>>
>>
>> def main():
>>
>> gscript.run_command('g.region', flags='p')
>>
>> rastlist = gscript.read_command('g.list',type='rast')
>>
>> rastlist1 = rastlist.split(':', 1)[1]
>>
>> rastlist2 = rastlist1.split('-', 1)[0]
>>
>> RastListClean=rastlist2.split()
>>
>> folderOut = '/media/giacomo/Volume/Livorno/outraster/raster'
>>
>>
>> for rasterOut in RastListClean:
>>
>> if rasterOut.startswith("S"):
>>
>> folderFileOut = folderOut + "/" + rasterOut + '.tiff'
>>
>> grass.run_command('r.out.gdal', input=rasterOut, output=folderFileOut,
>> format='GTiff')
>>
>>
>> if __name__ == '__main__':
>>
>> main()
>>
>>
>>
>> Ho ottenuto questo messaggio di errore:
>>
>>
>> File "/home/giacomo/Desktop/prova.py", line 9, in main
>>
>> rastlist1 = rastlist.split(':', 1)[1]
>>
>> IndexError: list index out of range
>>
>>
>> Non mi aspettavo certo che tutto funzionasse alla prima, non sono ne un
>> genio di python tantomeno di GRASS (purtroppo).
>>
>> La cosa che mi ha lasciato perplesso è che non riesco a capire come
>> debuggare il mio codice.
>>
>> Non trovo una shell pyhon interattiva all'interno di GRASS grazie alla
>> quale è possibile testare parti di codice (QGIS ad esempio ce l'ha).
>>
>> Magari c'è (sicuramente) e io non l'ho ancora trovata.
>>
>> Sapete darmi qualche dritta?
>>
>>
>> W GRASS!
>>
>>
>> Grazie
>>
>>
>>
>>
>>
>>
>> ___
>> GRASS-Italia mailing list
>> GRASS-Italia@listserv.unipr.it
>> http://listserv.unipr.it/mailman/listinfo/grass-italia
>
>
___
GRASS-Italia mailing list
GRASS-Italia@listserv.unipr.it
http://listserv.unipr.it/mailman/listinfo/grass-italia

Re: [GRASS-Italia] Primi passi con python - GRASS. Debuggare il codice

2019-05-20 Per discussione Markus Neteler
Ciao Giacomo,

segnalo questo che è molto intuitivo:

https://grasswiki.osgeo.org/wiki/GRASS_Debugging#Python_debugging_with_pdb

Scrivo sul cellulare, di corsa..

Saluti
Markus


Giacomo Fontanelli  schrieb am Mo., 20. Mai
2019, 11:28:

> Salve a tutti
>
>
> oggi mi sono cimentato per la prima volta con uno script in python per
> automatizzare l'operazione di esportazione di molti raster dal mapset,
> sottoforma di geotiff.
>
> Per la precisione vorrei esportare tutti i raster che iniziano con la
> lettera maiuscola S.
>
>
> Sono partito da un pezzo di codice trovato in rete e l'ho modificato.
>
>
> #!/usr/bin/env python
>
>
> import grass.script as gscript
>
> import sys
>
>
> def main():
>
> gscript.run_command('g.region', flags='p')
>
> rastlist = gscript.read_command('g.list',type='rast')
>
> rastlist1 = rastlist.split(':', 1)[1]
>
> rastlist2 = rastlist1.split('-', 1)[0]
>
> RastListClean=rastlist2.split()
>
> folderOut = '/media/giacomo/Volume/Livorno/outraster/raster'
>
>
> for rasterOut in RastListClean:
>
> if rasterOut.startswith("S"):
>
> folderFileOut = folderOut + "/" + rasterOut + '.tiff'
>
> grass.run_command('r.out.gdal', input=rasterOut, output=folderFileOut,
> format='GTiff')
>
>
> if __name__ == '__main__':
>
> main()
>
>
>
> Ho ottenuto questo messaggio di errore:
>
>
> File "/home/giacomo/Desktop/prova.py", line 9, in main
>
> rastlist1 = rastlist.split(':', 1)[1]
>
> IndexError: list index out of range
>
>
> Non mi aspettavo certo che tutto funzionasse alla prima, non sono ne un
> genio di python tantomeno di GRASS (purtroppo).
>
> La cosa che mi ha lasciato perplesso è che non riesco a capire come
> debuggare il mio codice.
>
> Non trovo una shell pyhon interattiva all'interno di GRASS grazie alla
> quale è possibile testare parti di codice (QGIS ad esempio ce l'ha).
>
> Magari c'è (sicuramente) e io non l'ho ancora trovata.
>
> Sapete darmi qualche dritta?
>
>
> W GRASS!
>
>
> Grazie
>
>
>
>
>
>
> ___
> GRASS-Italia mailing list
> GRASS-Italia@listserv.unipr.it
> http://listserv.unipr.it/mailman/listinfo/grass-italia
___
GRASS-Italia mailing list
GRASS-Italia@listserv.unipr.it
http://listserv.unipr.it/mailman/listinfo/grass-italia

[GRASS-Italia] Primi passi con python - GRASS. Debuggare il codice

2019-05-20 Per discussione Giacomo Fontanelli
Salve a tutti


oggi mi sono cimentato per la prima volta con uno script in python per
automatizzare l'operazione di esportazione di molti raster dal mapset,
sottoforma di geotiff.

Per la precisione vorrei esportare tutti i raster che iniziano con la
lettera maiuscola S.


Sono partito da un pezzo di codice trovato in rete e l'ho modificato.


#!/usr/bin/env python


import grass.script as gscript

import sys


def main():

gscript.run_command('g.region', flags='p')

rastlist = gscript.read_command('g.list',type='rast')

rastlist1 = rastlist.split(':', 1)[1]

rastlist2 = rastlist1.split('-', 1)[0]

RastListClean=rastlist2.split()

folderOut = '/media/giacomo/Volume/Livorno/outraster/raster'


for rasterOut in RastListClean:

if rasterOut.startswith("S"):

folderFileOut = folderOut + "/" + rasterOut + '.tiff'

grass.run_command('r.out.gdal', input=rasterOut, output=folderFileOut,
format='GTiff')


if __name__ == '__main__':

main()



Ho ottenuto questo messaggio di errore:


File "/home/giacomo/Desktop/prova.py", line 9, in main

rastlist1 = rastlist.split(':', 1)[1]

IndexError: list index out of range


Non mi aspettavo certo che tutto funzionasse alla prima, non sono ne un
genio di python tantomeno di GRASS (purtroppo).

La cosa che mi ha lasciato perplesso è che non riesco a capire come
debuggare il mio codice.

Non trovo una shell pyhon interattiva all'interno di GRASS grazie alla
quale è possibile testare parti di codice (QGIS ad esempio ce l'ha).

Magari c'è (sicuramente) e io non l'ho ancora trovata.

Sapete darmi qualche dritta?


W GRASS!


Grazie
___
GRASS-Italia mailing list
GRASS-Italia@listserv.unipr.it
http://listserv.unipr.it/mailman/listinfo/grass-italia