I am working with vector layers (points) composed of more than 100 000 geometries. These layers are originally in a PostGis database and I import them with v.in.ogr, using a formulation like:
This command is successful, however, operations with the resulting points layer are remarkably slow. For instance, this layer must be later loaded in R and that operation alone is taking over 3 hours.
After some back-and-forth testing, I identified the problem: v.in.ogr is not saving its output in the internal GRASS SQLite database. Knowing this, I can create a copy of the original output, that is automatically inserted into the SQLite database, e.g.:
g.copy vector=points,points_mirror
Importing the points_mirror layer to R takes 3 minutes instead of 3 hours, for instance.
While mirroring vectors imported with v.in.ogr solves the issue, it is an inelegant solution that also takes up unnecessary space. I would prefer to instruct v.in.ogr somehow to force it to use the SQLite database. I could not find any reference in the manual, is it possible to do?
I am working with vector layers (points) composed of more than 100 000 geometries. These layers are originally in a PostGis database and I import them with v.in.ogr, using a formulation like:
This command is successful, however, operations with the resulting points layer are remarkably slow. For instance, this layer must be later loaded in R and that operation alone is taking over 3 hours.
After some back-and-forth testing, I identified the problem: v.in.ogr is not saving its output in the internal GRASS SQLite database. Knowing this, I can create a copy of the original output, that is automatically inserted into the SQLite database, e.g.:
g.copy vector=points,points_mirror
Importing the points_mirror layer to R takes 3 minutes instead of 3 hours, for instance.
Which GRASS version are you using? This should not happen with recent versions of GRASS 7.4 and 7.6.
Markus M
While mirroring vectors imported with v.in.ogr solves the issue, it is an inelegant solution that also takes up unnecessary space. I would prefer to instruct v.in.ogr somehow to force it to use the SQLite database. I could not find any reference in the manual, is it possible to do?
I am working with vector layers (points) composed of more than 100 000 geometries. These layers are originally in a PostGis database and I import them with v.in.ogr, using a formulation like:
This command is successful, however, operations with the resulting points layer are remarkably slow. For instance, this layer must be later loaded in R and that operation alone is taking over 3 hours.
After some back-and-forth testing, I identified the problem: v.in.ogr is not saving its output in the internal GRASS SQLite database. Knowing this, I can create a copy of the original output, that is automatically inserted into the SQLite database, e.g.:
g.copy vector=points,points_mirror
Importing the points_mirror layer to R takes 3 minutes instead of 3 hours, for instance.
Which GRASS version are you using? This should not happen with recent versions of GRASS 7.4 and 7.6.
Markus M
While mirroring vectors imported with v.in.ogr solves the issue, it is an inelegant solution that also takes up unnecessary space. I would prefer to instruct v.in.ogr somehow to force it to use the SQLite database. I could not find any reference in the manual, is it possible to do?