From 0b0182484852b2e54d7516e99ea22b55f7ffe83f Mon Sep 17 00:00:00 2001 From: Anshul Singhvi Date: Sun, 5 May 2024 16:53:56 -0400 Subject: [PATCH 1/3] Create paper.md --- docs/src/paper.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 docs/src/paper.md diff --git a/docs/src/paper.md b/docs/src/paper.md new file mode 100644 index 000000000..4420d295b --- /dev/null +++ b/docs/src/paper.md @@ -0,0 +1,40 @@ +# Paper + +This page will follow the JOSS template, but I'm just getting some ideas down that we can use later if required. + +## Statement of need + +!!! note + These are basically a bunch of ideas/lines that we can use, it's not fleshed out yet! + +Many full-featured geospatial libraries exist already - GEOS (and its predecessor JTS) being the main sources +from which libraries like GDAL, R's sf, Python's shapely and others obtain functionality. + +GeometryOps is able to integrate all of Julia's functionality like arbitrary float types and multiple dispatch. +This, along with being written in a high-level language like Julia, significantly lowers the barrier to entry +for new contributors. We are aiming to make impossible workflows (whether because of memory constraints, speed, +or lack of good algorithms) possible, not merely for performance improvement! + +A guiding philosophy of GeometryOps is the ability to provide choice. Consider the `segmentize` function - +users can choose whether to interpolate in linear (handled directly) or geodetic (handled by Karney's GeographicLib) +space. This is not a functionality that is available in most other libraries, where one must instead choose the library +(for example, s2 vs sf) or activate a global switch to toggle certain functionality. + +Another example of this philosophy is the `fix` interface. Users can create their own fixes, relative to their needs, and hook +those into an already known syntax. Error messages can be customized and users can potentially even have them show plots indicating +exactly where the error is. No other geometry library (to my knowledge) offers this level of flexibility. + +GeometryOps also utilizes exact predicates to return geometrically correct answers, which even GEOS does not. + +## Ongoing research projects +- CLiMA ice floes +- Alex Gardner's stuff +- Anyone else? + +## Citations + +- Core Julia packages: julia, ExactPredicates, GeoInterface +- Foster 2019 paper (polygon clipping) +- Hao-Sun paper (point-in-polygon) +- Previous efforts in Julia: PolygonOps.jl, ... +- From 4aec5d318550014d114d98e135eadbd4f44fb5c1 Mon Sep 17 00:00:00 2001 From: Anshul Singhvi Date: Mon, 6 May 2024 07:52:12 -0400 Subject: [PATCH 2/3] Update make.jl --- docs/make.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/make.jl b/docs/make.jl index 19efdfc6a..0e04df717 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -102,6 +102,7 @@ makedocs(; "Peculiarities" => "peculiarities.md", ], "Source code" => literate_pages, + "Paper" => "paper.md", ], warnonly = true, ) From bb07afdcca41afb7a417eeb48e4514151fe511ae Mon Sep 17 00:00:00 2001 From: Anshul Singhvi Date: Wed, 25 Sep 2024 15:24:01 -0700 Subject: [PATCH 3/3] Update project descriptions --- docs/src/paper.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/paper.md b/docs/src/paper.md index 4420d295b..9c3734605 100644 --- a/docs/src/paper.md +++ b/docs/src/paper.md @@ -27,8 +27,8 @@ exactly where the error is. No other geometry library (to my knowledge) offers GeometryOps also utilizes exact predicates to return geometrically correct answers, which even GEOS does not. ## Ongoing research projects -- CLiMA ice floes -- Alex Gardner's stuff +- Subzero.jl (ice floe simulation, OOM better performance than Matlab, 3x better than LibGEOS with more accurate results) using polygon intersection +- Alex Gardner's stuff (glacier tracking, statistics and forecasting) using polygonize and generic spatial predicates/set ops - Anyone else? ## Citations