[Geoserver-devel] Raster data source configuration in GeoServer

Hello,

I’m a developer working on the GeoMesa project. We’re trying to add a custom raster data source and integrate it into GeoServer 2.8.x. However, we’d like to not extend any GeoServer classes out of an abundance of caution around GPL licensing (we’re Apache 2). With vector data sources, all of the information regarding configuration is pulled out of the getParametersInfo method - perfect for us. However, it seems that for raster data sources, any custom configuration has to be done by extending the GeoServer StoreEditPanel - something we’d prefer to avoid.

One potential work-around we found is to register a custom URL handler, and use it to parse our configuration. However, that involves messy classloading issues, such that we would have to install code in the JRE.

Are there any other extension points we’re missing for configuration of raster data sources?

Thanks,

Emilio Lahr-Vivaz

Hi all,

Since this falls between GeoTools and GeoServer, I figured I’d bump it and cross-post.

Phrased differently, “Does the CoverageFactory interface have the same hooks for auto EditPanel generation as the DataStore interface?”

As the minute, in order to add a raster data source, we are finding that we have to override GeoServer classes. For vector data sources, we have never had to do that. Are we missing something?

Cheers,

Jim

···

On 02/01/2016 09:25 AM, Emilio Lahr-Vivaz wrote:

Hello,

I’m a developer working on the GeoMesa project. We’re trying to add a custom raster data source and integrate it into GeoServer 2.8.x. However, we’d like to not extend any GeoServer classes out of an abundance of caution around GPL licensing (we’re Apache 2). With vector data sources, all of the information regarding configuration is pulled out of the getParametersInfo method - perfect for us. However, it seems that for raster data sources, any custom configuration has to be done by extending the GeoServer StoreEditPanel - something we’d prefer to avoid.

One potential work-around we found is to register a custom URL handler, and use it to parse our configuration. However, that involves messy classloading issues, such that we would have to install code in the JRE.

Are there any other extension points we’re missing for configuration of raster data sources?

Thanks,

Emilio Lahr-Vivaz

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
[http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140](http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140)
_______________________________________________
Geoserver-devel mailing list
[Geoserver-devel@lists.sourceforge.net](mailto:Geoserver-devel@lists.sourceforge.net)
[https://lists.sourceforge.net/lists/listinfo/geoserver-devel](https://lists.sourceforge.net/lists/listinfo/geoserver-devel)

I always figured that the raster work would be done in imageio-ext, or geotools as appropriate.
And any user interface work should be done as geoserver community module.

The raster Format API does provide connection parameters, which you can use to advertise your configuration options. You may need to work hard to make a user-interface dynamically from the connection parameters - but it would be a fun bit of RnD that would benefit all of geoserver.

···

On 4 February 2016 at 06:44, Jim Hughes <jnh5y@anonymised.com> wrote:

Hi all,

Since this falls between GeoTools and GeoServer, I figured I’d bump it and cross-post.

Phrased differently, “Does the CoverageFactory interface have the same hooks for auto EditPanel generation as the DataStore interface?”

As the minute, in order to add a raster data source, we are finding that we have to override GeoServer classes. For vector data sources, we have never had to do that. Are we missing something?

Cheers,

Jim

On 02/01/2016 09:25 AM, Emilio Lahr-Vivaz wrote:

Hello,

I’m a developer working on the GeoMesa project. We’re trying to add a custom raster data source and integrate it into GeoServer 2.8.x. However, we’d like to not extend any GeoServer classes out of an abundance of caution around GPL licensing (we’re Apache 2). With vector data sources, all of the information regarding configuration is pulled out of the getParametersInfo method - perfect for us. However, it seems that for raster data sources, any custom configuration has to be done by extending the GeoServer StoreEditPanel - something we’d prefer to avoid.

One potential work-around we found is to register a custom URL handler, and use it to parse our configuration. However, that involves messy classloading issues, such that we would have to install code in the JRE.

Are there any other extension points we’re missing for configuration of raster data sources?

Thanks,

Emilio Lahr-Vivaz

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
[http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140](http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140)
_______________________________________________
Geoserver-devel mailing list
[Geoserver-devel@lists.sourceforge.net](mailto:Geoserver-devel@lists.sourceforge.net)
[https://lists.sourceforge.net/lists/listinfo/geoserver-devel](https://lists.sourceforge.net/lists/listinfo/geoserver-devel)


Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140


GeoTools-Devel mailing list
GeoTools-Devel@anonymised.coms.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel


Jody Garnett

Hi Jody,

Thanks. That sounds like it squares with what Emilio had found. I wanted to makes sure that we weren’t overlooking something obvious.

Cheers,

Jim

···

On 02/05/2016 01:17 PM, Jody Garnett wrote:

I always figured that the raster work would be done in imageio-ext, or geotools as appropriate.
And any user interface work should be done as geoserver community module.

The raster Format API does provide connection parameters, which you can use to advertise your configuration options. You may need to work hard to make a user-interface dynamically from the connection parameters - but it would be a fun bit of RnD that would benefit all of geoserver.


Jody Garnett

On 4 February 2016 at 06:44, Jim Hughes <jnh5y@anonymised.com> wrote:

Hi all,

Since this falls between GeoTools and GeoServer, I figured I’d bump it and cross-post.

Phrased differently, “Does the CoverageFactory interface have the same hooks for auto EditPanel generation as the DataStore interface?”

As the minute, in order to add a raster data source, we are finding that we have to override GeoServer classes. For vector data sources, we have never had to do that. Are we missing something?

Cheers,

Jim

On 02/01/2016 09:25 AM, Emilio Lahr-Vivaz wrote:

Hello,

I’m a developer working on the GeoMesa project. We’re trying to add a custom raster data source and integrate it into GeoServer 2.8.x. However, we’d like to not extend any GeoServer classes out of an abundance of caution around GPL licensing (we’re Apache 2). With vector data sources, all of the information regarding configuration is pulled out of the getParametersInfo method - perfect for us. However, it seems that for raster data sources, any custom configuration has to be done by extending the GeoServer StoreEditPanel - something we’d prefer to avoid.

One potential work-around we found is to register a custom URL handler, and use it to parse our configuration. However, that involves messy classloading issues, such that we would have to install code in the JRE.

Are there any other extension points we’re missing for configuration of raster data sources?

Thanks,

Emilio Lahr-Vivaz

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
[http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140](http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140)
_______________________________________________
Geoserver-devel mailing list
[Geoserver-devel@lists.sourceforge.net](mailto:Geoserver-devel@lists.sourceforge.net)
[https://lists.sourceforge.net/lists/listinfo/geoserver-devel](https://lists.sourceforge.net/lists/listinfo/geoserver-devel)


Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140


GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

On Thu, Feb 4, 2016 at 3:44 PM, Jim Hughes <jnh5y@anonymised.com> wrote:

Hi all,

Since this falls between GeoTools and GeoServer, I figured I'd bump it and
cross-post.

Phrased differently, "Does the CoverageFactory interface have the same
hooks for auto EditPanel generation as the DataStore interface?"

As the minute, in order to add a raster data source, we are finding that
we have to override GeoServer classes. For vector data sources, we have
never had to do that. Are we missing something?

You probably are? A GUI is automatically generated for rasters too.
Contrary to what Jody suggest, there are no parameters in a raster source,
the Format class just accepts
a "Object source" without any description of what it could be, the list of
"read parameters" is to be used
once the GridCoverageReader is already acquired, from the interface:

    /**
     * Retrieve the parameter information for a {@link
GridCoverageReader#read read} operation.
     */
    @UML(identifier="getParameterInfo, numParameters",
obligation=MANDATORY, specification=OGC_01004)
    ParameterValueGroup getReadParameters();

The default DefaultCoverageStoreEditPanel assumes this object is a URL. If
your source requires something
else then yes, you have to build your own panel

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

Hi Andrea,

Thanks for the further clarification. While the url format is likely sufficient for many use cases, it is odd in the case we have. We have a separate EditPanel for this, and we’ll be contributing that to the GeoMesa community module in GeoServer.

It sounds like an extension would be to implement handling for additional objects (maybe a wrapper object containing a List of Parameters?), and that could be added to the general EditPanel code. As Jody mentioned, that kind of thing would be a little R&D work…

Cheers,

Jim

···

On 02/06/2016 04:40 AM, Andrea Aime wrote:

On Thu, Feb 4, 2016 at 3:44 PM, Jim Hughes <jnh5y@anonymised.com> wrote:

Hi all,

Since this falls between GeoTools and GeoServer, I figured I’d bump it and cross-post.

Phrased differently, “Does the CoverageFactory interface have the same hooks for auto EditPanel generation as the DataStore interface?”

As the minute, in order to add a raster data source, we are finding that we have to override GeoServer classes. For vector data sources, we have never had to do that. Are we missing something?

You probably are? A GUI is automatically generated for rasters too.
Contrary to what Jody suggest, there are no parameters in a raster source, the Format class just accepts
a “Object source” without any description of what it could be, the list of “read parameters” is to be used
once the GridCoverageReader is already acquired, from the interface:

/**

  • Retrieve the parameter information for a {@link GridCoverageReader#read read} operation.
    */
    @UML(identifier=“getParameterInfo, numParameters”, obligation=MANDATORY, specification=OGC_01004)
    ParameterValueGroup getReadParameters();

The default DefaultCoverageStoreEditPanel assumes this object is a URL. If your source requires something
else then yes, you have to build your own panel

Cheers
Andrea

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.