Re: [GRASS-Italia] cone si calcola la radice quadrata con v.db.update?

2017-03-12 Per discussione Markus Neteler
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?

2017-03-10 Per discussione Maurizio Marchi
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?

2017-03-10 Per discussione 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.

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?

2017-03-10 Per discussione Carlo Cormio
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 
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 Per discussione Luca Delucchi
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?

2017-03-10 Per discussione Andrea Mandarino
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, paolasalmona  ha
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