On 27/07/11 11:02 PM, [email protected] wrote:
Message: 5
Date: Tue, 26 Jul 2011 15:03:11 -0700 (PDT)
From: Rich Shepard<[email protected]>
Subject: [GRASS-user] I'm in a hole and want to stop digging
To:[email protected]
Message-ID:<[email protected]>
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII
I'm starting a very large project that involves GRASS, R, and postgres and
I'm running into difficulties just trying to copy vectors and rasters from
the PERMANENT mapset into a project-specific mapset. (Setting the region
also is giving me issues, as will become clear in my explanation.) All this
with -6.5svn on linux.
I have DEM raster data and some vector data stored in the internal GRASS
.dbf format. The rest of the vector data are postgres tables. When I invoke
grass65, I immediately run 'db.connect driver=pg database=nevada' so g.list
vect shows me all vector map tables. But, it does not distinguish between
those in postgres and those in GRASS.
An example: looking at the output of 'g.list vect' I see the county
boundary ('county_bnd'), but a table list in postgres shows 'county_bnd_arc'
and 'county_bnd_lab'. When I try to use g.copy I get errors whether I use
'county_bnd' or 'county_bnd_arc'. So, I put that aside and try to copy map
huc10:
GRASS 6.5.svn (Nevada-SPCS):~/grassdata> g.copy vect=huc10@PERMANENT,huc10
Copy vector<huc10@PERMANENT> to current mapset as<huc10>
DBMI-Postgres driver error:
Cannot create table:
create table huc10 ( cat integer, gaz_id integer, area_acres double
precision, area_sqkm double precision, states varchar(50), loaddate
varchar(10), huc_10 varchar(10), hu_10_name varchar(120), hu_10_type
varchar(1), hu_10_mod varchar(50), shape_leng double precision, shape_area
double precision )
ERROR: relation "huc10" already exists
WARNING: Unable to create table<huc10>
WARNING: Unable to copy table<huc10>
WARNING: Cannot copy<huc10@PERMANENT> to current mapset as<huc10>
Well, huc10_does_ exist in postgres (I imported it to the PERMANENT
mapset), but it's not available in the jerritt mapset.
Because working with both the internal and an external dbms for vector
data is new to me I'd greatly appreciate pointers to what I need to read to
learn how to get past this hurdle so I can motor up to the next hurdle.
There's a lot of learning on my part, and client pressure to start producing
analytical results.
Rich
Rich,
So - the pg database server is a local server?
If I understand you correctly, here is what is happening:
g.copy vector=map@PERMANENT,map
Grass-GIS can copy the map (ie topology etc) fine, because there's no
clash. But if a table called "map" already exists in the database, the
copy fails.
My approach - I use MySQL but don't see why this would not work in pg -
is to associate a schema to a mapset. So if I want PERMANENT and
Project, over in MySQL I might run:
create database Master
create database Project
Back in Grass-GIS ... in each mapset:
PERMANENT
db.connect driver=mysql database=host=localhost,dbname=Master
Project
db.connect driver=mysql database=host=localhost,dbname=Project
Then, when I copy a map from PERMANENT to Project, there is no table in
the target schema to upset the copying process.
Cheers,
Richard Chirgwin
_______________________________________________
grass-user mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-user