[GRASS-user] v.external and region bounding box

Hi all,

I have imported the Openstreetmap data of Italy[0] into a
Postgis/Postgres, using imposm[1].
Below are reported the table size in postgis:

         Name | Type | Owner | Size |
---------------------+-------+-------+---------|
osm_buildings | table | osm | 805 MB |
osm_landusages | table | osm | 202 MB |
osm_mainroads | table | osm | 105 MB |
osm_minorroads | table | osm | 447 MB |
osm_motorways | table | osm | 12 MB |
osm_railways | table | osm | 12 MB |

I'm using GRASS7. I connected this layers using:

v.external dsn="PG:dbname=osm" layer=osm_*

Even if my region is pretty small, around 9km x 14km, GRASS it's very
slow to load and show the data into the MapDisplay, It seem like all
the vector features are loaded without take into account the region.

If I open the same layers with QGIS, with almost the same region
dimension it's very fast to load/show the data, probably QGIS load
only the features that are in the bounding box.

How can I say to v.external to load only the geometry features that
are in the region boundingbox?

Should I do this manually, making new tables?

Pietro

ps: v.external return a Segmentation fault when I try to build the
pseudo-topology for the osm_buildings:

GRASS 7.0.svn (UTM32_WGS84):~ > v.external dsn="PG:dbname=osm"
layer=osm_buildings --overwrite
WARNING: Vector map <osm_buildings> already exists and will be overwritten
Building topology for vector map <osm_buildings@dtm_lidar>...
Using external data format 'PostgreSQL' (feature type 'geometry')
Building pseudo-topology over simple features...
Registering primitives...
Segmentation fault

[0] http://download.geofabrik.de/openstreetmap/europe/italy.osm.pbf ~530 Mb
[1] http://imposm.org/docs/imposm/latest/

Don't know if this helps, but for GSHHS world map

I have used (in 6.4.2)

ogr2ogr -clipsrc xmin ymin xmax ymax GSH_f_L1_clipped.shp GSH_f_L1

to clip before importing, then

v.in.ogr dsn=GSH_f_L1_clipped out=GSH_f_L1_clipped

Jon

Þann fimmtudagur 18 Október 2012 10:10 GMT, skrifaði Pietro <peter.zamb@gmail.com>:

Hi all,

I have imported the Openstreetmap data of Italy[0] into a
Postgis/Postgres, using imposm[1].
Below are reported the table size in postgis:

         Name | Type | Owner | Size |
---------------------+-------+-------+---------|
osm_buildings | table | osm | 805 MB |
osm_landusages | table | osm | 202 MB |
osm_mainroads | table | osm | 105 MB |
osm_minorroads | table | osm | 447 MB |
osm_motorways | table | osm | 12 MB |
osm_railways | table | osm | 12 MB |

I'm using GRASS7. I connected this layers using:

v.external dsn="PG:dbname=osm" layer=osm_*

Even if my region is pretty small, around 9km x 14km, GRASS it's very
slow to load and show the data into the MapDisplay, It seem like all

the vector features are loaded without take into account the region.

If I open the same layers with QGIS, with almost the same region
dimension it's very fast to load/show the data, probably QGIS load
only the features that are in the bounding box.

How can I say to v.external to load only the geometry features that
are in the region boundingbox?

Should I do this manually, making new tables?

Pietro

ps: v.external return a Segmentation fault when I try to build the
pseudo-topology for the osm_buildings:

GRASS 7.0.svn (UTM32_WGS84):~ > v.external dsn="PG:dbname=osm"

layer=osm_buildings --overwrite
WARNING: Vector map <osm_buildings> already exists and will be overwritten
Building topology for vector map <osm_buildings@dtm_lidar>...
Using external data format 'PostgreSQL' (feature type 'geometry')
Building pseudo-topology over simple features...
Registering primitives...
Segmentation fault

[0] http://download.geofabrik.de/openstreetmap/europe/italy.osm.pbf ~530 Mb
[1] http://imposm.org/docs/imposm/latest/
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user

On 18/10/12 12:10, Pietro wrote:

Hi all,

I have imported the Openstreetmap data of Italy[0] into a
Postgis/Postgres, using imposm[1].
Below are reported the table size in postgis:

          Name | Type | Owner | Size |
  ---------------------+-------+-------+---------|
  osm_buildings | table | osm | 805 MB |
  osm_landusages | table | osm | 202 MB |
  osm_mainroads | table | osm | 105 MB |
  osm_minorroads | table | osm | 447 MB |
  osm_motorways | table | osm | 12 MB |
  osm_railways | table | osm | 12 MB |

I'm using GRASS7. I connected this layers using:

v.external dsn="PG:dbname=osm" layer=osm_*

Even if my region is pretty small, around 9km x 14km, GRASS it's very
slow to load and show the data into the MapDisplay, It seem like all
the vector features are loaded without take into account the region.

If I open the same layers with QGIS, with almost the same region
dimension it's very fast to load/show the data, probably QGIS load
only the features that are in the bounding box.

How can I say to v.external to load only the geometry features that
are in the region boundingbox?

Should I do this manually, making new tables?

How about views ? Create views of containing only the features in your region of interest and then link to them with v.external. If you have spatial indices on your geometry columns this should be fairly rapid.

Moritz

Hi Jon and Moritz,

On Thu, Oct 18, 2012 at 1:27 PM, Moritz Lennert
<mlennert@club.worldonline.be> wrote:
[snip]

Should I do this manually, making new tables?

How about views ? Create views of containing only the features in your
region of interest and then link to them with v.external. If you have
spatial indices on your geometry columns this should be fairly rapid.

Thank you for your replay. Of course you can clip the vector maps or
create views, but I miss the point why GRASS manage the raster using
the region settings and don't take into account the region settings
for the vector maps. from my point of view It's not consistent...

And ok, let me say that we don't care the consistency, I think that at
least the d.vect command should load only the geometry features that
are contain in the bounding box of MapWindow.

Best regards.

Pietro