[Gfoss] Postgis Concave hull???

Da un po' sto impazzendo con la creazione di poligoni concave hull in
postgis.
Non riuscendo a crearli con i dati che voglio utilizzare ho provato a
farlo seguendo l'esempio del manuale (versione 2.0), ma otteno sempre il
seguent messaggio:
ERROR: function st_concavehull(geometry, numeric) does not exist
LINE 1: SELECT (ST_ConcaveHull(ST_Collect(geom), 0.99))
                ^
HINT: No function matches the given name and argument types. You might
need to add explicit type casts.

Qualche suggerimento?

Grazie mille.

Iacopo

Ciao Iacopo,

Sono convinto che dipenda dal tuo dataset.

LA ST_Collect probabilmente nel tuo caso produce un tipo di geometria non supportato.

O, aggiungerei invalida.

Nell’esempio che citano il dataset era di punti.
Se il tuo è di poligoni e parzialmente si sovrappongono (anche per pochi millimetri) la st_collect ti produce una geometria invalida.

Se non riesci a risolvere, e sempre se puoi farmi avere (anche in privato) il tuo dataset. Cosi’ faccio qualche prova e ti dico meglio.

Andrea.

···

Il giorno 08 giugno 2013 01:34, Iacopo Zetti <iacopo@controgeografie.net> ha scritto:

Da un po’ sto impazzendo con la creazione di poligoni concave hull in
postgis.
Non riuscendo a crearli con i dati che voglio utilizzare ho provato a
farlo seguendo l’esempio del manuale (versione 2.0), ma otteno sempre il
seguent messaggio:
ERROR: function st_concavehull(geometry, numeric) does not exist
LINE 1: SELECT (ST_ConcaveHull(ST_Collect(geom), 0.99))
^
HINT: No function matches the given name and argument types. You might
need to add explicit type casts.

Qualche suggerimento?

Grazie mille.

Iacopo


Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell’Associazione GFOSS.it.
657 iscritti al 30.5.2013

Andrea Peri
. . . . . . . . .
qwerty àèìòù

In effetti avevo supposto qualcosa del genere e allora ho provato con un
layer di punti "sicuri", quello che fa parte dell'esempio sul manuale
postgis (lo incollo di seguito).
Il comando ST_ConvexHull funziona senza problemi, ma ST_ConcaveHull mi
restituisce l'errore del messaggio precedente (incollo di seguito iol
messaggio di errore per comodità). E non so che pesci...

Iacopo

SELECT (ST_DumpPoints(ST_GeomFromText(
'MULTIPOINT(14 14,34 14,54 14,74 14,94 14,114 14,134 14,
150 14,154 14,154 6,134 6,114 6,94 6,74 6,54 6,34 6,
14 6,10 6,8 6,7 7,6 8,6 10,6 30,6 50,6 70,6 90,6 110,6 130,
6 150,6 170,6 190,6 194,14 194,14 174,14 154,14 134,14 114,
14 94,14 74,14 54,14 34,14 14)'))).geom
  INTO TABLE l_shape;

SELECT ST_ConvexHull(ST_Collect(geom))
FROM l_shape;

SELECT ST_ConcaveHull(ST_Collect(geom), 0.99)
  FROM l_shape;

ERROR: function st_concavehull(geometry, numeric) does not exist
LINE 1: SELECT ST_ConcaveHull(ST_Collect(geom), 0.99)
               ^
HINT: No function matches the given name and argument types. You might
need to add explicit type casts.

Il giorno sab, 08/06/2013 alle 07.49 +0200, Andrea Peri ha scritto:

Ciao Iacopo,

Sono convinto che dipenda dal tuo dataset.

LA ST_Collect probabilmente nel tuo caso produce un tipo di geometria
non supportato.

O, aggiungerei invalida.

Nell'esempio che citano il dataset era di punti.
Se il tuo è di poligoni e parzialmente si sovrappongono (anche per
pochi millimetri) la st_collect ti produce una geometria invalida.

Se non riesci a risolvere, e sempre se puoi farmi avere (anche in
privato) il tuo dataset. Cosi' faccio qualche prova e ti dico meglio.

Andrea.

Il giorno 08 giugno 2013 01:34, Iacopo Zetti
<iacopo@controgeografie.net> ha scritto:
        Da un po' sto impazzendo con la creazione di poligoni concave
        hull in
        postgis.
        Non riuscendo a crearli con i dati che voglio utilizzare ho
        provato a
        farlo seguendo l'esempio del manuale (versione 2.0), ma otteno
        sempre il
        seguent messaggio:
        ERROR: function st_concavehull(geometry, numeric) does not
        exist
        LINE 1: SELECT (ST_ConcaveHull(ST_Collect(geom), 0.99))
                        ^
        HINT: No function matches the given name and argument types.
        You might
        need to add explicit type casts.
        
        Qualche suggerimento?
        
        Grazie mille.
        
        Iacopo
        
        _______________________________________________
        Gfoss@lists.gfoss.it
        http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
        Questa e' una lista di discussione pubblica aperta a tutti.
        I messaggi di questa lista non hanno relazione diretta con le
        posizioni dell'Associazione GFOSS.it.
        657 iscritti al 30.5.2013

--
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
657 iscritti al 30.5.2013

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Il 08/06/2013 01:34, Iacopo Zetti ha scritto:

ERROR: function st_concavehull(geometry, numeric) does not exist
LINE 1: SELECT (ST_ConcaveHull(ST_Collect(geom), 0.99))
                ^
HINT: No function matches the given name and argument types. You might
need to add explicit type casts.

Qualche suggerimento?

stai usando un PostGIS <2?
Saluti.
- --
Paolo Cavallini - Faunalia
www.faunalia.eu
Full contact details at www.faunalia.eu/pc
Nuovi corsi QGIS e PostGIS: http://www.faunalia.it/calendario
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAlGy4IEACgkQ/NedwLUzIr6NYgCfRpJybH7NcI7dXJtIZEzYTxYG
6PgAoIAEN2W1F2D8nhDX5/NnTHTYAV92
=Kh2T
-----END PGP SIGNATURE-----

stai usando un PostGIS <2?
Saluti.

SI

Iacopo

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
657 iscritti al 30.5.2013

Ecco spiegato perche’ non la conosce.

Se ti pesa installarti postgis 2.0, puoi scaricarti la console di spatialite 4.1 e usa quella li’ per calcolare la concave-hull.

Usa gli stessi algoritmi di postgis e quindi avrai il medesimo risultato.

···

Andrea.

Il giorno 08 giugno 2013 14:24, Iacopo Zetti <iacopo@controgeografie.net> ha scritto:

stai usando un PostGIS <2?
Saluti.

SI

Iacopo


Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell’Associazione GFOSS.it.
657 iscritti al 30.5.2013


Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell’Associazione GFOSS.it.
657 iscritti al 30.5.2013

Andrea Peri
. . . . . . . . .
qwerty àèìòù

Ma io sto usando la 2. Ovvero: 2.0.1-2~quantal3 e non c'è verso di farla
funzionare però, almeno per ST_ConcaveHull il resto va benissimo.

Iacopo

Il giorno sab, 08/06/2013 alle 14.27 +0200, Andrea Peri ha scritto:

Ecco spiegato perche' non la conosce.

Se ti pesa installarti postgis 2.0, puoi scaricarti la console di
spatialite 4.1 e usa quella li' per calcolare la concave-hull.

Usa gli stessi algoritmi di postgis e quindi avrai il medesimo
risultato.

Andrea.

Il giorno 08 giugno 2013 14:24, Iacopo Zetti
<iacopo@controgeografie.net> ha scritto:
        
        > stai usando un PostGIS <2?
        > Saluti.
        
        SI
        
        Iacopo
        
        > _______________________________________________
        > Gfoss@lists.gfoss.it
        > http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
        > Questa e' una lista di discussione pubblica aperta a tutti.
        > I messaggi di questa lista non hanno relazione diretta con
        le posizioni dell'Associazione GFOSS.it.
        > 657 iscritti al 30.5.2013
        
        _______________________________________________
        Gfoss@lists.gfoss.it
        http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
        Questa e' una lista di discussione pubblica aperta a tutti.
        I messaggi di questa lista non hanno relazione diretta con le
        posizioni dell'Associazione GFOSS.it.
        657 iscritti al 30.5.2013

--
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
657 iscritti al 30.5.2013

perdonami iacopo,
ma non capisco bene.

Stai usando postgis 2.0 oppure un postgis inferiore come ad esmepio 1.5 ?

In ogni caso devi tenere presente che molto incide come si opera quando si fa un upgrade.

Mi spiego con un esmepio:

se te hai un postgis 1.5 e decidi di fare un upgrade a postgis 2.0.

Diciamo che per prima cosa ti fai il backup dei tuoi db.
Poi aggiorni postgis alla 20 e poi fai un ripristino dei tuoi db con restore.

Questa fase del ripristino/restore è molto critica.

Perche’ è nel DB che stanno le definizioni delle funzioni che puo’ usare postgis.

Per cui, se ripristini semplicemente un db 1.5 s un postgis 2.0.
Avrai un db che conosce solamente le funzioni che erano presenti nella versione 1.5

Per attenuare questo fatto, ci sono degli accorgimenti da mettere in pratica in sede di costruzione e definizione dei vari DB e delgi schemi ad essi connessi.

Ma non sono banali e cambiano molto in base a le situazioni al contorno in cui uno si muove.

Per questo io ti suggerivo di usare spatialite per fare la concave.

Su spatialite il paradigma è differente.

Mentre in postgis le funzioni sono definite nel DB (e quindi si mescolano dati e definizioni delle funzioni)
In spatialite sono definite solamente nel codice della console.

Per cui se prendi un DB spatialite 3 e ci giri sopra una console di spatialite 4.
Ci puoi fare tutto quello che ti consente tale console.

A meno di piccole varianti, che pero’ risolvi subito con un programmino “spatialite_convert” che fa tutto lui e amen.

Ovvero quello che te puoi fare sui dati dipende esclusivamente dalla console che usi.

Questo è molto piu’ pratico rispetto a postgis.

Ovviamente l’approccio di postgis è piu’ enterprise e multiutente. Ma per questo richiede una robusta pratica amministrativa e un monitoraggio attento di cosa si fa’ altrimenti i mescoloni che nascono tra dati con funzioni di un certo tipo e istanza postigs che fa’ altre cose finiscono per confondere molto.

Saluti,

Andrea.

···

Il giorno 08 giugno 2013 23:19, Iacopo Zetti <iacopo@controgeografie.net> ha scritto:

Ma io sto usando la 2. Ovvero: 2.0.1-2~quantal3 e non c’è verso di farla
funzionare però, almeno per ST_ConcaveHull il resto va benissimo.

Iacopo

Il giorno sab, 08/06/2013 alle 14.27 +0200, Andrea Peri ha scritto:

Ecco spiegato perche’ non la conosce.

Se ti pesa installarti postgis 2.0, puoi scaricarti la console di
spatialite 4.1 e usa quella li’ per calcolare la concave-hull.

Usa gli stessi algoritmi di postgis e quindi avrai il medesimo
risultato.

Andrea.

Il giorno 08 giugno 2013 14:24, Iacopo Zetti
<iacopo@controgeografie.net> ha scritto:

stai usando un PostGIS <2?
Saluti.

SI

Iacopo


Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con
le posizioni dell’Associazione GFOSS.it.
657 iscritti al 30.5.2013


Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le
posizioni dell’Associazione GFOSS.it.
657 iscritti al 30.5.2013

Andrea Peri
. . . . . . . . .
qwerty àèìòù


Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell’Associazione GFOSS.it.
657 iscritti al 30.5.2013


Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell’Associazione GFOSS.it.
657 iscritti al 30.5.2013

Andrea Peri
. . . . . . . . .
qwerty àèìòù

entrando in postgres (psql) lanciando il compando:

postgres=> \df ST_ConcaveHull

(fa una query nella tabella delle funzioni) dovresti vedere questo

Schema | Name | Result data type | Argument data types | Type

···

2013/6/8 Iacopo Zetti <iacopo@controgeografie.net>

Ma io sto usando la 2. Ovvero: 2.0.1-2~quantal3 e non c’è verso di farla
funzionare però, almeno per ST_ConcaveHull il resto va benissimo.

Iacopo

Il giorno sab, 08/06/2013 alle 14.27 +0200, Andrea Peri ha scritto:

Ecco spiegato perche’ non la conosce.

Se ti pesa installarti postgis 2.0, puoi scaricarti la console di
spatialite 4.1 e usa quella li’ per calcolare la concave-hull.

Usa gli stessi algoritmi di postgis e quindi avrai il medesimo
risultato.

Andrea.

Il giorno 08 giugno 2013 14:24, Iacopo Zetti
<iacopo@controgeografie.net> ha scritto:

stai usando un PostGIS <2?
Saluti.

SI

Iacopo


Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con
le posizioni dell’Associazione GFOSS.it.
657 iscritti al 30.5.2013


Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le
posizioni dell’Associazione GFOSS.it.
657 iscritti al 30.5.2013

Andrea Peri
. . . . . . . . .
qwerty àèìòù


Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell’Associazione GFOSS.it.
657 iscritti al 30.5.2013


Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell’Associazione GFOSS.it.
657 iscritti al 30.5.2013

In effetti ha ragione Andrea, il mio postgis 2 è il frutto di un
upgrade. Non sapevo che ci potesse essere questo tipo di problema.
Grazie per le spiegazioni. Esperienza molto istruttiva (a parte i molti
accidenti).

Iacopo

Il giorno dom, 09/06/2013 alle 10.38 +0200, Gino Pirelli ha scritto:

entrando in postgres (psql) lanciando il compando:

postgres=> \df ST_ConcaveHull

(fa una query nella tabella delle funzioni) dovresti vedere questo

Schema | Name | Result data type |
             Argument data types
| Type
--------+----------------+------------------+------------------------------------------------------------------------------------------------+--------
public | st_concavehull | geometry | param_geom geometry,
param_pctconvex double precision, param_allow_holes boolean DEFAULT
false | normal
(1 row)

se per caso ottieni (come immagino otterrai):

                       List of functions
Schema | Name | Result data type | Argument data types | Type
--------+------+------------------+---------------------+------
(0 rows)

mi sa che hai perso qualcosa nell'istallazione di postgis... molto
probabile l'ipotesi di Andrea Peri.

bac gin

2013/6/8 Iacopo Zetti <iacopo@controgeografie.net>
        Ma io sto usando la 2. Ovvero: 2.0.1-2~quantal3 e non c'è
        verso di farla
        funzionare però, almeno per ST_ConcaveHull il resto va
        benissimo.
        
        Iacopo
        
        Il giorno sab, 08/06/2013 alle 14.27 +0200, Andrea Peri ha
        scritto:
        > Ecco spiegato perche' non la conosce.
        >
        > Se ti pesa installarti postgis 2.0, puoi scaricarti la
        console di
        > spatialite 4.1 e usa quella li' per calcolare la
        concave-hull.
        >
        > Usa gli stessi algoritmi di postgis e quindi avrai il
        medesimo
        > risultato.
        >
        >
        > Andrea.
        >
        >
        > Il giorno 08 giugno 2013 14:24, Iacopo Zetti
        > <iacopo@controgeografie.net> ha scritto:
        >
        > > stai usando un PostGIS <2?
        > > Saluti.
        >
        >
        > SI
        >
        > Iacopo
        >
        > > _______________________________________________
        > > Gfoss@lists.gfoss.it
        > >
        http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
        > > Questa e' una lista di discussione pubblica aperta
        a tutti.
        > > I messaggi di questa lista non hanno relazione
        diretta con
        > le posizioni dell'Associazione GFOSS.it.
        > > 657 iscritti al 30.5.2013
        >
        >
        >
        > _______________________________________________
        > Gfoss@lists.gfoss.it
        > http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
        > Questa e' una lista di discussione pubblica aperta a
        tutti.
        > I messaggi di questa lista non hanno relazione
        diretta con le
        > posizioni dell'Associazione GFOSS.it.
        > 657 iscritti al 30.5.2013
        >
        >
        >
        > --
        > -----------------
        > Andrea Peri
        > . . . . . . . . .
        > qwerty àèìòù
        > -----------------
        >
        > _______________________________________________
        > Gfoss@lists.gfoss.it
        > http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
        > Questa e' una lista di discussione pubblica aperta a tutti.
        > I messaggi di questa lista non hanno relazione diretta con
        le posizioni dell'Associazione GFOSS.it.
        > 657 iscritti al 30.5.2013
        
        _______________________________________________
        Gfoss@lists.gfoss.it
        http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
        Questa e' una lista di discussione pubblica aperta a tutti.
        I messaggi di questa lista non hanno relazione diretta con le
        posizioni dell'Associazione GFOSS.it.
        657 iscritti al 30.5.2013

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
657 iscritti al 30.5.2013

On 09/06/2013 22:25, Iacopo Zetti wrote:

In effetti ha ragione Andrea, il mio postgis 2 è il frutto di un
upgrade. Non sapevo che ci potesse essere questo tipo di problema.
Grazie per le spiegazioni. Esperienza molto istruttiva (a parte i molti
accidenti).

Iacopo

A proposito degli accorgimenti da usare:
Un suggerimento che va sempre bene e va seguito come un precetto assoluto è
"mai mettere i propri dati nelllo schema public"

Non che questo risolva ogni cosa, ma sicuramente riduce l'entropia globale

2013/6/11 aperi2007 <aperi2007@gmail.com>:

A proposito degli accorgimenti da usare:
Un suggerimento che va sempre bene e va seguito come un precetto assoluto è
"mai mettere i propri dati nelllo schema public"

Non che questo risolva ogni cosa, ma sicuramente riduce l'entropia globale

Vero, sarebbe la best practice.
Sfortunatamente poi pero' accade che non sempre tutti i software e
librerie supportino schemi diversi dal public, e pertanto occorre
scendere a compromessi.
ciao
p

--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti
skype: capooti

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Il 11/06/2013 11:41, Paolo Corti ha scritto:

Sfortunatamente poi pero' accade che non sempre tutti i software e librerie
supportino schemi diversi dal public, e pertanto occorre scendere a
compromessi.

o cambiare i software :wink:
saluti.
- --
Paolo Cavallini - Faunalia
www.faunalia.eu
Full contact details at www.faunalia.eu/pc
Nuovi corsi QGIS e PostGIS: http://www.faunalia.it/calendario
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAlG29NcACgkQ/NedwLUzIr6/xgCfR0kYP2lSNf315arbVMYQiCe5
0jQAniu2p/k6sKrbk2th1z66ApLDGROQ
=swK9
-----END PGP SIGNATURE-----