Cvičná databáze PostGIS

Z GeoWikiCZ

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

gis1

Obsahuje data ze cvičení předmětu GIS1 (EPSG:2065).

SELECT * FROM geometry_columns WHERE f_table_schema = 'gis1';
 f_table_catalog | f_table_schema |   f_table_name    | f_geometry_column | coord_dimension | srid |    type    
-----------------+----------------+-------------------+-------------------+-----------------+------+------------
 pgis_student    | gis1           | lesy              | geom              |               2 | 2065 | POLYGON
 pgis_student    | gis1           | zeleznice         | geom              |               2 | 2065 | LINESTRING
 pgis_student    | gis1           | obce              | geom              |               2 | 2065 | MULTIPOLYGON
 pgis_student    | gis1           | zeleznice_stanice | geom              |               2 | 2065 | POINT
 pgis_student    | gis1           | kltm50            | geom              |               2 | 2065 | POLYGON
 pgis_student    | gis1           | obce_b            | geom              |               2 | 2065 | POINT
(6 rows)

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 ČR ze dne 19.2.2013 (Google Mercator). 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 | 900913 | LINESTRING
 pgis_student    | osm            | czech_polygon | geom              |               2 | 900913 | POLYGON
 pgis_student    | osm            | czech_roads   | geom              |               2 | 900913 | LINESTRING
 pgis_student    | osm            | czech_point   | geom              |               2 | 900913 | 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

Data z datasetu FreeGeodataCZ (EPSG:2065).

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 | 2065 | POLYGON
 pgis_student    | fgcz           | silnice_useky   | geom              |               2 | 2065 | LINESTRING
 pgis_student    | fgcz           | mes_casti       | geom              |               2 | 2065 | POINT
 pgis_student    | fgcz           | mesta_b         | geom              |               2 | 2065 | POINT
 pgis_student    | fgcz           | mesta_p         | geom              |               2 | 2065 | POLYGON
 pgis_student    | fgcz           | silnice_uzly    | geom              |               2 | 2065 | POINT
 pgis_student    | fgcz           | obce            | geom              |               2 | 2065 | POINT
 pgis_student    | fgcz           | voda            | geom              |               2 | 2065 | POLYGON
 pgis_student    | fgcz           | zeleznice       | geom              |               2 | 2065 | LINESTRING
 pgis_student    | fgcz           | okresy_pseudo   | geom              |               2 | 2065 | POLYGON
 pgis_student    | fgcz           | silnice_pasport | geom              |               2 | 2065 | LINESTRING
 pgis_student    | fgcz           | reky            | geom              |               2 | 2065 | LINESTRING
 pgis_student    | fgcz           | klad_zm10       | geom              |               2 | 2065 | POINT
 pgis_student    | fgcz           | silnice         | geom              |               2 | 2065 | LINESTRING
 pgis_student    | fgcz           | cr              | geom              |               2 | 2065 | POLYGON
 pgis_student    | fgcz           | cesty           | geom              |               2 | 2065 | LINESTRING
 pgis_student    | fgcz           | czfree_nodes    | geom              |               2 | 2065 | POINT
 pgis_student    | fgcz           | casti_obce      | geom              |               2 | 2065 | POINT
 pgis_student    | fgcz           | dsnimky         | geom              |               2 | 2065 | LINESTRING
 pgis_student    | fgcz           | cfm_points      | geom              |               2 | 2065 | POINT
 pgis_student    | fgcz           | cfm_areas       | geom              |               2 | 2065 | 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)

Přístup k databázi

Příkazová řádka - psql

psql pgis_student -U postgis -h geo102.fsv.cvut.cz -W
Příklad přístupu ke studentské geodatabázi přes psql

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/.

Připojení k databázi pgis_student můžete přidat z menu

File -> Add server
Dialog pgAdmin3 pro přihlášení k databázi pgis_student
pgAdmin3: příklad prostorového SQL dotazu

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
New
Dialog pro přihlášení k PostGIS databázi

Po stisknutí tlačítka Connect se QGIS připojí k databázovému serveru a zobrazí seznam dostupných datových vrstev.

Připojení k databázi pgis_student v QGISu
Vizualizace PostGIS dat v QGISu


MapServer

Příklady dotazů

CREATE SCHEMA landamar;
SET search_path TO landamar, public;
CREATE TABLE knihovny AS SELECT * FROM osm.czech_point WHERE amenity = 'library';
SELECT populate_geometry_columns('knihovny'::regclass);


Stažení dat

Ke stažení je dostupný dump soubor pgis_student.dump (~430 MB).

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):

  1. Vytvoření nové PostGIS geodatabáze pgis_student
  2. Stažení a nahrání dávky do této databáze
wget http://geo.fsv.cvut.cz/~landa/vyuka/postgis/pgis_student.dump
postgis_restore.pl pgis_student.dump | psql pgis_student