<html><head></head><body><div><div><div><div class="">Dan, thanks on behalf of the GEOSwift project and everyone who uses it, especially your work on <span style="text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;font-weight:400;" class="">thread/context-specific interrupt handlers</span>! I'm looking forward to updating to a new GEOS with these improvements soon!<br/></div></div><div><div style="display: none; border: 0px; width: 0px; height: 0px; overflow: hidden; visibility: hidden;"><img src="https://r.superhuman.com/-7l0zJgOhb-OeggVKPcXmZawVmA1nwIdsp3_1MhgAImlif_j8HJ59Hjfyig88NE-EX-FOk3MrflflUh71tE9-uOxY5DM1eEQ0e30mGrHP15E8ySZZcuoBSqzy_bgXIa3dQL1lMf92l4VcxjUSZm5f1bEf8nYQhpmrk47lg77AG4s1z56QcDL8bUwN-8g1Q.gif" alt=" " width="1" height="0" style="display: none; border: 0px; width: 0px; height: 0px; overflow: hidden; visibility: hidden;"/><!--                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --></div><br/><div class="gmail_signature"><div style="clear:both">Sent via <a href="https://sprh.mn/?vip=andrew.d.hershberger@gmail.com" target="_blank">Superhuman</a></div><br/></div></div><br/><div><div class="gmail_quote">On Mon, Feb 27, 2023 at 12:12 PM, Paul Ramsey <span dir="ltr"><<a href="mailto:pramsey@cleverelephant.ca" target="_blank">pramsey@cleverelephant.ca</a>></span> wrote:<br/><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote sh-color-black sh-color"><p class="sh-color-black sh-color">Thanks so much Dan, it’s been great having you on patrol these last few months, and the big changes you got through lay a nice foundation for the future of the library. 
</p><p class="sh-color-black sh-color">
P
</p><blockquote class="sh-color-black sh-color"><p class="sh-color-black sh-color">
On Feb 27, 2023, at 9:02 AM, Howard Butler <<a target="_blank" rel="noopener noreferrer" href="mailto:howard@hobu.co" class="sh-color-blue sh-color">howard@<wbr/>hobu.<wbr/>co</a>> wrote:
</p><blockquote class="sh-color-black sh-color"><p class="sh-color-black sh-color">
On Feb 27, 2023, at 8:32 AM, Daniel Baston <<a target="_blank" rel="noopener noreferrer" href="mailto:dbaston@gmail.com" class="sh-color-blue sh-color">dbaston@<wbr/>gmail.<wbr/>com</a>> wrote:
</p><p class="sh-color-black sh-color">
Hi All,
</p><p class="sh-color-black sh-color">
As February comes to a close, I’m winding down the GEOS maintenance work that the GDAL PSC funded in 2022 [1]. I appreciate the opportunity to do this work and am especially thankful to those who reported issues, reviewed pull requests, or participated in discussions about this work.
</p><p class="sh-color-black sh-color">
For anyone who’s interested, I wanted to share a few of the highlights from my perspective.
</p><p class="sh-color-black sh-color">
New functionality: GEOS now supports reading, writing, and overlay of geometries with an M dimension. I added a number of C API utility functions requested by client library developers: GEOSLineSubstring, GEOSEqualsIdentical, and thread/context-specific interrupt handlers. I also brought in clustering algorithms such as DBSCAN that were previously only available in PostGIS.
</p><p class="sh-color-black sh-color">
Performance enhancements: I found some nice performance wins in key GEOS algorithms such as geometry intersection testing (GEOSIntersects and GEOSPreparedIntersects), distance (GEOSPreparedDistance and GEOSPreparedDistanceWithin) and buffering complex geometries. There are also some gains in core internal classes such as CoordinateSequence and STRtree that deliver across-the-board gains.
</p><p class="sh-color-black sh-color">
Project maintenance. I was able to simplify our CI setup by removing the use of Azure and AppVeyor services and bringing the associated environments into GitHub Actions, write a harness for performance testing and visualization, and perform code cleanup such as migrating from raw to managed pointers in key classes. I resolved a number of long-standing bug reports with WKT input/output, geometry simplification, and crashes/incorrect results from multiple algorithms in edge cases such as empty geometry inputs.
</p><p class="sh-color-black sh-color">
Not everything panned out, or at least not yet. Something we’ve wanted in GEOS for a long time is the ability to create a GEOS geometry directly from an external memory buffer, such as a PostGIS LWGEOM or a GDAL OGRGeometry (“zero-copy”). I added experimental support for this, but so far I haven’t found a case where it offers much performance benefit.
</p><p class="sh-color-black sh-color">
Dan
</p><p class="sh-color-black sh-color">
[1] <a target="_blank" rel="noopener noreferrer" href="https://lists.osgeo.org/pipermail/gdal-dev/2022-February/055433.html" class="sh-color-blue sh-color">https:/<wbr/>/<wbr/>lists.<wbr/>osgeo.<wbr/>org/<wbr/>pipermail/<wbr/>gdal-dev/<wbr/>2022-February/<wbr/>055433.<wbr/>html</a>
</p></blockquote><p class="sh-color-black sh-color">
Dan,
</p><p class="sh-color-black sh-color">
Thank you so much for taking on these efforts in a way that was both reactive to the community and aligned with the stated goals of the project. The project was to move GEOS forward on topics that do not achieve outside contribution, and you took on some tough topics that reached up and down the codebase to provide easier to use APIs and performance wins that will be fun to show off in other contexts like OGR, Shapely, and PostGIS usages.
</p><p class="sh-color-black sh-color">
Thanks,
</p><p class="sh-color-black sh-color">
Howard
</p><p class="sh-color-black sh-color">
_______________________________________________
<br/>
gdal-dev mailing list
<br/>
<a target="_blank" rel="noopener noreferrer" href="mailto:gdal-dev@lists.osgeo.org" class="sh-color-blue sh-color">gdal-dev@<wbr/>lists.<wbr/>osgeo.<wbr/>org</a>
<br/>
<a target="_blank" rel="noopener noreferrer" href="https://lists.osgeo.org/mailman/listinfo/gdal-dev" class="sh-color-blue sh-color">https:/<wbr/>/<wbr/>lists.<wbr/>osgeo.<wbr/>org/<wbr/>mailman/<wbr/>listinfo/<wbr/>gdal-dev</a>
</p></blockquote><p class="sh-color-black sh-color">
_______________________________________________
<br/>
geos-devel mailing list
<br/>
<a target="_blank" rel="noopener noreferrer" href="mailto:geos-devel@lists.osgeo.org" class="sh-color-blue sh-color">geos-devel@<wbr/>lists.<wbr/>osgeo.<wbr/>org</a>
<br/>
<a target="_blank" rel="noopener noreferrer" href="https://lists.osgeo.org/mailman/listinfo/geos-devel" class="sh-color-blue sh-color">https:/<wbr/>/<wbr/>lists.<wbr/>osgeo.<wbr/>org/<wbr/>mailman/<wbr/>listinfo/<wbr/>geos-devel</a></p></div></div></blockquote></div></div><br/></div></div></body></html>