Hi Dominik,

Am Dienstag, dem 22.11.2022 um 15:12 +0000 schrieb Dominik Riemer:
> Hi Florian,<br>
> 
> just to make sure I understand correctly:<br>
> 
> * There is an "SIS approach" which doesn't have any licensing issues as users 
> would need to fill their own database and only Apache SIS dependencies are 
> used in this approach<br>


Yes that is correct.


> * There could be a fallback option which wouldn't require users to have their 
> own database, but that would require pulling in Proj4j, which itself relies 
> on EPSG datasets.<br>

Yes, that was my idea. Also to use only some basic coordinates reference 
systems.
But I had the same question like you in mind so I wrote Martin (maintainer of 
SIS) exactly this kind of questions.
The answer is really worth reading!  I am really surprised and amazed, because 
most Geo Open Source programs are based on proj4.


>Hello Florian
>
>Le 22/11/2022 à 18:44, Florian Micklich a écrit :
>
>> I didn't know that proj4j itself uses EPSG data.
>>
>The CSV files in [1] are derived from EPSG tables. The file structures 
>are different than EPSG database schema, but the data that they contain 
>are EPSG data. The same information is also provided in WKT format in 
>[2] (this file somewhat duplicates the CSV tables). Some peoples on PROJ 
>mailing list have argued that rewriting EPSG data in a different format 
>free them from EPSG licensing terms, but this is not true. Translating a 
>software in a different language is a derivative work and is still 
>subject to the licensing terms of the copyright owner. In the same way 
>that translating a book does not suppress the rights of the original 
>author on the translated book. In the case of EPSG data, IOGP allows us 
>to reformat the data in a different way, but under some conditions 
>specified in their Terms of Use. And doing so does not give us the right 
>to erase the EPSG terms of use from the derivative work.
>
>The value of EPSG geodetic dataset is not in the database schema 
>(converting that to a different data structure is the easy part), but in 
>the data themselves. Creating a new "EPSG-like" dataset from scratch 
>would be a huge effort, well beyond our capability. We would have to 
>visit all national mapping agencies in the world, ask them to provide 
>documentation about the Coordinate Reference System they have defined 
>(including historical ones), consolidate all those information in some 
>tables, etc. So the CSV files [1] in PROJ4 contain an enormous amount of 
>EPSG work, even if the data structures are different.
>
>[1]https://github.com/locationtech/proj4j/tree/master/src/main/resources/proj4
>[2]https://raw.githubusercontent.com/locationtech/proj4j/master/src/main/resources/proj4/wkt/epsg.properties
>
>
>> Until now I thought it would be a good alternative lib besides EPSG 
>> approach.
>>
>When creating a Coordinate Reference System (CRS) from an EPSG code such 
>as "EPSG:4326", we are using the EPSG geodetic dataset. I think that if 
>a software contains e.g. 10 EPSG codes (compared to the ~6000 
>definitions in the full dataset), it could be considered Fair Use. But 
>including the full dataset requires that we comply with EPSG Terms Of Use.
>
>However if CRS are created from user-supplied WKT strings (or PROJ4 
>parameter strings), then no EPSG code is involved. The WKT definition 
>string may contain an AUTHORITY["EPSG", 4326] element, but it only means 
>"see EPSG:4326 for more complete information".
>
>
>> So what would be your advise with proj4(j) and how to handle that kind 
>> of implementation in an Apache project?
>>
>EPSG geodetic dataset is not needed when the CRS is built from WKT, GML 
>or some file formats like NetCDF and some (not all) GeoTIFF files. So 
>the approach taken in Apache SIS applications (JavaFX and console 
>application) is to start without EPSG data. Then the first time that an 
>EPSG code is really needed, the application popups a dialog box (in 
>JavaFX) or an interactive prompt (in console application) asking users 
>if they want to download the EPSG geodetic dataset. If users click 
>"yes", the EPSG Terms of Use is shown and the application asks users if 
>they accept. If they confirm, then the EPSG geodetic dataset is 
>downloaded and a database is created locally.
>
>Note that above procedure is needed only for software downloaded 
>directly from Apache servers. Anyone can bundle an application outside 
>Apache which contains the Apache software + EPSG data. The only 
>condition for being allowed to do that is to include the EPSG Terms of 
>Use (in addition of Apache license) in the application bundle.
>
>
>> Officially it is running on MIT license.
>>
>Yes, this issue has been raised on their mailing list. PROJ maintainers 
>have choose to ignore. Some of them pretended that EPSG Terms of Use do 
>not apply to them anymore because they converted the PostgreSQL scripts 
>to SQLite scripts. I'm not a lawyer, but I think that this argument has 
>zero chance to hold in court. For now they rely on the fact that IOGP 
>(the owner of EPSG database) does not want to upset the geodetic community.
>
>     Martin

Exploding Head Smiley :-D

Greetings
Florian

> 
> Is this correct?<br>
> 
> Cheers<br>
> Dominik<br>
> 
> 
> -----Original Message-----<br>
> From: Florian Micklich <[[email protected]](mailto:[email protected])> 
> <br>
> Sent: Tuesday, November 22, 2022 2:59 PM<br>
> To: [[email protected]](mailto:[email protected])<br>
> Subject: Re: [DISCUSS] Setup for Coordinate Reference System Reprojection 
> Sources<br>
> 
> Hi,<br>
> 
> I found an interesting post regarding proj4j.<br>
> That's why I prefer the SIS approach with external database.<br>
> What do you think about the mentioned "copyright infringement" opinion?<br>
> 
> PROJ claims to be under MIT license, but in my understanding this is 
> copyright infringement. PROJ license should be MIT + EPSG terms of use.<br>
> 
> The whole post is:<br>
> 
> > Proj4J (and its parent PROJ project) includes EPSG data, so the use of <br>
> > Proj4J dependency implies accepting EPSG terms of use [1]. PROJ claims <br>
> > to be under MIT license, but in my understanding this is copyright <br>
> > infringement. PROJ license should be MIT + EPSG terms of use.<br>
> > 
> > EPSG terms of use is a Category X license for Apache. The use of EPSG <br>
> > data has been discussed in Apache Legal [2][3]. The conclusion was <br>
> > that an Apache project can include EPSG data if they are optional <br>
> > (i.e. the application can still do useful work without them), the main <br>
> > release does not contain them, and the data are available in a <br>
> > separated download prominently labelled as under a more restrictive <br>
> > license than Apache.<br>
> > 
> > [1][https://epsg.org/terms-of-use.html](https://epsg.org/terms-of-use.html)<br>
> > 
> > [2][https://issues.apache.org/jira/browse/LEGAL-183](https://issues.apache.org/jira/browse/LEGAL-183)<br>
> > 
> > [3][https://issues.apache.org/jira/browse/LEGAL-347](https://issues.apache.org/jira/browse/LEGAL-347)<br>
> > 
> 
> 
> 
> 
> Am Freitag, dem 18.11.2022 um 22:27 +0100 schrieb Florian Micklich:<br>
> > Hi,<br><br>
> > 
> > the basic sis implementation is done :)<br> I created a pull request <br>
> > [1] and happy about any feedback.<br><br>
> > 
> > 
> > Form the fallback options I created this ticket [2]<br><br>
> > 
> > Florian<br><br>
> > 
> > [1] <br>
> > [[https://github.com/apache/streampipes/pull/146](https://github.com/ap](https://github.com/apache/streampipes/pull/146](https://github.com/ap)<br>
> > ache/streampipes/pull/146)<br> [2]  <br>
> > [[https://issues.apache.org/jira/browse/STREAMPIPES-638](https://issues](https://issues.apache.org/jira/browse/STREAMPIPES-638](https://issues)<br>
> > .apache.org/jira/browse/STREAMPIPES-638)<br><br>
> > 
> > 
> > Am Montag, dem 31.10.2022 um 13:23 +0100 schrieb Florian Micklich:<br><br>> 
> > > Hi,<br><br><br>
> > > 
> > > I updated the Jira Ticket and described the setup little bit <br>
> > > more.<br><br> If my intellij is working I can run some last tests on <br>
> > > the base implementation.<br><br><br>
> > > 
> > > My thoughts for the setup implementation:<br><br><br>
> > > 
> > > The setup could be visible in the Configuration -> Pipeline Element <br>
> > > Configuration and if the service is available due correct setup and <br>
> > > scripts import.<br><br> (see picture in jira ticket <br><br><br>
> > > 
> > > 
> > > To have still a plug and play system by default, we could implement <br>
> > > a "fallback" projection system with a limited EPSG Codes.<br><br> <br>
> > > Therefore we could use  proj4j [2].<br><br> So for example we allow <br>
> > > the user to select just a bunch of valid codes from a list <br>
> > > somewhere.<br><br><br>
> > > 
> > > 
> > > [1] <br>
> > > [[[https://github.com/locationtech/proj4j](https://github.com/locatio](https://github.com/locationtech/proj4j](https://github.com/locatio)<br>
> > > ntech/proj4j)]([https://github.com/locationtech/proj4j](https://githu](https://github.com/locationtech/proj4j](https://githu)<br>
> > > b.com/locationtech/proj4j))<br><br><br>
> > > 
> > > What do you think?<br><br><br>
> > > Greetings<br><br><br>
> > > Florian<br><br><br>
> > > 
> > > Am Montag, dem 19.09.2022 um 10:18 +0200 schrieb Florian <br>
> > > Micklich:<br><br>><br>> > 
> > > > Hi Philipp,<br><br><br><br>
> > > > 
> > > > ok, maybe we can have a deeper discussion next week.<br><br><br> I <br>
> > > > am on vacation this week without computer  :)<br><br><br><br>
> > > > 
> > > > With dataSource I mean the "Registration by Java code" as <br>
> > > > describet here [1].<br><br><br> I startet to write that code <br>
> > > > yesterday but was not able to check it due another <br>
> > > > issue.<br><br><br><br>
> > > > 
> > > > Florian<br><br><br><br>
> > > > 
> > > > 
> > > > [1] <br>
> > > > [[[[https://sis.apache.org/epsg.html](https://sis.apache.org/epsg.h](https://sis.apache.org/epsg.html](https://sis.apache.org/epsg.h)<br>
> > > > tml)]([https://sis.apache.org/epsg.html](https://sis.apache.org/eps](https://sis.apache.org/epsg.html](https://sis.apache.org/eps)<br>
> > > > g.html))]([https://sis.apache.org/epsg.html](https://sis.apache.org](https://sis.apache.org/epsg.html](https://sis.apache.org)<br>
> > > > /epsg.html)]([https://sis.apache.org/epsg.html](https://sis.apache](https://sis.apache.org/epsg.html](https://sis.apache).<br>
> > > > org/epsg.html)))<br><br><br><br>
> > > > 
> > > > 
> > > > ⁣BlueMail for Android herunterladen ​<br><br><br><br>
> > > > 
> > > > Am 19. Sept. 2022, 07:23, um 07:23, Philipp Zehnder <br>
> > > > <[[[[[email protected]](mailto:[email protected])](mailto:philipp.zehnder@bytefabr<br>
> > > > ik.ai)](mailto:[[[email protected]](mailto:[email protected])](mailto:philipp.zehn<br>
> > > > [[email protected]](mailto:[email protected])))](mailto:[[[[email protected]](mailto:[email protected])](mailt<br>
> > > > o:[[email protected]](mailto:[email protected]))](mailto:[philipp.zehnder@bytefabr<br>
> > > > ik.ai](mailto:[[email protected]](mailto:[email protected]))))>
> > > >  schrieb:<br><br>> <br>
> > > > <br>> ><br>> > > 
> > > > > Hi Florian,<br><br><br><br>
> > > > > 
> > > > > thanks for opening the issue.<br><br><br> I really like the <br>
> > > > > illustration, something like this would also be <br>
> > > > > great<br><br><br> for the documentation of the processing <br>
> > > > > elements.<br><br><br><br>
> > > > > 
> > > > > As for the workflow, I'm not quite sure how we can handle that. <br>
> > > > > Because<br><br><br> so far, the idea is that the system is plug <br>
> > > > > and play.<br><br><br> The normal ‘user’ should not have to <br>
> > > > > configure things on the system<br><br><br> before it is <br>
> > > > > used.<br><br><br> My suggestion would be to have a separate <br>
> > > > > service that can optionally<br><br><br> be integrated by <br>
> > > > > manually adding it to the docker-compose.<br><br><br> In this <br>
> > > > > docker service a volume mapping would be required. If the <br>
> > > > > files<br><br><br> are missing a message should be printed to the <br>
> > > > > logs.<br><br><br><br>
> > > > > 
> > > > > What do you mean by connection source?<br><br><br><br>
> > > > > 
> > > > > Cheers,<br><br><br><br>
> > > > > Philipp<br><br><br><br>
> > > > > 
> > > > > 
> > > > > 
> > > > > Von: Florian Micklich <br>
> > > > > <[[[[[email protected]](mailto:[email protected])](mailto:florian.micklic<br>
> > > > > [[email protected]](mailto:[email protected]))](mailto:[[[email protected]](mailto:[email protected])<br>
> > > > > ALID](mailto:[[email protected]](mailto:[email protected])))](mailto:[[fl<br>
> > > > > [[email protected]](mailto:[email protected])](mailto:florian.micklich@mail<br>
> > > > > box.org.INVALID)](mailto:[[[email protected]](mailto:[email protected])](<br>
> > > > > mailto:[[email protected]](mailto:[email protected]))))><br><br><br><br>
> > > > > Datum: Sonntag, 18. September 2022 um 12:44<br><br><br><br>
> > > > > An: dev <br>
> > > > > <[[[[[email protected]](mailto:[email protected])](mailto:[[email protected]](mailto:[email protected])<br>
> > > > > g)](mailto:[[[email protected]](mailto:[email protected])](mailto:[[email protected]](mailto:[email protected])<br>
> > > > > pache.org))](mailto:[[[[email protected]](mailto:[email protected])](mailto:dev@str<br>
> > > > > eampipes.apache.org)](mailto:[[[email protected]](mailto:[email protected])](mailto<br>
> > > > > :[[email protected]](mailto:[email protected]))))><br><br><br><br>
> > > > > Betreff: [DISCUSS] Setup for Coordinate Reference System <br>
> > > > > Reprojection<br><br><br> Sources<br><br><br> Hi <br>
> > > > > everybody,<br><br><br><br>
> > > > > 
> > > > > I created a Ticket [1] to implement projection handling for <br>
> > > > > geo<br><br><br> operations.<br><br><br><br>
> > > > > 
> > > > > User case.:<br><br><br><br>
> > > > > 
> > > > > Reproject betwwen WGS84 (with units Degree) to UTM (Unit <br>
> > > > > meter).<br><br><br> With meter you can do calculations , which <br>
> > > > > needs a metric Unit system<br><br><br> e.g. area calculation, <br>
> > > > > everything with distance and so on.<br><br><br><br>
> > > > > 
> > > > > I also added a short wortkflow picture for better understanding <br>
> > > > > and a<br><br><br> docker-compose file for SP <br>
> > > > > Service.<br><br><br><br>
> > > > > 
> > > > > While I am working on the processor itself, I have a couple <br>
> > > > > of<br><br><br> questions and would need support for implementing <br>
> > > > > everything in the the<br><br><br> SP UI and discuss best ways <br>
> > > > > how to set up!<br><br><br><br>
> > > > > 
> > > > > Any ideas or questions?<br><br><br><br>
> > > > > 
> > > > > Greetings<br><br><br><br>
> > > > > Florian<br><br><br><br>
> > > > > 
> > > > > [1] <br>
> > > > > [[[[https://issues.apache.org/jira/browse/STREAMPIPES-584](https](https://issues.apache.org/jira/browse/STREAMPIPES-584](https):<br>
> > > > > //issues.apache.org/jira/browse/STREAMPIPES-584)]([https://issues](https://issues)<br>
> > > > > .apache.org/jira/browse/STREAMPIPES-584]([https://issues.apache.o](https://issues.apache.o)<br>
> > > > > rg/jira/browse/STREAMPIPES-584))]([https://issues.apache.org/jira](https://issues.apache.org/jira)<br>
> > > > > /browse/STREAMPIPES-584]([https://issues.apache.org/jira/browse/S](https://issues.apache.org/jira/browse/S)<br>
> > > > > TREAMPIPES-584)]([https://issues.apache.org/jira/browse/STREAMPIP](https://issues.apache.org/jira/browse/STREAMPIP)<br>
> > > > > ES-584]([https://issues.apache.org/jira/browse/STREAMPIPES-584](https://issues.apache.org/jira/browse/STREAMPIPES-584))))<br>
> > > > > <br><br><br><br>

Reply via email to