NAME¶
v.in.ogr - Convert OGR vector layers to GRASS vector map.
KEYWORDS¶
vector, import
SYNOPSIS¶
v.in.ogr
v.in.ogr help
v.in.ogr [-
lfcztorew] [
dsn=
string]
[
output=
name] [
layer=
string[,
string,...]]
[
spatial=
xmin,ymin,xmax,ymax[,
xmin,ymin,xmax,ymax,...]]
[
where=
sql_query] [
min_area=
float]
[
type=
string[,
string,...]] [
snap=
float]
[
location=
string]
[
cnames=
string[,
string,...]] [--
overwrite]
[--
verbose] [--
quiet]
Flags:¶
- -l
-
List available layers in data source and exit
- -f
-
List supported formats and exit
- -c
-
Do not clean polygons (not recommended)
- -z
-
Create 3D output
- -t
-
Do not create attribute table
- -o
-
Override dataset projection (use location's projection)
- -r
-
Limit import to the current region
- -e
-
Extend region extents based on new dataset
Also updates the default region if in the PERMANENT mapset
- -w
-
Change column names to lowercase characters
- --overwrite
-
Allow output files to overwrite existing files
- --verbose
-
Verbose module output
- --quiet
-
Quiet module output
Parameters:¶
- dsn=string
-
OGR datasource name
Examples:
ESRI Shapefile: directory containing shapefiles MapInfo File: directory
containing mapinfo files
- output=name
-
Name for output vector map
- layer=string[,string,...]
-
OGR layer name. If not given, all available layers are imported
Examples:
ESRI Shapefile: shapefile name MapInfo File: mapinfo file name
- spatial=xmin,ymin,xmax,ymax[,xmin,ymin,xmax,ymax,...]
-
Import subregion only
Format: xmin,ymin,xmax,ymax - usually W,S,E,N
- where=sql_query
-
WHERE conditions of SQL statement without 'where' keyword
Example: income = 10000
- min_area=float
-
Minimum size of area to be imported (square units)
Smaller areas and islands are ignored. Should be greater than snap^2
Default: 0.0001
- type=string[,string,...]
-
Optionally change default input type
Options: point,line,boundary,centroid
Default:
point: import area centroids as points
line: import area boundaries as lines
boundary: import lines as area boundaries
centroid: import points as centroids
- snap=float
-
Snapping threshold for boundaries
’-1' for no snap
Default: -1
- location=string
-
Name for new location to create
- cnames=string[,string,...]
-
List of column names to be used instead of original names, first is used for
category column
DESCRIPTION¶
v.in.ogr converts OGR vectors to GRASS. OGR (Simple Features Library) is
part of the GDAL library, so you need to install GDAL to use
v.in.ogr.
If the
layer parameter is not given, all available layers are imported as
separate GRASS layers into one GRASS vector map. If several OGR layer names
are given, all these layers are imported as separate GRASS layers into one
GRASS vector map.
The optional
spatial parameter defines spatial query extents. This
parameter allows the user to restrict the region to a spatial subset while
importing the data. All vector features completely or partially falling into
this rectangle subregion are imported. The
-r current region flag is
identical, but uses the current region settings as the spatial bounds (see
g.region).
Topology cleaning on areas is automatically performed, but may fail in special
cases (then use v.clean).
The
min_area threshold value is being specified as area size in map units
with the exception of latitude-longitude locations in which it is being
specified solely in square meters.
The
snap threshold value is used to snap boundary vertices to each other
if the distance in map units between two vertices is not larger than the
threshold. Snapping is by default disabled with -1. See also the v.clean
manual.
ESRI Shapefile
Mapinfo File
Further available drivers such as UK .NTF, SDTS, TIGER, IHO S-57 (ENC), DGN,
GML, AVCBin, REC, Memory, OGDI, and PostgreSQL depend on the local
installation (OGR library), for details see OGR web site.
Overlapping polygons¶
When importing overlapping polygons, the overlapping parts will become new areas
with multiple categories, one unique category for each original polygon. An
original polygon will thus be converted to multiple areas with the same shared
category. These multiple areas will therefore also link to the same entry in
the attribute table. A single category value may thus refer to multiple
non-overlapping areas which together represent the original polygon
overlapping with another polygon. The original polygon can be recovered by
using
v.extract with the desired category value or
where
statement and the
-d flag to dissolve common boundaries.
Location Creation¶
v.in.ogr attempts to preserve projection information when importing
datasets if the source format includes projection information, and if the OGR
driver supports it. If the projection of the source dataset does not match the
projection of the current location
v.in.ogr will report an error
message ("Projection of dataset does not appear to match current
location") and then report the PROJ_INFO parameters of the source
dataset.
If the user wishes to ignore the difference between the apparent coordinate
system of the source data and the current location, they may pass the
-o flag to override the projection check.
If the user wishes to import the data with the full projection definition, it is
possible to have
v.in.ogr automatically create a new location based on
the projection and extents of the file being read. This is accomplished by
passing the name to be used for the new location via the
location
parameter. Upon completion of the command, a new location will have been
created (with only a PERMANENT mapset), and the vector map will have been
imported with the indicated
output name into the PERMANENT mapset.
EXAMPLES¶
The command imports various vector formats:
- SHAPE files
v.in.ogr dsn=/home/user/shape_data/test_shape.shp output=grass_map
Alternate method:
v.in.ogr dsn=/home/user/shape_data layer=test_shape output=grass_map
- MapInfo files
v.in.ogr dsn=./ layer=mapinfo_test output=grass_map
- Arc Coverage
We import the Arcs and Label points, the module takes care to build areas:
v.in.ogr dsn=gemeinden layer=LAB,ARC type=centroid,boundary output=mymap
- E00 file (see also v.in.e00)
First we have to convert the E00 file to an Arc Coverage with 'avcimport'
(AVCE00 tools, use e00conv first in case that avcimport
fails):
avcimport e00file coverage
v.in.ogr dsn=coverage layer=LAB,ARC type=centroid,boundary output=mymap
- SDTS files (you have to select the CATD file)
v.in.ogr dsn=CITXCATD.DDF output=cities
- TIGER files
v.in.ogr dsn=input/2000/56015/ layer=CompleteChain,PIP output=t56015_all \
type=boundary,centroid snap=-1
- PostGIS maps (area example)
v.in.ogr dsn="PG:host=localhost dbname=postgis user=postgres"
layer=polymap \
output=polygons type=boundary,centroid
- Oracle Spatial maps
Note that you have to set the environment-variables ORACLE_BASE, ORACLE_SID,
ORACLE_HOME and TNS_ADMIN accordingly.
v.in.ogr dsn=OCI:username/password@database_instance output=grasslayer
layer=roads_oci
Support of database schema:¶
For schema support, first set a default schema with
db.connect. If schema
support is used the schema name must be specified whenever a db.* module is
called.
Example:
db.connect driver=pg database=test schema=user1 group=group1
db.login driver=pg database=test user=user1 password=pwd1
v.in.ogr dsn=./ layer=river output=river # -> table user1.river
db.select table=user1.river
The user can ignore schemas, if desired:
db.connect driver=pg database=test
db.login driver=pg database=test user=user1 password=pwd1
v.in.ogr dsn=./ layer=river output=river # -> table public.river
db.select table=river
NOTES¶
The characters used for table column names are limited. Supported are:
[A-Za-z][A-Za-z0-9_]*
This means that SQL neither supports '.' (dots) nor '-' (minus) nor '#' in table
column names. Also a table name must start with a character, not a number.
v.in.ogr converts '.', '-' and '#' to '_' (underscore) during import. The
-w flag changes capital column names to lowercase characters as a
convenience for SQL usage (lowercase column names avoid the need to quote them
if the attribute table is stored in a SQL DBMS such as PostgreSQL). The
cnames parameter is used to define new column names during import.
The DBF database specification limits column names to 10 characters. If the
default DB is set to DBF and the input data contains longer column/field
names, they will be truncated. If this results in multiple columns with the
same name then
v.in.ogr will produce an error. In this case you will
either have to modify the input data or use
v.in.ogr's
cnames
parameter to rename columns to something unique. (hint: copy and modify the
list given with the error message). Alternatively, change the local DB with
db.connect.
WARNINGS¶
If a message like "WARNING: Area size 1.3e-06, area not imported."
appears, the
min_area may be adjusted to a smaller value so that all
areas are imported. Otherwise tiny areas are filtered out during import
(useful to polish digitization errors or non-topological data).
ERROR MESSAGES¶
"ERROR: DBMI-DBF driver error: SQL parser error: syntax error,
unexpected DESC, expecting NAME processing 'DESC'"
indicates that a column name corresponds to a reserved SQL word (here: 'DESC').
A different column name should be used. The
cnames parameter can be
used to assign different column names on the fly.
"ERROR: Projection of dataset does not appear to match the current
location."
You need to create a location whose projection matches the data you wish to
import. Try using
location parameter to create a new location based
upon the projection information in the file. If desired, you can then
re-project it to another location with
v.proj.
REFERENCES¶
OGR vector library
OGR vector library C API documentation
SEE ALSO¶
db.connect, v.clean, v.extract,
v.build.polylines, v.edit, v.external, v.in.db,
v.in.e00, v.out.ogr,
PostGIS driver
AUTHOR¶
Radim Blazek, ITC-irst, Trento, Italy
Location and spatial extent support by Markus Neteler and Paul Kelly
Last changed: $Date: 2012-08-21 21:23:56 +0200 (Tue, 21 Aug 2012) $
Full index
© 2003-2014 GRASS Development Team