PostGIS Symmetrical Difference The Next CEO of Stack OverflowSeparate polygons based on intersection using PostGISSeeking PostGIS equivalent to GeoPandas union overlay?How to relate Non-Spatial table to Spatial table in two different Postgis DBs?How to compare geometry in PostGiS?Adding Nodes to Linestrings at Overlapping Points with Polygon Layer in SpatialiteError when creating new view using ST_Union (PostGIS)greatest-n-per-group comparing geometry PostgisDifference between PostGIS ST_Intersects vs '=', QGIS and ArcGIS 'select by location'PostGIS ST_Intersects vs ArcGIS Select by LocationImproving the speed of a Postgis spatial queryUsing st_intersects between tables in PostGIS?Seeking PostGIS equivalent to GeoPandas union overlay?

My boss doesn't want me to have a side project

How to show a landlord what we have in savings?

Incomplete cube

How should I connect my cat5 cable to connectors having an orange-green line?

Are British MPs missing the point, with these 'Indicative Votes'?

My ex-girlfriend uses my Apple ID to login to her iPad, do I have to give her my Apple ID password to reset it?

What happens if you break a law in another country outside of that country?

Is a distribution that is normal, but highly skewed, considered Gaussian?

Raspberry pi 3 B with Ubuntu 18.04 server arm64: what chip

What day is it again?

Could a dragon use its wings to swim?

Cannot restore registry to default in Windows 10?

Masking layers by a vector polygon layer in QGIS

Why did the Drakh emissary look so blurred in S04:E11 "Lines of Communication"?

Plausibility of squid whales

What did the word "leisure" mean in late 18th Century usage?

How does a dynamic QR code work?

How dangerous is XSS

Calculating discount not working

Could you use a laser beam as a modulated carrier wave for radio signal?

Is it OK to decorate a log book cover?

May one celebrate April fools day?

What are the unusually-enlarged wing sections on this P-38 Lightning?

How can the PCs determine if an item is a phylactery?



PostGIS Symmetrical Difference



The Next CEO of Stack OverflowSeparate polygons based on intersection using PostGISSeeking PostGIS equivalent to GeoPandas union overlay?How to relate Non-Spatial table to Spatial table in two different Postgis DBs?How to compare geometry in PostGiS?Adding Nodes to Linestrings at Overlapping Points with Polygon Layer in SpatialiteError when creating new view using ST_Union (PostGIS)greatest-n-per-group comparing geometry PostgisDifference between PostGIS ST_Intersects vs '=', QGIS and ArcGIS 'select by location'PostGIS ST_Intersects vs ArcGIS Select by LocationImproving the speed of a Postgis spatial queryUsing st_intersects between tables in PostGIS?Seeking PostGIS equivalent to GeoPandas union overlay?










3















Related question



I have two tables in PostGIS, each with two features(rows) and a rectangular geometry (polygon).



enter image description here



I would like to obtain the Symmetrical Difference from those two layers so that the result would be:



enter image description here



the resulting table has the attributes from the first table (df1), or the second (df2)



enter image description here



However when I try to use ST_SymDifference in PostGIS I get a different result:



CREATE TABLE test.symdifference_v04 AS
SELECT
test.df1.df1,
test.df2.df2,
ST_SymDifference(test.df1.geom,test.df2.geom)
FROM test.df1, test.df2


enter image description here



It seems that the ST_SymDifference is applied on a polygon to polygon basis i.e. df1 row 1 vs df2 row 1

df1 row 1 vs df2 row 2

df1 row 2 vs df2 row 1

df1 row 2 vs df2 row 2



with Multipolygons as a result.



enter image description hereenter image description hereenter image description hereenter image description here



How would I obtain the first mentioned result with the 6 polygons (fancy colors) instead of the 4 multiploygons in PostGIS?










share|improve this question


























    3















    Related question



    I have two tables in PostGIS, each with two features(rows) and a rectangular geometry (polygon).



    enter image description here



    I would like to obtain the Symmetrical Difference from those two layers so that the result would be:



    enter image description here



    the resulting table has the attributes from the first table (df1), or the second (df2)



    enter image description here



    However when I try to use ST_SymDifference in PostGIS I get a different result:



    CREATE TABLE test.symdifference_v04 AS
    SELECT
    test.df1.df1,
    test.df2.df2,
    ST_SymDifference(test.df1.geom,test.df2.geom)
    FROM test.df1, test.df2


    enter image description here



    It seems that the ST_SymDifference is applied on a polygon to polygon basis i.e. df1 row 1 vs df2 row 1

    df1 row 1 vs df2 row 2

    df1 row 2 vs df2 row 1

    df1 row 2 vs df2 row 2



    with Multipolygons as a result.



    enter image description hereenter image description hereenter image description hereenter image description here



    How would I obtain the first mentioned result with the 6 polygons (fancy colors) instead of the 4 multiploygons in PostGIS?










    share|improve this question
























      3












      3








      3


      1






      Related question



      I have two tables in PostGIS, each with two features(rows) and a rectangular geometry (polygon).



      enter image description here



      I would like to obtain the Symmetrical Difference from those two layers so that the result would be:



      enter image description here



      the resulting table has the attributes from the first table (df1), or the second (df2)



      enter image description here



      However when I try to use ST_SymDifference in PostGIS I get a different result:



      CREATE TABLE test.symdifference_v04 AS
      SELECT
      test.df1.df1,
      test.df2.df2,
      ST_SymDifference(test.df1.geom,test.df2.geom)
      FROM test.df1, test.df2


      enter image description here



      It seems that the ST_SymDifference is applied on a polygon to polygon basis i.e. df1 row 1 vs df2 row 1

      df1 row 1 vs df2 row 2

      df1 row 2 vs df2 row 1

      df1 row 2 vs df2 row 2



      with Multipolygons as a result.



      enter image description hereenter image description hereenter image description hereenter image description here



      How would I obtain the first mentioned result with the 6 polygons (fancy colors) instead of the 4 multiploygons in PostGIS?










      share|improve this question














      Related question



      I have two tables in PostGIS, each with two features(rows) and a rectangular geometry (polygon).



      enter image description here



      I would like to obtain the Symmetrical Difference from those two layers so that the result would be:



      enter image description here



      the resulting table has the attributes from the first table (df1), or the second (df2)



      enter image description here



      However when I try to use ST_SymDifference in PostGIS I get a different result:



      CREATE TABLE test.symdifference_v04 AS
      SELECT
      test.df1.df1,
      test.df2.df2,
      ST_SymDifference(test.df1.geom,test.df2.geom)
      FROM test.df1, test.df2


      enter image description here



      It seems that the ST_SymDifference is applied on a polygon to polygon basis i.e. df1 row 1 vs df2 row 1

      df1 row 1 vs df2 row 2

      df1 row 2 vs df2 row 1

      df1 row 2 vs df2 row 2



      with Multipolygons as a result.



      enter image description hereenter image description hereenter image description hereenter image description here



      How would I obtain the first mentioned result with the 6 polygons (fancy colors) instead of the 4 multiploygons in PostGIS?







      postgis geopandas symmetricdifference






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 13 '18 at 14:01









      RutgerHRutgerH

      1,390922




      1,390922




















          1 Answer
          1






          active

          oldest

          votes


















          1














          This query should help you solve the problem:



          variant 1 -



          1) Combine two tables into one



          DROP TABLE table3;
          CREATE TABLE table3 as
          SELECT table1.geom FROM table1
          UNION ALL
          SELECT table2.geom FROM table2


          2) Remove unwanted parts:



          CREATE TABLE table4 as
          SELECT (ST_Dump(ST_SymDifference(a.geom, b.geom))).geom
          FROM table3 a,
          table1 b
          WHERE ST_Overlaps(a.geom, b.geom)
          UNION ALL
          SELECT (ST_Dump(ST_SymDifference(a.geom, b.geom))).geom
          FROM table3 a,
          table2 b
          WHERE ST_Overlaps(a.geom, b.geom)


          3) Cross the table itself:



          CREATE TABLE table5 AS
          SELECT (ST_Dump(ST_Difference(a.geom, b.geom))).geom
          FROM table4 a,
          table4 b
          WHERE ST_Overlaps(a.geom, b.geom) OR ST_Intersects(a.geom, b.geom)



          4) to remove the same geometry;

          5) Remove the central small squares, and L - shaped parts



          6) figure of the 11 items, 6 your, 5 not your...



          enter image description here



          Interesting geometric puzzle: -) ...






          share|improve this answer




















          • 1





            can you style your comment please?

            – RutgerH
            Nov 13 '18 at 15:25







          • 1





            the result is almost correct except that there is no middle hole.

            – RutgerH
            Nov 13 '18 at 15:31











          • Variant 2 more elegant and simple offer from Jeff - gis.stackexchange.com/questions/83/…

            – Cyril
            yesterday











          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "79"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f302458%2fpostgis-symmetrical-difference%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          This query should help you solve the problem:



          variant 1 -



          1) Combine two tables into one



          DROP TABLE table3;
          CREATE TABLE table3 as
          SELECT table1.geom FROM table1
          UNION ALL
          SELECT table2.geom FROM table2


          2) Remove unwanted parts:



          CREATE TABLE table4 as
          SELECT (ST_Dump(ST_SymDifference(a.geom, b.geom))).geom
          FROM table3 a,
          table1 b
          WHERE ST_Overlaps(a.geom, b.geom)
          UNION ALL
          SELECT (ST_Dump(ST_SymDifference(a.geom, b.geom))).geom
          FROM table3 a,
          table2 b
          WHERE ST_Overlaps(a.geom, b.geom)


          3) Cross the table itself:



          CREATE TABLE table5 AS
          SELECT (ST_Dump(ST_Difference(a.geom, b.geom))).geom
          FROM table4 a,
          table4 b
          WHERE ST_Overlaps(a.geom, b.geom) OR ST_Intersects(a.geom, b.geom)



          4) to remove the same geometry;

          5) Remove the central small squares, and L - shaped parts



          6) figure of the 11 items, 6 your, 5 not your...



          enter image description here



          Interesting geometric puzzle: -) ...






          share|improve this answer




















          • 1





            can you style your comment please?

            – RutgerH
            Nov 13 '18 at 15:25







          • 1





            the result is almost correct except that there is no middle hole.

            – RutgerH
            Nov 13 '18 at 15:31











          • Variant 2 more elegant and simple offer from Jeff - gis.stackexchange.com/questions/83/…

            – Cyril
            yesterday















          1














          This query should help you solve the problem:



          variant 1 -



          1) Combine two tables into one



          DROP TABLE table3;
          CREATE TABLE table3 as
          SELECT table1.geom FROM table1
          UNION ALL
          SELECT table2.geom FROM table2


          2) Remove unwanted parts:



          CREATE TABLE table4 as
          SELECT (ST_Dump(ST_SymDifference(a.geom, b.geom))).geom
          FROM table3 a,
          table1 b
          WHERE ST_Overlaps(a.geom, b.geom)
          UNION ALL
          SELECT (ST_Dump(ST_SymDifference(a.geom, b.geom))).geom
          FROM table3 a,
          table2 b
          WHERE ST_Overlaps(a.geom, b.geom)


          3) Cross the table itself:



          CREATE TABLE table5 AS
          SELECT (ST_Dump(ST_Difference(a.geom, b.geom))).geom
          FROM table4 a,
          table4 b
          WHERE ST_Overlaps(a.geom, b.geom) OR ST_Intersects(a.geom, b.geom)



          4) to remove the same geometry;

          5) Remove the central small squares, and L - shaped parts



          6) figure of the 11 items, 6 your, 5 not your...



          enter image description here



          Interesting geometric puzzle: -) ...






          share|improve this answer




















          • 1





            can you style your comment please?

            – RutgerH
            Nov 13 '18 at 15:25







          • 1





            the result is almost correct except that there is no middle hole.

            – RutgerH
            Nov 13 '18 at 15:31











          • Variant 2 more elegant and simple offer from Jeff - gis.stackexchange.com/questions/83/…

            – Cyril
            yesterday













          1












          1








          1







          This query should help you solve the problem:



          variant 1 -



          1) Combine two tables into one



          DROP TABLE table3;
          CREATE TABLE table3 as
          SELECT table1.geom FROM table1
          UNION ALL
          SELECT table2.geom FROM table2


          2) Remove unwanted parts:



          CREATE TABLE table4 as
          SELECT (ST_Dump(ST_SymDifference(a.geom, b.geom))).geom
          FROM table3 a,
          table1 b
          WHERE ST_Overlaps(a.geom, b.geom)
          UNION ALL
          SELECT (ST_Dump(ST_SymDifference(a.geom, b.geom))).geom
          FROM table3 a,
          table2 b
          WHERE ST_Overlaps(a.geom, b.geom)


          3) Cross the table itself:



          CREATE TABLE table5 AS
          SELECT (ST_Dump(ST_Difference(a.geom, b.geom))).geom
          FROM table4 a,
          table4 b
          WHERE ST_Overlaps(a.geom, b.geom) OR ST_Intersects(a.geom, b.geom)



          4) to remove the same geometry;

          5) Remove the central small squares, and L - shaped parts



          6) figure of the 11 items, 6 your, 5 not your...



          enter image description here



          Interesting geometric puzzle: -) ...






          share|improve this answer















          This query should help you solve the problem:



          variant 1 -



          1) Combine two tables into one



          DROP TABLE table3;
          CREATE TABLE table3 as
          SELECT table1.geom FROM table1
          UNION ALL
          SELECT table2.geom FROM table2


          2) Remove unwanted parts:



          CREATE TABLE table4 as
          SELECT (ST_Dump(ST_SymDifference(a.geom, b.geom))).geom
          FROM table3 a,
          table1 b
          WHERE ST_Overlaps(a.geom, b.geom)
          UNION ALL
          SELECT (ST_Dump(ST_SymDifference(a.geom, b.geom))).geom
          FROM table3 a,
          table2 b
          WHERE ST_Overlaps(a.geom, b.geom)


          3) Cross the table itself:



          CREATE TABLE table5 AS
          SELECT (ST_Dump(ST_Difference(a.geom, b.geom))).geom
          FROM table4 a,
          table4 b
          WHERE ST_Overlaps(a.geom, b.geom) OR ST_Intersects(a.geom, b.geom)



          4) to remove the same geometry;

          5) Remove the central small squares, and L - shaped parts



          6) figure of the 11 items, 6 your, 5 not your...



          enter image description here



          Interesting geometric puzzle: -) ...







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 2 days ago

























          answered Nov 13 '18 at 15:21









          CyrilCyril

          1,1051216




          1,1051216







          • 1





            can you style your comment please?

            – RutgerH
            Nov 13 '18 at 15:25







          • 1





            the result is almost correct except that there is no middle hole.

            – RutgerH
            Nov 13 '18 at 15:31











          • Variant 2 more elegant and simple offer from Jeff - gis.stackexchange.com/questions/83/…

            – Cyril
            yesterday












          • 1





            can you style your comment please?

            – RutgerH
            Nov 13 '18 at 15:25







          • 1





            the result is almost correct except that there is no middle hole.

            – RutgerH
            Nov 13 '18 at 15:31











          • Variant 2 more elegant and simple offer from Jeff - gis.stackexchange.com/questions/83/…

            – Cyril
            yesterday







          1




          1





          can you style your comment please?

          – RutgerH
          Nov 13 '18 at 15:25






          can you style your comment please?

          – RutgerH
          Nov 13 '18 at 15:25





          1




          1





          the result is almost correct except that there is no middle hole.

          – RutgerH
          Nov 13 '18 at 15:31





          the result is almost correct except that there is no middle hole.

          – RutgerH
          Nov 13 '18 at 15:31













          Variant 2 more elegant and simple offer from Jeff - gis.stackexchange.com/questions/83/…

          – Cyril
          yesterday





          Variant 2 more elegant and simple offer from Jeff - gis.stackexchange.com/questions/83/…

          – Cyril
          yesterday

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Geographic Information Systems Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f302458%2fpostgis-symmetrical-difference%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Export of reprojected layer from GEE fails Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Iterate over features and years to export images for each feature-yearEarth engine reproject: why does reprojecting a pixel at 30m scale gives me pixels with an area of ~550?Exporting slope raster for entire country in GEEGEE Landsat SR year composite // mask cloud / shadow out w/ other method than quality pixel"export region contains no valid (un-masked) pixels - Google Earth EgineGoogle Earth Engine, how to distinguish between rivers/streams and ponds/lakes in a water maskPython script tool fails when processing rainfall data from Google Earth EngineGoogle Earth Engine Error: Number of pixels requested from Image.load exceeds the maximum allowedCloudfree images in small area from Sentinel-2Using Image exportToDrive in Google Earth Engine?

          Creating closest line along the point''s azimuth using PostgreSQL Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Drawing line between points at specific distance in PostGIS?How to efficiently find the closest point over the dateline?How to find the nearest point by using PostGIS function?PostGIS nearest point with LATERAL JOIN in PostgreSQL 9.3+Creating a table and inserting selected streets using plpgsql functionsCreating a table that stores Distances and other columnSaving select query results (year wise) from PostgreSQL/PostGIS to text filesWhat is the information behind this geometry?How to give start and end vertex ids dynamically in pgr_dijkstra?Point to Polygon nearest distance DS_distance is not using geography index & knn <-> or <#> does not give result in orderLine to point conversion with start point and end point detection?

          Crop image to path created in TikZ? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Crop an inserted image?TikZ pictures does not appear in posterImage behind and beyond crop marks?Tikz picture as large as possible on A4 PageTransparency vs image compression dilemmaHow to crop background from image automatically?Image does not cropTikzexternal capturing crop marks when externalizing pgfplots?How to include image path that contains a dollar signCrop image with left size given