[Geoserver-devel] WPS Rendering Transformation for Streamline Computation

Hello all,

When working with static (non-animated) vector flow fields (i.e. u/v or speed/direction coverages), as an alternative to drawing simple arrows or wind barbs we often use custom software to render visualizations of vector flow fields using various Streamline representations.

Examples

I would like to look at adding similar capability to GeoServer, potentially as a senior project for an enterprising CS student (or, failing that, perhaps in my free time).

I am aware of GeoServer’s existing WPS Rendering Transformation functionality, and in particular the Contour and Raster-to-Point operations which appear to be implemented in GeoTools’ ContourProcess and RasterAsPointCollectionProcess, respectively, and which I believe is very similar in nature to what I’d like to do: apply an algorithm to a multiband coverage to generate vector polylines and points which could then be rendered using existing vector symbology.

So, I’m looking for any guidance from developers who know the codebase better than I do regarding feasibility, level-of-effort required, implications on other areas of the code, or anything else I should be thinking about.

If anyone can provide advice to point me in the right direction, it would be much appreciated.

Thanks,
Jason

···


Jason GreenlawSoftware Developer, ERT, Inc.

NOAA/NOS/OCS/CSDL
https://nowcoast.noaa.gov
Jason.Greenlaw@anonymised.com

Hi Jason,
there is not much to add, you already have the right reference processes. Feasibility and level of effort
are really related to how complex the algorithm in question is.
Performance wise, the machinery will already give you in input only the requested area, at the resolution
of the map (so eventually reduced compared to native) to make it faster.
Also performance wise, you should probable check carefully what the low level contour machinery does, in
order to efficiently scan the raster contents (there are efficient ways and atrociously slow ones).
About giving the project to a student, hum… I’m doubtful, the code to interact with is vast and
I have yet to see a university that teaches how to deal with a large base of legacy code (both gt and gs
have been developed over 20 years on small and varying teams)…
but maybe you stumbled in smarter students than I did, or universities that make them work on more
than toy projects :smiley:

Good luck :slight_smile:

Cheers
Andrea

···

Regards, Andrea Aime == 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 di Montramito 3/A 55054 Massarosa (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 http://www.geo-solutions.it http://twitter.com/geosolutions_it ------------------------------------------------------- Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail.

Thank you Andrea for the guidance. I will look a little deeper at the Contour code. I agree, it will take a smart student (or maybe more than one) to get it working.

Assuming we are able to implement new geotools class(es) for this (perhaps StreamlineProcess ?) that returns a SimpleFeatureCollection, is there any additional significant work that would need to be done so that the function can be accessed via SLD (e.g. <ogc:Function name=“gs:Streamline”> ) ?

Jason

···


Jason GreenlawSoftware Developer, ERT, Inc.

NOAA/NOS/OCS/CSDL
https://nowcoast.noaa.gov
Jason.Greenlaw@anonymised.com…531…

No, that happens automatically. Once you have a working process, and it’s registered in META-INF/services, the rendering machinery should be able
to call it without any extra code changes (of course, whether it will work and will be fast enough, it’s a different story)

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 di Montramito 3/A 55054 Massarosa (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 http://www.geo-solutions.it http://twitter.com/geosolutions_it ------------------------------------------------------- Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail.