Cvičná databáze PostGIS
Na serveru geo102 je umístěna cvičná databáze PostGIS pgis_student. Databáze je přístupná všem uživatelům serveru geo102 bez omezení a je určena pro experimenty. Databáze je pracovní - každý den je vrácena do původního stavu! Není tedy určena pro skladování dat, data vytvořená uživateli jsou odstraněna (obnova databáze je nastavena na každý den ráno).
V případě problémů či dotazů se obraťte na správce databáze.
Data - schémata
intro
Data z tutoriálu Introduction to PostGIS (EPSG:4326).
SELECT * FROM geometry_columns WHERE f_table_schema = 'intro';
f_table_catalog | f_table_schema | f_table_name | f_geometry_column | coord_dimension | srid | type -----------------+----------------+-----------------+-------------------+-----------------+------+----------------- pgis_student | intro | countries | geom | 2 | 4326 | MULTIPOLYGON pgis_student | intro | bc_municipality | geom | 2 | 4326 | MULTIPOLYGON pgis_student | intro | bc_voting_areas | geom | 2 | 4326 | MULTIPOLYGON pgis_student | intro | cities | geom | 2 | 4326 | POINT pgis_student | intro | newyork_census | geom | 2 | 4326 | MULTIPOLYGON pgis_student | intro | bc_border | geom | 2 | 4326 | MULTILINESTRING pgis_student | intro | bc_hospitals | geom | 2 | 4326 | POINT pgis_student | intro | bc_roads | geom | 2 | 4326 | MULTILINESTRING pgis_student | intro | timezone | geom | 2 | 4326 | MULTIPOLYGON pgis_student | intro | usa_counties | geom | 2 | 4326 | MULTIPOLYGON pgis_student | intro | bc_pubs | geom | 2 | 4326 | POINT (11 rows)
osm
Data OpenStreetMap pro území ČR (EPSG 3857). Viz návod na import.
SELECT * FROM geometry_columns WHERE f_table_schema = 'osm';
f_table_catalog | f_table_schema | f_table_name | f_geometry_column | coord_dimension | srid | type -----------------+----------------+---------------+-------------------+-----------------+--------+------------ pgis_student | osm | czech_line | geom | 2 | 3857 | LINESTRING pgis_student | osm | czech_polygon | geom | 2 | 3857 | POLYGON pgis_student | osm | czech_roads | geom | 2 | 3857 | LINESTRING pgis_student | osm | czech_point | geom | 2 | 3857 | POINT (4 rows)
Popisek tabulek - viz osm2pgsql schéma.
Příklad odvození tématické vrstvy silnic - viz popis zájmových objektů mapování OSM.
CREATE TABLE silnice AS
SELECT * from osm.czech_line where highway IN ('motorway', 'motorway_link',
'trunk', 'trunk_link', 'primary', 'primary_link',
'secondary', 'secondary_link', 'tertiary', 'tertiary_link');
SELECT Populate_Geometry_Columns('public.silnice'::regclass);
-- nutne pro vizualizaci v QGISu
ALTER TABLE silnice ADD PRIMARY KEY (osm_id);
GRANT SELECT ON silnice TO postgis;
fgcz
Datová sada FreeGeoDataCZ (EPSG 5514).
SELECT * FROM geometry_columns WHERE f_table_schema = 'fgcz';
f_table_catalog | f_table_schema | f_table_name | f_geometry_column | coord_dimension | srid | type -----------------+----------------+-----------------+-------------------+-----------------+------+------------ pgis_student | fgcz | kraje_pseudo | geom | 2 | 5514 | POLYGON pgis_student | fgcz | silnice_useky | geom | 2 | 5514 | LINESTRING pgis_student | fgcz | mes_casti | geom | 2 | 5514 | POINT pgis_student | fgcz | mesta_b | geom | 2 | 5514 | POINT pgis_student | fgcz | mesta_p | geom | 2 | 5514 | POLYGON pgis_student | fgcz | silnice_uzly | geom | 2 | 5514 | POINT pgis_student | fgcz | obce | geom | 2 | 5514 | POINT pgis_student | fgcz | voda | geom | 2 | 5514 | POLYGON pgis_student | fgcz | zeleznice | geom | 2 | 5514 | LINESTRING pgis_student | fgcz | okresy_pseudo | geom | 2 | 5514 | POLYGON pgis_student | fgcz | silnice_pasport | geom | 2 | 5514 | LINESTRING pgis_student | fgcz | reky | geom | 2 | 5514 | LINESTRING pgis_student | fgcz | klad_zm10 | geom | 2 | 5514 | POINT pgis_student | fgcz | silnice | geom | 2 | 5514 | LINESTRING pgis_student | fgcz | cr | geom | 2 | 5514 | POLYGON pgis_student | fgcz | cesty | geom | 2 | 5514 | LINESTRING pgis_student | fgcz | czfree_nodes | geom | 2 | 5514 | POINT pgis_student | fgcz | casti_obce | geom | 2 | 5514 | POINT pgis_student | fgcz | dsnimky | geom | 2 | 5514 | LINESTRING pgis_student | fgcz | cfm_points | geom | 2 | 5514 | POINT pgis_student | fgcz | cfm_areas | geom | 2 | 5514 | POLYGON (21 rows)
nc
Vektorová data z edukačního datasetu OSGeo North Carolina (EPSG 3358).
SELECT * FROM geometry_columns WHERE f_table_schema = 'nc';
f_table_catalog | f_table_schema | f_table_name | f_geometry_column | coord_dimension | srid | type -----------------+----------------+-----------------------+-------------------+-----------------+------+------------ pgis_student | nc | busroute_a | geom | 2 | 3358 | LINESTRING pgis_student | nc | p079214 | geom | 2 | 3358 | GEOMETRY pgis_student | nc | elev_lidrural_mrptsft | geom | 2 | 3358 | POINT pgis_student | nc | nc_state | geom | 2 | 3358 | POLYGON pgis_student | nc | busroutesall | geom | 2 | 3358 | LINESTRING pgis_student | nc | p079215 | geom | 2 | 3358 | GEOMETRY pgis_student | nc | elev_ned10m_cont10m | geom | 2 | 3358 | LINESTRING pgis_student | nc | streams | geom | 2 | 3358 | LINESTRING pgis_student | nc | overpasses | geom | 2 | 3358 | POINT pgis_student | nc | p079218 | geom | 2 | 3358 | GEOMETRY pgis_student | nc | poi_names_wake | geom | 2 | 3358 | POINT pgis_student | nc | firestations | geom | 2 | 3358 | POINT pgis_student | nc | busstopsall | geom | 2 | 3358 | POINT pgis_student | nc | precip_30ynormals | geom | 2 | 3358 | POINT pgis_student | nc | geodetic_pts | geom | 2 | 3358 | POINT pgis_student | nc | census_wake2000 | geom | 2 | 3358 | POLYGON pgis_student | nc | p079219 | geom | 2 | 3358 | GEOMETRY pgis_student | nc | streets_wake | geom | 2 | 3358 | LINESTRING pgis_student | nc | censusblk_swwake | geom | 2 | 3358 | POLYGON pgis_student | nc | boundary_county | geom | 2 | 3358 | POLYGON pgis_student | nc | swwake_10m | geom | 2 | 3358 | POLYGON pgis_student | nc | geodetic_swwake_pts | geom | 2 | 3358 | POINT pgis_student | nc | precip_30ynormals_3d | geom | 2 | 3358 | POINT pgis_student | nc | urbanarea | geom | 2 | 3358 | POLYGON pgis_student | nc | railroads | geom | 2 | 3358 | LINESTRING pgis_student | nc | geology | geom | 2 | 3358 | POLYGON pgis_student | nc | comm_colleges | geom | 2 | 3358 | POINT pgis_student | nc | boundary_municp | geom | 2 | 3358 | POLYGON pgis_student | nc | elev_lid792_bepts | geom | 2 | 3358 | POINT pgis_student | nc | roadsmajor | geom | 2 | 3358 | LINESTRING pgis_student | nc | bridges | geom | 2 | 3358 | POINT pgis_student | nc | geonames_nc | geom | 2 | 3358 | POINT pgis_student | nc | geonames_wake | geom | 2 | 3358 | POINT pgis_student | nc | elev_lid792_cont1m | geom | 2 | 3358 | LINESTRING pgis_student | nc | busroute1 | geom | 2 | 3358 | LINESTRING pgis_student | nc | schools_wake | geom | 2 | 3358 | POINT pgis_student | nc | elev_lid792_randpts | geom | 2 | 3358 | POINT pgis_student | nc | usgsgages | geom | 2 | 3358 | POINT pgis_student | nc | soils_general | geom | 2 | 3358 | POLYGON pgis_student | nc | hospitals | geom | 2 | 3358 | POINT pgis_student | nc | busroute11 | geom | 2 | 3358 | LINESTRING pgis_student | nc | soils_wake | geom | 2 | 3358 | POLYGON pgis_student | nc | lakes | geom | 2 | 3358 | POLYGON pgis_student | nc | zipcodes_wake | geom | 2 | 3358 | POLYGON pgis_student | nc | elev_lidrural_mrpts | geom | 2 | 3358 | POINT pgis_student | nc | busroute6 | geom | 2 | 3358 | LINESTRING (46 rows)
ruian
Data RUIAN území celky stát až ZSJ (EPSG 5514).
SELECT * FROM geometry_columns WHERE f_table_schema = 'ruian';
f_table_catalog | f_table_schema | f_table_name | f_geometry_column | coord_dimension | srid | type -----------------+----------------+--------------------+-------------------+-----------------+------+-------------- pgis_student | ruian | momc | geom | 2 | 5514 | POINT pgis_student | ruian | mop | geom | 2 | 5514 | POINT pgis_student | ruian | kraje | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian | orp | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian | pou | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian | regionysoudrznosti | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian | spravniobvody | geom | 2 | 5514 | POINT pgis_student | ruian | obce | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian | okresy | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian | staty | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian | castiobci | geom | 2 | 5514 | POINT pgis_student | ruian | katastralniuzemi | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian | vusc | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian | zsj | geom | 2 | 5514 | MULTIPOINT (14 rows)
ruian_praha
Data RUIAN Hlavního města Prahy (EPSG 5514).
SELECT * FROM geometry_columns WHERE f_table_schema = 'ruian_praha';
f_table_catalog | f_table_schema | f_table_name | f_geometry_column | coord_dimension | srid | type -----------------+----------------+------------------+-------------------+-----------------+------+----------------- pgis_student | ruian_praha | adresnimista | geom | 2 | 5514 | POINT pgis_student | ruian_praha | momc | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian_praha | mop | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian_praha | castiobci | geom | 2 | 5514 | POINT pgis_student | ruian_praha | katastralniuzemi | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian_praha | spravniobvody | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian_praha | obce | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian_praha | parcely | geom | 2 | 5514 | POLYGON pgis_student | ruian_praha | stavebniobjekty | geom | 2 | 5514 | MULTIPOLYGON pgis_student | ruian_praha | ulice | geom | 2 | 5514 | MULTILINESTRING pgis_student | ruian_praha | zsj | geom | 2 | 5514 | MULTIPOLYGON (11 rows)
Přístup k databázi
Příkazová řádka - psql
psql pgis_student -U postgis -h geo102.fsv.cvut.cz -W
GUI - pgAdmin
pgAdmin je grafické uživatelské rozhraní pro přístup k PostgreSQL databázi. Nástroj je multiplatformní a je ke stažení na adrese http://www.pgadmin.org/download/. Viz instalace PostgreSQL na MS Windows.
Připojení k databázi pgis_student můžete přidat z menu
File -> Add server
Vizualizace dat
QGIS
QGIS je multiplatformní desktopová GIS aplikace.
K datům uložených v geodatabázi PostGIS lze přistupovat z menu či nástrojové lišty :
Layer -> Add PostGIS Layer
Nové připojení k PostGIS databázi - New
Po stisknutí tlačítka Connect se QGIS připojí k databázovému serveru a zobrazí seznam dostupných datových vrstev.
MapServer
Příklady prostorových dotazů
-- nejprve vytvoříme vlastní schéma a nastavíme vyhledávací cestu
-- nově vytvářené tabulky, tak budou vytvořeny ve vlastním schématu
CREATE SCHEMA landamar;
SET search_path TO landamar, osm, public;
-- příklad vytvoření bodové vrstvy knihoven
CREATE TABLE knihovny AS SELECT * FROM czech_point WHERE amenity = 'library';
-- zjištění celkového počtu knihoven
SELECT COUNT(*) FROM knihovny;
- Příklady z přednášek předmětu Úvod do zpracování prostorových dat
- 2. cvičení GIS 1
- 3. cvičení GIS 1
- 4. cvičení GIS 1
Stažení databáze pro vlastní potřebu
Geodatabáze pgis_student obsahuje pouze volně šířitelná data. Data si tedy můžete stáhnout a používat pro vlastní účely.
Ke stažení je dostupný dump soubor pgis_student.dump (>2.2 GB !).
Poznámka: Dávka byla vytvořena příkazem
pg_dump -Fc -b -v -f pgis_student.dump pgis_student
Příklad importu dat (včetně vytvoření databáze pgis_student):
- Vytvoření nové PostGIS geodatabáze pgis_student
- Stažení a nahrání dávky do této databáze
wget http://geo102.fsv.cvut.cz/~landa/vyuka/postgis/pgis_student.dump
postgis_restore.pl pgis_student.dump | psql pgis_student