<div dir="ltr"><div>Following up on my suggestion that the source data from JtsOp can be read out of the DB, and the output data copied back into it, here's an example of how to do this.  For clarity this is shown on multiple lines, but it needs to be run as a single command line.  Also, as a bonus and to show the capability of JtsOp, the output of the overlay is polygonized before being written back to the DB.  (The non-standard syntax for POLYGON EMPTY is to work around a small bug in JtsOp - going to fix that soon).</div><div><br></div><div>psql -qtA -c "SELECT * FROM ov_test_lines;" </div><div>| <JTS_HOME>/bin/jtsop.sh -a stdin -b "POLYGON (EMPTY)" -f wkb -explode OverlayNG.union 100000000 </div><div>| <JTS_HOME>/bin/jtsop.sh -a stdin -f wkb -explode Polygonize.polygonize </div><div>| psql -c "\copy ov_test_poly FROM stdin"<br></div><div><br></div><div>This expects a table "ov_test_poly" to exist with the following definition:</div><div><br></div><div>CREATE TABLE public.ov_test_poly (<br>    geom geometry(Polygon, 4326)<br>);<br></div><div><br></div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 9, 2020 at 9:07 AM Martin Davis <<a href="mailto:mtnclimb@gmail.com" target="_blank">mtnclimb@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Good that it's working for you too.<div><br></div><div>Glad you asked about scripting.  I was just going to post about a good option for doing this in a scripted way.  This uses the new JTS CLI [1][2].</div><div>(Note you will need to pull the latest overly-sr branch and rebuild, since the -explode option is newly added as of yesterday) <br></div><div><br></div><div>Here's a JtsOp command to run OverlayNG on the full dataset from a WKB file, saving the result to a file:</div><div><br></div><div><JTS HOME>/bin/jtsop.sh -a dbca_dump_116_35_117_34.wkb -b "POLYGON (EMPTY)" -f wkb -explode OverlayNG.union 100000000 > out.wkb<br></div><div><br></div><div>Alternatively the input could be sourced from a psql command-line query extracting the WKB from the DB.  That can be piped to the JtsOP command,</div><div>using the option "-a stdin".</div><div><br></div><div>And it may be possible to pipe the JtsOp WKB output back into the DB, perhaps by wrapping it with a SQL header and footer containing a COPY command?</div><div><br></div><div>If you get this working it would be nice to see the toolchain.</div><div><br></div><div>As for getting this into PostGIS, that is definitely the plan, and is being worked on right now.  Hopefully to ship by Q4 2020.</div><div></div><div><br></div><div>[1] <a href="https://github.com/locationtech/jts/blob/master/doc/JTSOp.md" target="_blank">https://github.com/locationtech/jts/blob/master/doc/JTSOp.md</a></div><div>[2] <a href="http://lin-ear-th-inking.blogspot.com/2019/08/a-cli-for-jts.html" target="_blank">http://lin-ear-th-inking.blogspot.com/2019/08/a-cli-for-jts.html</a></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 9, 2020 at 1:15 AM Jonathan Schultz <<a href="mailto:jonathan@schultz.la" target="_blank">jonathan@schultz.la</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">It seems to work OK for me too. I managed to export the result using the 'Save as XML' function, which is a bit painful but does the job. Can you suggest how difficult it would be to script the procedure?<br>
</blockquote></div>
</blockquote></div></div>