[GRASS-user] partial vector copy to smaller territory

Markus Metz markus.metz.giswork at gmail.com
Tue Nov 6 12:36:43 PST 2018


On Tue, Nov 6, 2018 at 4:03 PM Frank David <frank.david at geophom.fr> wrote:
>
>
> Le 05/11/2018 à 14:23, Frank David a écrit :
> >
> > Le 02/11/2018 à 22:27, Markus Metz a écrit :
> >>
> >>
> >> On Fri, Nov 2, 2018 at 6:32 PM Frank David <frank.david at geophom.fr
> >> <mailto:frank.david at geophom.fr>> wrote:
> >> >
> >> > Le 02/11/2018 à 14:43, Markus Metz a écrit :
> >> >
> >> >
> >> >
> >> > On Fri, Nov 2, 2018 at 11:58 AM Frank David <frank.david at geophom.fr
> >> <mailto:frank.david at geophom.fr>> wrote:
> >> > >
> >> > > Le 31/10/2018 à 20:57, Markus Metz a écrit :
> >> > >
> >> > > Hi Frank,
> >> > >
> >> > > On Wed, Oct 31, 2018 at 1:39 PM Frank David
> >> <frank.david at geophom.fr <mailto:frank.david at geophom.fr>> wrote:
> >> > > >
> >> > > > Hello Vero,
> >> > > >
> >> > > > Thanks for your reply. It took almost one hour to extract my
> >> area (I guess because of topology). I do the same with Qgis from a
> >> shape in less than 10 minutes (but with several operations)... it's
> >> may be a bad idea to have a so heavy vector map in Grass...
> >> > >
> >> > > this kind of operation could be much faster in latest GRASS 7.4
> >> than in any previous versions. Which GRASS version are you using?
> >> > >
> >> > > Hello Markus,
> >> > >
> >> > > I'm using 7.4.1 on debian9
> >> > >
> >> > > But my grass db folder  is on a small server (Synology NAS), so
> >> may be the network makes slow down the operation ?
> >> >
> >> > This is possible, but it should not slow it down that much: 10 min
> >> vs 1 hour
> >> >
> >> > Can you provide a link to the vector from which you want to extract
> >> a small area, and the command you used to extract a small area? Maybe
> >> there is scope for optimization.
> >> >
> >> > Markus,
> >> >
> >> > The data is CorineLandCover for france. You can download 400mo here
> >> > https://we.tl/t-tvldlmkVw3
> >> >
> >> > First I have imported the shape in PERMANENT
> >> >
> >> > and I do : v.extract --verbose input=CLC12_FR_RGF at PERMANENT
> >> where=CODE_12 IN (111,112,131,311,312,313,324) output=clc12
> >> >
> >> > Hope it helps you...
> >>
> >> import of the shapefile with v.in.ogr takes here 5 minutes
> >> v.extract takes here 27 seconds instead of 1 hour
> >>
> >> "here" means a laptop with Intel Core i7 4th generation and standard
> >> SATA SSD, i.e. no fancy new high-speed system at all.
> >>
> >> I am afraid this does not help you. What could take long is writing
> >> attributes, depending on the database connection. I am using the
> >> default sqlite database.
> >>
> >> You could use top to check if v.extract is running at 100%.
> >
> > Hello Markus,
> >
> > Thank you for your help.
> >
> > I'm trying to do again the operation on local machine. I want fisrt,
> > create a vector with only selected data (on full France area). But
> > I've met a problem with v.extract.
> >
> > v.extract --overwrite --verbose input=CLC12_FR_RGF at PERMANENT type=area
> > where=CODE_12 IN (111,112,121,311,312,313,324)
> > output=CLC12_FR_RGF_BOISBATI at PERMANENT
> > Loading categories from table <CLC12_FR_RGF>...
> > DBMI-DBF erreur de pilote :
> > SQL parser error (syntax error, unexpected NAME processing
> > 'IN') in statement:
> > SELECT cat FROM CLC12_FR_RGF WHERE CODE_12 IN
> > (111,112,121,311,312,313,324)
> > Unable to open cursor.
> > DBMI-DBF erreur de pilote :
> > SQL parser error (syntax error, unexpected NAME processing
> > 'IN') in statement:
> > SELECT cat FROM CLC12_FR_RGF WHERE CODE_12 IN
> > (111,112,121,311,312,313,324)
> > Unable to open cursor.
> > ERROR: Unable select records from table <CLC12_FR_RGF>
> >
> > It looks that grass does not recognized "IN" sql condition. If I force
> > layer=-1, it runs bur the output vector is the same as input one.
> >
> > Am I wrong somewhere ? I use Grass 7.4.2 on debian9.
> >
> > Thank you for your help.
> >
> > Frank
> >
> Hi,
>
> I've repeated the operation v.in.ogr and v.extract with success on
> different grass mapset, but I get always the same error (on v.extract :
> see above) only with one of my local grass mapset (PERMANENT). I do not
> understand what happens...

In the current mapset, the default database connection must not be DBF. You
can reset the default database connection to sqlite with

db.connect -d
After that verify with
db.connect -p
that sqlite is indeed the default database connection.

Now you can repeat with v.in.ogr + v.extract

Markus M
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20181106/90cc5ea3/attachment.html>


More information about the grass-user mailing list