[postgis-users] Noob request - using ST_SimplifyPreserveTopology() on Tiger Data

Christian Guirreri christian at guirreri.com
Tue Jun 28 12:00:47 PDT 2011


OK works- thanks.

So I'm learning now about the difference between what MapShaper does and
what ST_Stimplify does. Is there any way to make sure that simplified
boundary lines will match other boundary lines? i.e. even the smallest
simplifications (like 0.05) produces very visible gaps between adjacent
districts.



On Tue, Jun 28, 2011 at 1:12 PM, Sandro Santilli <strk at keybit.net> wrote:

> Christian,
> I suggest you create a new geometry field w/out enforcing type constraints
> on it, write the simplified version in there and then see what you get.
>
> --strk;
>
> On Tue, Jun 28, 2011 at 12:15:13PM -0400, Christian Guirreri wrote:
> > Same error. Tried both Polygon and Multipolygon. I'm not sure which the
> > Tiger Data is.
> >
> > On Tue, Jun 28, 2011 at 11:41 AM, Ben Madin
> > <lists at remoteinformation.com.au>wrote:
> >
> > > Christian,
> > >
> > > My guess here is that because you've told the geometry to be a
> > > MULTIPOLYGON, but you may have returned a POLYGON, you have indeed
> violated
> > > the check constraint on the geometry type.
> > >
> > > try using st_multi() to get around it, as in :
> > >
> > > update public.tl_2010_us_cd111 set simple_geom =
> > > ST_Multi(ST_SimplifyPreserveTopology(the_geom, 15));
> > >
> > >
> > > cheers
> > >
> > > Ben
> > >
> > >
> > >
> > > On 28/06/2011, at 11:23 PM, Christian Guirreri wrote:
> > >
> > > I get the following error:
> > > ERROR: new row for relation "tl_2010_us_cd111" violates check
> constraint
> > > "enforce_geotype_simple_geom"
> > > SQL state: 23514
> > >
> > > Here's my SQL:
> > > select addGeometryColumn('public', 'tl_2010_us_cd111', 'simple_geom',
> 4326,
> > > 'MULTIPOLYGON', 2);
> > > update public.tl_2010_us_cd111 set simple_geom =
> > > ST_SimplifyPreserveTopology(the_geom, 15);
> > >
> > >
> > > On Mon, Jun 27, 2011 at 2:07 PM, Stephen Woodbridge <
> > > woodbri at swoodbridge.com> wrote:
> > >
> > >> On 6/27/2011 1:37 PM, Christian Guirreri wrote:
> > >>
> > >>> I'm trying to do something fairly simple. I'd like to take the Tiger
> > >>> 2010 Data - tl_2010_us_cd111 and tl_2010_us_county10 - and create
> shape
> > >>> files that are considerably smaller and more simplified. In the past
> > >>> I've just used MapShaper and been OK with that, but I was having
> trouble
> > >>> uploading tl_2010_us_county10 into it and I've decided its time to
> learn
> > >>> some GIS basics anyway.
> > >>>
> > >>> I've definitely successfully setup my environment - PostegreSQL 9
> with
> > >>> PostGIS. I've used the shp2pgsql wizard included with pgadmin to
> import
> > >>> the data sets into their own databases, without the "Load Geography
> > >>> column" checked. I've been able to export this data back to shp
> > >>> using pgsql2shp and view the resulting shp in QuantumGIS and ACDSee
> > >>> Canvas.
> > >>>
> > >>> But when it comes to simplification - I'm not sure where to even
> > >>> start. I'm no database expert beyond some simple mysql so GIS is
> > >>> especially overwhelming. I only know that I want to
> > >>> use ST_SimplifyPreserveTopology() as I'm fairly certain a number of
> > >>> things will disappear if I don't.
> > >>>
> > >>> Would love if someone could provide me with the SQL to make this
> happen!
> > >>>
> > >>
> > >> First you should understand that ST_SimplifyPreserveTopology() works
> on a
> > >> single geometry at a time and not on multiple geometries in a
> coverage. The
> > >> difference is in a coverage the the polygons that share a common edge
> that
> > >> is simplified would continue to have a common simplified edge. When
> polygons
> > >> are simplified individually with knowledge of the adjacent polygons it
> is
> > >> possible for gaps and overlaps to occur along the simplified edge.
> > >> ST_SimplifyPreserveTopology() is designed to try and minimize these
> effects
> > >> but there are no guarantees.
> > >>
> > >> You might try something like:
> > >>
> > >> select addGeometryColum('myschema', 'mytable', 'simple_geom', 4326,
> > >> 'MULTIPOLYGON', 2);
> > >> update myschema.mytable set simple_geom =
> ST_SimplifyPreserveTopology(**the_geom,
> > >> <tolerance>);
> > >>
> > >> where <tolerance> is replaces by an appropriate value. This will
> depend on
> > >> the some trial and error. The above assume srid=4326 which is probably
> not a
> > >> good projection for doing simplification so you might want to project
> your
> > >> data into some other UTM or Mercator projection depending on your
> coverage
> > >> area and tolerance needs to be set with respect to those units.
> > >>
> > >> -Steve W
> > >> ______________________________**_________________
> > >> postgis-users mailing list
> > >> postgis-users at postgis.**refractions.net<
> postgis-users at postgis.refractions.net>
> > >> http://postgis.refractions.**net/mailman/listinfo/postgis-**users<
> http://postgis.refractions.net/mailman/listinfo/postgis-users>
> > >>
> > >
> > > _______________________________________________
> > > postgis-users mailing list
> > > postgis-users at postgis.refractions.net
> > > http://postgis.refractions.net/mailman/listinfo/postgis-users
> > >
> > >
> > >
> > > _______________________________________________
> > > postgis-users mailing list
> > > postgis-users at postgis.refractions.net
> > > http://postgis.refractions.net/mailman/listinfo/postgis-users
> > >
> > >
>
> > _______________________________________________
> > postgis-users mailing list
> > postgis-users at postgis.refractions.net
> > http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>
> --
>
>  ()   Free GIS & Flash consultant/developer
>  /\   http://strk.keybit.net/services.html
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20110628/e95c93b7/attachment.html>


More information about the postgis-users mailing list