[GRASSLIST:8064] Re: GRASS - PGSQL - PostGIS
Stephan Holl
holl at gdf-hannover.de
Thu Aug 25 09:02:29 EDT 2005
Hello Martin,
On Thu, 25 Aug 2005 14:28:32 +0200 Martin Wegmann
<wegmann at biozentrum.uni-wuerzburg.de> wrote:
> hello Stephan,
>
> On Thursday 25 August 2005 12:41, Stephan Holl wrote:
> [...]
> > > inside GRASS
> > >
> > > >db.login driver=pg database=grass_pg
> > > > db.connect driver=pg database=grass_pg
> >
> > OK, correct. Now import our tables to postgres.
> > g.copy vect=soils,soils_pg
>
> why that command? It is important for the pgsql connection or rather
> to have it in the current mapset?
No, this copies the dataset and adds the addtribute-data into Postgres.
>
> > Be aware that now only your attribute-data is stored inside
> > postgres. PostGIS does not come into play here. geometry data is in
> > native GRASS6-vector-format.
> >
> > to load your GRASS-vectors to postgis, you could use v.out.ogr to
> > import to PostGIS both geometry and attributes:
> >
> > v.out.ogr input=polygons type=area dsn="PG:host=localhost
> > dbname=postgis user=postgres" olayer=soils format=PostgreSQL
>
> v.out.ogr input=soils type=area dsn="PG:host=localhost
> dbname=grass_pg user=baliola" olayer=soils format=PostgreSQL
>
> works fine and entering pgsql
>
> >psql grass_pg
> >\d
> shows up with the tables and it seems to be correct.
As I said, this has fed both geometr and attributes into postGIS. you
cannot digitize on this map any more (you "exported" the map into
postgis).
>
> thanks!
>
> Just one curious question, if I do
>
> >v.distance from=soils2 to=soils2 upload=dist column=dist
> >out=test_dist_1000m
> from_type=centroid to_type=centroid -a dmax=1000
This results in a dataset with GRASS-geometries and postgres-attributes.
> > g.copy vect=test_dist_1000m,test_dist_1000m_pg
not neccessary, because the db-setting for your location were set to
postgres before, so every dataset created afterwards attributes are
stored inside postgres.
Tools like pgadmin3 [1] can help browsing postgres.
> >v.out.ogr input=test_dist_1000m_pg type=point dsn="PG:host=localhost
> dbname=grass_pg user=baliola" olayer=dist_1000m format=PostgreSQL
>
> and enter PGSQL
> >psql grass_pg
> >select * from dist_1000m_p;
>
> I get:
>
> ogc_fid | wkb_geometry
> | cat
> ---------+----------------------------------------------------------------------
> ----+-----
> 1 |
> \001\001\000\000\000\303\365(\\\340\217"Aq=\012\367\035\277RA |
> 2 |
> \001\001\000\000\000\\\217\302\365\265\212"A\366(\\/\207\277RA |
> 3 | \001\001\000\000\000\303\365(\334\322\227"A333\003D\277RA
>
>
> which looks for me pretty weird. How do I solely extract the distance
> values into PGSQL?
> The general question would be, "how do I export single columns only?"
>
As you are working with attribute-data, your last step (v.out.ogr) was
not neccessary, because the attributeinformation of test_dist_1000m are
already in postgres (table test_dist_1000m).
>
> > To use the exported map in GRASS relink it to your grassdata using
> > the command v.external.
> [...]
> > >
> > > However I would love to have a tutorial how to use GRASS in
> > > conjunction with Postgresql which tells me which software I do
> > > need and how I initialise this cross-package functionality. I
> > > haven't found a link to a tutorial, in case I missed it, I would
> > > be glad if you can send a link.
> >
> > Actually I do not have a link at hand, but perhaps we should set up
> > a wiki-entry for this kind of problem?
> > Volunteers?
>
> yeeph, I would volunteer, however I can provide the rough first steps
> only; the nifty bits and pieces are not yet in my repertoire.
I could certainly help including information about this topic!
Best
Stephan
[1] http://www.pgadmin.org/
--
GDF Hannover - Solutions for spatial data analysis and remote sensing
Hannover Office - Mengendamm 16d - D-30177 Hannover
Internet: www.gdf-hannover.de - Email: holl at gdf-hannover.de
Phone : ++49-(0)511.39088507 - Fax: ++49-(0)511.39088508
More information about the grass-user
mailing list