35
Sieciowe serwery danych

Sieciowe serwery danych

  • Upload
    wgug

  • View
    1.788

  • Download
    0

Embed Size (px)

DESCRIPTION

prezentacja w formacie pdf, przedstawiona w czasie zajęć podyplomowego studium "GIS i modelowanie przepływu wód podziemnych", dotycząca pobierania danych w systemie GRASS ze źródeł sieciowych takich jak usługi WMS i WFS. Autor: Paweł Netzel

Citation preview

Page 1: Sieciowe serwery danych

Sieciowe serwery danych

Page 2: Sieciowe serwery danych

OGC

● Open Geospatial Consortium● Międzynarodowa instytucja standaryzacyjna

zrzeszająca ponad 400 firm i instytucji● Standaryzacja usług i formatów danych● Architektura SOA (Service Oriented Architecture)● Protokół http● Zapytania GET i POST● Język XML (eXtensible Markup Language)● Język GML (Geography Markup Language)

Page 3: Sieciowe serwery danych

Standardy usług

● OGC zdefiniowało standardy dla usług:– Wyszukania (CS-W)– Obrazowania (WMS)– Dostępu do danych (WFS, WCS)– Przetwarzania (WPS)– .......

● Dzięki dobrze określonym standardom powstało wiele implementacji serwerów usług zgodnych ze specyfikacją OGC

● Serwery zostały zrealizowane zarówno jako oprogramowanie własnościowe jak i FOSS

Page 4: Sieciowe serwery danych

Dokumenty opisujące standardy

● http://www.opengeospatial.org/standards● Podstawowy dokument:– http://www.opengeospatial.org/standards/common

● Dokument składa się z 2 podstawowych części:– Definicji pojęć– Opisu standardu

● Publikowane są reguły implementacyjne● Tzw. dobre praktyki

Page 5: Sieciowe serwery danych

GetCapabilities

● Możliwość pytania metodą GET (KVP) oraz POST (XML)

● Każda usługa OGC odpowiada na zapytanie GetCapabilities

● Można uzyskać w odpowiedzi– Opis usługi– Zasady korzystania– Zaimplementowane funkcje– Dostępne zbiory danych– Itp.

● Odpowiedź w formacie XML

Page 6: Sieciowe serwery danych

Przykład

● Zapytnie:http://gis.meteo.uni.wroc.pl:8080/geoserver/wfs?

REQUEST=GetCapabilities● Odpowiedź:

<wfs:WFS_Capabilities version="1.1.0" .... ><ows:ServiceIdentification><ows:Title>GeoServer Web Feature Service</ows:Title><ows:Abstract>...</ows:Abstract><ows:Keywords>...</ows:Keywords><ows:ServiceType>WFS</ows:ServiceType><ows:ServiceTypeVersion>1.1.0</ows:ServiceTypeVersion><ows:Fees>NONE</ows:Fees><ows:AccessConstraints>NONE</ows:AccessConstraints>.....

Page 7: Sieciowe serwery danych

Usługa WMS

● Usługa WMS to usługa obrazowania● Usługa na podstawie danych przestrzennych

„produkuje obrazek”● WMS może mieć zdefiniowane:– Warstwy map– Style– Mozaiki mapowe

● Style zapisane są zgodnie ze standardami – SLD (Styled Layer Descriptor)– SE (Symbology Encoding)– FE (Filter Encoding)

Page 8: Sieciowe serwery danych

Funkcje

● Usługa WMS udostępnia funkcje– GetCapabilities– GetMap

● Get Capabilities dostarcza informacji o serwerze i danych przez niego udostępnionych

● GetMap pozwala na pobranie wygenerowanego obrazu mapy dla wskazanego obszaru (BBOX), w wybranym odwzorowaniu (SRS) i utworzonego za pomocą wskazanego stylu (STYLES)

Page 9: Sieciowe serwery danych

GetCapabilities

● Wypisuje informacje o:– Wersji usługi– Instytucji zarządzającej– Odwzorowaniach– Warstwach– Stylach– .....

● Informacja o warstwie zawiera m.in.:– Odwzorowanie– Zasięg przestrzenny (ll oraz w odwz.)– Wskaźnik do legendy– Styl

Page 10: Sieciowe serwery danych

● GetMap to funkcja generująca obraz mapy o zadanych parametrach

● http://gis.meteo.uni.wroc.pl:8080/geoserver/wms?SERVICE=WMS&VERSION=1.1.1& REQUEST=GetMap&LAYERS=nurc:Arc_Sample& STYLES=&SRS=EPSG:4326& BBOX=-124,21,-66,49& WIDTH=600&HEIGHT=400&FORMAT=image/png

● Jest to minimalna liczba parametrów● Jako wynik otrzymywany jest obrazek w formacie

PNG o wymiarach 600x400 pikseli● Można dodatkowo np. określić kolor tła

(BGCOLOR), styl tworzenia mapy (SLD).

GetMap

Page 11: Sieciowe serwery danych

Przykład

– http://gis.meteo.uni.wroc.pl:8080/geoserver/wms? SERVICE=WMS&VERSION=1.1.1& REQUEST=GetMap&LAYERS=tiger:poi& SRS=EPSG:4326&BBOX=-74.1,40.7,-73.9,40.8& WIDTH=600&HEIGHT=400& FORMAT=image/png

● Wywołanie funkcji GetMap serwera gis.meteo● Odwzorowanie WGS84 (EPSG:4326)● Rozmiar obrazka 600x400● Format obrazka PNG● Styl wyświetlania - domyślny

Page 12: Sieciowe serwery danych

Stylizacja mapy

● Można w wywołani GetMap wybrać style● Lista styli podana jest w liście warstw otrzymanej

z GetCapabilities● Style określa się dla każdej wywoływane warstwy

(STYLES)● Można określić domyślny kolor tła (BGCOLOR)● Można wskazać własny styl którego ma użyć

serwer WMS– Poprzez URL pliku stylu– Poprzez znacznik SLD

Page 13: Sieciowe serwery danych

Przykład

– http://gis.meteo.uni.wroc.pl:8080/geoserver/wms? SERVICE=WMS&VERSION=1.1.1& REQUEST=GetMap&LAYERS=tiger:poi& STYLES=poi&SRS=EPSG:4326& BBOX=-74.1,40.7,-73.9,40.8& WIDTH=600&HEIGHT=400& FORMAT=image/png&BGCOLOR=0x808080

● Wskazanie stylu poi (może być także point, burg)● Wybranie szarego tła

Page 14: Sieciowe serwery danych

Usługa WFS

● Usługa udostępniająca informację o obiektach wektorowych

● Umożliwia – Pobieranie informacji geometrycznej– Filtrowanie obiektów po artybutach– Filtrowanie przestrzenne– Operacje logiczne

● Podstawowym formatem danych wektorowych jest GML

Page 15: Sieciowe serwery danych

Funkcje

● Podstawowe funkcje– GetCapabilities– DescribeFeatureType– GetFeature

● GetCapabilities udostępnia m.in. liste warstw● Udostępnia też listę zaimplementowanych funkcji

i filtrów● DescribeFeatureType opisuje warstwę● GetFeature pozwala na pobranie danych● Funkcje transakcyjne (edycja danych. WFS-t)

Page 16: Sieciowe serwery danych

GetCapabilities

● Podobnie jak w usłudze WMS funkcja zwraca opis serwera

● Ponadto dostarcza listę warstw wraz z ich zasięgami przestrzennymi (WGS84)

● Funkcja GetCapabilities wylicza zaimplementowane funkcje, które można wywołać filtrując dane

● Może też podawać czy serwer dopuszcza operacje transakcyjne

Page 17: Sieciowe serwery danych

DescribeFeatureType

● Funkcja DescribeFeatureType dostarcza opisu konkretnego zbioru danych (warstwy)

● W wyniku otrzymuje się opis warstwy zawierający listę pól wraz z ich typami

● W jednym z pól przechowywana jest informacja o geometrii

● Domyślny format odpowiedzi to xml (GML)

Page 18: Sieciowe serwery danych

GetFeature

● GetFeature pobiera dane z serwera● Domyślnie dane pobierane są w formacie GML● Można określić zasięg przestrzenny (BBOX)● Można filtrować ze względu na wartości

atrybutów● Można filtrować przestrzennie● UWAGA: ważna jest wersja GML● Można ograniczyć się do pobrania tylko zadanej

liczby obiektów (przeciążanie łącza!)

Page 19: Sieciowe serwery danych

Przykład

● Lista warstw● http://gis.meteo.uni.wroc.pl:8080/geoserver/wfs?

SERVICE=WFS&VERSION=1.1.1&REQUEST=GetCapabilities

● Informacje o warstwie● http://gis.meteo.uni.wroc.pl:8080/geoserver/wfs?

SERVICE=WFS&VERSION=1.1.1&REQUEST=DescribeFeatureType&TYPENAME=topp:states

● Pobranie danych● http://gis.meteo.uni.wroc.pl:8080/geoserver/wfs?

SERVICE=WFS&VERSION=1.1.1&REQUEST=GetFeature&TYPENAME=topp:states&MAXFEATURES=10

Page 20: Sieciowe serwery danych

Usługa WCS

● Usługa WCS udostępnia dane rastrowe● Dane mogą być zwracane jako– GeoTIFF– PNG– GIF– Inne

● Umożliwia filtrację przestrzenną● Mimo, że pobierane dane mogą być w formacie

graficznym są to dane a nie obrazek

Page 21: Sieciowe serwery danych

Funkcje

● Podtsawowe funkcje:– GetCapabilities– DescribeCoverage– GetCoverage

● GetCapabilities udostępnia listę warstw● Opis wybranej warstwy można uzyskać

wywołując DescribeCoverage● Funkcja GetCoverage umożliwia pobranie danych

Page 22: Sieciowe serwery danych

Przykład

● Pobranie listy warstw● http://gis.meteo.uni.wroc.pl:8080/geoserver/wcs?

SERVICE=WCS&REQUEST=GetCapabilities● Pobranie informacji o warstwie

● http://gis.meteo.uni.wroc.pl:8080/geoserver/wcs?SERVICE=WCS&VERSION=1.1.1&REQUEST=DescribeCoverage&IDENTIFIERS=sfdem

● Pobranie danych● http://gis.meteo.uni.wroc.pl:8080/geoserver/wcs?

SERVICE=WCS&VERSION=1.1.1&REQUEST=GetCoverage&IDENTIFIER=sf:sfdem&BOUNDINGBOX=589980.0,4913700.0,609000.0,4928010.0,urn:ogc:def:crs:EPSG::26713&FORMAT=application/arcgrid

Page 23: Sieciowe serwery danych

GRASS

● Polecenia wejścia/wyjścia– r.in.*, r.out.*– v.in.*, v.out.*

● http://grass.meteo.uni.wroc.pl -> docs -> manual● Popularność usług WMS i WFS wymusiła

powstanie natywnego rozwiązania● GRASS umożliwia pobranie danych z WMS (np.

ortofotomapa) oraz z WFS (np. PRG)● GRASS dostarcza w tym celu dwa skrypty:– r.in.wms– v.in.wfs

Page 24: Sieciowe serwery danych

r.in.wms

● Pobiera dane z serwera WMS● UWAGA: pobiera obrazek a nie rzeczywiste dane● Składnie:– r.in.wms [-ldockpg] [output=string] mapserver=string

[layers=string[,string,...]] [styles=string[,string,...]] [srs=string] format=string [wmsquery=string] maxcols=integer maxrows=integer [tileoptions=string] [region=string] [folder=string] [wgetoptions=string] [curloptions=string] method=string [cap_file=string] [v=integer] [--overwrite] [--verbose] [--quiet]

Page 25: Sieciowe serwery danych

r.in.wms - opcje

● Polecenie ma określone opcje oraz parametry● Część parametrów jest opcjonalna (nawiasy []) a

część obligatoryjna● Wybrane opcje:

-l Zwraca listę warstw-d Przejście bezpośrednio do pobierania-o Nie pobiera danych transparentnych-c Czyście kartotekę ze ściągniętymi plikami -p Nie dokonuje reprojekcji danych-g Używa metody GET zamiast POST

Page 26: Sieciowe serwery danych

r.in.wms – parametry (obligat.)

● Wybrane parametry (obligatoryjne)– output=string

● Nazwa mapy wynikowej (rastrowej)– mapserver=string

● URL serwera WMS– layers=string[,string,...]

● Lista warstw do pobrania– format=string

● Format obrazu w jakim serwer ma wysyłać dane● Dopuszczalne to: geotiff,tiff,jpeg,gif,png● Domyślnie: geotiff● UWAGA: Patrz wynik GetCapabilities

Page 27: Sieciowe serwery danych

r.in.wms – parametry (opconalne)

● Wybrane parametry (opcjonalne)– styles=string[,string,...]

● Style dla wybranych warstw– srs=string

● Odwzorowanie w którym pobierane są obrazki● Domyślnie WGS84 (EPSG:4326)

– wmsquery=string● Dodatkowe parametry zapytania WMS● Domyślne: version=1.1.1

– region=string● Nazwa regionu dla którego pobierane są dane

– folder=string● Ścieżka z lokalizacją gdzie zapisane zostaną pobrane pliki

Page 28: Sieciowe serwery danych

r.in.wms – parametry (opconalne)

● Wybrane parametry (opcjonalne):– wgetoptions=string

● Dodatkowe parametry dla programu wget– curloptions=string

● Dodatkowe parametry dla programu curl– method=string

● Metoda interpolacji danych w przypadku reprojekcji● Opcje: nearest,bilinear,cubic,cubicspline● Domyślnie: nearest

– cap_file=string● Nazwa pliku XML gdzie zostanie zachowany wynik

GetCapabilities (opcja -l)

Page 29: Sieciowe serwery danych

r.in.wms – przykład użycia

– r.in.wms mapserver="http://gis.meteo.uni.wroc.pl:8080/geoserver/wms" output=tiger_ny layers=tiger-ny

● Wywołanie usługi WMS z serwera gis.meteo● URL wskazuje, że serwer to GeoServer

uruchomiony na standardowym porcie serwera Tomcat

● Pobierana jest jedna warstwa tiger-ny● Wyniki zapisywane są do warstwy rastrowej

tiger_ny● Domyślnie wykorzystana jest metoda POST

Page 30: Sieciowe serwery danych

v.in.wfs

● Pobiera warstwę wektorową z serwera usługi WFS● Składni:

v.in.wfs [wfs=string] output=string [--overwrite] [--verbose] [--quiet]

● Parametry:– wfs=string

● URL wywołania GetFeature (pełny URL)● Powinien rozpoczynać się od http● Można w nim zapisać opcje wywołania GetFeature

– output=string● Nazwa tworzonej warstwy wektorowej

Page 31: Sieciowe serwery danych

v.in.wfs – przykład użycia

– v.in.wfs wfs="http://gis.meteo.uni.wroc.pl:8080/geoserver/wfs? SERVICE=WFS&VERSION=1.0.0& REQUEST=GetFeature& TYPENAME=tiger:tiger_roads" output=tiger_roads

● Wywołanie GetFeature z serwera gis.meteo● Wywoływana jest usługa WFS w wersji 1.0.0● Pobierana jest warstwa tiger:tiger_roads● Pobrane dane zapisywane są jako warstwa

tiger_roads● Pobierane są wszystkie obiekty warstwy

Page 32: Sieciowe serwery danych

r.in.gdal, v.in.ogr

● GDAL zapewnia obsługę pobierania danych sieciowych

● Można pobierać dane wykorzystując polecenia r.in.gdal, v.in.ogr

● Niezbędna jest znajomość specyfikacji protokołu komunikacyjnego usług OGC

● Niezbędne jest także zdefiniowanie źródeł danych ● Można w ten sposób pobierać dane z usługi WCS

(sterownik GDAL dla WCS jest opcjonalny)● http://www.gdal.org/frmt_wcs.html

Page 33: Sieciowe serwery danych

Przykładowa sesja

● Kolejne kroki– Utworzenie lokacji

● Definiowanie odwzorowania● Definiowanie zasięgu przestrzennego

– Połączenie z serwerem WMS– Wyświetlenie listy warstw– Pobranie danych– Wyświetlenie pobranych danych– Połączenie z serwerem WFS– Wyświetlenie listy warstw– Pobranie danych– Wyświetlenie pobranych danych– Zakończenie sesji

Page 34: Sieciowe serwery danych

Polskie źródła sieciowe danych

● Niektóre serwery WMS– http://sdi.geoportal.gov.pl/wms_orto/wmservice.aspx– http://sdi.geoportal.gov.pl/wms_topo/wmservice.aspx– http://sdi.geoportal.gov.pl/wms_prg/wmservice.aspx

● Niektóre serwery WFS– http://sdi.geoportal.gov.pl/wfs_prg/wfservice.aspx– http://sdi.geoportal.gov.pl/wfs_dzkat/wfservice.aspx

● Bardziej obszerna listahttp://terraobserver.blogspot.com/2009/02/polskie-

serwery-wms.html

Page 35: Sieciowe serwery danych

Test istniejących serwisów

● Zadania:– Dla adresów usług WMS i WFS Geoportalu wykonać

GetCapabilities i określić● Odwzorowania● Nazwy warstw● Style (WMS)● Zasięg przestrzenny warstw● Osobę/instytucję odpowiedzialną za dane● Koszt danych

– Spróbować pobrać wybrane dane do lokacji w odwzorowaniu 92 (mały region)