[GRASS-user] partial vector copy to smaller territory

Markus Metz markus.metz.giswork at gmail.com
Wed Nov 7 05:14:08 PST 2018


On Wed, Nov 7, 2018 at 11:18 AM Frank David <frank.david at geophom.fr> wrote:
>
> Le 06/11/2018 à 21:36, Markus Metz a écrit :
>
>
>
> 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
>
> I'm afraid it's not the problem...
>
> db.connect -d

> Pilote par défaut / base de données définie à :
> pilote : sqlite
> base : /media/hdd1/grassdata/France_L93/PERMANENT/sqlite/sqlite.db
> (Wed Nov  7 10:46:01 2018) La commande s'est terminée (0 sec)

> (Wed Nov  7 10:46:29 2018)

> db.connect -p

> driver: sqlite
> database: /media/hdd1/grassdata/France_L93/PERMANENT/sqlite/sqlite.db
> schema:
> group:
>
> and when execute v.extract I get the same error...

Have you re-imported the vector?
What is the output of v.db.connect map=CLC12_FR_RGF -p
The "IN" SQL syntax works only if the vector CLC12_FR_RGF is not using dbf.
You must make sure with "v.db.connect map=CLC12_FR_RGF -p" that
CLC12_FR_RGF is really using sqlite as database driver.

HTH,

Markus M

>
> I have tested again the same operation in other mapset than PERMANENT,
and it works. I don't understand... if any idea ?...
>
> Cheers,
> Frank
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20181107/44ef6c7e/attachment-0001.html>


More information about the grass-user mailing list