[Gfoss] Geodatabase con postgis

Alessio Di Lorenzo alessio.dilorenzo at gmail.com
Tue Jun 5 17:06:42 CEST 2007


> Ok, grazie, ma in effetti non posso convertire un geodatabase ArcGis 
> utilizzando la procedura che ho descritto, perchè naturalmente 
> converte solo la parte tabellare. Ho già esportato le FC in Shapefile 
> ed ho provato ad importarle, ma con scarsi risultati.
> In definitiva le mie diverse prove hanno stabilito che a partire da un 
> geodatabase già fatto in ArcGis, la conversione in postgis è 
> tutt'altro che banale, innanzi tutto è complesso importare gli 
> shapefile (esportati dal geodatabase) non so perchè
Laura, lo shape esportato dal geodb di ArcGIS solitamente non contiene 
solo *.shp, *.shx e *.dbf. ma anche i file *.prj, *.sbn, *.sbx, 
*.shp.xml. Anche se dubito che il problema sia questo, prova ad 
eliminarli e ripetere l'import in postgis. Io l'ho fatto infinite volte 
senza problemi (anche senza limitarmi alla struttura minima dello shape).
Per esperienza personale ritengo che il tool a riga di comando shp2pgsql 
sia molto più efficace di SPIT (il plugin di qgis) sebbene sia meno 
immediato (ma basta leggere mezza pagina di documentazione)
> in secondo luogo non possono essere riprodotte le relazioni, come 
> detto da alcuni di voi si possono creare delle viste, ma in effetti 
> non è la stessa cosa.
Siamo sempre lì... ricrearle a partire da quelle esistenti nel geodb di 
ArcGIS non si può, ma crearle a partire da zero sì. A tale proposito ti 
segnalo un progetto italiano:

http://pgdesigner.sourceforge.net/it/index.html

è un sw case per disegnare un db postgres in modo del tutto simile a 
quanto si fa con oracle designer. Per il momento (ed ancora per 
parecchio tempo) è utilizzabile solo sotto linux. Il gioco è questo:
parti dagli shapefiles > li importi in postgis > connetti il db spaziale 
postgis a dbdesigner > usi la funzione di reverse engeneering e ti 
ritrovi le entità corrispondenti nel tuo spazio di lavoro. A questo 
punto crei altre tabelle (entità) e relazioni.

Chiaramente si può fare lo stesso, senza passare da pgdesigner, 
direttamente da psql, phpPgAdmin, pgAdmin3, PgAccess e chi più ne ha più 
ne metta... e non è come avere già tutto bello e pronto esportato da 
ArcGIS, me ne rendo conto... ma pgdesigner è pur sempre una bella mano. 
Io ho fatto delle prove su piccoli geodb tempo fa ed il procedimento ha 
funzionato.
> Ed infine i domini, che sono salvati come domini a parte, ma in questo 
> modo perdono a mio avviso la loro reale utilità. In arcGis infatti 
> consentono la validazione degli attributi in editing (cioè evitano ad 
> esempio che se un attributo è "sede", per errore possa scrivere 
> "sade", con tutte le coomplicazioni di analisi che ciò poi comporta).
Anche questo è riproducibile... tutti i dbms danno la possibilità di 
definire dei domini. In mysql il dominio di valori per un campo si 
ottiene col datatype ENUM ('valore1','valore2'). Postgres non ha "built 
in" questo tipo di dato ma per definire un dominio si possono creare 
datatype con le stesse caratteristiche

CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
CREATE TABLE person (
    name text,
    current_mood mood
);
INSERT INTO person VALUES ('Moe', 'happy');
SELECT * FROM person WHERE current_mood = 'happy';
 name | current_mood 
------+--------------
 Moe  | happy
(1 row)

oppure usare il vincolo CHECK:

CREATE TABLE event(
name text,
date date,
dayofweek char(3) CHECK (dayofweek in (Sun, Mon, Tue, Wed, Thu, Fri, Sat))
);

La prima via non l'ho mai tentata (anche perchè l'ho scoperta solo ieri) 
ma CHECK fa egregiamente il suo dovere.
>  
> Sicuramente ci sono vantaggi non trascurabili, come l'economicità e la 
> possibilità di trasferire più facilmente i dati, ma sinceramente mi 
> aspettavo qualcosa di diverso, senza contare che per lavorare bene in 
> open source bisogna avere, secondo me, conoscenze informatiche  ben 
> salde (certo con un po' di pazienza si può fare tutto!).
Qualcuno ti farebbe notare anche il lato etico - che condivido - 
dell'utilizzo di sw aperto (dove sta Paolo???). Per quanto riguarda le 
conoscenze informatiche salde, è vero, ci vogliono, ma sono le stesse 
necessarie per poter lavorare in ambito SIT con in più una "spruzzata di 
unix"... inoltre, come dici anche tu, con la pazienza si può fare tutto.
 
> Il mio intervento non vuol essere una critica ma una testimonianza 
> della mia esperienza e delle mie impressioni.
> Sarò felice di essere smentita.
> Laura
Il mio intento non è certo quello di smentirti, spero però di averti 
dato degli spunti utili.
Ci vediamo al pgday? :-)

ciao

alessio



More information about the Gfoss mailing list