PG WORKSHOP

GDAL/OGR2OGR

GDAL/OGR2OGR er et Open Source projekt, der indgår i det fleste GIS- systemer både Open Source og kommercielle produkter. Formålet med GDAL/OGR2OGR er at konvertere data mellem alle de mange GIS formater, som findes på markedet.

GDAL anvendes til Rasterdata og OGR2OGR anvendes til vektordata. Det er OGR2OGR vi skal anvende til at arbejde med PostgreSQL.

De formater kan kovertere til og fra er angivet på http://www.gdal.org/ogr_formats.html

Foruden at være integreret i mange typer af GIS-software findes også et enkeltstående program (ogr2ogr.exe) som kan afvikles på kommandolinjen.

Der kan også lagres RASTER data i PostgreSQL/PostGIS og man kan derfor også anvende GDAL med en PostgreSQL/PostGIS database

Eksempler

I det følgende vises nogle eksempler på typiske anvendelser af OGR2OGR på kommandolinjen. Åben din kommandoprompt/terminal. Vejledningen af programmet ser således ud og vi vil nu prøve nogle af de mange funktioner af.:

Usage: ogr2ogr [--help-general] [-skipfailures] [-append] [-update]
               [-select field_list] [-where restricted_where]
               [-progress] [-sql <sql statement>] [-dialect dialect]
               [-preserve_fid] [-fid FID]
               [-spat xmin ymin xmax ymax] [-geomfield field]
               [-a_srs srs_def] [-t_srs srs_def] [-s_srs srs_def]
               [-f format_name] [-overwrite] [[-dsco NAME=VALUE] ...]
               dst_datasource_name src_datasource_name
               [-lco NAME=VALUE] [-nln name] [-nlt type] [-dim 2|3|layer_dim] [layer [layer ...]]

Advanced options :
               [-gt n]
               [-clipsrc [xmin ymin xmax ymax]|WKT|datasource|spat_exte]
               [-clipsrcsql sql_statement] [-clipsrclayer layer]
               [-clipsrcwhere expression]
               [-clipdst [xmin ymin xmax ymax]|WKT|datasource]
               [-clipdstsql sql_statement] [-clipdstlayer layer]
               [-clipdstwhere expression]
               [-wrapdateline] [-datelineoffset val]
               [[-simplify tolerance] | [-segmentize max_dist]]
               [-addfields]
               [-fieldTypeToString All|(type1[,type2]*)] [-unsetFieldWi]
               [-fieldmap identity | index1[,index2]*]
               [-splitlistfields] [-maxsubfields val]
               [-explodecollections] [-zfield field_name]
               [-gcp pixel line east north [elevation]]* [-order n|-tps]

I mange tilfælde har vi dog kun brug for følgende af ovenstående parametre:

og2ogr [-f format_name]  dst_datasource_name src_datasource_name [-nln name] [layer [layer ...]]

Først programnavnet, derefter formatet vi vil kovertere til og dernæst datakilden vi vil konvertere til og datakilden vi vil kovertere fra og endelig det navn laget skal omdøbes til (-nln:new layer name)

Indlæs shapefil i Postgres database
ogr2ogr -f "PostgreSQL" pg:"host=localhost port=5432 user=migselv password=mitpassword dbname=kbh_workshop" bygninger.shp -nln mitskema.fotbygninger

Shape filen bygninger.shp indlæses i en lokal PostgreSQL database i skemaet "mitskema" og med et nyt navn "fotbygninger"

Her angives datakilden vi vil kovertere til som PostgreSQL. Man kan læse om om hvordan man skriver en connnection streng til de forskellige formater på formatet/driverens webside. http://www.gdal.org/drv_pg.html

-

Indlæs MapInfo fil i Postgres database
ogr2ogr -f "PostgreSQL" pg:"host=localhost port=5432 user=migselv password=mitpassword dbname=kbh_workshop" bygninger.tab -nln mitskema.fotbygninger
Konvertér tabel i Postgres database til MapInfo fil
ogr2ogr -f "MapInfo File" bygninger.tab pg:"host=localhost port=5432 user=migselv password=mitpassword dbname=kbh_workshop" mitskema.fotbygninger

--

Konvertér tabel i Postgres database til CSV fil
ogr2ogr -f "CSV" bygninger.csv pg:"host=localhost port=5432 user=migselv password=mitpassword dbname=kbh_workshop" mitskema.fotbygninger

--

Konvertér et sql statement i Postgres database til shapefil
ogr2ogr -f "ESRI Shapefile" minsql.shp pg:"host=localhost port=5432 user=migselv password=mitpasswordb dbname=kbh_workshop" -sql "SELECT * FROM buf.boernehaver WHERE ejerforhold='Kommunal'"

--

> Info Info

sdfsdf

Note

sdfsdf

Tag

sdfsdf

Comment

sdfsdf

Hint

sdfsdf

Success

sdfsdf

Warning

sdf

Caution

sdfsdf

Danger

sdfsdf

Quote