Sistemi Informativi Geografici Anno accademico 2009

Sistemi Informativi Geografici
Anno accademico 2009/2010
Programma del seminario
1.
2.
3.
4.
5.
Sistemi Informativi Geografici e Geodatabase
Cos’è un GIS
Dati Geospaziali
Indici spaziali
Il Geodatabase
La multiutenza nel GIS
Gianni Campanile
ESRI Italia
[email protected]
Gianni Campanile
Chi ?
ArcGIS: un sistema GIS completo
Applications
•
•
•
•
ESRI Inc. Environmental Systems Research Institute
Società privata
Fondata nel 1969
Leader mondiale nel campo del software GIS
ArcGIS
Desktop
ArcMap
ArcCatalog
+ Extensions
• ESRI Italia
• Società privata
• Distributore ufficiale per l’Italia dei prodotti ESRI
ArcGIS
Engine
ArcGIS
Explorer
Web
Application
ArcGIS
Mobile
Custom GIS
applications
Lightweight
GIS client
Java
.NET
JavaScript
Lightweight
toolkit
ArcGIS
Server
Services
File
File
Desktop
Workgroup
Enterprise
ArcSDE
Personal
Gianni Campanile
ArcGIS
Online
ArcSDE
technology
Desktop
Data
(Geodatabase)
Integrated
server-based
GIS
Gianni Campanile
Cos’è un GIS
1. Cos’è un GIS
Definizioni, Evoluzione, Esempi
• GIS = Geographic (o Geographical) Information
System
• In Italiano: Sistema Informativo Geografico
– A volte si usa Sistema Informativo Territoriale (SIT) ma
non è corretto.
• Rhind 1989:
– Un insieme di hardware, software e procedure disegnate
per supportare l’acquisizione, la gestione, la modifica,
l’analisi, la modellazione e la visualizzazione di dati
spaziali per risolvere problemi di pianificazione e
gestione
• USGS (United States Geological Survey), 2005:
– Un sistema informatico in grado di assemblare,
memorizzare, modificare e visualizzare informazioni
geografiche, cioè dati identificati in base alla loro
localizzazione geografica
Gianni Campanile
In collaborazione con
Pag. 1
Sistemi Informativi Geografici
Anno accademico 2009/2010
A cosa serve?
I non-GIS
Google Earth/Maps, o Bing sono GIS ?
NO
• Le mappe sono i dati base
• Servono livelli informativi specifici, dati,
modelli, processi per fare un GIS
• Mappatura di elementi geografici per
una successiva analisi territoriale
• Misure di fattori ambientali
• Modellizzazione di processi alternativi
per la pianificazione territoriale
• Controllo dei cambiamenti nei
processi ambientali
• Ecc.
Con un Sistema di Analisi Geografico, noi
estendiamo le capacità di consultazione di
database tradizionali includendo la possibilità di
analizzare i dati basandosi sulla loro ubicazione.
Gianni Campanile
Gianni Campanile
Le tappe importanti del GIS
Perché il GIS è “speciale”
Il GIS ha più
di 1Mln di
utenti
• Si riferisce a dati
“geografici”, sia in
senso matematico
(oggetti definiti
tramite n-ple di
numeri reali) che in
senso geografico (la
Terra)
• I sistemi GIS
trattano dati che si
riferiscono ad oggetti
o fenomeni del
mondo reale
Inizio del
GIS sul web
Applicazione
dei concetti
di topologia
CGIS: Primo
sistema GIS
Prima
mappa
prodotta al
computer
Gianni Campanile
Gianni Campanile
GIS e IT
Mobile e Location based
•
I livelli logici:
Primo sistema
commerciale
basato su
DBMS
•
Le architetture:
Sistemi
Client/Server
Dati e servizi dipendenti dalla posizione del richiedente (ad.es.
GPS per auto, tariffe telefoniche localizzate, etc.)
Sono un’intersezione del Mobile, del GIS e del Web
Internet
Wireless
Web Service
Dati e strumenti
Desktop
Professional
Productivity
Gianni Campanile
In collaborazione con
Sistemi
informativi
GIS
Services
Gianni Campanile
Pag. 2
Sistemi Informativi Geografici
Video Layer
Gianni Campanile
Misure su rilievi
Gianni Campanile
Routing 3D
Gianni Campanile
In collaborazione con
Anno accademico 2009/2010
Modello 3D Raffineria
Gianni Campanile
Determinazione Skyline
Gianni Campanile
Editing
Gianni Campanile
Pag. 3
Sistemi Informativi Geografici
Anno accademico 2009/2010
Componenti del GIS
• 1. I geodati
• 2. La geovisualizzazione
• 3. Il geoprocessing
2. Dati Geospaziali
Modelli, Tipi di dati, Strutture dati e
memorizzazione
Gianni Campanile
Dati e Informazione
Modellare la realtà
Realtà
I dati vanno “strutturati” e “modellati” per essere
Informazione
Implementazione
Schema
Analisi
Gianni Campanile
Gianni Campanile
Come modellare ?
Dal continuo al discreto
Curve
• Gli strumenti di cui disponiamo per visualizzare una
mappa sono discreti:
– Monitor
– Stampanti
Algoritmo di
DouglasPeucker per
discretizzare
una curva
A structure that
forms a geometric
domain
A structure that
does not form a
geometric domain
Gianni Campanile
In collaborazione con
Gianni Campanile
Pag. 4
Sistemi Informativi Geografici
Anno accademico 2009/2010
Quali formati ?
Raster data types
Formato Raster
• Formato Vettoriale
– Rappresentazione discreta della
realtà
– Più costoso, tempi di realizzazione
lunghi
– Più dettaglio sul territorio
– Più informazioni associate
all’elemento geografico
– Più adatto alla costruzione del
database geografico
– Usa celle quadrate per rappresentare la
realtà
– Più adatto ad analisi territoriali mirate
– Più adatto per informazioni territoriali
continue
– Richiede molto spazio in memoria
– Una sola informazione per ogni cella
Y
Nodo
Vertici
X,Y
X,Y X,
Y
Arco
Y
Nodo
0
• Continuous
– Values indicate
83
quantity of a variable
– Examples: Reflected light,
elevation, water runoff
• Discrete
– Values indicate
quality of a variable
– Examples: Soil type,
colormap value,
‘yes’ or ‘no’ suitability
• User interprets data as
153
continuous or discrete
255
0
Righe
X,Y
X
X
Origine
Origine
Colonne
Gianni Campanile
Gianni Campanile
VALUE
.
153
.
SOIL_CODE
.
NoA
.
255
Vettoriale
Quali formati raster ?
Il raster per il GIS non è una semplice immagine (ad.es. JPG), perché
deve essere ortorettificato e georeferenziato
• Un vettoriale è un
insieme di coordinate
• E’ il programma di
visualizzazione che
interpreta le coordinate
Il più diffuso formato raster nel GIS è il
GeoTIFF, cioè un TIFF (Tagged Image File
Format) georeferenziato.
Gianni Campanile
Gianni Campanile
Rappresentare la realtà con forme
vettoriali
• Tutti gli elementi geografici si possono rappresentare con tre
tipologie geometriche
Punti
Linee
Gianni Campanile
In collaborazione con
Quali formati vettoriali ?
• Gestione
– “file” (ad.es. Shape, DWG)
– Database/Geodatabase (ad.es. Oracle, DB2, SQL Server,
MySQL, ArcSDE, PostGIS) con diversi formati geometrici:
▪ SDO
▪ ST_Geometry
▪ WKB
▪ etc.
• Interscambio
– ad.es. DXF, GML
• Web
– GML, SVG, KML, WFS
Poligoni
Gianni Campanile
Pag. 5
Sistemi Informativi Geografici
Anno accademico 2009/2010
Struttura del file .shp (1/2)
Shape
• Formato dati definito da ESRI
• E’ il formato dati più utilizzato nel mondo
• E’ composto da 3 file (in formato 8.3) con lo stesso
basename :
– Un file di “dati” spaziali (con estensione .shp)
– Un file “indice” (con estensione .shx)
– Un file di dati alfanumerici (con estensione .dbf e in
formato dBase III/dBase IV)
• E’ composta da un header di file e da molti record ognuno con un
header di record
• I record possono avere anche lunghezze diverse
• Permette di memorizzare oggetti anche
complessi (multipolygon, donuts, etc.)
• Un file viene utilizzato per definire tutti
gli oggetti di un certo tipo
Gianni Campanile
Struttura del file .shp (2/2)
• Ogni record ha un
header…
Gianni Campanile
Struttura del file .shx
• E’ composta da un
header di file e da molti
record uguali
• Non indicizza i dati, ma
solo i record. Ogni record
contiene il riferimento ad
un record nel file .shp
• Serve per trovare
rapidamente un record
nel file shp, perché
questi non hanno
lunghezza uguale
• …e una struttura
che dipende dal
tipo di oggetto:
Gianni Campanile
Gianni Campanile
Struttura del file .dbf
• E’ un file in formato dBase III/dBase IV
• Deve avere lo stesso numero di record dei files .shp
e .shx
• Contiene tutti i dati alfanumerici
Gianni Campanile
In collaborazione con
3. Indici Spaziali
Da 1 a 2 dimensioni, indici per dati raster, indici
per dati vettoriali
Gianni Campanile
Pag. 6
Sistemi Informativi Geografici
Anno accademico 2009/2010
Da 1 a 2
dimensioni
Gli Indici
Un indice è qualcosa di “utile” per le ricerche che verranno
effettuate
•
•
Interrogazioni alfanumeriche:
– Trova il signor “Rossi Francesco”
– Trova il signor “Francesco Rossi”
– Trova tutti i “Rossi” con età >40
Interrogazioni spaziali:
– Spaziale per oggetto:
▪ Dammi le coordinate dell’obelisco di S. Giovanni
– Spaziale puntuale:
▪ Dammi gli oggetti alle coordinate x,y
– Range Spaziale:
▪ Dammi gli oggetti compresi nel rettangolo di vertici opposti
P(x,y) P’(x’, y’)
▪ Dammi gli oggetti che distano < x da un punto P
Gianni Campanile
• Un indice su dati alfanumerici è un ordinamento
basato su una “vicinanza” alfanumerica che ci fa
comodo
• Un indice su dati spaziali deve essere un
ordinamento basato su una “vicinanza” spaziale.
• Vanno bene gli indici “normali” ?
– Ad.es. indicizzare su x;y (come su
Cognome;Nome) ?
Gianni Campanile
Esempi di Ordinamento
raster
Indici per dati raster: Quad-tree
• Decomposizione di una regione in un albero in cui ogni nodo (tranne
le foglie) ha esattamente 4 figli e rappresenta un quadrato uguale. Il
processo continua finché ogni quadrato è omogeneo
Row
Row-Prime
Spiral
Morton
Cantor Diagonal
Peano-Hilbert
Gianni Campanile
Esempio completo Quad-tree
Gianni Campanile
In collaborazione con
Gianni Campanile
Operazioni con Quad-tree
Gianni Campanile
Pag. 7
Sistemi Informativi Geografici
Anno accademico 2009/2010
Indici per oggetti puntuali
Algoritmo intersezione
Input: Binary quadtrees Q, R
q ← root of Q, r ← root of R
queue L ← [(q, r )]
while L is not empty do
remove the first node pair (x, y) from L
if x or y is a white leaf then
add white leaf to output quadtree S
if x is a non-white leaf then
add y and all subnodes to output quadtree S
if y is a non-white leaf then
add x and all subnodes to output quadtree S
if x and y are non-leaf nodes then
add a new non-leaf node to output quadtree S
for pairwise descendants x' of x and y ' of y do
add (x ', y ') to the end of L
Output: A binary quadtree S that represents the
intersection Q ∩R
• Se si devono memorizzare punti, si possono
utilizzare le seguenti strutture:
– Fixed grid
▪ Partizione della regione in una griglia regolare
– Grid File
▪ Come la fixed, ma la griglia è variabile
– Point quad tree
▪ Simile al region quad-tree
– 2D tree
▪ Albero binario
Gianni Campanile
Gianni Campanile
Fixed Grid
• Partizione in una griglia regolare
• Punti che condividono la stessa
cella (bucket) sono memorizzati
insieme
• Buona performance per le
interrogazioni spatial range
• Dimensione della partizione
dipende da:
– Numero di punti
– Ampiezza media del range
• Non performante se i punti non
sono uniformi
Grid File
Estende la Fixed Grid rendendo arbitrarie le suddivisioni della
griglia, dipendenti dalla posizione dei punti
Gianni Campanile
Gianni Campanile
Esempio del Point Quad Tree (1/3)
Point Quad-tree
•
•
•
•
Unisce l’approccio della griglia con un albero multidimensionale
Ogni nodo intermedio ha 4 discendenti
Ogni quadrante è centrato su un punto
La costruzione ha complessità O( n log r); la ricerca O (log n)
Dati di input:
Gianni Campanile
In collaborazione con
Gianni Campanile
Pag. 8
Sistemi Informativi Geografici
Anno accademico 2009/2010
Esempio del Point Quad Tree (3/3)
Esempio del Point Quad Tree (2/3)
Primi 5 passaggi:
Costruzione completa:
Gianni Campanile
Limiti del Point Quad-Tree
• Il problema del Point Quad-Tree è che il numero dei
discendenti cresce esponenzialmente al crescere della
dimensione dello spazio
• Per uno spazio a k dimensioni, il numero dei discendenti è
2 k.
• Ad. es. un cubo (k=3) va diviso in 8 parti ad ogni iterazione
• A seconda della disposizione dei punti molti rami possono
essere vuoti
• Si possono usare strutture alternative: Albero 2D, etc.
Gianni Campanile
Esempio di Albero 2D
Gianni Campanile
In collaborazione con
Gianni Campanile
Albero 2D
• L’albero 2D (o in generale kD) è un albero binario (ha
sempre 2 discendenti)
• La profondità è maggiore del Quad-tree
• I rami vuoti sono in media di meno
• Nel piano, le coordinate vengono confrontate
alternativamente a seconda del livello: x ai livelli pari e y a
quelli dispari (root = 0)
Gianni Campanile
2D-tree: algoritmo di range (1/2)
Gianni Campanile
Pag. 9
Sistemi Informativi Geografici
Anno accademico 2009/2010
2D-tree: algoritmo di range (2/2)
Strutture per oggetti lineari
•
Per le strutture lineari le strutture precedenti non
sono adatte
• Si può usare il PM-quadtree
• Ce ne sono vari tipi: PM1, PM2 e PM3
• PM1: si suddivide una regione nel minimo di
quadranti in modo che siano verificate:
1. Ogni foglia del quadtree rappresenta una
regione che contiene al più un vertice
2. Se una foglia del quadtree rappresenta una
regione che contiene un vertice, può
contenere solo elementi lineari che contengono
il vertice
3. Se una foglia del quadtree rappresenta una
regione che non contiene un vertice, allora può
contenere solo un elemento lineare
Gianni Campanile
Costruzione del PM-quadtree
Gianni Campanile
Esempio di PM-quadtree
• Nella figura a., il quadrante evidenziato viola la condizione 1
• Nella figura b., il quadrante evidenziato viola la condizione 2
• Nella figura c., il quadrante evidenziato viola la condizione 3
Gianni Campanile
Strutture per oggetti complessi
•
•
•
Il problema più generale richiede ancora altre soluzioni
Non si può analizzare l’intero insieme dei dati, ma bisogna ridurre
il problema
Si utilizzano il MBB (Minimum Bounding Box: il più piccolo
rettangolo che contiene interamente l’oggetto e che ha i lati
paralleli agli assi cartesiani) e gli indici R-tree, R+-tree e BSP-Tree
Gianni Campanile
R-tree
• Struttura dati multidimensionale simile al B-tree
• Le foglie rappresentano i veri rettangoli da indicizzare, mentre i nodi
intermedi rappresentano rettangoli che contengono tutti i discendenti
• I rettangoli costruiti possono intersecarsi
• Una suddivisione è buona se:
– Minimizza l’area totale dei rettangoli costruiti
– Minimizza l’area di l’intersezione dei rettangoli costruiti
• Se l’intersezione è eccessiva, le ricerche sono inefficienti
• Usando gli MBB, alcune
interrogazioni sono semplici
• Ad.es. Trovare tutti gli oggetti
completamente contenuti nel
cerchio
Gianni Campanile
In collaborazione con
Gianni Campanile
Pag. 10
Sistemi Informativi Geografici
Anno accademico 2009/2010
R-tree esempio di uso
4.Geodatabase
Database spaziali, Geodatabase, Struttura di un GeoDB
Goal: Avoid scanning all geometries
Four stages of elimination
Filter
1. Tile
Feature class
Tile
2. Envelope
Envelope
3. Geometry
4. Geometry
Envelope
Geometry
Gianni Campanile
A
Gianni Campanile
Database spaziale
Geodatabase
• Un database spaziale è composto
di tabelle bidimensionali (righe e
colonne)
• Ogni tabella rappresenta una
classe di dati geografici (layer)
• Ogni riga rappresenta un oggetto
geografico (Feature) identificato
da un ID (Feature ID o FID)
• Una o più colonne mantengono le
coordinate
Table =
Object
Class
Column = property
Row
= object
Geometry column
• Un Geodatabase è un database spaziale che contiene tutte le
strutture per gestire un sistema GIS
• Possono far parte di un Geodatabase:
– Oggetti vettoriali
– Oggetti Raster
– Proiezioni definite
– Dominio degli attributi
– Topologia
– Connettività
– Network
– Annotazioni
– Misure
– Modelli di Geoprocessing
– …
Un Geodatabase è molto di più di un Database
Spaziale!
Gianni Campanile
Gianni Campanile
Cosa c’è in un Geodatabase
Topologia
Geodatabase elements
Geodatabase
• Cos’è la topologia ?
– Lo studio delle relazioni spaziali tra gli oggetti
• In un GIS, è importante poter definire delle regole topologiche
sugli oggetti (ad.es. due edifici non possono sovrapporsi etc.)
Tables
Feature dataset
Raster datasets
Spatial reference
Raster catalogs
Feature classes
Polygon
Line
Point
Annotation
Route
Dimension
Relationship classes
Additional geodatabase elements
Survey datasets
GPS datasets
Network datasets
Toolboxes
Tool
Geometric networks
Topology
Network datasets
Model
Script
Behavior
Attribute defaults
Attribute domains
Split/merge policy
Gianni Campanile
In collaborazione con
Terrain datasets
Schematics
Representations
Connectivity rules
Relationship rules
Topology rules
Gianni Campanile
Pag. 11
Sistemi Informativi Geografici
Anno accademico 2009/2010
Proiezioni definite
Estendere un Database Spaziale
• Abbiamo visto come passare da un DBMS ad un
Database Spaziale
• In un Database Spaziale abbiamo le feature tables
contenenti gli oggetti e gli indici spaziali
• In un Geodatabase possiamo memorizzare molte
più informazioni
• Come passiamo da un Database Spaziale ad un
Geodatabase ?
• Proviamo ad implementare le seguenti
caratteristiche
– Proiezioni definite
– Dominio degli attributi
– Regole topologiche
– Regole di connessione
•
Relazione tra un tipo di Feature Table e la sua proiezione
Tipo
Oggetto
ha
Gianni Campanile
Dominio attributi
Topologia
Relazione tra un tipo di attributo e la lista dei valori definiti
Tipo
Attributo
• Relazione tra due tipi di Oggetti e una regola
topologica
0,n
1,1
0,n
Proiezione
Contiene la lista delle
Feature Tables
Gianni Campanile
•
0,n
1,1
Valori
ha
Tipo
Oggetto
rispetta
0,n
0,n
Regole
Topologiche
Contiene la lista degli
Attributi
Gianni Campanile
Gianni Campanile
Connettività
• Relazione tra due tipi di Oggetti con una quantità minima,
massima e un tipo di connessione (ad.es. ad un estremo, vertice
interno, etc.)
5. Multiutenza nel GIS
Tipi di lock, Versioning, Replica
0,n
Tipo
Oggetto
ha
0,n
0,n
min
Tipo di
connessione
max
Gianni Campanile
In collaborazione con
Pag. 12
Sistemi Informativi Geografici
Anno accademico 2009/2010
Pessimistic vs Optimistic
Multiutenza
• La natura dei dati geografici crea problemi nella multiutenza in
aggiornamento:
– Le regole topologiche influenzano vicendevolmente gli oggetti
– Un eventuale lock è di natura geografica, quindi coinvolge un
numero variabile di tabelle e di righe
– Alcune modifiche sono lunghe anche mesi (Long Transactions)
• Questi problemi non sempre possono essere risolti dal database spaziale
perché è difficile determinare quali dati “bloccare” durante un
aggiornamento
• Una transazione è un gruppo di istruzioni eseguite in modo atomico,
cioè tutte completate o tutte annullate
• In un normale DBMS ogni singola operazione di modifica (insert, update,
delete) viene eseguita come transazione
• Con la Start Transaction e End Transaction di SQL è possibile definire
l’inizio e la fine di una transazione
• Una transazione standard effettua una serie di lock di sicurezza, è quindi
un pessimistic locking; se la transazione è lunga (long transaction)
serve un approccio diverso: optimistic versioning
• Pessimistic (Transaction):
– Si effettua un lock per impedire i
conflitti, anche se non si sa se
avverranno
– Nessun utente può accedere ai
dati (in lettura sì se è attivata la
dirty reading) durante una
transazione
– La storia del DB è una sequenza
lineare di stati atomici
• Optimistic (Versioning)
– Si mantengono in tabelle
apposite le modifiche effettuate
sui dati (journaling)
– Eventuali conflitti vengono risolti
successivamente
– Si crea un albero degli stati
Gianni Campanile
Gianni Campanile
Versioning
Il Versioning - editing multiutente
Feature class Particelle
Default
• Il versioning è una tecnica per creare più versioni “in linea”
della stessa banca dati
• E’ utile anche per mantenere proposte di varianti in un
progetto
• Viene gestito tramite le Delta tables, cioè tabelle che
mantengono le modifiche per ogni versione
• Questo tipo di versioning è diverso dal versioning utilizzato
per l’ottimizzazione della lettura di un DB
Business
Mario
State 1
(add)
State 2
(delete)
State 3
(merge)
State 4
(add)
Versione di
Mario
Gianni Campanile
Versione di
Sara
A
1
3
2
3
4
D
Delta
Tables
Gianni Campanile
Version
Reconciliation
F S
Sara
A
Posting edits
Versione padre
•Quando versioni
diverse devono essere
unite, si possono
generare dei conflitti
•Il processo di
risoluzione dei conflitti
si chiama Posting (dal
figlio al padre) o
Reconciling (dal padre
al figlio)
Post
Post edits
edits
dalla
dalla versione
versione figlio
figlio
alla
alla versione
versione padre
padre
Versione figlio
Gianni Campanile
In collaborazione con
Gianni Campanile
A
Pag. 13
Sistemi Informativi Geografici
Anno accademico 2009/2010
Reconciling edits
Gestione dei Conflitti
Versione padre
Sulle geometrie e sugli attributi
Reconcile
Reconcile edits
edits dalla
dalla versione
versione
padre
padre alla
alla versione
versione figlio
figlio
Visualizzazione grafica del conflitto
Versione figlio
Creo
Creo una
una nuova
nuova
versione
versione figlio
figlio
Visualizzazione dei campi in conflitto
Gianni Campanile
Gianni Campanile
A
A
REPLICA – 3 modalità
Repliche tra Geodatabase
• La tecnica del Post&Reconcile permette di gestire le
repliche di database
• La replica permette di distribuire copie di dati tra due o più
geodatabases (“anche di diversa tipologia”)
CheckoutCheckin
Parent
Two Way
Parent
Child
Una sola volta
• Si possono modificare due o più database in modo
indipendente e mantenerli sincronizzati
Child
Più volte
One Way
Gianni Campanile
Parent
Più volte
Child
Gianni Campanile
Spatial DBMS < Geodatabase < GIS
• Uno Spatial Database
NON E’ un Geodatabase
• I dati sono solo una
delle componenti del
GIS, quindi un
Geodatabase NON E’ UN
GIS
• Un GIS comprende
anche tool e procedure
per l’analisi dei dati
spaziali (Geoprocessing)
6. Uso
Ottimizzazione e Programmazione
Gianni Campanile
In collaborazione con
Pag. 14
Sistemi Informativi Geografici
Ottimizzazione
• Molti tipi di oggetto (feature classes)
• Molti oggetti (features)
• Alcuni oggetti possono essere molto grandi
(raster)
• Alcuni oggetti possono avere molti punti
• Ogni oggetto può avere una diversa
rappresentazione
E poi...
Anno accademico 2009/2010
Possibili soluzioni
• Accesso
– HW
– Indici
• Filtri verticali
– Filtri sui dati
– Eliminazione punti coincidenti
• Filtri orizzontali
– Visibilità
– Piramidi (raster)
– Cache
A nessuno piace aspettare!!
Gianni Campanile
Gianni Campanile
In dettaglio: filtri sui dati per area
Filtri verticali
• Filtri sui dati
– Attributi: clausole where (Definition query) che
selezionano solo gli oggetti che rispondono ad
un certo criterio
– Area: seleziona solo gli oggetti che ricadono in
un’area (automatico per il map frame)
• Punti coincidenti
– Algoritmi di retrieve ottimizzati: vengono
recuperati solo i punti distinti. Non modificabile
dall’utente
Gianni Campanile
Filtri orizzontali
• Visibilità
– Accensione/Spegnimento di layer a scale
predefinite
• Piramidi
– Creazione per i raster di livelli di visualizzazione
intermedi
– Le piramidi non riguardano solo il web
• Cache
– Creazione di livelli predefiniti di visualizzazione
– Diverse modalità: completa, parziale, fused, etc.
– Utilizzata per il web
Gianni Campanile
In collaborazione con
• Viene applicato un filtro spaziale per ridurre i dati da
trasferire
Spatial filter
Gianni Campanile
Dettaglio: Pyramids
• Reduced resolution copies of
original raster
– Pixel size doubles at each
level
• Improves query performance
– ArcGIS requests data
resolution
to match display resolution
– Number of pixels fetched is
static as user zooms
• Pyramids are not used
during analysis
5 x 5 pixel
block
Gianni Campanile
Pag. 15
Sistemi Informativi Geografici
Anno accademico 2009/2010
Dettaglio: Pyramid resampling methods
Nearest
Dettaglio: Cache
neighbor
• Creata secondo un tiling scheme
Value of nearest pixel
For
discrete
data
Does not create new values
Fastest overall
Must use if data has colormap
Bilinear
interpolation
Weighted average of four
nearest pixels
For
continuous
data
Fastest for continuous data
Cubic
convolution
Smooth curve fitted to sixteen
nearest pixels
May produce most visuallypleasing output
Gianni Campanile
Gianni Campanile
Programmazione Desktop
Programmazione Web
Mashup ?
Mashup ?
•
Personalizzazione del desktop
•
Geoprocessing
•
Nuovi tool o workflow complessi
• Web application complesse
– Wizard, opzioni
– Classi C++/Java (ad.es. ADF)
– Composizione di Tool elementari (ad.es. Model Builder)
• Geoprocessing
– Classi C++/Java (ad.es. ArcObjects)
– Web Services SOAP (ad.es. Geocoding)
• Web API
– AJAX, Scripting, Mashup
Gianni Campanile
Gianni Campanile
Mashup ??
Esempio
Mashup ?
• Letteralmente “poltiglia”
• Significa integrare dati
provenienti da diverse fonti
• Viene implementata tramite
linguaggi di scripting
(Javascript, Flex,
Silverlight)
• E’ una programmazione
“client-side” (o perlomeno
così sembra)
Una cosa da parrucchieri ?
... si riutilizzano risorse web esistenti !
Gianni Campanile
In collaborazione con
•
•
•
•
•
•
•
•
•
•
•
•
•
•
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Create a Map</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8"/>
</head>
<body>
<h4>Work flow:</h4>
<ul>
<li>Create a map.</li>
<li>Add an ArcGISTiledMapServiceLayer.</li>
</ul>
</body>
</html>
Gianni Campanile
Pag. 16
Sistemi Informativi Geografici
Anno accademico 2009/2010
Esempio
Mappe e altro
Mashup ?
<script type="text/javascript"
src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.6"></script>
<script type="text/javascript">
dojo.require("esri.map");
var myMap, myTiledMapServiceLayer;
function init() {
myMap = new esri.Map("mapDiv");
myTiledMapServiceLayer = new
esri.layers.ArcGISTiledMapServiceLayer
("http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_Wo
rld_2D/MapServer");
myMap.addLayer(myTiledMapServiceLayer);
}
dojo.addOnLoad(init);
</script>
• http://resources.esri.com/arcgisonlineservices/
.....
<div id="mapDiv" style="width:900px; height:600px; border:1px solid
#000;"></div>
Gianni Campanile
Gianni Campanile
Grazie
Gianni Campanile
[email protected]
In collaborazione con
Pag. 17