Přednáška 5 and Analysis Support Úvod, historie, seznámení s rastrovou a vektorovou architekturou 155YFSG Free software GIS, letní semestr 2018-2019 Martin Landa martin.landa@fsv.cvut.cz Fakulta stavební ČVUT v Praze Katedra geomatiky http://geo.fsv.cvut.cz/gwiki/155yfsg 1/38
Copyright c 2008-2019 Martin Landa Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation Licence, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. 2/38
GRASS GIS http://grass.osgeo.org System Vyvíjen od počátku 80-tých let! Komplexní free software / open source desktopový GIS Hybridní (podpora pro práci s 2D/3D rastrovými a vektorovými daty) GIS Licence GNU/GPL Jádro napsáno v programovacím jazyku C (61%) 1 http://cs.wikipedia.org/wiki/grass_gis 1 https://www.openhub.net/p/grass_gis 3/38
Obsah přednášky 1 2 3 4 5 4/38
Základní charakteristika Komplexní free software / open source GIS Více než 240 nástrojů pro zpracování rastrových a obrazových dat Více než 120 nástrojů pro zpracování vektorových dat Více než 1 000 000 řádků zdrojového kódů (bez komentářů) Další nástroje dostupné z Add-ons repozitáře https://grass.osgeo.org/download/addons/ Tradičně silný v rastrových analýzách Topologický vektorový GIS (sít ové analýzy, lineární referenční systém,... ) Specializované nástroje pro zpracování obrazových dat Vizualizace dat (2D/2,5D/3D) Kartografické nástroje, mapové výstupy... 5/38
Základní charakteristika Komplexní free software / open source GIS Více než 240 nástrojů pro zpracování rastrových a obrazových dat Více než 120 nástrojů pro zpracování vektorových dat Více než 1 000 000 řádků zdrojového kódů (bez komentářů) Další nástroje dostupné z Add-ons repozitáře https://grass.osgeo.org/download/addons/ Tradičně silný v rastrových analýzách Topologický vektorový GIS (sít ové analýzy, lineární referenční systém,... ) Specializované nástroje pro zpracování obrazových dat Vizualizace dat (2D/2,5D/3D) Kartografické nástroje, mapové výstupy... 5/38
Základní charakteristika Implementace algoritmů: Analýza prostorových dat Modelování a simulace Vizualizace dat Aplikace: Ekologie Hydrologie Eroze Meteorologie Lesnictví Územní plánování Geostatistika Zpracování obrazových dat... Lokalizován do řady jazyků (v současné době 21) včetně češtiny 6/38
Základní charakteristika Implementace algoritmů: Analýza prostorových dat Modelování a simulace Vizualizace dat Aplikace: Ekologie Hydrologie Eroze Meteorologie Lesnictví Územní plánování Geostatistika Zpracování obrazových dat... Lokalizován do řady jazyků (v současné době 21) včetně češtiny 6/38
Multiplatformnı GIS Podporovane platformy Uz ivatelske rozhranı Portovatelny zdrojovy ko d (C/C++/Python) Podpora 32/64bit Prima rne vyvı jen pod OS GNU/Linux Mezi podporovane platformy patr ı : GNU/Linux Mac OSX MS Windows SGI/Iris SUN/Solaris... Vy voj Za kladnı pojmy Rastrova knihovna Vektorova knihovna Atributova data 7/38
WinGRASS Nativní podpora pro MS Windows GRASS původně vyvíjen na platformě UNIX Portován na Mac OSX (silná uživatelská podpora) První funkční nativní port systému GRASS pro MS Windows GRASS 6.3 2008 1 WinGRASS/Cygwin Vyžaduje pro běh prostředí Cygwin Jediná volba do verze 6.2 2 Nativní port (prostředí MinGW) Nevyžaduje pro běh prostředí Cygwin První funkční nativní port GRASS včetně instalátoru ve verzi 6.3 (2008) Aktuální verze: https://grass.osgeo.org/ download/software/ms-windows/ 8/38
WinGRASS Nativní podpora pro MS Windows GRASS původně vyvíjen na platformě UNIX Portován na Mac OSX (silná uživatelská podpora) První funkční nativní port systému GRASS pro MS Windows GRASS 6.3 2008 1 WinGRASS/Cygwin Vyžaduje pro běh prostředí Cygwin Jediná volba do verze 6.2 2 Nativní port (prostředí MinGW) Nevyžaduje pro běh prostředí Cygwin První funkční nativní port GRASS včetně instalátoru ve verzi 6.3 (2008) Aktuální verze: https://grass.osgeo.org/ download/software/ms-windows/ 8/38
Spuštění systému GRASS Startovací rozhraní systému GRASS nabízí řadu voleb, viz: grass --help -text spustí GRASS v textovém módu -gtext spustí GRASS v textovém módu s uvítací obrazovkou -gui spustí GRASS v grafickém módu Spuštění systému GRASS s danou lokací a mapsetem (přeskočí uvítací dialog): grass /cesta/k/lokaci/mapsetu 9/38
Spuštění systému GRASS Uvítací dialog wxgui ve verzi 7.0 pro volbu adresáře s daty (1), lokace (2) a mapsetu (3) 10/38
Nativní uživatelské rozhraní Příkazová řádka (Command Line Interface CLI) Základní rozhraní pro GRASS 1.x-4.x Skriptování, automatizace úloh (Bash, Python, Perl,... ) Grafické uživatelské rozhraní (Graphical User Interface GUI) 1 TCLTKGRASS (1999) Programovací jazyk TCL & grafická knihovna TK (TCL/TK) 2 Display Manager (2005) TCL/TK 3 GIS Manager (2006) TCL/TK 4 wxgui (2008) Programovací jazyk Python & grafická knihovna wxwidgets (wxpython) 11/38
Nativní uživatelské rozhraní Příkazová řádka (Command Line Interface CLI) Základní rozhraní pro GRASS 1.x-4.x Skriptování, automatizace úloh (Bash, Python, Perl,... ) Grafické uživatelské rozhraní (Graphical User Interface GUI) 1 TCLTKGRASS (1999) Programovací jazyk TCL & grafická knihovna TK (TCL/TK) 2 Display Manager (2005) TCL/TK 3 GIS Manager (2006) TCL/TK 4 wxgui (2008) Programovací jazyk Python & grafická knihovna wxwidgets (wxpython) 11/38
Historický vývoj GUI Příkazová řádka jako základní UI ve verzi GRASS 6.3 12/38
Historický vývoj GUI Display Manager GRASS 6.0 (2005) 12/38
Historický vývoj GUI Digitalizační nástroj (v.digit) GRASS 6.0 (2006) 12/38
Historický vývoj GUI GIS Manager GRASS 6.3 (2007) 12/38
Historický vývoj GUI NVIZ (2,5/3D vizualizační nástroj) GRASS 6.3 (2007) 12/38
Historický vývoj GUI wxgui (digitalizační mód) GRASS 6.4 (2008) 12/38
Historický vývoj GUI wxgui (2,5D/3D vizualizační mód) GRASS 6.5 (2010) 12/38
Historický vývoj GUI wxgui ve verzi GRASS 7.0 (2015) 12/38
Externí uživatelská prostředí Externí QGIS Programovací jazyk C++ & grafická knihovna QT Zásuvný modul pro GRASS JGRASS Programovací jazyk Java JGRASS integrován v prostředí UDig 13/38
Obsah přednášky 1 2 3 4 5 14/38
projektu GRASS Na počátku 80-tých let minulého století se formovala GIS skupina při U. S. Army Corps of Engineers Construction Engineering Research Laboratory (CERL) v Champaign, Illinois, U.S.A. Vedoucím skupiny Bill Goran, cílem bylo aplikovat GIS technologie pro vojenské a civilní účely Po přezkoumání existujících komerčních řešení bylo rozhodnuto vyvinout vlastní GIS jako public domain Vznik systému GRASS ( and Analysis Support System) Nasazen v americké státní správě, správě národních parků, universitách a pod. 15/38
projektu GRASS Na počátku 80-tých let minulého století se formovala GIS skupina při U. S. Army Corps of Engineers Construction Engineering Research Laboratory (CERL) v Champaign, Illinois, U.S.A. Vedoucím skupiny Bill Goran, cílem bylo aplikovat GIS technologie pro vojenské a civilní účely Po přezkoumání existujících komerčních řešení bylo rozhodnuto vyvinout vlastní GIS jako public domain Vznik systému GRASS ( and Analysis Support System) Nasazen v americké státní správě, správě národních parků, universitách a pod. 15/38
projektu GRASS V polovině 80-tých let měl GRASS kolem 300 registrovaných uživatelů, na počátku 90-tých let téměř 6 000! GRASS komunita hrála na počátku 90-tých let velmi významnou roli v budoucím vývoji GIS technologií V této době se zformovaly dvě skupiny: 1 GRASS Interagency Steering Committee 2 GRASS: The User Forum (GRASS TURF) 15/38
GRASS Interagency Steering Committee (GIASC) Koordinace vývoje systému GRASS pro účely státní správy v U.S.A. Pravidelná setkání koordinované s CERLem, tzv. CERL s Office of GRASS Integration (OGI) Pod vedení OGI vznikla e-mailová diskuzní fóra pro uživatele a vývojáře systému GRASS Komunitní časopis GRASSCLIPPINGS Pravidelná setkání uživatelů systému GRASS (rostoucí komunita) V této době převzal vedení GIS skupiny CERL Kurt Buehler 16/38
GRASS: The User Forum (GRASS TURF) zaloz ena 1986, prvnı m presidentem Kenn Gardels (University of California Berkeley) Podpora uz ivatelu ve ver ejne a komerc nı sfe r e Spolupra ce s OGI Podpora kaz doroc nı GRASS konference a c asopisu GRASSCLIPPINGS Podporovane platformy Uz ivatelske rozhranı Vy voj Za kladnı pojmy Rastrova knihovna Vektorova knihovna Atributova data 17/38
Open GRASS Foundation (OGF) V roce 1992 sloučení GIASC a GRASS TURF, vzniká Open GRASS Foundation (OGF) První prezidentem OGF David Schell U.S. CERL aktivně spolupracuje s OGF 1994 první sponzor z komerční sféry PCI Geomatics Úzká spolupráce s řadou universit (např. Boston University, University of Arkansas) Pracovní setkání vedoucí k OpenGIS, projekt Open GIS Application Environment (OGAE) a Open Geodata Interoperability Specification (OGIS) OGF jako nezisková nadace nebyla vhodná pro vývoj OpenGIS specifikací V roce 1994 vzniká konsorcium Open GIS Ltd. později přejmenováno na Open Geospatial Consortium, Inc. (OGC) 18/38
Open GRASS Foundation (OGF) V roce 1992 sloučení GIASC a GRASS TURF, vzniká Open GRASS Foundation (OGF) První prezidentem OGF David Schell U.S. CERL aktivně spolupracuje s OGF 1994 první sponzor z komerční sféry PCI Geomatics Úzká spolupráce s řadou universit (např. Boston University, University of Arkansas) Pracovní setkání vedoucí k OpenGIS, projekt Open GIS Application Environment (OGAE) a Open Geodata Interoperability Specification (OGIS) OGF jako nezisková nadace nebyla vhodná pro vývoj OpenGIS specifikací V roce 1994 vzniká konsorcium Open GIS Ltd. později přejmenováno na Open Geospatial Consortium, Inc. (OGC) 18/38
Open GRASS Foundation (OGF) V roce 1992 sloučení GIASC a GRASS TURF, vzniká Open GRASS Foundation (OGF) První prezidentem OGF David Schell U.S. CERL aktivně spolupracuje s OGF 1994 první sponzor z komerční sféry PCI Geomatics Úzká spolupráce s řadou universit (např. Boston University, University of Arkansas) Pracovní setkání vedoucí k OpenGIS, projekt Open GIS Application Environment (OGAE) a Open Geodata Interoperability Specification (OGIS) OGF jako nezisková nadace nebyla vhodná pro vývoj OpenGIS specifikací V roce 1994 vzniká konsorcium Open GIS Ltd. později přejmenováno na Open Geospatial Consortium, Inc. (OGC) 18/38
30 let vývoje GRASS GIS 1989 Civilní Internet 1994 První WWW 1982-1994 GRASS 1.0-4.2 Public domain, U.S. CERL 1999-2000 GRASS 5.x Podpora FP (floating-point) První verze systému GRASS pod GNU GPL 5.0 2001-2007 GRASS 6.0-6.3 Nová vektorová architektura, FBK-irst (koordinátor Markus Neteler), Itálie 2008 GRASS 6.4.x & 7.x 2015 Vydání verze GRASS 7.0.0 nové generace systému GRASS, OSGeo (zakládající člen nadace) 2016 Vydání verze GRASS 7.2.0 19/38
30 let vývoje GRASS GIS 1989 Civilní Internet 1994 První WWW 1982-1994 GRASS 1.0-4.2 Public domain, U.S. CERL 1999-2000 GRASS 5.x Podpora FP (floating-point) První verze systému GRASS pod GNU GPL 5.0 2001-2007 GRASS 6.0-6.3 Nová vektorová architektura, FBK-irst (koordinátor Markus Neteler), Itálie 2008 GRASS 6.4.x & 7.x 2015 Vydání verze GRASS 7.0.0 nové generace systému GRASS, OSGeo (zakládající člen nadace) 2016 Vydání verze GRASS 7.2.0 19/38
30 let vývoje GRASS GIS 1989 Civilní Internet 1994 První WWW 1982-1994 GRASS 1.0-4.2 Public domain, U.S. CERL 1999-2000 GRASS 5.x Podpora FP (floating-point) První verze systému GRASS pod GNU GPL 5.0 2001-2007 GRASS 6.0-6.3 Nová vektorová architektura, FBK-irst (koordinátor Markus Neteler), Itálie 2008 GRASS 6.4.x & 7.x 2015 Vydání verze GRASS 7.0.0 nové generace systému GRASS, OSGeo (zakládající člen nadace) 2016 Vydání verze GRASS 7.2.0 19/38
30 let vývoje GRASS GIS 1989 Civilní Internet 1994 První WWW 1982-1994 GRASS 1.0-4.2 Public domain, U.S. CERL 1999-2000 GRASS 5.x Podpora FP (floating-point) První verze systému GRASS pod GNU GPL 5.0 2001-2007 GRASS 6.0-6.3 Nová vektorová architektura, FBK-irst (koordinátor Markus Neteler), Itálie 2008 GRASS 6.4.x & 7.x 2015 Vydání verze GRASS 7.0.0 nové generace systému GRASS, OSGeo (zakládající člen nadace) 2016 Vydání verze GRASS 7.2.0 19/38
30 let vývoje GRASS GIS 1989 Civilní Internet 1994 První WWW 1982-1994 GRASS 1.0-4.2 Public domain, U.S. CERL 1999-2000 GRASS 5.x Podpora FP (floating-point) První verze systému GRASS pod GNU GPL 5.0 2001-2007 GRASS 6.0-6.3 Nová vektorová architektura, FBK-irst (koordinátor Markus Neteler), Itálie 2008 GRASS 6.4.x & 7.x 2015 Vydání verze GRASS 7.0.0 nové generace systému GRASS, OSGeo (zakládající člen nadace) 2016 Vydání verze GRASS 7.2.0 19/38
30 let vývoje GRASS GIS 1989 Civilní Internet 1994 První WWW 1982-1994 GRASS 1.0-4.2 Public domain, U.S. CERL 1999-2000 GRASS 5.x Podpora FP (floating-point) První verze systému GRASS pod GNU GPL 5.0 2001-2007 GRASS 6.0-6.3 Nová vektorová architektura, FBK-irst (koordinátor Markus Neteler), Itálie 2008 GRASS 6.4.x & 7.x 2015 Vydání verze GRASS 7.0.0 nové generace systému GRASS, OSGeo (zakládající člen nadace) 2016 Vydání verze GRASS 7.2.0 19/38
Technická infrastruktura Správa zdrojového kódu 199x Zdrojový kód systému GRASS spravován jednotlivci vývojáři 31.12.1999 CVS repozitář (o rok později následuje GDAL, UMN MapServer) 9.12.2007 Migrace z CVS na OSGeo SVN (wiki) Systém pro hlášení chyb 1 RT bug tracker 2 (2006-2007) GForge tracker 3 (2008-) OSGeo Trac 20/38
Technická infrastruktura Správa zdrojového kódu 199x Zdrojový kód systému GRASS spravován jednotlivci vývojáři 31.12.1999 CVS repozitář (o rok později následuje GDAL, UMN MapServer) 9.12.2007 Migrace z CVS na OSGeo SVN (wiki) Systém pro hlášení chyb 1 RT bug tracker 2 (2006-2007) GForge tracker 3 (2008-) OSGeo Trac 20/38
https://www.youtube.com/watch?v=u3hf0qi4jlc 21/38
Obsah přednášky 1 2 3 4 5 22/38
Struktura databanky 1 Database (databanka) Adresář ve stromové struktuře OS, např. /opt/grassdata Data, se kterými GRASS aktuálně pracuje, jsou uložena na jednom místě Výjimkou atributová (popisná) data skladovaná v některém z externích databázových systémů (např. PostgreSQL, MySQL) 2 Location (lokace) Podadresář databanky Data, která souvisejí s daným projektem, zájmovým územím Definována referenčním souřadnicovým systémem (referenční elipsoid, kartografické zobrazení, mapové jednotky) a velikostí zájmového území 3 Mapset (mapset) Podadresář lokace Soubor map, které tvoří logický, tématický celek v rámci lokace Může odpovídat jednotlivým uživatelům (pokud na projektu pracuje více lidí) nebo uceleným analýzám (studium vegetace, záplavová území, terénní analýza,... ) Každá lokace musí obsahovat alespoň jeden mapset s unikátním názvem PERMANENT (základní datové vrstvy) 23/38
Struktura databanky 1 Database (databanka) Adresář ve stromové struktuře OS, např. /opt/grassdata Data, se kterými GRASS aktuálně pracuje, jsou uložena na jednom místě Výjimkou atributová (popisná) data skladovaná v některém z externích databázových systémů (např. PostgreSQL, MySQL) 2 Location (lokace) Podadresář databanky Data, která souvisejí s daným projektem, zájmovým územím Definována referenčním souřadnicovým systémem (referenční elipsoid, kartografické zobrazení, mapové jednotky) a velikostí zájmového území 3 Mapset (mapset) Podadresář lokace Soubor map, které tvoří logický, tématický celek v rámci lokace Může odpovídat jednotlivým uživatelům (pokud na projektu pracuje více lidí) nebo uceleným analýzám (studium vegetace, záplavová území, terénní analýza,... ) Každá lokace musí obsahovat alespoň jeden mapset s unikátním názvem PERMANENT (základní datové vrstvy) 23/38
Struktura databanky 1 Database (databanka) Adresář ve stromové struktuře OS, např. /opt/grassdata Data, se kterými GRASS aktuálně pracuje, jsou uložena na jednom místě Výjimkou atributová (popisná) data skladovaná v některém z externích databázových systémů (např. PostgreSQL, MySQL) 2 Location (lokace) Podadresář databanky Data, která souvisejí s daným projektem, zájmovým územím Definována referenčním souřadnicovým systémem (referenční elipsoid, kartografické zobrazení, mapové jednotky) a velikostí zájmového území 3 Mapset (mapset) Podadresář lokace Soubor map, které tvoří logický, tématický celek v rámci lokace Může odpovídat jednotlivým uživatelům (pokud na projektu pracuje více lidí) nebo uceleným analýzám (studium vegetace, záplavová území, terénní analýza,... ) Každá lokace musí obsahovat alespoň jeden mapset s unikátním názvem PERMANENT (základní datové vrstvy) 23/38
Struktura databanky 23/38
Modulární systém GRASS jako aplikace neexistuje, pouze obaluje moduly (příkazy, nástroje) instalované jako součást systému GRASS Z příkazové řádky lze spouštět jak GRASS moduly tak standardní příkazy UNIXu a kombinovat jejich funkcionalitu Příkazy systému GRASS Nástroje systému GRASS (tzv. moduly) mají pevně danou podobu jména <prefix>.<název modulu> kde prefix označuje rodinu příkazů, ke které modul patří. 24/38
Modulární systém GRASS jako aplikace neexistuje, pouze obaluje moduly (příkazy, nástroje) instalované jako součást systému GRASS Z příkazové řádky lze spouštět jak GRASS moduly tak standardní příkazy UNIXu a kombinovat jejich funkcionalitu Příkazy systému GRASS Nástroje systému GRASS (tzv. moduly) mají pevně danou podobu jména <prefix>.<název modulu> kde prefix označuje rodinu příkazů, ke které modul patří. 24/38
Seznam příkazů g.* Obecné Příkazy pro správu, kopírování mapových vrstev a pod. d.* Vizualizace Zobrazení mapových vrstev, dekorací, a pod. r.* Rastrová data Zpracování rastrových dat v.* Vektorová data Zpracování vektorových dat i.* Obrazová data Zpracování obrazových dat ps.* Postscript Příprava mapových výstupů db.* Databáze Správa atributový dat r3.* 3D rastrová data Zpracování 3D rastrových dat Příklad: d.rast Zobrazí rastrová data v grafické okně r.info Vypíše metainformace rastrové mapy v.buffer Vytvoří vektorovou obalovou zónu 25/38
Seznam příkazů g.* Obecné Příkazy pro správu, kopírování mapových vrstev a pod. d.* Vizualizace Zobrazení mapových vrstev, dekorací, a pod. r.* Rastrová data Zpracování rastrových dat v.* Vektorová data Zpracování vektorových dat i.* Obrazová data Zpracování obrazových dat ps.* Postscript Příprava mapových výstupů db.* Databáze Správa atributový dat r3.* 3D rastrová data Zpracování 3D rastrových dat Příklad: d.rast Zobrazí rastrová data v grafické okně r.info Vypíše metainformace rastrové mapy v.buffer Vytvoří vektorovou obalovou zónu 25/38
Ukázka použití Základní informace o syntaxi příkazu: d.rast --help 1 Description: 2 Displays and overlays raster map layers in the active display frame on the graphics monitor. 3 4 Keywords: 5 display, raster 6 7 Usage: 8 d.rast [-oix] map=name [catlist=cat[-cat][,cat[-cat],...]] 9 [vallist=val[-val][,val[-val],...]] [bg=color] [--verbose] [--quiet] 10 11 Flags: 12 -o Overlay (non-null values only) 13 -i Invert catlist 14 -x Don t add to list of rasters and commands in monitor 15 --v Verbose module output 16 --q Quiet module output 17 18 Parameters: 19 map Raster map to be displayed 20 catlist List of categories to be displayed (INT maps) 21 vallist List of values to be displayed (FP maps) 22 bg Background color (for null) Manuálová stránka (g.manual): g.manual d.rast 26/38
Výpočetní region je definován Hraničními souřadnicemi (severní, jižní, východní, západní) Prostorovým rozlišením (sever-jih, východ-západ) Veškeré analýzy rastrových dat (částečně i vektorových) se provádějí vždy nad aktuálním regionem! em lze ovlivnit parametry výstupní vrstvy (rozsah, rozlišení) Pro manipulaci s regionem slouží modul g.region 27/38
Výpočetní region je definován Hraničními souřadnicemi (severní, jižní, východní, západní) Prostorovým rozlišením (sever-jih, východ-západ) Veškeré analýzy rastrových dat (částečně i vektorových) se provádějí vždy nad aktuálním regionem! em lze ovlivnit parametry výstupní vrstvy (rozsah, rozlišení) Pro manipulaci s regionem slouží modul g.region 27/38
Výpočetní region je definován Hraničními souřadnicemi (severní, jižní, východní, západní) Prostorovým rozlišením (sever-jih, východ-západ) Veškeré analýzy rastrových dat (částečně i vektorových) se provádějí vždy nad aktuálním regionem! em lze ovlivnit parametry výstupní vrstvy (rozsah, rozlišení) Pro manipulaci s regionem slouží modul g.region 27/38
Obsah přednášky 1 2 3 4 5 28/38
Rastrová architektura technické aspekty Vychází ze samotných počátků vývoje systému GRASS (GRASS 1.0, 1984) GRASS původně rastrový GIS Nativní formát GRASS (podpora GDAL pouze čtení) Podpora pro data s plovoucí desetinnou čárkou přidána ve verzi 5.0 (1995) Později podpora pro 3D rastrová data (volume) Portovatelný formát (32/64bit) Podpora pro velmi velké soubory LFS (Large File Support) > 2GB Rozhraní pro knihovnu GDAL (r.external, 2008) 29/38
Rastrová architektura technické aspekty Vychází ze samotných počátků vývoje systému GRASS (GRASS 1.0, 1984) GRASS původně rastrový GIS Nativní formát GRASS (podpora GDAL pouze čtení) Podpora pro data s plovoucí desetinnou čárkou přidána ve verzi 5.0 (1995) Později podpora pro 3D rastrová data (volume) Portovatelný formát (32/64bit) Podpora pro velmi velké soubory LFS (Large File Support) > 2GB Rozhraní pro knihovnu GDAL (r.external, 2008) 29/38
Rastrová architektura technické aspekty Vychází ze samotných počátků vývoje systému GRASS (GRASS 1.0, 1984) GRASS původně rastrový GIS Nativní formát GRASS (podpora GDAL pouze čtení) Podpora pro data s plovoucí desetinnou čárkou přidána ve verzi 5.0 (1995) Později podpora pro 3D rastrová data (volume) Portovatelný formát (32/64bit) Podpora pro velmi velké soubory LFS (Large File Support) > 2GB Rozhraní pro knihovnu GDAL (r.external, 2008) 29/38
Rastrová architektura technické aspekty Vychází ze samotných počátků vývoje systému GRASS (GRASS 1.0, 1984) GRASS původně rastrový GIS Nativní formát GRASS (podpora GDAL pouze čtení) Podpora pro data s plovoucí desetinnou čárkou přidána ve verzi 5.0 (1995) Později podpora pro 3D rastrová data (volume) Portovatelný formát (32/64bit) Podpora pro velmi velké soubory LFS (Large File Support) > 2GB Rozhraní pro knihovnu GDAL (r.external, 2008) 29/38
Rastrový formát GRASS Tvar buňky rastrové mřížky obdélníkový / čtvercový (rozlišení sever-jih, východ-západ) Buňka 2D rastrové mřížky je označována jako pixel, 3D jako voxel Hodnota buňky reprezentuje daný fenomén (spojitý či diskrétní), dovoluje přiřazení textového popisku hodnotě buňky (tzv. kategorie ) Datové typy (2D rastrový formát) CELL celočíselná hodnota (32bit signed integer) FCELL hodnota s plovoucí desetinnou čárkou (float) DCELL hodnota s plovoucí desetinnou čárkou s dvojnásobnou přesností (double) Datové typy (3D rastrový formát) GRID3D hodnota s plovoucí desetinnou čárkou s dvojnásobnou přesností (double) (viz DCELL) Hodnota NULL pro žádná data 30/38
Rastrový formát GRASS Tvar buňky rastrové mřížky obdélníkový / čtvercový (rozlišení sever-jih, východ-západ) Buňka 2D rastrové mřížky je označována jako pixel, 3D jako voxel Hodnota buňky reprezentuje daný fenomén (spojitý či diskrétní), dovoluje přiřazení textového popisku hodnotě buňky (tzv. kategorie ) Datové typy (2D rastrový formát) CELL celočíselná hodnota (32bit signed integer) FCELL hodnota s plovoucí desetinnou čárkou (float) DCELL hodnota s plovoucí desetinnou čárkou s dvojnásobnou přesností (double) Datové typy (3D rastrový formát) GRID3D hodnota s plovoucí desetinnou čárkou s dvojnásobnou přesností (double) (viz DCELL) Hodnota NULL pro žádná data 30/38
Rastrový formát GRASS Tvar buňky rastrové mřížky obdélníkový / čtvercový (rozlišení sever-jih, východ-západ) Buňka 2D rastrové mřížky je označována jako pixel, 3D jako voxel Hodnota buňky reprezentuje daný fenomén (spojitý či diskrétní), dovoluje přiřazení textového popisku hodnotě buňky (tzv. kategorie ) Datové typy (2D rastrový formát) CELL celočíselná hodnota (32bit signed integer) FCELL hodnota s plovoucí desetinnou čárkou (float) DCELL hodnota s plovoucí desetinnou čárkou s dvojnásobnou přesností (double) Datové typy (3D rastrový formát) GRID3D hodnota s plovoucí desetinnou čárkou s dvojnásobnou přesností (double) (viz DCELL) Hodnota NULL pro žádná data 30/38
Rastrový formát GRASS Tvar buňky rastrové mřížky obdélníkový / čtvercový (rozlišení sever-jih, východ-západ) Buňka 2D rastrové mřížky je označována jako pixel, 3D jako voxel Hodnota buňky reprezentuje daný fenomén (spojitý či diskrétní), dovoluje přiřazení textového popisku hodnotě buňky (tzv. kategorie ) Datové typy (2D rastrový formát) CELL celočíselná hodnota (32bit signed integer) FCELL hodnota s plovoucí desetinnou čárkou (float) DCELL hodnota s plovoucí desetinnou čárkou s dvojnásobnou přesností (double) Datové typy (3D rastrový formát) GRID3D hodnota s plovoucí desetinnou čárkou s dvojnásobnou přesností (double) (viz DCELL) Hodnota NULL pro žádná data 30/38
Obsah přednášky 1 2 3 4 5 31/38
2D vektorová primitiva Bod point Linie line Hraniční linie boundary Liniové primitivum ohraničující plochu Centroid centroid Bodové primitivum definující plochu Plocha area Virtuální primitivum (uzavřená posloupnost hraničních linií ( ring ) + 1 centroid uvnitř plochy) Ostrov isle Otvor v ploše, sdílí s plochou společné hraniční linie, neobsahuje centroid 32/38
2D vektorová primitiva Bod point Linie line Hraniční linie boundary Liniové primitivum ohraničující plochu Centroid centroid Bodové primitivum definující plochu Plocha area Virtuální primitivum (uzavřená posloupnost hraničních linií ( ring ) + 1 centroid uvnitř plochy) Ostrov isle Otvor v ploše, sdílí s plochou společné hraniční linie, neobsahuje centroid 32/38
2D vektorová primitiva Bod point Linie line Hraniční linie boundary Liniové primitivum ohraničující plochu Centroid centroid Bodové primitivum definující plochu Plocha area Virtuální primitivum (uzavřená posloupnost hraničních linií ( ring ) + 1 centroid uvnitř plochy) Ostrov isle Otvor v ploše, sdílí s plochou společné hraniční linie, neobsahuje centroid 32/38
2D vektorová primitiva Bod point Linie line Hraniční linie boundary Liniové primitivum ohraničující plochu Centroid centroid Bodové primitivum definující plochu Plocha area Virtuální primitivum (uzavřená posloupnost hraničních linií ( ring ) + 1 centroid uvnitř plochy) Ostrov isle Otvor v ploše, sdílí s plochou společné hraniční linie, neobsahuje centroid 32/38
3D vektorová primitiva Stěna face Uzavřená posloupnost 3D hraničních linií Kernel kernel 3D centroid definující objem Objem volume Virtuální primitivum (uzavřená posloupnost stěn + 1 kernel uvnitř objemu) Otvor hole Virtuální primitivum reprezentující otvor v objemu, sdílí s objemem společné stěny, neobsahuje kernel uvnitř (není implementováno!) 33/38
3D vektorová primitiva Stěna face Uzavřená posloupnost 3D hraničních linií Kernel kernel 3D centroid definující objem Objem volume Virtuální primitivum (uzavřená posloupnost stěn + 1 kernel uvnitř objemu) Otvor hole Virtuální primitivum reprezentující otvor v objemu, sdílí s objemem společné stěny, neobsahuje kernel uvnitř (není implementováno!) 33/38
3D vektorová primitiva Stěna face Uzavřená posloupnost 3D hraničních linií Kernel kernel 3D centroid definující objem Objem volume Virtuální primitivum (uzavřená posloupnost stěn + 1 kernel uvnitř objemu) Otvor hole Virtuální primitivum reprezentující otvor v objemu, sdílí s objemem společné stěny, neobsahuje kernel uvnitř (není implementováno!) 33/38
Vektorová architektura technické aspekty 1 GRASS < 5.7 Podpora topologie Pouze 2D Omezení pouze jeden atribut na vektorový prvek! Body ukládány ve speciálním formátu ( sites ), bez omezení počtu atributových položek 2 GRASS > 5.7 Vektorová architektura zcela přepracována Nový nativní vektorový formát (umožňuje současné uložení všech podporovaných vektorových prvků), portovatelný (32/64bit) Prostorový index, index pro kategorie Podpora 3D vektorových prvků (bez topologie) Body ukládány společně s ostatními vektorovými prvky Podpora externích databázových systémů pro ukládaní atributových dat (DBF, SQLite, PostgreSQL, MySQL,... ) Rozhraní pro GDAL vrstvy včetně podpory PostGIS (včetně zápisu) 34/38
Vektorová architektura technické aspekty 1 GRASS < 5.7 Podpora topologie Pouze 2D Omezení pouze jeden atribut na vektorový prvek! Body ukládány ve speciálním formátu ( sites ), bez omezení počtu atributových položek 2 GRASS > 5.7 Vektorová architektura zcela přepracována Nový nativní vektorový formát (umožňuje současné uložení všech podporovaných vektorových prvků), portovatelný (32/64bit) Prostorový index, index pro kategorie Podpora 3D vektorových prvků (bez topologie) Body ukládány společně s ostatními vektorovými prvky Podpora externích databázových systémů pro ukládaní atributových dat (DBF, SQLite, PostgreSQL, MySQL,... ) Rozhraní pro GDAL vrstvy včetně podpory PostGIS (včetně zápisu) 34/38
Vektorová architektura GRASS 6 35/38
Topologie Dvě úrovně Level 1 bez topologie Level 2 s podporou topologie Topologie prostorové vztahy mezi objekty Bod leží / neleží v polygonu Linie protíná / neprotíná další linií Linie má/nemá společný uzel s další linií Hraniční linie má/nemá nalevo/napravo plochu... Dynamická tvorba prostorového indexu ( spatial index ) Rychlé vyhledávání na základě prostorových údajů 36/38
Topologie Dvě úrovně Level 1 bez topologie Level 2 s podporou topologie Topologie prostorové vztahy mezi objekty Bod leží / neleží v polygonu Linie protíná / neprotíná další linií Linie má/nemá společný uzel s další linií Hraniční linie má/nemá nalevo/napravo plochu... Dynamická tvorba prostorového indexu ( spatial index ) Rychlé vyhledávání na základě prostorových údajů 36/38
Topologie Dvě úrovně Level 1 bez topologie Level 2 s podporou topologie Topologie prostorové vztahy mezi objekty Bod leží / neleží v polygonu Linie protíná / neprotíná další linií Linie má/nemá společný uzel s další linií Hraniční linie má/nemá nalevo/napravo plochu... Dynamická tvorba prostorového indexu ( spatial index ) Rychlé vyhledávání na základě prostorových údajů 36/38
Princip vektorových vrstev Vektorová mapa může obsahovat více vrstev Ke každé vrstvě může být připojena atributová tabulka K posloupnosti mapa vrstva kategorie existuje jednoznačné přiřazení ovladač tabulka záznam 37/38
Princip vektorových vrstev Vektorová mapa může obsahovat více vrstev Ke každé vrstvě může být připojena atributová tabulka K posloupnosti mapa vrstva kategorie existuje jednoznačné přiřazení ovladač tabulka záznam 37/38
Index pro kategorie (category index) pro rychlé vyhledávání prvků na základě kategorií Podpora DBMS SQL (zjednodušené rozhraní) Podpora: DBF XBase (výchozí pro GRASS 6.x) SQLite (výchozí pro GRASS 7.x) PostgreSQL MySQL GDAL ODBC (Oracle,... ) 38/38