<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi,</p>
<p>as a result of this thread we had a discussion at terrestris and
started with some work (thanks Simon Seyock) and thoughts that are
documented right in the discussions board on github:<br>
</p>
<p><a href="https://github.com/mapproxy/mapproxy/discussions/890"
class="moz-txt-link-freetext">https://github.com/mapproxy/mapproxy/discussions/890</a></p>
<p>So we can easily link with the discussion board at pygeoapi (<a
href="https://github.com/geopython/pygeoapi/discussions"
class="moz-txt-link-freetext">https://github.com/geopython/pygeoapi/discussions</a>).</p>
<p>Please feel free to engage and add up to the discussion.</p>
<p>Best, Hannes<br>
</p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:8017c4a5-e66f-e80b-588c-837652d81a42@terrestris.de">
<div class="moz-forward-container"> <br>
-------- Weitergeleitete Nachricht --------
<table class="moz-email-headers-table" cellspacing="0"
cellpadding="0" border="0">
<tbody>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">Betreff:
</th>
<td>Re: [MapProxy-dev] Contributing to MapProxy</td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">Datum:
</th>
<td>Sat, 2 Dec 2023 07:49:46 -0500</td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">Von: </th>
<td>Tom Kralidis <a class="moz-txt-link-rfc2396E"
href="mailto:tomkralidis@gmail.com"
moz-do-not-send="true"><tomkralidis@gmail.com></a></td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">An: </th>
<td>Johannes Weskamm <a class="moz-txt-link-rfc2396E"
href="mailto:weskamm@terrestris.de"
moz-do-not-send="true"><weskamm@terrestris.de></a></td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">Kopie
(CC): </th>
<td>mapproxy-dev <a class="moz-txt-link-rfc2396E"
href="mailto:mapproxy-dev@lists.osgeo.org"
moz-do-not-send="true"><mapproxy-dev@lists.osgeo.org></a></td>
</tr>
</tbody>
</table>
<br>
<br>
<div dir="ltr">
<div>Hi Johannes: correct, that will also work in terms of a
bridging mechanism. A WMTSFacade would be valuable in this
regard.<br>
</div>
<div><br>
</div>
<div>As an example, we implemented both options for OGC API -
Maps support in pygeoapi, i.e. a WMSFacade as a bridging
mechanism, and a MapServer MapScript provider which talks
directly to MapServer's</div>
<div>libraries to generate a map.<br>
</div>
<div><br>
</div>
<div>I think both options are valuable and viable for the
different use cases.</div>
<div><br>
</div>
<div>Thanks</div>
<div><br>
</div>
<div>..Tom</div>
<div><br>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, Nov 24, 2023 at
8:42 AM Johannes Weskamm <<a
href="mailto:weskamm@terrestris.de"
moz-do-not-send="true" class="moz-txt-link-freetext">weskamm@terrestris.de</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<p>Hi Tom,</p>
<p>Ah thats another option you mention, did not even
think about that.</p>
<p>Right, one could add, for example, an mbtiles
provider for API Tiles, that reads the cache generated
by mapproxy directly, without talking to mapproxy.<br>
</p>
<p>But my thoughts now are to use the existing endpoints
of mapproxy for that, so that features like
"lazy-caching" will still work. We e.g. have TMS and
WMTS endpoints in mapproxy which serve the data tiled
(x/y/z like)-<br>
</p>
<p>I think it would be nice to have support on the side
of pygeoapi for WMTS or TMS Services which could then
be accessed via OGC API Tiles.</p>
<p>Not sure if i have a correct understanding here, but
that way pygeoapi would not have to bother with
different tile storage formats and instead talk via
the "old" standards with the sources, similar as the
"WMSFacade" already does.<br>
</p>
<p><br>
</p>
<p>What do you think?</p>
<p><br>
</p>
<p>Greetings,</p>
<p>Johannes<br>
</p>
<p><br>
</p>
<div>Am 24.11.23 um 13:24 schrieb Tom Kralidis:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>Johannes: thanks for this analysis, good ideas
here!</div>
<div><br>
</div>
<div>If I understand correctly, this means that a
MapProxy cache is already seeded, and a pygeoapi
MapProxy tile provider would translate the OGC API
- Tiles requests into the given MapProxy cache.</div>
<div><br>
</div>
<div>pygeoapi could then define such a provider
with:</div>
<div><br>
</div>
<div>
<pre><span>providers</span><span>:</span>
<span> </span><span>-</span><span> </span><span>type</span><span>:</span><span> </span><span>tile</span>
<span> </span><span>name</span><span>:</span><span> MapProxy</span>Cache
<span> </span><span>data</span><span>:</span><span> </span>/path/to/cache.gpkg<span>
</span><span>options</span><span>:</span>
<span> </span><span>metadata_format</span><span>:</span><span> </span><span>default</span>
<span> </span><span>zoom</span><span>:</span>
<span> </span><span>min</span><span>:</span><span> </span><span>0</span>
<span> </span><span>max</span><span>:</span><span> </span><span>5</span>
<span> </span><span>schemes</span><span>:</span>
<span> </span><span>-</span><span> </span><span>WorldCRS84Quad</span>
type: geopackage
table_name: tiles_table
<span> </span><span>format</span><span>:</span>
<span> </span><span>name</span><span>:</span><span> </span>png
<span> </span><span>mimetype</span><span>:</span><span> </span><span>image/png</span></pre>
</div>
<div><br>
</div>
<div>Another interesting option would be to have a
pygeoapi MapProxy lazy-caching option (where tiles
are generated as needed). Of course, this would
require more configuration on the underlying
service(s) to be cached by MapProxy.</div>
<div><br>
</div>
<div>Thanks</div>
<div><br>
</div>
<div>..Tom</div>
<div><br>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, Nov 24,
2023 at 4:02 AM Johannes Weskamm via
MapProxy-dev <<a
href="mailto:mapproxy-dev@lists.osgeo.org"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">mapproxy-dev@lists.osgeo.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px
0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<p>Hi,</p>
<p>So here are my first findings on the topic
of OGC API and pygeoapi.</p>
<p>You can already publish cached WMS that
come from MapProxy through pygeoapi via OGC
API Map (<a
href="https://docs.pygeoapi.io/en/stable/data-publishing/ogcapi-maps.html"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://docs.pygeoapi.io/en/stable/data-publishing/ogcapi-maps.html</a>).</p>
<p>I think that is a bit inefficient, as OGC
API Tiles could potentially access the tiles
directly as they have been stored in the
chosen MapProxy backend (mbtiles, files,
...).</p>
<p>So in order to avoid the image assembling
and rescaling in mapproxy (and do it in the
client instead, which may not perform
better, maybe even worse), support for those
tile backends need to be implemented in
pygeoapi.</p>
<p>Currently the only provider for OGC API
Tiles in pygeoapi seems to be the
MVT-Provider, which obviously does not work
with mapproxy. So a provider / reader like
mbtiles, xyz structures or similar for non
vector data needs to be implemented. Some
things do exists in pygeoapi which should
help to get on the train quickly.</p>
<p>I think that an implementation in pygeoapi
would solve your needs most efficient. <br>
</p>
<p>Afterwards we could provide documentation
and examples how to use MapProxy and
pygeoapi together to be OGC-API comaptible.</p>
<p>My 2 cents,</p>
<p>Greetings,</p>
<p>Johannes</p>
<p><br>
</p>
<div>Am 22.11.23 um 16:18 schrieb Johannes
Weskamm:<br>
</div>
<blockquote type="cite">
<p>Hi,</p>
<p>This sounds very good in my opinion!
Having OGC API Support in MapProxy would
be a really nice feature and enable
MapProxy to catch up with the future of
OGC Standards.</p>
<p>In general, Pull Request are always
welcome and the features you mentioned
sound interesting, so i see no obvious
reasons that would block your
contributions.</p>
<p>Some bigger goals, like OGC API Support,
would need some discussion before starting
with development. Before reinventing the
wheel one should examine what pygeoapi has
to offer.</p>
<p>The current documentation (<a
href="https://docs.pygeoapi.io/en/stable/data-publishing/ogcapi-tiles.html"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://docs.pygeoapi.io/en/stable/data-publishing/ogcapi-tiles.html</a>)
even mentions MapProxy as a possible data
source, but the examples are lacking, so i
am not sure if support already exists or
needs to be done. But even if its still
missing, i guess it would be the more
elegant way to use pygeoapi together with
mapproxy or implement and extend the
relevant classes, as the main thing is
already done in pygeoapi and updated
regularly.</p>
<p><br>
</p>
<p>I may find some time in the upcoming
weeks to shed some more light on that.</p>
<p>I am also interested what other people
think about that.</p>
<p><br>
</p>
<p>Greetings,</p>
<p>Johannes<br>
</p>
<p><br>
</p>
<p><br>
</p>
<div>Am 13.11.23 um 09:52 schrieb Alistair
Everett via MapProxy-dev:<br>
</div>
<blockquote type="cite">
<div dir="ltr"><br clear="all">
<div>
<div dir="ltr" class="gmail_signature">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div
style="color:rgb(80,0,80)"><span style="color:rgb(34,34,34)">Hi all,</span></div>
<br>
At the Norwegian
Meteorological
Institute we're
considering using
MapProxy to provide
model and other map
based data to some
of our frontend
services. I'm aware
we've been somewhat
involved with
MapProxy before and
used it for some of
our services,
unfortunately most
of those involved
aren't working here
anymore so we're
looking at building
from scratch and
modernising our
services. First with
a new WMS offering,
but we would also
like to be able to
provide OGC API
endpoints in the
future.<br>
<br>
There are a couple
of features which we
would be interested
in having in
MapProxy,
particularly related
to dimensions - for
example, other forms
of caching (S3 and
mbtiles), seeding,
and potentially
reading available
dimensions from WMS
sources. I know some
of these features
are available as
standard but I
believe they
currently don't
necessarily work
with dimensions. As
part of this project
I'm hoping that we
will have some
developer time to
put into this, so
I'm interested in
hearing what the
community thinks of
this, how it might
fit in with any
roadmap the MapProxy
community might
already have, and if
you are open to us
submitting our own
MRs for these
features?<br>
<br>
I'm also interested
in what the
community thinks of
OGC-API endpoints,
do you see this as
something which
MapProxy would like
to offer, if the
resources were
available to develop
it? Or do you see
this as something
which would rather
be offered through
other packages, for
example pygeoapi
with MapProxy
providing a tile
cache in the
background?<br>
<br>
Interested to hear
your thoughts,<br>
<br>
Kind regards,<br>
Alistair</div>
<div dir="ltr"><br>
<div
style="color:rgb(80,0,80)"><span
style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">--------------</span></div>
<div
style="color:rgb(80,0,80)"><b
style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">Dr
Alistair Everett</b><br>
</div>
<div>Senioringeniør
/ Senior Software
Engineer<br>
Avdeling for
Geoutvikling</div>
<div><br>
</div>
<div><span
style="color:rgb(0,0,0)"><b>Phone:</b> +47 939 68 985</span><br>
</div>
<div>
<div><font
color="#000000"><b>Email:</b> <a href="mailto:alistaire@met.no"
style="color:rgb(17,85,204)" target="_blank" moz-do-not-send="true">alistair.everett@met.no</a></font></div>
</div>
<div><br>
</div>
<div><b>Meteorologisk
Institutt</b>,<br>
</div>
<div>Henrik Mohns
plass 1, </div>
<div>0313 Oslo<br>
</div>
<div><span
style="color:rgb(0,0,0)"><br>
</span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
MapProxy-dev mailing list
<a href="mailto:MapProxy-dev@lists.osgeo.org" target="_blank"
moz-do-not-send="true"
class="moz-txt-link-freetext">MapProxy-dev@lists.osgeo.org</a>
<a href="https://lists.osgeo.org/mailman/listinfo/mapproxy-dev"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://lists.osgeo.org/mailman/listinfo/mapproxy-dev</a>
</pre>
</blockquote>
</blockquote>
<pre cols="72">--
</pre>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>