[GRASS-user] Help with defining DB Drivers for input and outputs
Mark Wynter
mark at dimensionaledge.com
Wed Feb 11 15:12:06 PST 2015
Within the same mapset, is it possible to specify SQLITE as the database for the output layer, whilst using a map as an input that has a PG driver?
I’ve read the manual and tried a few approaches, but I found the outputs still get written to PG. May be I’ve missed a critical step? See messages below. I also experimented with v.add.table and v.add.columns to the empty map, to no avail.
I want the outputs written to sqlite, because v.out.ogr and v.out.postgis when the attributes are stored in PostgreSQL seems unworkably slow (which may be a pg_conf issue but my DB is performing well at scale for non-GRASS parallelised workflows)?
I want to keep the input attributes still in PostgreSQL because its the road table, and the fwdcost and bwdcost columns get updated by data from non-GRASS schema.
I need the fastest pipeline performance possible for when I scale the solution out (which will be done using GNU Parallel).
Right now I’m stuck between a rock and a hard place.
Really hoping someone can help me out… :-)
Thanks
Mark
#CREATE EMPTY MAP TO HOLD THE OUTPUTS
g.remove -f type=vector pattern="temp**"
layername="temp_8
v.edit --overwrite tool=create map=$layername
v.db.connect map=$layername table=$layername driver=sqlite database='$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db’
v.info $layername
#RUN THE ANALYSIS, WHERE THE INPUT LAYER ATTRIBUTES RESIDE IN POSTGRESQL
v.net.allpairs --overwrite in=nsw_road_network_final_connected cats=1-100 out=$layername afcolumn=fwdcost abcolumn=bwdcost
# NO GOOD - THE OUTPUT ATTRIBUTE TABLE STILL APPEARS IN PGL
##########################
GRASS 7.0.0svn (nodeclean):~ > v.edit --overwrite tool=create map=$layername
Building topology for vector map <temp_8 at PERMANENT>...
Registering primitives...
0 primitives registered
0 vertices registered
Building areas...
0 areas built
0 isles built
Attaching islands...
Attaching centroids...
Number of nodes: 0
Number of primitives: 0
Number of points: 0
Number of lines: 0
Number of boundaries: 0
Number of centroids: 0
Number of areas: 0
Number of isles: 0
v.edit complete.
GRASS 7.0.0svn (nodeclean):~ > v.db.connect map=$layername table=$layername driver=sqlite database='$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db'
WARNING: Table <temp_8> does not exist in database
<$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db>
The table <temp_8> is now part of vector map <temp_8> and may be deleted or
overwritten by GRASS modules
DBMI-SQLite driver error:
Unable to create index:
create unique index if not exists temp_8_cat on temp_8 ( cat )
no such table: main.temp_8
DBMI-SQLite driver error:
Unable to create index:
create unique index if not exists temp_8_cat on temp_8 ( cat )
no such table: main.temp_8
WARNING: Cannot create index
Select privileges were granted on the table
GRASS 7.0.0svn (nodeclean):~ > v.db.connect -p map=$layername
Vector map <temp_8> is connected by:
layer <1/temp_8> table <temp_8> in database </var/tmp/nodeclean/PERMANENT/sqlite/sqlite.db> through driver <sqlite> with key <cat>
GRASS 7.0.0svn (nodeclean):~ > v.info $layername
+----------------------------------------------------------------------------+
| Name: temp_8 |
| Mapset: PERMANENT |
| Location: nodeclean |
| Database: /var/tmp |
| Title: |
| Map scale: 1:1 |
| Name of creator: root |
| Organization: |
| Source date: Wed Feb 11 22:49:13 2015 |
| Timestamp (first layer): none |
|----------------------------------------------------------------------------|
| Map format: native |
|----------------------------------------------------------------------------|
| Type of map: vector (level: 2) |
| |
| Number of points: 0 Number of centroids: 0 |
| Number of lines: 0 Number of boundaries: 0 |
| Number of areas: 0 Number of islands: 0 |
| |
| Map is 3D: No |
| Number of dblinks: 1 |
| |
| Projection: Albers Equal Area |
| |
| N: 0 S: 0 |
| E: 0 W: 0 |
| |
| Digitization threshold: 0 |
| Comment: |
| |
+----------------------------------------------------------------------------+
GRASS 7.0.0svn (nodeclean):~ > v.net.allpairs --overwrite in=nsw_road_network_final_connected cats=1-100 out=$layername afcolumn=fwdcost abcolumn=bwdcost
WARNING: Vector map <temp_8> already exists and will be overwritten
WARNING: Table <temp_8> linked to vector map <temp_8> does not exist
Building graph…
#### Outputs of temp_8 visible in PostgreSQL….#########
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20150212/b02e2be8/attachment.html>
More information about the grass-user
mailing list