-
-
Save rastermanden/1c9dd5e03e13b42f3add to your computer and use it in GitHub Desktop.
#Workshop ##Hvordan bruger I PG? ##Hvilke versioner bruger I? ##Hvad vil I gerne lære ? ##Materiale fra tidligere heldags worshops http://www.septima.dk/haderslev-postgis/
http://www.septima.dk/kbh-postgis-kursus/
###PostgreSQL COPY COPY kan bruges til mange ting. Kan importere/eksportere tabulare data.
####Hent data fra internettet direkte ind i PostgreSQL (husk PGAGENT)
Danmarks Statistik:
DROP TABLE IF EXISTS stat.folketal;
CREATE TABLE stat.folketal
(
komkode character varying,
tid character varying,
antal integer
);
COPY stat.folketal
FROM PROGRAM
'curl "http://api.statbank.dk/v1/data/FOLK1/CSV?valuePresentation=Code&OMRÅDE=*&TID=2015K1"' CSV HEADER DELIMITER ';';
####Kopier til en CSV fil
COPY (SELECT * FROM kulturarv.fbb_view_bygning_fredede) TO 'c:\temp\test.csv'
###PGAGENT En smart "Scheduler" til at udføre opgaver som Backups, import af data, eksport af Spatial Suite konfigiuration.
- En nem måde at sætte jobs op
- Kan både køre SQL jobs samt almindelige CMD/BATCH jobs
- Kan udvides med at sende emails
###Foregin Data wrappers Integration af data fra andre datkilder, som wfs, shapefiler, Tab filer, excel, direkte i PostgreSQL.
####Fredede og bevaringsværdige bygninger fra WFS
create extension postgis;
create extension ogr_fdw;
create schema kulturarv;
CREATE SERVER kulturarv
FOREIGN DATA WRAPPER ogr_fdw
OPTIONS (
datasource 'wfs:http://www.kulturarv.dk/geoserver/wfs?',
format 'WFS' );
DROP FOREIGN TABLE IF EXISTS kulturarv.fdw_fbb_view_bygning_fredede;
CREATE FOREIGN TABLE kulturarv.fdw_fbb_view_bygning_fredede (
fid integer,
geom geometry(POINT, 25832),
gml_id varchar,
bygningsid integer,
fredningsstatus integer,
bevaringsvaerdi integer,
adresse varchar,
kommune varchar,
bbrnummer varchar,
fredet varchar,
ois_id varchar )
SERVER kulturarv
OPTIONS ( layer 'fbb:view_bygning_fredede' );
CREATE MATERIALIZED VIEW kulturarv.fbb_view_bygning_fredede AS
SELECT fid, ST_SetSRID(geom, 25832)::geometry(POINT,25832), gml_id, bygningsid, fredningsstatus, bevaringsvaerdi, adresse, kommune, bbrnummer, fredet, ois_id
FROM kulturarv.fdw_fbb_view_bygning_fredede;
REFRESH MATERIALIZED VIEW kulturarv.fbb_view_bygning_fredede;
####DAGI data fra zippet shapefil fra ftp server
CREATE SERVER dagi2m_kommune
FOREIGN DATA WRAPPER ogr_fdw
OPTIONS (datasource '/vsizip/vsicurl/ftp://USER:[email protected]/landinddelinger/dagi/SHAPE/DAGI2M_SHAPE_UTM32-EUREF89.zip/ADM/KOMMUNE.shp',format 'ESRI Shapefile');
ALTER SERVER dagi2m_kommune
OWNER TO postgres;
-- Foreign Table: dagi2m.kommune_fdw
-- DROP FOREIGN TABLE dagi2m.kommune_fdw;
CREATE FOREIGN TABLE dagi2m.kommune_fdw
(fid integer ,
geom geometry ,
feat_id real ,
feat_kode integer ,
feat_type character varying ,
feat_sttxt character varying ,
geom_sttxt character varying ,
dagi_id real ,
areal real ,
regionkode character varying ,
regionnavn character varying ,
gyldig_fra date ,
gyldig_til date ,
dq_index character varying ,
dq_specifk character varying ,
dq_statem character varying ,
dq_descr character varying ,
dq_process character varying ,
dq_respons character varying ,
dq_posacpl character varying ,
dq_posaclv character varying ,
timeof_cre character varying ,
timeof_pub character varying ,
timeof_rev character varying ,
timeof_exp character varying ,
timeof_udt character varying )
SERVER dagi2m_kommune
OPTIONS (layer 'KOMMUNE');
ALTER FOREIGN TABLE dagi2m.kommune_fdw
OWNER TO postgres;
DROP MATERIALIZED VIEW IF EXISTS dagi2m.kommune;
CREATE MATERIALIZED VIEW dagi2m.kommune AS
SELECT substring(dq_index from 2)::integer as dq_index, dq_specifk, St_Union(st_setsrid(ST_Multi(ST_Force_2D(geom)), 25832)::geometry(MultiPolygon,25832)) as the_geom
FROM dagi2m.kommune_fdw
GROUP BY dq_index,dq_specifk, regionnavn
ORDER BY dq_index;
CREATE INDEX dagi2m_kommune_geom_idx ON dagi2m.kommune USING GIST (the_geom);
CREATE UNIQUE INDEX idx_dq_index ON dagi2m.kommune (dq_index);
ALTER TABLE dagi2m.kommune
OWNER TO postgres;
REFRESH MATERIALIZED VIEW dagi2m.kommune;
SELECT * FROM dagi2m.kommune;