No offence taken on my side ;-)

Do you think sedona-common could broaden its scope to non cluster technologies? 
In Baremaps, we assumed that a few TBs of vector data can now easily be 
processed efficiently on a single node with a lot of RAM and NVMe SSDs. Our 
current implementation uses Postgis and is good enough for our use case. I 
turned to Calcite ST functions with the hope to process large chunks of 
memory-mapped data faster directly in the JVM. I didn’t turned to Sedona as it 
looked closely tied to spark and flink (I may be wrong). That being said, I 
believe the implementation of the ST functions might be shared and independent 
of a cluster technology (via a module?) and then bindings could be developed on 
a case by case basis.

Best,

Bertil


> On 2 Feb 2024, at 10:39, Jia Yu <ji...@apache.org> wrote:
> 
> Hi all (removing non-geospatial projects from the loop),
> 
> Just to clarify about the mission of the Apache Sedona project and make sure 
> nobody gets offended by my words before :-)
> 
> First of all, sedona-common is not a replacement of JTS at all. I also 
> contribute to JTS. Instead, sedona-common is more like a enhancer for JTS, 
> GeoTools, (and Apache SIS soon) when it comes to Spatial SQL.
> 
> Secondly, the mission of the Sedona project itself is to bring PostGIS-style 
> Spatial SQL to all cluster computation engines. Sedona also makes sure that 
> ST functions behave the same as PostGIS. Eventually we want Sedona ST 
> functions to achieve 100% parity with PostGIS. This requires lots of work in 
> the sedona-common module. Some people might think PostGIS is just a wrapper 
> around GEOS. In fact, it is not.
> 
> Thanks,
> Jia
> 
> On Thu, Feb 1, 2024 at 11:15 PM Bertil Chapuis <bchap...@gmail.com 
> <mailto:bchap...@gmail.com>> wrote:
>> Hi Jia,
>> 
>>> This is awesome. However, although Flink depends on Calcite, the
>>> SpatialType does not seem to be supported by Flink (based on my test
>>> last year). Not sure if this works for Drill. Please correct me if I'm
>>> wrong.
>> 
>> This may be related to the version of calcite used by Flink (1.32) [1]. If I 
>> recall correctly, this version implemented the changes related to JTS and 
>> most of the functions came later.
>> 
>> 
>> flink/flink-table/pom.xml at 0779c91e581dc16c4aef61d6cc27774f11495907 · 
>> apache/flink
>> github.com
>>  
>> <https://github.com/apache/flink/blob/0779c91e581dc16c4aef61d6cc27774f11495907/flink-table/pom.xml#L81>flink/flink-table/pom.xml
>>  at 0779c91e581dc16c4aef61d6cc27774f11495907 · apache/flink 
>> <https://github.com/apache/flink/blob/0779c91e581dc16c4aef61d6cc27774f11495907/flink-table/pom.xml#L81>
>> github.com 
>> <https://github.com/apache/flink/blob/0779c91e581dc16c4aef61d6cc27774f11495907/flink-table/pom.xml#L81>
>>> On a side note, why don't we implement all geometric computation
>>> logics in Sedona and Calcite simply wraps around Sedona-common (of
>>> course JTS too)? Sedona implements many more functions in addition to
>>> JTS: 
>>> https://github.com/apache/sedona/tree/master/common/src/main/java/org/apache/sedona/common
>>> 
>>> This way, we don't reinvent the wheel. Moreover, Sedona is a
>>> spatial-as-the-first-class-citizen project. We can receive way more
>>> contributions and make a huge impact.
>> 
>> Thank a lot for the pointer. We should definitively find ways to collaborate 
>> more on this topic. I’m not sure I will be able to attend the codesprint in 
>> person, but I would be really interested to exchange remotely if it is 
>> possible.
>> 
>> Best,
>> 
>> Bertil
>> 
>>> Thanks,
>>> Jia
>>> 
>>> On Thu, Feb 1, 2024 at 10:25 PM Bertil Chapuis <bchap...@gmail.com 
>>> <mailto:bchap...@gmail.com>> wrote:
>>>> 
>>>> Hello Jia and Charles,
>>>> 
>>>> I'm really interested in this topic as well. Apache Calcite transitionned 
>>>> from ESRI Geometry to JTS, and many ST functions have been implemented 
>>>> there as well [1, 2, 3]. Sharing experiences and code could benefit all 
>>>> projects.
>>>> 
>>>> I haven’t looked into the details of each project, but from what I 
>>>> understand, Sedona depends on Calcite through Flink, and Drill depends 
>>>> directly on Calcite. Is that correct? Since these functions are available 
>>>> in Calcite’s core, it means they may already be available in the 
>>>> respective class paths.
>>>> 
>>>> Best regards,
>>>> 
>>>> Bertil
>>>> 
>>>> [1] 
>>>> https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/runtime/SpatialTypeFunctions.java
>>>> [2] 
>>>> https://github.com/apache/calcite/blob/main/core/src/test/resources/sql/spatial.iq
>>>> [3] 
>>>> https://calcite.apache.org/docs/reference.html#geometry-conversion-functions-2d
>>>> 
>>>> 
>>>>> On 2 Feb 2024, at 06:47, Jia Yu <ji...@apache.org 
>>>>> <mailto:ji...@apache.org>> wrote:
>>>>> 
>>>>> Hi Charles,
>>>>> 
>>>>> This is Jia Yu from Apache Sedona. I think what you did is fantastic.
>>>>> As a project of this Joint codespring, I am proposing to implement a
>>>>> comprehensive set of spatial functions to Apache Drill using Apache
>>>>> Sedona.
>>>>> 
>>>>> Apache Sedona has implemented over 130 ST functions and a
>>>>> high-performance geometry serializer in pure Java. All these functions
>>>>> have been ported to Apache Spark, Apache Flink and Snowflake. They are
>>>>> being downloaded over 1.5 million times per month.
>>>>> 
>>>>> This porting process is fairly simple. Let's take Sedona on Apache
>>>>> Flink as an example:
>>>>> 
>>>>> 1. Call a Sedona java function in a UDF template:
>>>>> https://github.com/apache/sedona/blob/master/flink/src/main/java/org/apache/sedona/flink/expressions/Functions.java
>>>>> 2. Register this function in a catalog file:
>>>>> https://github.com/apache/sedona/blob/master/flink/src/main/java/org/apache/sedona/flink/Catalog.java
>>>>> 
>>>>> What do you think?
>>>>> 
>>>>> Thanks,
>>>>> Jia
>>>>> 
>>>>> On Thu, Feb 1, 2024 at 2:44 PM Charles Givre <cgi...@gmail.com 
>>>>> <mailto:cgi...@gmail.com>> wrote:
>>>>>> 
>>>>>> Hi Martin,
>>>>>> Thanks for sending.  I'd love for Drill to be included in this.  I have 
>>>>>> a question for you.  A while ago, I started work on a collection of UDFs 
>>>>>> for interacting with H3 Geo Indexes.  I'm not an expert on this but 
>>>>>> would this be useful?  Here's the repo: 
>>>>>> https://github.com/datadistillr/drill-h3-udf   If someone would like to 
>>>>>> collaborate to complete this and get it integrated, I'm all for that.
>>>>>> Best,
>>>>>> -- C
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>> On Jan 31, 2024, at 10:20, Martin Desruisseaux 
>>>>>>> <martin.desruisse...@geomatys.com 
>>>>>>> <mailto:martin.desruisse...@geomatys.com>> wrote:
>>>>>>> 
>>>>>>> Hello all
>>>>>>> 
>>>>>>> The Open Geospatial Consortium (OGC), The Apache Software Foundation 
>>>>>>> (ASF) and The Open Source Geospatial Foundation (OSGeo) hold a join 
>>>>>>> code sprint on February 26 to 28 [1]. The main goals are to support the 
>>>>>>> development of open standards for geospatial information and to support 
>>>>>>> the development of free and open source software which implements those 
>>>>>>> standards, as well as creating awareness about the standards and 
>>>>>>> software projects. This is the fourth year that this joint code sprint 
>>>>>>> is organized, and this year will be physically located in Évora 
>>>>>>> (Portugal). The event can also be attended on-line. Registration is 
>>>>>>> free [2].
>>>>>>> 
>>>>>>> Apache SIS, Sedona, Baremaps, Parquet, Drill and Camel projects 
>>>>>>> participated in the past. It would be great if participation was 
>>>>>>> possible this year too. Some ideas could be:
>>>>>>> 
>>>>>>> * Experiment the use of Apache SIS in Sedona for referencing and grid
>>>>>>> coverage services (could be a join effort between Sedona and SIS
>>>>>>> developers).
>>>>>>> * Any work related to Geoparquet [3] (an incubating OGC standard based
>>>>>>> on Apache Parquet).
>>>>>>> * Any work related to Drill GIS functions [4].
>>>>>>> * Any work related to Camel Geocoder [5]. For example, exploring the
>>>>>>> pertinence of using the ISO 19112 standard (could be a join effort
>>>>>>> between Camel and GeoAPI developers).
>>>>>>> 
>>>>>>> If anyone is interested, the wiki page [1] can be edited directly. If 
>>>>>>> particular you can add your project in the "Which Apache projects are 
>>>>>>> going to participate?" section. If an introduction to a project can be 
>>>>>>> presented as a tutorial, it can also be added in the "Mentor streams" 
>>>>>>> section of [1].
>>>>>>> 
>>>>>>>   Martin
>>>>>>> 
>>>>>>> [1]https://github.com/opengeospatial/developer-events/wiki/2024-Joint-OGC-%E2%80%93-OSGeo-%E2%80%93-ASF-Code-Sprint
>>>>>>> [2]https://developer.ogc.org/sprints/23/
>>>>>>> [3]https://geoparquet.org/
>>>>>>> [4]https://drill.apache.org/docs/gis-functions/
>>>>>>> [5]https://camel.apache.org/components/4.0.x/geocoder-component.html
>>>>>> 
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscr...@baremaps.apache.org 
>>>>> <mailto:dev-unsubscr...@baremaps.apache.org>
>>>>> For additional commands, e-mail: dev-h...@baremaps.apache.org 
>>>>> <mailto:dev-h...@baremaps.apache.org>
>>>>> 
>>>> 
>> 

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to