Upload
wgug
View
1.787
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
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)
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
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
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
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>.....
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)
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)
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
● 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
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
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
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
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
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)
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
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)
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!)
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
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
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
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
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
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]
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
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
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
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)
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
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
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
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
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
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
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)