Esercitazione su PostGIS p1 · 2010-02-10 · 27/01/2010 1 Esercitazione su PostGIS Claudio...
Transcript of Esercitazione su PostGIS p1 · 2010-02-10 · 27/01/2010 1 Esercitazione su PostGIS Claudio...
27/01/20101
Esercitazione su PostGIS
Claudio Rocchini –
Istitu
to Geografico Milita
re
Intro
duzione
�Postgres
con PostG
ISè u
n datab
ase server pro
fessionale
Open
Source e G
ratuito
�Il su
pporto
spaziale è veram
ente co
mpleto
e fa co
nco
rrenza a so
ftware co
mmerciali b
en più co
stosi (es.
Oracle)
�In questa esercitazio
ne farem
o una b
reve intro
duzio
ne al
supporto
spaziale d
i Postgres.
�Prereq
uisiti:
�Cen
ni su
lle basi d
i dati
�SQ
L
�Interfaccia d
i Postgres
2PostG
IS -Clau
dio R
occh
ini -
IGM
Nota su questi lu
cidi
PostG
IS -Clau
dio R
occh
ini -
IGM
3
�Le q
uery
SQL da esegu
ire sono sem
pre scritte co
n il
carattere Courier
�Po
werPo
int trasfo
rma talvo
lta il prim
o ap
icettodi u
na
frase in ap
icettoinvero
. In SQ
L biso
gna sem
pre u
sare l’ap
icettodiritto
(l’apostro
fo).
�Si rico
rda ch
e per esegu
ire una q
uery
biso
gna:
�Aprire p
gAdminIII
�Connettersi al server giu
sto
�Selezio
aneun datab
ase
�Aprire SQ
L ed
itor
�Digitare la q
uery
nella fin
estra di sin
istra
�Prem
ere il pulsan
te Play (execu
te)
Supporto
Spaziale di Postgres
Ved
iamo in
questa sezio
ne co
sa effettivamen
te PostG
IS aggiunge
a Postgres
PostG
IS -Clau
dio R
occh
ini -
IGM
4
27/01/20102
Supporto
Spaziale a Postgres
PostG
IS -Clau
dio R
occh
ini -
IGM
5
�Po
stGIS aggiu
nge il su
pporto
geografico
a Postgres
�Tale su
pporto
si compone d
i varie parti e si b
asa prin
cipalm
ente su
standard
Open
GIS C
onso
rtium
(Oracle in
vece, ch
e è più vecch
io, h
a dovu
to svilu
ppare u
n
suo stan
dard
).
�Prin
cipali co
mponen
ti:�
Un nuovo
tipo di d
ato: GEOMETRY
�Tab
elle di su
pporto
: spatial_
ref_sys
e geometry_
columns
�Fu
nzio
ni SQ
L di su
pporto
(circa 700)
�To
olestern
i (es. pgsql2
shpe shp
2pgsql) ch
e vedrem
o duran
te l’im
portazio
ne d
i dati
�Nota: Po
stgres non ha d
i per sé u
n visu
alizzatore
GEOMETRY
PostG
IS -Clau
dio R
occh
ini -
IGM
6
�I d
ati di u
na co
lonna d
i datab
ase sono asso
ciati ad un tip
o
(es. INTEGER, C
HARACTER, B
OOLEAN)
�Il su
pporto
spaziale in
troduce u
n nuovo
tipo di d
ato:
GEOMETRY, q
uesto
tipo è u
n tip
o di d
ato ad
oggetti
(complesso
)
�Questo
tipo di d
ato co
ntien
e la geometria d
i un sin
golo
oggetto
geografico
e eventualm
ente il sistem
a di
riferimen
to asso
ciato (co
dice SR
ID)
�Il tip
o è m
ultifo
rme:
�può co
nten
ere dati a 2
, 3 o 4 dim
ensio
ni (x
,y,z e il campo M
)
�Vari tip
i di geo
metrie: p
unti, lin
ee, aree
, curve
, etc.
spatial_ref_sys: in
troduzione
PostG
IS -Clau
dio R
occh
ini -
IGM
7
�E’ u
na tab
ella del sistem
a spaziale: m
emorizza l’elen
co dei
sistemi d
i riferimen
to su
pportati
�Si b
asa prin
cipalm
ente su
llo stan
dard
EPSG
(http
://www.ep
sg.org)
�Per o
gni sistem
a previsto
è indicato
:
�il co
dice n
umerico
�la so
rgente (si so
lito EPSG
)
�la d
efinizio
ne testu
ale (equivale al testo
conten
uto
nei file p
rg)
�la d
efinizio
ne p
roj4
�Nota: p
roj4 è u
na lib
reria di trasfo
rmazio
ne d
i coord
inate
utilizzata d
a PostG
IS
spatial_ref_sys: contenuto
PostG
IS -Clau
dio R
occh
ini -
IGM
8
�Esem
pio lo
srid4326co
rrisponde a co
ord
inate geo
grafiche W
GS8
4 (G
PS)
�Ecco
la defin
izione testu
ale:GEOGCS[
"WGS 84",
DATUM[
"WGS_1984",
SPHEROID[
"WGS84",
6378137,298.257223563,
AUTHORITY["EPSG","7030"]
],
AUTHORITY["EPSG","6326"]
],
PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],
UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4326"]
]�SR
ID 32632e 3
2633co
rrispondono a U
TM W
GS8
4 fu
si 32 e 3
3 N
ord
.
�SR
ID 23032e 2
3033co
rrispondono a U
TM ED50 fu
si 32 e 3
3 N
ord
.
27/01/20103
spatial_ref_sys: estensione
PostG
IS -Clau
dio R
occh
ini -
IGM
9
�Se u
n sistem
a di riferim
ento
non e’ p
revisto può essere
aggiunto
alla tabella, d
efinen
do l’o
pportu
na strin
gpro
j4,
ovviam
ente il sistem
a non sarà stan
dard
�Ad esem
pio Fu
so Italia, u
sato per i catalo
ghi w
eb, (u
na
med
ia fra fuso
32 e fu
so 33) p
uò essere d
efinito
come:
�SR
ID: 9
000;
�au
th_nam
e: "IGMI";
�au
th_srid
: 90000;
�pro
j=tm
erc+lat_
0=0 +lon_0=12 +k=
0.9985 +x_0=7000000.0
+y_
0=0 +ellp
s=W
GS8
4 +datu
m=W
GS8
4 +units=
m +no_defs“
�Po
stgres è in grad
o di u
tilizzare correttam
ente i d
ati geo
grafici con sistem
i defin
iti dall’u
tente.
Un in
ciso: R
oma40P
ostG
IS -Clau
dio R
occh
ini -
IGM
10
�Alcu
ni sistem
i di riferim
ento
non posso
no essere trattati
in m
odo an
alitico
�Ad esem
pio R
oma4
0, h
a biso
gno (p
er una su
a eventuale
trasform
azione), d
i griglie di trasfo
rmazio
ne p
unto
punto,
che m
emorizzan
o la d
ifferenza d
i coord
inate
.
�L’IG
M ven
de q
ueste griglie d
i trasform
azione a b
locch
i
�Pro
j4 (e q
uindi Po
stgres) supportan
o le griglie d
i trasfo
rmazio
ne n
el form
ato stan
dard
NAD (n
tv2)
�Ad esem
pio la segu
ente d
efinizio
ne co
struisce u
n sistem
a geo
grafico R
oma4
0 (aven
do i grigliati o
pportu
ni):
�+pro
j=longlat +
ellps=
WGS8
4 +to
+pro
j=longlat
+ellp
s=W
GS8
4 +nad
grids=
./wgs8
4_to
_ro
ma4
0.gsb
geometry
_columnsPostG
IS -Clau
dio R
occh
ini -
IGM
11
�Questa è la seco
nda tab
ella di sistem
a
�Contien
e i “metad
ati” minim
i per tu
tte le colonne
geometrich
e:
�sch
ema: n
ome d
ello sch
ema ch
e contien
e la tabella
�tab
le_nam
e: nome d
ella tabella geo
metrica
�geo
metry_
column: n
ome d
ella colonna d
i tipo G
EOMETRY
�co
ord
_dim
ensio
n: n
umero
dim
ensio
ni (2
,3, o
4)
�srid
: codice d
el sistema d
i riferimen
to, p
uò essere -1
= non
defin
ito
�typ
e: sotto
tipo geo
metrico
; rappresen
ta un vin
colo ai tip
i geo
metrici co
nten
uti. P
uò valere G
EOMETRY=nessu
nvin
colo
geometry
_columnsdal sito W
EB IG
M
PostG
IS -Clau
dio R
occh
ini -
IGM
12
27/01/20104
Note su geometry
_columns1
PostG
IS -Clau
dio R
occh
ini -
IGM
13
�Defin
ire i metad
ati minim
i è fondam
entale p
er il corretto
funzio
nam
ento
di Po
stGIS (e d
ei GIS co
nnessi ad
esso!)
�Una tab
ella può avere p
iù co
lonne geo
metrich
e (co
rrisponde ad
una featu
reclass
in cu
i ogn
i oggetto
a più
rappresen
tazioni: es. città p
untuali o
areali)
�Una co
lonna geo
metrica:
�può co
nten
ere dati geo
metrici d
i tipo unifo
rme (scelta
consigliata p
er non m
ettere in crisi i sistem
i GIS), ad
esempio
punti, in
questo
caso geom
etry_colum
ns.type co
ntien
e il valore
POIN
T
�Può co
nten
ere dati d
i tipo m
isto (p
unti, lin
ee ed aree), in
questo
caso geom
etry_colum
ns.type co
ntien
e il valore
GEOMETRY
Note su geometry
_columns2
PostG
IS -Clau
dio R
occh
ini -
IGM
14
�Il sistem
a di riferim
ento
può essere:
�Non in
dicato
: SRID
= -1
�Indicato
in geom
etry_colum
ns, quindi p
er l’intera co
lonna
(feature)
�Indicato
den
tro il cam
po geom
etry, quindi p
er ogn
i elemen
to. In
questo
caso può variare d
a elemen
to ad
elemen
to della stessa
colonna (co
sa sconsiglata)
�Alcu
ni sistem
i esterni n
on rico
nosco
no il sistem
a di
riferimen
to co
rrettamen
te:
�Sh
p2pgsq
l non è in
grado di d
ecodificare il file p
rj
�ArcG
IS non è in
grado di in
terpretare lo
SRID
Postgres, il sistem
a di
riferimen
to deve essere co
municato
dall’u
tente.
funzioni
PostG
IS -Clau
dio R
occh
ini -
IGM
15
�Po
stGIS d
efinisce circa 7
00 fu
nzio
ni SQ
L
�Ved
remo alcu
ne d
elle funzio
ni in
dettagli d
uran
te l’esercitazio
ne. L
e funzio
ni so
no divise n
ei gruppi:
�Di G
estione: es. A
ddGeom
etryColum
n
�DICostru
zione: es. ST
_MakePoint
�Di accesso
: es. ST_Dimension
�Di m
odifica: es. ST
_Transform
�Di o
utput: es. ST
_AsGML
�Di relazio
ne e m
isura: es. ST
_Area
e ST_Intersects
�Di p
rocessam
ento
: es. ST_Buffer
�Altro
: es. Linear R
eferencig, ST
_Xmax
, etc.
Lavorare con Postgres
In questa sezio
ne in
iziamo a fare q
ualch
e esercizio co
n SQ
L e i
dati geo
grafici
PostG
IS -Clau
dio R
occh
ini -
IGM
16
27/01/20105
Valori le
tterali 1
PostG
IS -Clau
dio R
occh
ini -
IGM
17
�I valo
ri geometrici p
osso
no essere sp
ecificati in m
odo
letterale, segu
ento
lo stan
dard
OGC W
KT:
�Punto
2D:
�‘POIN
T(0 0)’
�Po
lilinea 3
D:
�‘LIN
EST
RIN
G(0 0
0,1 1 0,1 2 0)’
�Po
ligono (co
n buco
): �
’POLY
GON((0
0,4 0,4 4,0 4,0 0),(1
1, 2
1, 2
2, 1
2,1 1))’
�Punto
multip
lo:
�‘M
ULT
IPOIN
T(0 0,1 2)’
�Punto
con sistem
a di riferim
ento
:�
‘SRID
=32632;POIN
T(0 0)’
Valori le
tterali 2
PostG
IS -Clau
dio R
occh
ini -
IGM
18
�I valo
ri letterali di tip
o G
EOMETRY non posso
no essere
utilizzati co
sì come so
no, altrim
enti il d
b li scam
bia p
er strin
ghe, m
a:�
Si può utilizzare la fu
nzio
ne ST
_Geo
mFro
mEW
KT
per co
nvertirli in
geometria
�Si p
uò acco
dare la d
icitura ::G
EOMETRY per in
form
are il sistema ch
e il valo
re è una geo
metria.
�Es. p
rovate ad
eseguire la q
uery:
SELECT ST_XMax(
ST_GeomFromText(‘LINESTRING(1 3 4, 5 6 7)’)
);
�Nella
query p
reded
ente
abbiam
oco
struito
unageo
metria
e poi ab
biam
outilizzato
la funzio
neST
_XMAX per estrerre
ilvalo
rex m
assimo.
Valori le
tterali 3
PostG
IS -Clau
dio R
occh
ini -
IGM
19
�Vogliam
o pro
iettare le coord
inate geo
grafiche d
el centro
di Firen
ze in U
TM fu
so32N, p
roviam
o:
SELECT ST_Transform(
'SRID=4326;POINT(11.25 43.75)'::GEOMETRY
,32632
)
�Abbiam
oco
struito
la geometria
diun punto
in co
ord
. Geo
grafiche(co
n l’o
pzio
ne::G
EOMETRY) è l’ab
biam
otrasfo
rmato
tramite
la funzio
neST
_Tran
sform
a cui
biso
gnasp
ecificareilsistem
adiarrivo
.
�La risp
osta
didefau
lt è in binario
e quindifatich
iamoa
leggerla. Per leggerlain testo
applich
iamola fu
nzio
ne
ST_AsE
WKT
a ST_Tran
sform
.
Creazione di u
na feature class: dati
PostG
IS -Clau
dio R
occh
ini -
IGM
20
�Creiam
o ad
esso una featu
re a man
o
�Questo
vuol d
ire creare una tab
ella con una co
lonna d
i tipo
gemetry
+ i m
etadati asso
ciati
�Creiam
o la featu
re edificio
eseguen
do:
CREATE TABLE edificio
(
id INTEGER PRIMARY KEY,
descrCHARACTER VARYING
);
�Nota: il vin
colo ch
iave prim
aria è stato in
serito direttam
ente
dopo la d
efinizio
ne d
el tipo
�Nota2
: per o
ra il campo geo
metrico
non c’è. Po
tevamo
inserirlo
subito
(aggiungen
do la co
lonna “sh
ape G
EOMETRY”)
ma p
referiamo farlo
in un altro
modo…
27/01/20106
Creazione di u
na feature: geometria
PostG
IS -Clau
dio R
occh
ini -
IGM
21
�Po
stgres contien
e la funzio
ne A
ddGeom
etryColum
nch
e perm
ette di aggiu
ngere la co
lonna geo
metrica, i m
etadati
e alcuni vin
coli aggiu
ntivi in
un so
l colpo.
�La fu
nzio
ne h
a i seguen
ti param
etri:
�Tab
ella su cu
i operare
�Nome d
ella colonna geo
metrica
�Sistem
a di riferim
ento
�Tipo geo
metrico
�Numero
dim
ensio
ni
�Pro
vate ad esegu
ire (orm
ai dovreb
be essere ch
iaro):
SELECT
AddGeometryColumn('edificio','shape',4623,'POLYGON',2);
Creazione dell’in
dice spaziale
PostG
IS -Clau
dio R
occh
ini -
IGM
22
�Perch
é il funzio
nam
ento
delle q
uery
spaziali sia velo
ce è fondam
entale creare u
n in
dice su
lla colonna shap
e
�La sin
tassi generica p
er creare indici è:
CREATE IN
DEX nom
e_indice
ON nom
e_tabella
(colonne)
�Gli in
dici sp
aziali però
sono diversi d
a quelli su
numeri e
paro
le: in questo
caso biso
gna sp
ecificarne il tip
o (ch
e si ch
iama gist): p
rovate q
uindi ad
eseguire:
CREATE INDEX edificio_shape_idx
ON edificioUSING gist (shape);
�Il n
ostro
indice sp
aziale è in fu
nzio
ne
Uno sguardo alla nostra
tabella
PostG
IS -Clau
dio R
occh
ini -
IGM
23
�Diam
o un sgu
ardo alla n
ostra tab
ella nell’alb
ero grafico
�Oltre agli attrib
uti e all’in
dice
, la funzio
ne
AddG
eometryC
olumn
ha aggiu
nto
vinco
li (constrain
ts) aggiu
ntivi ch
e bloccan
o il sistem
a di riferim
ento, il n
umero
di d
imen
sioni e il tip
o geo
metrico
Uno sguardo ai m
etadati
PostG
IS -Clau
dio R
occh
ini -
IGM
24
�Selezio
nate n
ell’albero
grafico la tab
ella (dello
schem
a public) geom
etry_colum
n
�Visu
alizzate la tabelle e ved
rete che q
uesta co
ntien
e i metad
ati minim
i della n
ostra featu
re:
�Nome d
ello sch
ema
�Nome d
ella tabella
�Nome d
el campo geo
metrico
�Dim
ensio
ni (2
)
�Sistem
a di riferim
eno(4623=W
GS8
4)
�Tipo geo
metrico
27/01/20107
Popolamento della ta
bella
PostG
IS -Clau
dio R
occh
ini -
IGM
25
�Creiam
o ad
esso qualch
e oggetto
geografico
, pro
vate ad
eseguire:
INSERT INTO edificio
VALUES
(1,'Ospedale',
'SRID=4623;POLYGON((6 42, 8 42, 8 43, 6 43, 6 42))'::GEOMETRY
);
�I p
rimi d
ue valo
re sono la ch
iave prim
aria e la descrizio
ne, il
terzo è la geo
metria (u
n poligo
no rettan
golare) d
el giusto
sistem
a di riferim
ento
�Nota: le aree van
no “ch
iuse” vale a d
ire che l’u
ltimo vertice
deve co
incid
ere con il p
rimo (o
vvero i q
uad
rati han
no 5
vertici…)
Ancora altri d
ati
PostG
IS -Clau
dio R
occh
ini -
IGM
26
�Divertiam
oci an
che a creare u
n seco
ndo oggetto
:INSERT INTO edificio
VALUES
(2,'Industria',
'SRID=4623;POLYGON((10 43, 13 43, 13 46, 10 46, 10 43),(11
44, 12 44, 12 45, 11 45, 11 44))'::GEOMETRY);
�Nota: la riga d
ella geometria q
ui so
pra va scritta tu
tta di
seguito
(PowerPo
int in
vece va a capo)
�La geo
metria d
ella nostra in
dustria è u
n rettan
golo co
n
un buco
nel cen
tro: la seco
nda serie d
i coord
inate
defin
isce il buco
centrale
.
Semplici analisi sulle nostre
feature
PostG
IS -Clau
dio R
occh
ini -
IGM
27
�Pro
viamo ad
esso a tab
ellare le aree dei n
ostri ed
ifici con
la query:
SELECT id,descr,
ST_Area(shape)
FROM edificio;
�L’area vien
e misu
rata in grad
i quad
rati…pro
viamo in
vece a p
roiettare q
ueste co
ord
inate n
el fuso
32:
SELECT id,descr,
ST_Area( St_Transform(shape,32632) )/10000
FROM edificio;
�In questo
caso il risu
ltato è in
ettari
�Nei sem
plici esem
pi fin
o a q
ui visti, le fu
nzio
ni ven
gono
applicate ad
ogn
i singo
lo oggetto
Semplici fu
nzioni aggreganti
PostG
IS -Clau
dio R
occh
ini -
IGM
28
�Ved
iamo ora q
ualch
e esempio di fu
nzio
ne aggregan
te.
Pro
vate ad esegu
ire:SELECT ST_Extent(shape) FROM edificio;
�Il risu
ltato è:
"BOX(6 42,13 46)"
�La fu
nzio
ne ST
_Extent
calcola l’esten
sione m
assima
dell’u
nione d
egli elemen
ti della tab
ella. Un altro
esempio:
SELECT St_AsEWKT(ST_Union(shape))
FROM edificio;
�La fu
nzio
ne ST
_Union
calcola l’u
nione d
i tutte le
geometrie
27/01/20108
Connessione con QGIS (oppure
UDIG)
Ed ora u
n piacevo
le interm
ezzo: visu
alizzazione d
i dati tram
ite QGIS
PostG
IS -Clau
dio R
occh
ini -
IGM
29
Visualizzare i d
ati: in
troduzione
PostG
IS -Clau
dio R
occh
ini -
IGM
30
�Questa è u
n’esercitazio
ne su
Postgres-Po
stGIS
�Questo
softw
are non ha d
i per sé u
n visu
alizzatore
grafico.
�E’ d
ifficile però
contin
uare sen
za visualizzare i n
ostri d
ati.
�Intro
durrem
o quindi i co
ncetti m
inim
i per p
oter
visualizzare i d
ati con Q
GIS
�Una d
escrizione d
i QGIS esu
la dagli sco
pi d
i questa
disp
ensa.
Procedura di visualizzazione con QGIS 1
PostG
IS -Clau
dio R
occh
ini -
IGM
31
�Lan
ciare QGIS
�Prem
ere il pulsan
te: Add
PostG
IS Layer
�Nel d
ialogo
che si ap
re prem
ere il tasto new
�Inserire i valo
ri corretti d
i co
nnessio
ne e p
remere O
K
�Nel d
ialogo
prin
cipale p
remere
il tasto Connect: ap
pariran
no
tutte le featu
re disp
onibili
Procedura di visualizzazione con QGIS 2
PostG
IS -Clau
dio R
occh
ini -
IGM
32
�Selezio
nare la featu
re public –
edifici e p
remere il tasto
Add
�Se tu
tto va b
ene ap
parirà n
ella map
pa l’elen
co degli o
ggetti da n
oi
manu
almen
te creati (vedi
pro
ssimo lu
cido)
�Selezio
nan
do lo
strumen
to
Iden
tifyFeatu
re (I) è possib
ile an
che in
terrogare gli attrib
uti d
egli oggetti.
�Po
ssiamo m
anten
ere QGIS ap
erto
men
tre continu
iamo a lavo
rare co
n Po
stgres
27/01/20109
Risultato della visualizzazione
PostG
IS -Clau
dio R
occh
ini -
IGM
33
Un in
ciso connessione con UDIG
PostG
IS -Clau
dio R
occh
ini -
IGM
34
La connessio
ne co
n U
DIG
segue u
na p
roced
ura
Equivalen
te: Men
ù Layer
–Add. Scegliere
PostG
ISim
postare i p
arametri e scegliere le
feature
.
Importa
zione di dati E
sterni
(shape)
In questa sezio
ne si im
portan
o dei d
ati esterni n
el form
ato
shap
e
PostG
IS -Clau
dio R
occh
ini -
IGM
35
Dati d
i Esempio
PostG
IS -Clau
dio R
occh
ini -
IGM
36
�Come d
ati di esem
pio, u
tilizzeremo il D
B to
pografico
della regio
ne P
uglia, in
partico
lare i dati d
el foglio
383 e
solo le featu
reC010101 (area strad
ale), C010107
(elemen
to strad
ale) e C060106 (C
oltu
ra Agrico
la).
�In partico
lare l’ultim
a feature
contien
e un attrib
uto
multivalo
re
�L’im
portazio
ne d
ei file shap
e avverrà attraverso lo
stru
men
to “sh
p2pgsq
l”, un to
oldi Po
stGIS. L
o stesso
stru
men
to può im
portare tab
elle di d
ati puri (n
on
geografici).
27/01/2010
10
Preparazione all’im
porta
zione
PostG
IS -Clau
dio R
occh
ini -
IGM
37
�Im
porterem
o i n
ostri file sh
ape n
el datab
ase Postgres d
i lavo
ro
�I d
ati però
non verran
no caricati n
ella schem
a prin
cipale
, ma in
un nuovo
schem
a den
ominato
“puglia”.
�Creazio
ne d
ello sch
ema “p
uglia”:
�Aprite p
gAdmin III
�Selezio
nate il server d
a utilizzare
�Selezio
nate il d
atabase “co
rso”
�Clicca co
l botto
ne d
estro su
“Schem
as”
�Selezio
nate “N
ew Sch
ema”
�Digitate “p
uglia” co
me n
ome
�Prem
ete OK
Funzionamento di shp2pgsql
PostG
IS -Clau
dio R
occh
ini -
IGM
38
�Sh
p2pgsq
l è un so
ftware d
os
(a riga di co
man
do) fu
nzio
na
digitan
do il co
man
do in
una
finestra d
os, co
n le
opportu
ne o
pzio
ni
USO
: shp2pgsq
l [<optio
ns>
] <sh
apefile>
[<
schem
a>.]<
table>
OPTIO
NS:
-s <srid
> Selezio
nalo SR
ID.
-d C
ancella
e ricreale tab
elle
-a Appen
deidati
-c Crea
nuove
tabelle
e dati
-p C
reale tab
ellesen
zadati
-g <geo
metry_
column>
specifica
ilnomedel cam
po
geometrico
-I Crea
l’indice
spaziale
-W <
enco
ding>
Specifica
la co
difica
carattere
-n Im
porta
solo I d
bf
Procedura di im
porta
zione
PostG
IS -Clau
dio R
occh
ini -
IGM
39
�Creare la cartella c:\lavo
ro
�Copiarci d
entro
i file shap
e e dbfda im
portare
�Aprire u
na sh
ellDOS (ad
esempio prem
endo Start –
Esegu
i, digitan
do cm
de p
remen
do O
K)
�Digitare il co
man
do:
�cd
\lavoro
�Digitare il co
man
do:
�sh
p2pgsq
l -s 32633 -c -g sh
ape –
I C010101_POL.sh
p
puglia.C
010101 > C
010101.sq
l
�Vien
e creato il file c0
10101.sq
l
Analisi dei parametri
PostG
IS -Clau
dio R
occh
ini -
IGM
40
�-s 32633 : selezio
na il sistem
a di riferim
ento
(32633 =
UTM Fu
so 32N, W
GS8
4, il sistem
a utilizzato
dalla P
uglia),
il sistema va in
dicato
perch
é Postgres n
on riesce a leggere
i file prj
�-c
: crea tabella e carica i d
ati
�-g shape : selezio
na “sh
ape” co
me n
ome d
ella colonna
geometrica
�–I: crea an
che l’in
dice sp
aziale
�C010101_POL.shp: il file d
a importare
�puglia.C010101: n
ome d
ella tabella d
a creare (nello
sch
ema “p
uglia”)
27/01/2010
11
Importa
zione delle altre
feature
PostG
IS -Clau
dio R
occh
ini -
IGM
41
�Si co
ntin
ua co
n il co
man
do:
�sh
p2pgsq
l -s 32633 -c -g sh
ape -I C
010107_LIN
.shp
puglia.C
010107 > C
010107.sq
l
�Quindi co
n il co
man
do:
�sh
p2pgsq
l -s 32633 -c -g sh
ape -I C
060106_POL.sh
p
puglia.C
060106 > C
060106.sq
l
�Infin
e riman
e da im
portare la tab
ella di so
li dati T
060106:
questa n
on è u
na featu
regeo
grafica ma u
na tab
ella pura,
utilizzare p
er implem
entare u
n attrib
uto
multivalo
re. In
questo
caso va aggiu
nto
l’opzio
ne –
n al p
osto
dell’o
pzio
ne –
I (che n
on serve). D
igitate il coman
do:
�sh
p2pgsq
l -s 32633 -c -g sh
ape -n
T060106_TY.d
bf
puglia.T
060106 > T060106.sq
l
Uno sguardo ai file
prodotti
PostG
IS -Clau
dio R
occh
ini -
IGM
42
�Lo stru
men
to utilizzato
pro
duce d
ei coman
di sq
lSET STANDARD_CONFORMING_STRINGS TO ON;
BEGIN;
CREATE TABLE "puglia"."c010101" (gidserial PRIMARY KEY,
"file_id" int4,
"codice_in" varchar(50),
"fonte" varchar(8),
"rilievo" varchar(8),
"tipo_elab" varchar(8),
"data_note" varchar(254),
"livello" int2,
"scala" varchar(10),
"ac_vei_zon" varchar(8),
"ac_vei_fon" varchar(8),
"ac_vei_sed" varchar(8),
"ac_vei_liv" varchar(8),
"shape_leng" numeric,
"shape_area" numeric);
SELECT AddGeometryColumn('puglia','c010101','shape','32633','MULTIPOLYGON',4);
INSERT INTO "puglia"."c010101" ("file_id","codice_in","fonte","rilievo“ …
Finestra
DOS durante l’im
porta
zione
PostG
IS -Clau
dio R
occh
ini -
IGM
43
Esecuzione dei file
SQL
PostG
IS -Clau
dio R
occh
ini -
IGM
44
�Adesso
biso
gna esegu
ire i file SQL pro
dotti.
�Un m
odo può essere q
uello
di u
tilizzare il coman
do D
OS
“psq
l”, ma n
oi in
vece utilizzerem
o l’in
terfaccia grafica.
�Da p
gAdmin III, lan
ciate la finestra SQ
L (E
xecute)
�Nella fin
estra SQL Edito
r, Selezionate il m
enù File
–Open
…, q
uindi selezio
nate il file “c0
10101.sq
l”
�Prem
ete il pulsan
te play (E
xecute) e atten
den
te l’esecu
zione d
ei coman
di SQ
L.
�Se tu
tto va b
ene il m
essaggio fin
isce con la frase: “Q
uery returned successfully w
ith no result in xxx ms.”
27/01/2010
12
Scherm
ata di eseguzionedell’S
QL
PostG
IS -Clau
dio R
occh
ini -
IGM
45
Esecuzione degli a
ltri file
PostG
IS -Clau
dio R
occh
ini -
IGM
46
�Ripetete il ciclo
di o
perazio
ni (O
pen
–Execu
te) con gli
altri file: C060106.sq
l, C010107.sq
l e T060106.sq
l.
�Atten
den
te pazien
temen
te il risultato
di o
gni esecu
zione.
�Il caricam
ento
dei d
ati è finito
.
�Po
tete dare u
no sgu
ardo ai m
etadati: n
ell’interfaccia
grafica selezionate la tab
ella public. geo
metry_
columns,
quindi p
remete il p
ulsan
te “View
data” (Tab
ella):