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
2. 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)
3. 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
4. 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
5. 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
7. 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)
8. 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)
9. 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
10. GetMap
● 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).
11. 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
12. 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
13. 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
14. 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
15. 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)
16. 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
17. 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)
18. 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!)
19. Przykład
● Lista warstw
● http://gis.meteo.uni.wroc.pl:8080/geoserver/wfs?
SERVICE=WFS&VERSION=1.1.1&REQUEST=GetCapab
ilities
● Informacje o warstwie
● http://gis.meteo.uni.wroc.pl:8080/geoserver/wfs?
SERVICE=WFS&VERSION=1.1.1&REQUEST=DescribeF
eatureType&TYPENAME=topp:states
● Pobranie danych
● http://gis.meteo.uni.wroc.pl:8080/geoserver/wfs?
SERVICE=WFS&VERSION=1.1.1&REQUEST=GetFeatur
e&TYPENAME=topp:states&MAXFEATURES=10
20. 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
21. 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
22. 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=Describe
Coverage&IDENTIFIERS=sfdem
● Pobranie danych
● http://gis.meteo.uni.wroc.pl:8080/geoserver/wcs?
SERVICE=WCS&VERSION=1.1.1&REQUEST=GetCover
age&IDENTIFIER=sf:sfdem&BOUNDINGBOX=589980.0,
4913700.0,609000.0,4928010.0,urn:ogc:def:crs:EPSG::2671
3&FORMAT=application/arcgrid
23. 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
24. 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]
25. 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
26. 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
27. 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
28. 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)
29. r.in.wms – przykład użycia
– r.in.wms
mapserver="http://gis.meteo.uni.wroc.pl:8080/geoserv
er/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
30. 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
31. 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
32. 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
33. 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
34. 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 lista
http://terraobserver.blogspot.com/2009/02/polskie-
serwery-wms.html
35. 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)