Hi Dominik,

I agree. The SIS/empty database approach is pushed and I removed the commend 
for fallback option.

Florian


Am Mittwoch, dem 23.11.2022 um 06:49 +0000 schrieb Dominik Riemer:
> Hi Florian,<br>
> thanks for asking!<br>
> Then I propose to stick with the Apache SIS/empty database approach and to 
> not include any ProJ4j dependencies in our source.<br>
> 
> Cheers<br>
> Dominik <br>
> 
> 
> -----Original Message-----<br>
> From: Florian Micklich <[[email protected]](mailto:[email protected])> 
> <br>
> Sent: Tuesday, November 22, 2022 10:56 PM<br>
> To: [[email protected]](mailto:[email protected])<br>
> Subject: Re: [DISCUSS] Setup for Coordinate Reference System Reprojection 
> Sources<br>
> 
> Hi Dominik,<br>
> 
> Am Dienstag, dem 22.11.2022 um 15:12 +0000 schrieb Dominik Riemer:<br>
> > Hi Florian,<br><br>
> > 
> > just to make sure I understand correctly:<br><br>
> > 
> > * There is an "SIS approach" which doesn't have any licensing issues <br>
> > as users would need to fill their own database and only Apache SIS <br>
> > dependencies are used in this approach<br><br>
> 
> 
> Yes that is correct.<br>
> 
> 
> > * There could be a fallback option which wouldn't require users to <br>
> > have their own database, but that would require pulling in Proj4j, <br>
> > which itself relies on EPSG datasets.<br><br>
> 
> Yes, that was my idea. Also to use only some basic coordinates reference 
> systems.<br>
> But I had the same question like you in mind so I wrote Martin (maintainer of 
> SIS) exactly this kind of questions.<br>
> The answer is really worth reading!  I am really surprised and amazed, 
> because most Geo Open Source programs are based on proj4.<br>
> 
> 
> > Hello Florian<br>
> > 
> > Le 22/11/2022 à 18:44, Florian Micklich a écrit :<br>
> > > 
> > > I didn't know that proj4j itself uses EPSG data.<br>
> > > 
> > The CSV files in [1] are derived from EPSG tables. The file structures <br>
> > are different than EPSG database schema, but the data that they contain <br>
> > are EPSG data. The same information is also provided in WKT format in <br>
> > [2] (this file somewhat duplicates the CSV tables). Some peoples on <br>
> > PROJ mailing list have argued that rewriting EPSG data in a different <br>
> > format free them from EPSG licensing terms, but this is not true. <br>
> > Translating a software in a different language is a derivative work and <br>
> > is still subject to the licensing terms of the copyright owner. In the <br>
> > same way that translating a book does not suppress the rights of the <br>
> > original author on the translated book. In the case of EPSG data, IOGP <br>
> > allows us to reformat the data in a different way, but under some <br>
> > conditions specified in their Terms of Use. And doing so does not give <br>
> > us the right to erase the EPSG terms of use from the derivative work.<br>
> > 
> > The value of EPSG geodetic dataset is not in the database schema <br>
> > (converting that to a different data structure is the easy part), but <br>
> > in the data themselves. Creating a new "EPSG-like" dataset from scratch <br>
> > would be a huge effort, well beyond our capability. We would have to <br>
> > visit all national mapping agencies in the world, ask them to provide <br>
> > documentation about the Coordinate Reference System they have defined <br>
> > (including historical ones), consolidate all those information in some <br>
> > tables, etc. So the CSV files [1] in PROJ4 contain an enormous amount <br>
> > of EPSG work, even if the data structures are different.<br>
> > 
> > [1][https://github.com/locationtech/proj4j/tree/master/src/main/resource](https://github.com/locationtech/proj4j/tree/master/src/main/resource)<br>
> > s/proj4 <br>
> > [2][https://raw.githubusercontent.com/locationtech/proj4j/master/src/mai](https://raw.githubusercontent.com/locationtech/proj4j/master/src/mai)<br>
> > n/resources/proj4/wkt/epsg.properties<br>
> > 
> > > 
> > > Until now I thought it would be a good alternative lib besides EPSG <br>
> > > approach.<br>
> > > 
> > When creating a Coordinate Reference System (CRS) from an EPSG code <br>
> > such as "EPSG:4326", we are using the EPSG geodetic dataset. I think <br>
> > that if a software contains e.g. 10 EPSG codes (compared to the ~6000 <br>
> > definitions in the full dataset), it could be considered Fair Use. But <br>
> > including the full dataset requires that we comply with EPSG Terms Of 
> > Use.<br>
> > 
> > However if CRS are created from user-supplied WKT strings (or PROJ4 <br>
> > parameter strings), then no EPSG code is involved. The WKT definition <br>
> > string may contain an AUTHORITY["EPSG", 4326] element, but it only <br>
> > means "see EPSG:4326 for more complete information".<br>
> > 
> > > 
> > > So what would be your advise with proj4(j) and how to handle that <br>
> > > kind of implementation in an Apache project?<br>
> > > 
> > EPSG geodetic dataset is not needed when the CRS is built from WKT, GML <br>
> > or some file formats like NetCDF and some (not all) GeoTIFF files. So <br>
> > the approach taken in Apache SIS applications (JavaFX and console<br>
> > application) is to start without EPSG data. Then the first time that an <br>
> > EPSG code is really needed, the application popups a dialog box (in<br>
> > JavaFX) or an interactive prompt (in console application) asking users <br>
> > if they want to download the EPSG geodetic dataset. If users click <br>
> > "yes", the EPSG Terms of Use is shown and the application asks users if <br>
> > they accept. If they confirm, then the EPSG geodetic dataset is <br>
> > downloaded and a database is created locally.<br>
> > 
> > Note that above procedure is needed only for software downloaded <br>
> > directly from Apache servers. Anyone can bundle an application outside <br>
> > Apache which contains the Apache software + EPSG data. The only <br>
> > condition for being allowed to do that is to include the EPSG Terms of <br>
> > Use (in addition of Apache license) in the application bundle.<br>
> > 
> > > 
> > > Officially it is running on MIT license.<br>
> > > 
> > Yes, this issue has been raised on their mailing list. PROJ maintainers <br>
> > have choose to ignore. Some of them pretended that EPSG Terms of Use do <br>
> > not apply to them anymore because they converted the PostgreSQL scripts <br>
> > to SQLite scripts. I'm not a lawyer, but I think that this argument has <br>
> > zero chance to hold in court. For now they rely on the fact that IOGP <br>
> > (the owner of EPSG database) does not want to upset the geodetic 
> > community.<br>
> > 
> >     Martin<br>
> 
> Exploding Head Smiley :-D<br>
> 
> Greetings<br>
> Florian<br>
> 
> > 
> > Is this correct?<br><br>
> > 
> > Cheers<br><br>
> > Dominik<br><br>
> > 
> > 
> > -----Original Message-----<br><br>
> > From: Florian Micklich <br>
> > <[[[email protected]](mailto:[email protected])](mailto:[[email protected]](mailto:[email protected]))>
> >  <br><br>
> > Sent: Tuesday, November 22, 2022 2:59 PM<br><br>
> > To: <br>
> > [[[email protected]](mailto:[email protected])](mailto:[[email protected]](mailto:[email protected]))<br><br>
> > Subject: Re: [DISCUSS] Setup for Coordinate Reference System <br>
> > Reprojection Sources<br><br>
> > 
> > Hi,<br><br>
> > 
> > I found an interesting post regarding proj4j.<br> That's why I prefer <br>
> > the SIS approach with external database.<br> What do you think about <br>
> > the mentioned "copyright infringement" opinion?<br><br>
> > 
> > PROJ claims to be under MIT license, but in my understanding this is <br>
> > copyright infringement. PROJ license should be MIT + EPSG terms of <br>
> > use.<br><br>
> > 
> > The whole post is:<br><br>
> > > 
> > > Proj4J (and its parent PROJ project) includes EPSG data, so the use <br>
> > > of <br> Proj4J dependency implies accepting EPSG terms of use [1]. <br>
> > > PROJ claims <br> to be under MIT license, but in my understanding <br>
> > > this is copyright <br> infringement. PROJ license should be MIT + <br>
> > > EPSG terms of use.<br><br>
> > > 
> > > EPSG terms of use is a Category X license for Apache. The use of <br>
> > > EPSG <br> data has been discussed in Apache Legal [2][3]. The <br>
> > > conclusion was <br> that an Apache project can include EPSG data if <br>
> > > they are optional <br> (i.e. the application can still do useful <br>
> > > work without them), the main <br> release does not contain them, and <br>
> > > the data are available in a <br> separated download prominently <br>
> > > labelled as under a more restrictive <br> license than Apache.<br><br>
> > > 
> > > [1][[https://epsg.org/terms-of-use.html](https://epsg.org/terms-of-us](https://epsg.org/terms-of-use.html](https://epsg.org/terms-of-us)<br>
> > > e.html)<br><br>
> > > 
> > > [2][[https://issues.apache.org/jira/browse/LEGAL-183](https://issues](https://issues.apache.org/jira/browse/LEGAL-183](https://issues).<br>
> > > apache.org/jira/browse/LEGAL-183)<br><br>
> > > 
> > > [3][[https://issues.apache.org/jira/browse/LEGAL-347](https://issues](https://issues.apache.org/jira/browse/LEGAL-347](https://issues).<br>
> > > apache.org/jira/browse/LEGAL-347)<br><br>
> > > 
> > 
> > 
> > 
> > 
> > Am Freitag, dem 18.11.2022 um 22:27 +0100 schrieb Florian <br>
> > Micklich:<br><br>> 
> > > Hi,<br><br><br>
> > > 
> > > the basic sis implementation is done :)<br> I created a pull request <br>
> > > <br> [1] and happy about any feedback.<br><br><br>
> > > 
> > > 
> > > Form the fallback options I created this ticket [2]<br><br><br>
> > > 
> > > Florian<br><br><br>
> > > 
> > > [1] <br><br>
> > > [[[https://github.com/apache/streampipes/pull/146](https://github.com](https://github.com/apache/streampipes/pull/146](https://github.com)<br>
> > > /ap]([https://github.com/apache/streampipes/pull/146](https://github](https://github.com/apache/streampipes/pull/146](https://github).<br>
> > > com/ap)<br> ache/streampipes/pull/146)<br> [2]  <br> <br>
> > > [[[https://issues.apache.org/jira/browse/STREAMPIPES-638](https://iss](https://issues.apache.org/jira/browse/STREAMPIPES-638](https://iss)<br>
> > > ues]([https://issues.apache.org/jira/browse/STREAMPIPES-638](https://](https://issues.apache.org/jira/browse/STREAMPIPES-638](https://)<br>
> > > issues)<br> .apache.org/jira/browse/STREAMPIPES-638)<br><br><br>
> > > 
> > > 
> > > Am Montag, dem 31.10.2022 um 13:23 +0100 schrieb Florian <br>
> > > Micklich:<br><br>><br>> > 
> > > > Hi,<br><br><br><br>
> > > > 
> > > > I updated the Jira Ticket and described the setup little bit <br> <br>
> > > > more.<br><br> If my intellij is working I can run some last tests <br>
> > > > on <br> the base implementation.<br><br><br><br>
> > > > 
> > > > My thoughts for the setup implementation:<br><br><br><br>
> > > > 
> > > > The setup could be visible in the Configuration -> Pipeline <br>
> > > > Element <br> Configuration and if the service is available due <br>
> > > > correct setup and <br> scripts import.<br><br> (see picture in <br>
> > > > jira ticket <br><br><br><br>
> > > > 
> > > > 
> > > > To have still a plug and play system by default, we could <br>
> > > > implement <br> a "fallback" projection system with a limited EPSG <br>
> > > > Codes.<br><br> <br> Therefore we could use  proj4j [2].<br><br> So <br>
> > > > for example we allow <br> the user to select just a bunch of valid <br>
> > > > codes from a list <br> somewhere.<br><br><br><br>
> > > > 
> > > > 
> > > > [1] <br><br>
> > > > [[[[https://github.com/locationtech/proj4j](https://github.com/loca](https://github.com/locationtech/proj4j](https://github.com/loca)<br>
> > > > tio]([https://github.com/locationtech/proj4j](https://github.com/lo](https://github.com/locationtech/proj4j](https://github.com/lo)<br>
> > > > catio)<br> <br>
> > > > ntech/proj4j)]([[https://github.com/locationtech/proj4j](https://gi](https://github.com/locationtech/proj4j](https://gi)<br>
> > > > thu]([https://github.com/locationtech/proj4j](https://githu)](https://github.com/locationtech/proj4j](https://githu))<br><br>
> > > > b.com/locationtech/proj4j))<br><br><br><br>
> > > > 
> > > > What do you think?<br><br><br><br>
> > > > Greetings<br><br><br><br>
> > > > Florian<br><br><br><br>
> > > > 
> > > > Am Montag, dem 19.09.2022 um 10:18 +0200 schrieb Florian <br> <br>
> > > > Micklich:<br><br>><br>> ><br>> > > 
> > > > > Hi Philipp,<br><br><br><br><br>
> > > > > 
> > > > > ok, maybe we can have a deeper discussion next week.<br><br><br> <br>
> > > > > I <br> am on vacation this week without computer  <br>
> > > > > :)<br><br><br><br><br>
> > > > > 
> > > > > With dataSource I mean the "Registration by Java code" as <br> <br>
> > > > > describet here [1].<br><br><br> I startet to write that code <br>
> > > > > <br> yesterday but was not able to check it due another <br> <br>
> > > > > issue.<br><br><br><br><br>
> > > > > 
> > > > > Florian<br><br><br><br><br>
> > > > > 
> > > > > 
> > > > > [1] <br><br>
> > > > > [[[[[https://sis.apache.org/epsg.html](https://sis.apache.org/eps](https://sis.apache.org/epsg.html](https://sis.apache.org/eps)<br>
> > > > > g.h]([https://sis.apache.org/epsg.html](https://sis.apache.org/ep](https://sis.apache.org/epsg.html](https://sis.apache.org/ep)<br>
> > > > > sg.h)<br> <br>
> > > > > tml)]([[https://sis.apache.org/epsg.html](https://sis.apache.org/](https://sis.apache.org/epsg.html](https://sis.apache.org/)<br>
> > > > > eps]([https://sis.apache.org/epsg.html](https://sis.apache.org/ep](https://sis.apache.org/epsg.html](https://sis.apache.org/ep)<br>
> > > > > s)<br> <br>
> > > > > g.html))]([[https://sis.apache.org/epsg.html](https://sis.apache](https://sis.apache.org/epsg.html](https://sis.apache).<br>
> > > > > org]([https://sis.apache.org/epsg.html](https://sis.apache.org)](https://sis.apache.org/epsg.html](https://sis.apache.org))<b<br>
> > > > > r> <br>
> > > > > /epsg.html)]([[https://sis.apache.org/epsg.html](https://sis.apac](https://sis.apache.org/epsg.html](https://sis.apac)<br>
> > > > > he]([https://sis.apache.org/epsg.html](https://sis.apache)](https://sis.apache.org/epsg.html](https://sis.apache)).<br><br>
> > > > > org/epsg.html)))<br><br><br><br><br>
> > > > > 
> > > > > 
> > > > > ⁣BlueMail for Android herunterladen ​<br><br><br><br><br>
> > > > > 
> > > > > Am 19. Sept. 2022, 07:23, um 07:23, Philipp Zehnder <br> <br>
> > > > > <[[[[[[email protected]](mailto:[email protected])](mailto:philipp.zehnder@bytef<br>
> > > > > abrik.ai)](mailto:philipp.zehnder@bytefabr<br><br>
> > > > > ik.ai)](mailto:[[[[email protected]](mailto:[email protected])](mailto:philipp.z<br>
> > > > > [[email protected]](mailto:[email protected]))](mailto:philipp.zehn<br><br>
> > > > > [[[email protected]](mailto:[email protected])](mailto:[[email protected]](mailto:[email protected]))))](mailto:[[[phili<br>
> > > > > [[email protected]](mailto:[email protected])](mailto:[[email protected]](mailto:[email protected]))]<br>
> > > > > (mailt<br> <br>
> > > > > o:[[[email protected]](mailto:[email protected])](mailto:philipp.zehnder@bytefab<br>
> > > > > rik.ai))](mailto:[philipp.zehnder@bytefabr<br><br>
> > > > > ik.ai](mailto:[[[email protected]](mailto:[email protected])](mailto:philipp.zeh<br>
> > > > > [[email protected]](mailto:[email protected])))))> 
> > > > > schrieb:<br><br>> <br> <br>> ><br>> > ><br>> > > > 
> > > > > > Hi Florian,<br><br><br><br><br>
> > > > > > 
> > > > > > thanks for opening the issue.<br><br><br> I really like the <br>
> > > > > > <br> illustration, something like this would also be <br> <br>
> > > > > > great<br><br><br> for the documentation of the processing <br> <br>
> > > > > > elements.<br><br><br><br><br>
> > > > > > 
> > > > > > As for the workflow, I'm not quite sure how we can handle <br>
> > > > > > that. <br> Because<br><br><br> so far, the idea is that the <br>
> > > > > > system is plug <br> and play.<br><br><br> The normal ‘user’ <br>
> > > > > > should not have to <br> configure things on the <br>
> > > > > > system<br><br><br> before it is <br> used.<br><br><br> My <br>
> > > > > > suggestion would be to have a separate <br> service that can <br>
> > > > > > optionally<br><br><br> be integrated by <br> manually adding <br>
> > > > > > it to the docker-compose.<br><br><br> In this <br> docker <br>
> > > > > > service a volume mapping would be required. If the <br> <br>
> > > > > > files<br><br><br> are missing a message should be printed to <br>
> > > > > > the <br> logs.<br><br><br><br><br>
> > > > > > 
> > > > > > What do you mean by connection source?<br><br><br><br><br>
> > > > > > 
> > > > > > Cheers,<br><br><br><br><br>
> > > > > > Philipp<br><br><br><br><br>
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > Von: Florian Micklich <br><br>
> > > > > > <[[[[[[email protected]](mailto:[email protected])](mailto:florian.mick<br>
> > > > > > [[email protected]](mailto:[email protected]))](mailto:florian.micklic<br><br>
> > > > > > [[[email protected]](mailto:[email protected])](mailto:[[email protected]](mailto:[email protected])))](mailto<br>
> > > > > > :[[[[email protected]](mailto:[email protected])](mailto:florian.micklich@m<br>
> > > > > > ailbox.org.INV)<br> <br>
> > > > > > ALID](mailto:[[[email protected]](mailto:[email protected])](mailto:flo<br>
> > > > > > [[email protected]](mailto:[email protected]))))](mailto:[[fl<br><br>
> > > > > > [[[email protected]](mailto:[email protected])](mailto:orian.micklich@mai<br>
> > > > > > lbox.org.INVALID)](mailto:florian.micklich@mail<br><br>
> > > > > > box.org.INVALID)](mailto:[[[[email protected]](mailto:[email protected])<br>
> > > > > > D](mailto:[[email protected]](mailto:[email protected]))](<br><br>
> > > > > > mailto:[[[email protected]](mailto:[email protected])](mailto:florian.m<br>
> > > > > > [[email protected]](mailto:[email protected])))))><br><br><br><br><br>
> > > > > > Datum: Sonntag, 18. September 2022 um 12:44<br><br><br><br><br>
> > > > > > An: dev <br><br>
> > > > > > <[[[[[[email protected]](mailto:[email protected])](mailto:[[email protected]](mailto:[email protected])<br>
> > > > > > .org)](mailto:[[[email protected]](mailto:[email protected])](mailto:dev@streampip<br>
> > > > > > es.apache.or)<br> <br>
> > > > > > g)](mailto:[[[[email protected]](mailto:[email protected])](mailto:dev@streampipe<br>
> > > > > > s.apache.org)](mailto:[[[email protected]](mailto:[email protected])](mailto:dev@streampip<br>
> > > > > > es.a)<br> <br>
> > > > > > pache.org))](mailto:[[[[[email protected]](mailto:[email protected])](mailto:dev@<br>
> > > > > > streampipes.apache.org)](mailto:dev@str<br><br>
> > > > > > eampipes.apache.org)](mailto:[[[[email protected]](mailto:[email protected])](mai<br>
> > > > > > lto:[[email protected]](mailto:[email protected]))](mailto<br><br>
> > > > > > :[[[email protected]](mailto:[email protected])](mailto:[[email protected]](mailto:[email protected])<br>
> > > > > > g))))><br><br><br><br><br>
> > > > > > Betreff: [DISCUSS] Setup for Coordinate Reference System <br> <br>
> > > > > > Reprojection<br><br><br> Sources<br><br><br> Hi <br> <br>
> > > > > > everybody,<br><br><br><br><br>
> > > > > > 
> > > > > > I created a Ticket [1] to implement projection handling for <br>
> > > > > > <br> geo<br><br><br> operations.<br><br><br><br><br>
> > > > > > 
> > > > > > User case.:<br><br><br><br><br>
> > > > > > 
> > > > > > Reproject betwwen WGS84 (with units Degree) to UTM (Unit <br> <br>
> > > > > > meter).<br><br><br> With meter you can do calculations , which <br>
> > > > > > <br> needs a metric Unit system<br><br><br> e.g. area <br>
> > > > > > calculation, <br> everything with distance and so <br>
> > > > > > on.<br><br><br><br><br>
> > > > > > 
> > > > > > I also added a short wortkflow picture for better <br>
> > > > > > understanding <br> and a<br><br><br> docker-compose file for <br>
> > > > > > SP <br> Service.<br><br><br><br><br>
> > > > > > 
> > > > > > While I am working on the processor itself, I have a couple <br>
> > > > > > <br> of<br><br><br> questions and would need support for <br>
> > > > > > implementing <br> everything in the the<br><br><br> SP UI and <br>
> > > > > > discuss best ways <br> how to set up!<br><br><br><br><br>
> > > > > > 
> > > > > > Any ideas or questions?<br><br><br><br><br>
> > > > > > 
> > > > > > Greetings<br><br><br><br><br>
> > > > > > Florian<br><br><br><br><br>
> > > > > > 
> > > > > > [1] <br><br>
> > > > > > [[[[[https://issues.apache.org/jira/browse/STREAMPIPES-584](htt](https://issues.apache.org/jira/browse/STREAMPIPES-584](htt)<br>
> > > > > > ps]([https://issues.apache.org/jira/browse/STREAMPIPES-584](htt](https://issues.apache.org/jira/browse/STREAMPIPES-584](htt)<br>
> > > > > > ps):<br> <br>
> > > > > > //issues.apache.org/jira/browse/STREAMPIPES-584)]([[https://iss](https://iss)<br>
> > > > > > ues]([https://issues](https://issues))<br> <br>
> > > > > > .apache.org/jira/browse/STREAMPIPES-584]([[https://issues.apach](https://issues.apach)<br>
> > > > > > e.o]([https://issues.apache.o](https://issues.apache.o))<br> <br>
> > > > > > rg/jira/browse/STREAMPIPES-584))]([[https://issues.apache.org/j](https://issues.apache.org/j)<br>
> > > > > > ira]([https://issues.apache.org/jira](https://issues.apache.org/jira))<br><br>
> > > > > > /browse/STREAMPIPES-584]([[https://issues.apache.org/jira/brows](https://issues.apache.org/jira/brows)<br>
> > > > > > e/S]([https://issues.apache.org/jira/browse/S](https://issues.apache.org/jira/browse/S))<br><br>
> > > > > > TREAMPIPES-584)]([[https://issues.apache.org/jira/browse/STREAM](https://issues.apache.org/jira/browse/STREAM)<br>
> > > > > > PIP]([https://issues.apache.org/jira/browse/STREAMPIP](https://issues.apache.org/jira/browse/STREAMPIP))<br><br>
> > > > > > ES-584]([[https://issues.apache.org/jira/browse/STREAMPIPES-584](https://issues.apache.org/jira/browse/STREAMPIPES-584)<br>
> > > > > > ]([https://issues.apache.org/jira/browse/STREAMPIPES-584](https://issues.apache.org/jira/browse/STREAMPIPES-584)))))<br<br>>
> > > > > >  > > > > 
> > > > > > > 
> > > > > > <br><br><br><br><br>

Reply via email to