Re: [GRASS-Italia] cone si calcola la radice quadrata con v.db.update?
2017-03-10 14:00 GMT+01:00 Markus Neteler: > Ciao Paola, > > On Mar 10, 2017 11:48 AM, "paolasalmona" wrote: >> >> Buongiorno a tutti! >> >> Sto cercando di calcolare l'indice di forma per una serie di poligoni >> secondo la formula indice = perimetro/(3.45 * (sqrt (area)). >> >> Ho provato con v.db.update dopo avere creato la colonna indice, ma mi da >> errore come riportato qui sotto. >> >> Qualcuno saprebbe dirmi cosa non va? >> > ... > "C:\OSGEO4~1\apps\grass\grass-7.0.5\etc\python\grass\ >> script\core.py", line 313, in handle_errors >> returncode=returncode) >> grass.exceptions.CalledModuleError: L'esecuzione del modulo >> None ['db.execute', 'input=-', 'driver=dbf', > > Non va con il DBF driver. > > Dovresti usare l'sqlite driver, allora cambiare il backend con v.db.connect. Devo aggiungere che bisogna avere ancora una libreria extra: https://grasswiki.osgeo.org/wiki/Build_SQLite_extension_on_Linux https://grasswiki.osgeo.org/wiki/Build_SQLite_extension_on_windows Per semplificarsi la vita magari è meglio usare il PostgreSQL backend (credo anche mySQL sia capace) che offrono sqrt() e log() ecc direttamente. Oppure: convincere il team di SQLite di aggiungere tale funzioni! Ciao Markus ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] cone si calcola la radice quadrata con v.db.update?
Non sono un esperto di codice Python e quindi non penso di poter essere utile, però volevo chiederti se l'errore te lo da lo stesso se invece di usare la funzione sqrt() elevi a 1/2 (^0.5) Saluti e viva GRASS -- Maurizio Marchi Skype ID: maurizioxyz linux user 552742 ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] cone si calcola la radice quadrata con v.db.update?
Ciao Paola, On Mar 10, 2017 11:48 AM, "paolasalmona"wrote: > > Buongiorno a tutti! > > Sto cercando di calcolare l'indice di forma per una serie di poligoni secondo la formula indice = perimetro/(3.45 * (sqrt (area)). > > Ho provato con v.db.update dopo avere creato la colonna indice, ma mi da errore come riportato qui sotto. > > Qualcuno saprebbe dirmi cosa non va? > ... "C:\OSGEO4~1\apps\grass\grass-7.0.5\etc\python\grass\ > script\core.py", line 313, in handle_errors > returncode=returncode) > grass.exceptions.CalledModuleError: L'esecuzione del modulo > None ['db.execute', 'input=-', 'driver=dbf', Non va con il DBF driver. Dovresti usare l'sqlite driver, allora cambiare il backend con v.db.connect. Ciao Markus ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] cone si calcola la radice quadrata con v.db.update?
Ciao Paola, può essere un problema di lettura del database? Mi sembrano strani quei doppi slash (\\) nell'errore. Hai provato ad eseguire il comando in modalità -verbose, per avere tutti i commenti e capire meglio l'errore? Spero di non aver sproloquiato :-P Ciao, Carlo Da: paolasalmona <paolasalm...@arch.unige.it> Inviato: venerdì 10 marzo 2017 11:53 A: Mailing list utenti italiani di GRASS Oggetto: [GRASS-Italia] cone si calcola la radice quadrata con v.db.update? Buongiorno a tutti! Sto cercando di calcolare l'indice di forma per una serie di poligoni secondo la formula indice = perimetro/(3.45 * (sqrt (area)). Ho provato con v.db.update dopo avere creato la colonna indice, ma mi da errore come riportato qui sotto. Qualcuno saprebbe dirmi cosa non va? Grazie mille! Ciao Paola (Fri Mar 10 11:50:19 2017) v.db.update map=ciccio_30_filtro_forma_muro@prova2 layer=1 column=indice value=perimetro / area * (3.45 * sqrt(area)) ERROR: Errore durante l'esecuzione: 'UPDATE ciccio_30_filtro_forma_muro SET indice=perimetro / area * (3.45 * sqrt(area))' Traceback (most recent call last): File "C:\OSGEO4~1\apps\grass\grass-7.0.5/scripts/v.db.update.py", line 107, in sys.exit(main()) File "C:\OSGEO4~1\apps\grass\grass-7.0.5/scripts/v.db.update.py", line 98, in main grass.write_command('db.execute', input = '-', database = database, driver = driver, stdin = cmd) File "C:\OSGEO4~1\apps\grass\grass-7.0.5\etc\python\grass\ script\core.py", line 517, in write_command return handle_errors(returncode, returncode, args, kwargs) File "C:\OSGEO4~1\apps\grass\grass-7.0.5\etc\python\grass\ script\core.py", line 313, in handle_errors returncode=returncode) grass.exceptions.CalledModuleError: L'esecuzione del modulo None ['db.execute', 'input=-', 'driver=dbf', 'database=D:\\GIS_database\\gauss2017\\prova2\\dbf\\'] è terminata con errori Processo terminato con codice di return diverso da zero 1. Vedi gli errori nel (error) output. (Fri Mar 10 11:50:20 2017) Comando terminato (0 sec) ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] cone si calcola la radice quadrata con v.db.update?
2017-03-10 11:53 GMT+01:00 paolasalmona: > Buongiorno a tutti! > buongiorno > Sto cercando di calcolare l'indice di forma per una serie di poligoni > secondo la formula indice = perimetro/(3.45 * (sqrt (area)). > > Ho provato con v.db.update dopo avere creato la colonna indice, ma mi da > errore come riportato qui sotto. > > Qualcuno saprebbe dirmi cosa non va? > credo di si, la funzione sqrt non mi sembra essere una di quelle supportate da sqlite, devi installarti una estensione [1] e utilizzare l'opzione sqliteextra [0] mi ricordo di qualche altra discussione a riguardo ma ora non la trovo... > Grazie mille! > > Ciao > > Paola > [0] https://grass.osgeo.org/grass72/manuals/v.db.update.html#updating-of-columns-with-on-the-fly-calculation-%28sqlite-extended-functions%29 [1] http://www.sqlite.org/contrib/download/extension-functions.c?get=25 -- ciao Luca www.lucadelu.org ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia
Re: [GRASS-Italia] cone si calcola la radice quadrata con v.db.update?
Ciao Paola, credo che al posto di value=perimetro / area * (3.45 * sqrt(area)) sia necessario scrivere query_column=perimetro / area * (3.45 * sqrt(area)), utilizzando dunque l'opzione "name of other attribute column to query, can be combination of columns" Saluti! Andrea Il giorno 10 marzo 2017 11:53, paolasalmonaha scritto: > Buongiorno a tutti! > > Sto cercando di calcolare l'indice di forma per una serie di poligoni > secondo la formula indice = perimetro/(3.45 * (sqrt (area)). > > Ho provato con v.db.update dopo avere creato la colonna indice, ma mi da > errore come riportato qui sotto. > > Qualcuno saprebbe dirmi cosa non va? > > Grazie mille! > > Ciao > > Paola > > (Fri Mar 10 11:50:19 2017) > > v.db.update map=ciccio_30_filtro_forma_muro@prova2 layer=1 column=indice > value=perimetro / area * (3.45 * sqrt(area)) > ERROR: Errore durante l'esecuzione: 'UPDATE ciccio_30_filtro_forma_muro > SET indice=perimetro / area * (3.45 * sqrt(area))' > Traceback (most recent call last): > File > "C:\OSGEO4~1\apps\grass\grass-7.0.5/scripts/v.db.update.py", > line 107, in > sys.exit(main()) > File > "C:\OSGEO4~1\apps\grass\grass-7.0.5/scripts/v.db.update.py", > line 98, in main > grass.write_command('db.execute', input = '-', database > = database, driver = driver, stdin = cmd) > File "C:\OSGEO4~1\apps\grass\grass-7.0.5\etc\python\grass\ > script\core.py", line 517, in write_command > return handle_errors(returncode, returncode, args, > kwargs) > File "C:\OSGEO4~1\apps\grass\grass-7.0.5\etc\python\grass\ > script\core.py", line 313, in handle_errors > returncode=returncode) > grass.exceptions.CalledModuleError: L'esecuzione del modulo > None ['db.execute', 'input=-', 'driver=dbf', > 'database=D:\\GIS_database\\gauss2017\\prova2\\dbf\\'] è > terminata con errori > Processo terminato con codice di return diverso da zero 1. > Vedi gli errori nel (error) output. > (Fri Mar 10 11:50:20 2017) Comando terminato (0 sec) > > > > > ___ > 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] cone si calcola la radice quadrata con v.db.update?
Buongiorno a tutti! Sto cercando di calcolare l'indice di forma per una serie di poligoni secondo la formula indice = perimetro/(3.45 * (sqrt (area)). Ho provato con v.db.update dopo avere creato la colonna indice, ma mi da errore come riportato qui sotto. Qualcuno saprebbe dirmi cosa non va? Grazie mille! Ciao Paola (Fri Mar 10 11:50:19 2017) v.db.update map=ciccio_30_filtro_forma_muro@prova2 layer=1 column=indice value=perimetro / area * (3.45 * sqrt(area)) ERROR: Errore durante l'esecuzione: 'UPDATE ciccio_30_filtro_forma_muro SET indice=perimetro / area * (3.45 * sqrt(area))' Traceback (most recent call last): File "C:\OSGEO4~1\apps\grass\grass-7.0.5/scripts/v.db.update.py", line 107, in sys.exit(main()) File "C:\OSGEO4~1\apps\grass\grass-7.0.5/scripts/v.db.update.py", line 98, in main grass.write_command('db.execute', input = '-', database = database, driver = driver, stdin = cmd) File "C:\OSGEO4~1\apps\grass\grass-7.0.5\etc\python\grass\ script\core.py", line 517, in write_command return handle_errors(returncode, returncode, args, kwargs) File "C:\OSGEO4~1\apps\grass\grass-7.0.5\etc\python\grass\ script\core.py", line 313, in handle_errors returncode=returncode) grass.exceptions.CalledModuleError: L'esecuzione del modulo None ['db.execute', 'input=-', 'driver=dbf', 'database=D:\\GIS_database\\gauss2017\\prova2\\dbf\\'] è terminata con errori Processo terminato con codice di return diverso da zero 1. Vedi gli errori nel (error) output. (Fri Mar 10 11:50:20 2017) Comando terminato (0 sec) ___ GRASS-Italia mailing list GRASS-Italia@listserv.unipr.it http://listserv.unipr.it/mailman/listinfo/grass-italia