Przestrzenne bazy danych. Analizy przestrzenne

Podobne dokumenty
Zarządzanie danymi przestrzennymi. Rozwiązywanie problemów przestrzennych

Zarządzanie danymi przestrzennymi. Analizy przestrzenne

Przestrzenne bazy danych. Funkcje relacji przestrzennych

Język SQL, zajęcia nr 1

Przestrzenne bazy danych. Funkcje geometryczne

Relacyjne bazy danych. Podstawy SQL

Przestrzenne bazy danych. Typy obiektów przestrzennych

ACESS- zadania z wykorzystaniem poleceń SQL

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Relacyjne bazy danych. Podstawy SQL

Bazy danych i usługi sieciowe

Bazy Danych i Usługi Sieciowe

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Bazy danych 7. SQL podstawy

Przestrzenne bazy danych. Definicja i cechy przestrzennych baz danych

Wykład 05 Bazy danych

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Przestrzenne bazy danych. Wstęp do przestrzennych baz danych

Wykład 5. SQL praca z tabelami 2

Wykład 6. SQL praca z tabelami 3

Bazy danych. dr inż. Arkadiusz Mirakowski

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

LAB 3 (część 1 Projektu)

Wykład 8. SQL praca z tabelami 5

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

P o d s t a w y j ę z y k a S Q L

Bazy danych. Dr inż. Paweł Kasprowski

Jerzy Nawrocki, Wprowadzenie do informatyki

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Ref. 7 - Język SQL - polecenia DDL i DML

Bazy danych 10. SQL Widoki

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Baza danych dla potrzeb zgłębiania DMX

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Przestrzenne bazy danych Podstawy języka SQL

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Schemat funkcji. BODY dla plpgsql: declare deklaracje begin instrukcje end;

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Systemy GIS Tworzenie zapytań w bazach danych

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Bazy danych 5. Samozłaczenie SQL podstawy

BAZA DANYCH SIECI HOTELI

Język SQL, zajęcia nr 2

SQL (ang. Structured Query Language)

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Struktura drzewa w MySQL. Michał Tyszczenko

Przydatne sztuczki - sql. Na przykładzie postgres a.

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

Bazy danych 4. SQL podstawy. P. F. Góra

Bazy danych i usługi sieciowe

Bazy danych SQL Server 2005

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Funkcjonalność systemów zarządzania bazami danych przestrzennych w kartografii internetowej (PosrtgreSQL/PostGIS) Krzysztof Kuśnierek

Wstęp do relacyjnych baz danych. Jan Bartoszek

CREATE TABLE logika (p BOOLEAN); INSERT INTO logika VALUES(true); INSERT INTO logika VALUES(false); INSERT INTO logika VALUES(NULL);

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

Grupowanie i funkcje agregujące

Oracle11g: Wprowadzenie do SQL

SQL :: Data Definition Language

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

LAB 6 BEGIN TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL,

Paweł Rajba

Przestrzenne bazy danych PostGIS

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych

Załącznik nr 8. do Studium Wykonalności projektu Sieć Szerokopasmowa Polski Wschodniej województwo podkarpackie

Hurtownia Świętego Mikołaja projekt bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy danych Ćwiczenia projektowe

Intro. I.Wojnicki, ZTB:XML ZTB: XML. Igor Wojnicki. Katedra Informatyki Stosowanej, Akademia Górniczo-Hutnicza w Krakowie.

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

GIS. Grzegorz Chilkiewicz

a) ile wynosiła populacja najbardziej i najmniej ludnego z województw (oraz jakie były ich nazwy)

Projektowanie systemów baz danych

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

Bazy danych. Polecenia SQL

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Projekt inżynierski Przestrzenna baza danych

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

Transkrypt:

Przestrzenne bazy danych Analizy przestrzenne

Przykładowe analizy przestrzenne Analiza bliskości obiektów Etykietowanie danych Rzutowanie punktów do najbliższych linii Rozdzielanie linii i łączenie obiektów w linie Rozdzielanie i łączenie poligonów Zmienianie, skalowanie i obracanie obiektów geometrycznych Analizy sieciowe Analizy w oparciu o zewnętrzne języki skryptowe np. Python, R Analizy rastra

Analiza bliskości: najbliższe sąsiedztwo Relację najbliższego sąsiedztwa realizuje funkcja ST_DWithin Funkcja ST_DWithin zastępuje funkcję ST_Intersects wtedy gdy obiekty są blisko siebie ale nie przecinają się SELECT ST_DWithin( ST_GeomFromText('LINESTRING(1 2, 3 4)'), ST_Point(3.00001,4.000001), 0.0001 );

Wyszukiwanie najbliższych obiektów w podanym zasięgu select pois.name, ST_Distance(budynki.geom,pois.geom)::numeric(6,2) as dist from budynki inner join pois on ST_DWithin(budynki.geom, pois.geom,500) where budynki.name='poznań Główny' and pois.fclass='bicycle_rental' order by dist asc

Metoda KNN (K Nearest Neigbor) <#> operator odległości obwiedni KNN A <#> B zawraca minimalną odległość między obwiedniami obiektów <-> operator odległości centroidy obwiedni KNN A <-> B zwraca odległość między centroidami obwiedni obiektów

Wyszukiwanie N najbliższych obiektów przy użyciu KNN select pois.name, ST_Distance(budynki.geom,pois.geom)::numeric(10,2) as dist from budynki cross join pois where budynki.name='poznań Główny' and pois.fclass='bicycle_rental' order by budynki.geom <-> pois.geom asc limit 6

Generowanie losowych danych Utworzenie tabeli do przechowywania losowych danych:

Generowanie losowych danych Wstawienie zbioru losowych danych

Usuwanie zbędnych danych

Etykietowanie danych W efekcie każdy punkt otrzymuje dodatkowe etykiety województwa

Przyciąganie punktów do najbliższych linii Wyznaczanie najbliższych punktów na linii przy pomocy funkcji ST_LineInterpolatePoint(lina, ST_LocatePoint(linia,punkt))

Przyciąganie punktów do najbliższych linii Obliczanie szerokości plaży na podstawie dwóch linii (wody i podstawy wydmy) i punktu kilometrażu przy pomocy funkcji ST_ClosestPoint (linia, punkt)

Tworzenie linii z punktów gps: ST_MakeLine

Rozdzielanie wielolinii na mniejsze segmenty

Analiza poligonów Tworzenie multipoligonu z wielu multipoligonów Funkcje ST_Multi i ST_Union

Analiza poligonów Rozdzielanie poligonów ST_SymDifference i ST_Dump

Skalowanie obiektów ST_Scale

Analiza sieciowa - algorytmy rozszerzenia pgrouting Najkrótsza droga (algorytm Dijkstra) Problem komiwojażera (TSP - ang. travelling salesman problem) Wyznaczanie isochron i inne przykłady: http://planet.qgis.org/planet/tag/pgrouting/ http://workshop.pgrouting.org/

Aktualizacja rozszerzeń CREATE EXTENSION postgis; ALTER EXTENSION postgis UPDATE TO "2.3.0"; CREATE EXTENSION pgrouting; ALTER EXTENSION pgrouting UPDATE TO "2.3.0";

PgRouting przygotowanie danych do analizy sieciowej --Do tabeli z siecią dróg dodać specjalne kolumny source, target i length: ALTER TABLE blok_2.drogi ADD COLUMN source integer; ALTER TABLE blok_2.drogi ADD COLUMN target integer; ALTER TABLE blok_2.drogi ADD COLUMN length double precision; --Załadować dane do kolumn sorce i target: SELECT pgr_createtopology('blok_2.drogi', 0.00001, 'geom_d', 'id_d'); --Wyliczyć długości odcinków UPDATE blok_2.drogi SET length = ST_Length(geom_d); ALTER TABLE blok_2.drogi ADD COLUMN reverse_cost double precision; UPDATE blok_2.drogi SET reverse_cost = length;

Kontrola topologii sieci SELECT pgr_analyzegraph('blok_2.drogi', 0.00001,'geom_d','id_d');

Generowanie poprawionej sieci SELECT pgr_nodenetwork('blok_2.drogi', 0.00001, 'id_d', 'geom_d'); SELECT pgr_createtopology('blok_2.drogi_noded', 0.00001, 'geom_d', 'id'); SELECT pgr_analyzegraph('blok_2.drogi_noded', 0.00001,'geom_d','id'); ALTER TABLE blok_2.drogi_noded ADD COLUMN length double precision; UPDATE blok_2.drogi_noded SET length = ST_Length(geom_d);

pgrouting: Algorytm Dijkstra Uruchomiamy obliczenia najkrótszej drogi wg schematu pgr_costresult[] pgr_dijkstra(text sql, integer source, integer target, boolean directed, boolean has_rcost); SELECT seq, id1 AS node, id2 AS edge, cost FROM pgr_dijkstra('select id_d AS id, source::integer, target::integer, length::double precision AS cost FROM blok_2.drogi_noded',14,8, false,false);

Trasowanie przy pomocy wtyczki QGIS (pgroutinglayer)

Trasowanie przy pomocy zapytania w QGIS DB Manager

pgrouting: Algorytm DijkstraVia SELECT seq, node, edge, cost, geom_d FROM pgr_dijkstravia('select id, source::integer, target::integer, length::double precision AS cost FROM blok_2.drogi_noded', ARRAY[110, 106, 49])as di join blok_2.drogi_noded pt on di.edge=pt.id;

pgrouting: problem komiwojażera Algorytm TSP (travelling salesman problem) Macierz odległości między wybranymi punktami: SELECT dmatrix, ids FROM pgr_makedistancematrix('select cast(id as integer), ST_X(the_geom)as x, ST_Y(the_geom) as y FROM blok_2.drogi_vertices_pgr where id=6 or id=10 or id =11 or id=2');

pgrouting: Algorytm TSP SELECT seq, id1, id2, round(cost::numeric, 2) AS cost FROM pgr_tsp('select cast(id as integer), ST_X(the_geom)as x, ST_Y(the_geom) as y FROM blok_2.drogi_vertices_pgr where id=6 or id=10 or id =11 or id=2', 6,2);

pgrouting: Algorytm TSP (zapytanie w QGIS)

Trasowanie warunkowe wtyczka QGIS

Trasowanie warunkowe aplikacja web

Wyznaczanie izochron

Wyznaczanie izochron aplikacja web

Przygotowanie sieci do routingu Przykład Sieć nietrasowalna: create table network (id int, the_geom geometry(linestring) ); insert into network values (1, 'linestring(0 0, 10 10)'::geometry); insert into network values (2, 'linestring(2 0, 8 10)'::geometry); insert into network values (3, 'linestring(1 1, 10 0)'::geometry); insert into network values (4, 'linestring(10 0, 8 10)'::geometry);

Nadawanie węzłów w punktach przecięcia sieci

Gotowa sieć do trasowania

Przykładowa sieć

Korekta sieci

Prawidłowa trasowalna sieć