Esercitazione su PostGIS p1 · 2010-02-10 · 27/01/2010 1 Esercitazione su PostGIS Claudio...

Post on 01-Jul-2020

1 views 0 download

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):