Skip to main content
Tweeted twitter.com/#!/StackGIS/status/287907087835619329
added 31 characters in body
Source Link
CaptDragon
  • 13.4k
  • 7
  • 55
  • 96

I'm a new user of Quantum GIS (1.7.3) and I need to repeat a task multiple times, so I'm wondering if there is a quicker way to do the following (with three or more polygon layers - each layer has a single polygon):

  1. Union
  2. Dissolve
  3. Buffer

The effect will be to have three separate single-polygons shapefiles merged into one (larger) single polygon shapefile, with a buffer around it.

Answers in PostGIS would be useful too as my data is stored there. Thanks!

Edit: Adding PostGIS information

The multiple polygons I want to Union-Dissolve-Buffer are the result of a catchment basin point table that I've created in PostGIS, converted (in R) to an alpha-hull (i.e. concave hull) polygon shapefile using the CRAN alphahull package. To create the original catchment table in PostGIS, for example, I do this:

CREATE TABLE catchment_10304 as
select 
    id,
    geom_4269,
    (select sum(cost) from (
       SELECT * FROM shortest_path('
       SELECT gid AS id,
          start_id::int4 AS source,
          end_id::int4 AS target,
          newcost::float8 AS cost
       FROM network',
       10304,
       id,
       false,
       false)) as foo ) as cost
from node;

CREATE TABLE catchment1_10304 AS 
SELECT * FROM catchment_10304 WHERE cost < 1364;
CREATE TABLE catchment_10304 as
select 
    id,
    geom_4269,
    (select sum(cost) from (
       SELECT * FROM shortest_path('
       SELECT gid AS id,
          start_id::int4 AS source,
          end_id::int4 AS target,
          newcost::float8 AS cost
       FROM network',
       10304,
       id,
       false,
       false)) as foo ) as cost
from node;

CREATE TABLE catchment1_10304 AS 
SELECT * FROM catchment_10304 WHERE cost < 1364;

Then I do it for three different nodes (representing the boundaries of a region). To create the total catchment area for the region, I want to Union-dissolve-buffer with the three or more individual catchment area tables.

I'm a new user of Quantum GIS (1.7.3) and I need to repeat a task multiple times, so I'm wondering if there is a quicker way to do the following (with three or more polygon layers - each layer has a single polygon):

  1. Union
  2. Dissolve
  3. Buffer

The effect will be to have three separate single-polygons shapefiles merged into one (larger) single polygon shapefile, with a buffer around it.

Answers in PostGIS would be useful too as my data is stored there. Thanks!

Edit: Adding PostGIS information

The multiple polygons I want to Union-Dissolve-Buffer are the result of a catchment basin point table that I've created in PostGIS, converted (in R) to an alpha-hull (i.e. concave hull) polygon shapefile using the CRAN alphahull package. To create the original catchment table in PostGIS, for example, I do this:

CREATE TABLE catchment_10304 as
select 
    id,
    geom_4269,
    (select sum(cost) from (
       SELECT * FROM shortest_path('
       SELECT gid AS id,
          start_id::int4 AS source,
          end_id::int4 AS target,
          newcost::float8 AS cost
       FROM network',
       10304,
       id,
       false,
       false)) as foo ) as cost
from node;

CREATE TABLE catchment1_10304 AS 
SELECT * FROM catchment_10304 WHERE cost < 1364;

Then I do it for three different nodes (representing the boundaries of a region). To create the total catchment area for the region, I want to Union-dissolve-buffer with the three or more individual catchment area tables.

I'm a new user of Quantum GIS (1.7.3) and I need to repeat a task multiple times, so I'm wondering if there is a quicker way to do the following (with three or more polygon layers - each layer has a single polygon):

  1. Union
  2. Dissolve
  3. Buffer

The effect will be to have three separate single-polygons shapefiles merged into one (larger) single polygon shapefile, with a buffer around it.

Answers in PostGIS would be useful too as my data is stored there. Thanks!

Edit: Adding PostGIS information

The multiple polygons I want to Union-Dissolve-Buffer are the result of a catchment basin point table that I've created in PostGIS, converted (in R) to an alpha-hull (i.e. concave hull) polygon shapefile using the CRAN alphahull package. To create the original catchment table in PostGIS, for example, I do this:

CREATE TABLE catchment_10304 as
select 
    id,
    geom_4269,
    (select sum(cost) from (
       SELECT * FROM shortest_path('
       SELECT gid AS id,
          start_id::int4 AS source,
          end_id::int4 AS target,
          newcost::float8 AS cost
       FROM network',
       10304,
       id,
       false,
       false)) as foo ) as cost
from node;

CREATE TABLE catchment1_10304 AS 
SELECT * FROM catchment_10304 WHERE cost < 1364;

Then I do it for three different nodes (representing the boundaries of a region). To create the total catchment area for the region, I want to Union-dissolve-buffer with the three or more individual catchment area tables.

added PostGIS information
Source Link
baha-kev
  • 321
  • 1
  • 7

I'm a new user of Quantum GIS (1.7.3) and I need to repeat a task multiple times, so I'm wondering if there is a quicker way to do the following (with three or more polygon layers - each layer has a single polygon):

  1. Union
  2. Dissolve
  3. Buffer

The effect will be to have three separate single-polygons shapefiles merged into one (larger) single polygon shapefile, with a buffer around it.

Answers in PostGIS would be useful too as my data is stored there. Thanks!

Edit: Adding PostGIS information

The multiple polygons I want to Union-Dissolve-Buffer are the result of a catchment basin point table that I've created in PostGIS, converted (in R) to an alpha-hull (i.e. concave hull) polygon shapefile using the CRAN alphahull package. To create the original catchment table in PostGIS, for example, I do this:

CREATE TABLE catchment_10304 as
select 
    id,
    geom_4269,
    (select sum(cost) from (
       SELECT * FROM shortest_path('
       SELECT gid AS id,
          start_id::int4 AS source,
          end_id::int4 AS target,
          newcost::float8 AS cost
       FROM network',
       10304,
       id,
       false,
       false)) as foo ) as cost
from node;

CREATE TABLE catchment1_10304 AS 
SELECT * FROM catchment_10304 WHERE cost < 1364;

Then I do it for three different nodes (representing the boundaries of a region). To create the total catchment area for the region, I want to Union-dissolve-buffer with the three or more individual catchment area tables.

I'm a new user of Quantum GIS (1.7.3) and I need to repeat a task multiple times, so I'm wondering if there is a quicker way to do the following (with three or more polygon layers - each layer has a single polygon):

  1. Union
  2. Dissolve
  3. Buffer

The effect will be to have three separate single-polygons shapefiles merged into one (larger) single polygon shapefile, with a buffer around it.

Answers in PostGIS would be useful too as my data is stored there. Thanks!

I'm a new user of Quantum GIS (1.7.3) and I need to repeat a task multiple times, so I'm wondering if there is a quicker way to do the following (with three or more polygon layers - each layer has a single polygon):

  1. Union
  2. Dissolve
  3. Buffer

The effect will be to have three separate single-polygons shapefiles merged into one (larger) single polygon shapefile, with a buffer around it.

Answers in PostGIS would be useful too as my data is stored there. Thanks!

Edit: Adding PostGIS information

The multiple polygons I want to Union-Dissolve-Buffer are the result of a catchment basin point table that I've created in PostGIS, converted (in R) to an alpha-hull (i.e. concave hull) polygon shapefile using the CRAN alphahull package. To create the original catchment table in PostGIS, for example, I do this:

CREATE TABLE catchment_10304 as
select 
    id,
    geom_4269,
    (select sum(cost) from (
       SELECT * FROM shortest_path('
       SELECT gid AS id,
          start_id::int4 AS source,
          end_id::int4 AS target,
          newcost::float8 AS cost
       FROM network',
       10304,
       id,
       false,
       false)) as foo ) as cost
from node;

CREATE TABLE catchment1_10304 AS 
SELECT * FROM catchment_10304 WHERE cost < 1364;

Then I do it for three different nodes (representing the boundaries of a region). To create the total catchment area for the region, I want to Union-dissolve-buffer with the three or more individual catchment area tables.

Source Link
baha-kev
  • 321
  • 1
  • 7

Union, Dissolve, Buffer -- multiple layers, all in one step?

I'm a new user of Quantum GIS (1.7.3) and I need to repeat a task multiple times, so I'm wondering if there is a quicker way to do the following (with three or more polygon layers - each layer has a single polygon):

  1. Union
  2. Dissolve
  3. Buffer

The effect will be to have three separate single-polygons shapefiles merged into one (larger) single polygon shapefile, with a buffer around it.

Answers in PostGIS would be useful too as my data is stored there. Thanks!