[prev in list] [next in list] [prev in thread] [next in thread] 

List:       postgis-users
Subject:    Re: [postgis-users] how to select points outside polygons?
From:       Vishal Mehta <vishal.mehta () sei-us ! org>
Date:       2011-09-29 23:28:53
Message-ID: 7FA6F3BE1B6E1148914987B37A25A1DE2AA54D24B1 () MAILR023 ! mail ! lan
[Download RAW message or body]

Superb, Steve,

The second option with union worked -( the first did'nt because the geometry type of \
pca_huc was multipolygon.)

Thanks much!
Vishal

-----Original Message-----
From: postgis-users-bounces@postgis.refractions.net \
[mailto:postgis-users-bounces@postgis.refractions.net] On Behalf Of Stephen \
                Woodbridge
Sent: Thursday, September 29, 2011 4:21 PM
To: postgis-users@postgis.refractions.net
Subject: Re: [postgis-users] how to select points outside polygons?

On 9/29/2011 5:55 PM, Vishal Mehta wrote:
> *Hi Steve, *
> 
> **
> 
> I tried that
> 
> select powerplants.gid, plantname
> 
> from powerplants, pca_huc
> 
> where state ='CA'
> 
> AND NOT st_contains(pca_huc.geom,powerplants.geom)
> 
> order by powerplants.gid;
> 
> but got some 44,000 rows in the result. There are 1477 powerplants
> (points) and 299 pca_huc polygons. The powerplants don't all fall 
> inside the polygons, and I want to get the list of those that fall outside.
> 
> In a desktop gis I can quickly select and see that 102 powerplants 
> fall
> outside: so I should not be getting 44,0000 rows in the result...

Ahhh! that is a different problem! you want the points the do not fall in ANY \
polygon, so you need to first union or collect all you polygons into a single object \
and then ask which point are out that object.

So maybe this will work:

select powerplants.gid, plantname
   from powerplants,
        (select st_collect(geom) as geom from pca_huc) as pca
  where state ='CA'
        AND NOT st_contains(pca.geom,powerplants.geom)
  order by powerplants.gid;

If that does not work then try:

select powerplants.gid, plantname
   from powerplants,
        (select st_union(geom) as geom from pca_huc) as pca
  where state ='CA'
        AND NOT st_contains(pca.geom,powerplants.geom)
  order by powerplants.gid;

-Steve

> V
> 
> **
> 
> **
> 
> Did you try:
> 
> 
> 
> select powerplants.gid, plantname
> 
> from powerplants, pca_huc
> 
> where state ='CA'
> 
> AND NOT st_contains(pca_huc.geom,powerplants.geom)
> 
> order by powerplants.gid;
> 
> 
> 
> This should give you all power plants in CA and not in your contains
> 
> clause. What is the coverage of pca_huc table? If this covers all of 
> CA
> 
> then there is not possible result. The would be like say where a=1 and
> 
> not a=1.
> 
> 
> 
> -Steve W
> 
> 
> 
> On 9/29/2011 1:21 PM, Vishal Mehta wrote:
> 
> > /  I have a point layer and a polygon layer. How do I select points 
> > that/
> 
> > /  are NOT contained within polygons?/
> 
> > /      /
> 
> > /  For example, this query correctly selects points contained by 
> > polygons/
> 
> > /      /
> 
> > /  --/
> 
> > /      /
> 
> > /  select powerplants.gid, plantname/
> 
> > /      /
> 
> > /  from powerplants, pca_huc/
> 
> > /      /
> 
> > /  where state ='CA'   /
> 
> > /      /
> 
> > /  AND/
> 
> > /      /
> 
> > /  st_contains(pca_huc.geom,powerplants.geom)/
> 
> > /      /
> 
> > /  order by powerplants.gid;/
> 
> > /      /
> 
> > /  --/
> 
> > /      /
> 
> > /  I tried to get the inverse selection using st_disjoint instead of/
> 
> > /  st_contains , but that did not work. I also tried using NOT and 
> > EXCEPT/
> 
> > /  without success (although I may not have constructed the latter 
> > queries/
> 
> > /  correctly..)/
> 
> > /      /
> 
> > /  Thanks!/
> 
> > /      /
> 
> > /  Vishal/
> 
> /Vishal K. Mehta <http://sei-us.org/about/staff_person/19>, Ph.D. /
> 
> /Staff Scientist, /
> 
> /Stockholm Environment Institute-US /
> 
> /400 F St, Davis, CA 95616 /
> 
> /http://sei-us.org/ /
> 
> //
> 
> 
> 
> _______________________________________________
> postgis-users mailing list
> postgis-users@postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users

_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users
_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic