You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
sld heatmaps has issue when used with random set of linestrings for geomesa-hbase #10439
sld heatmaps has issue when used with random set of linestrings for geomesa-hbase
I have a stable system and am mainly using heatmaps sld (https://www.geomesa.org/documentation/3.0.0/user/hbase/heatmaps.html?highlight=heatmaps#install-heatmap-sld ) for > 1.5 years for data where the geometric object that I store are points.
Currently it is important for me to also store data as Linestrings and apply heatmaps to them. I see this causes the heatmaps to fail with following error:
Caused by: java.lang.RuntimeException: Failed to evaluate the process function, error is: Error processing heatmap at org.geotools.process.function.ProcessFunction.evaluate(ProcessFunction.java:162) at org.geotools.renderer.lite.RenderingTransformationHelper.applyRenderingTransformation(RenderingTransformationHelper.java:291) at org.geotools.renderer.lite.StreamingRenderer.getFeatures(StreamingRenderer.java:2296) at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:2213) at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:900) at org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:601) ... 135 more Caused by: org.geotools.process.ProcessException: Error processing heatmap at org.locationtech.geomesa.process.analytic.DensityProcess.execute(DensityProcess.scala:75) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.geotools.process.factory.AnnotationDrivenProcessFactory$InvokeMethodProcess.execute(AnnotationDrivenProcessFactory.java:621) at org.geotools.process.function.ProcessFunction.evaluate(ProcessFunction.java:148) ... 140 more Caused by: java.lang.ArrayIndexOutOfBoundsException: 888 at org.geotools.process.vector.HeatmapSurface.addPoint(HeatmapSurface.java:100) at org.locationtech.geomesa.process.analytic.DensityProcess$$anonfun$execute$1.apply(DensityProcess.scala:81) at org.locationtech.geomesa.process.analytic.DensityProcess$$anonfun$execute$1.apply(DensityProcess.scala:76) at org.locationtech.geomesa.utils.io.package$WithClose$.apply(package.scala:64) at org.locationtech.geomesa.process.analytic.DensityProcess.execute(DensityProcess.scala:76)
I see that if I look at my dataset (typically about 30k lines) that the heatmap works for "some lines"-I can filter out lines and if I only have a few remaining it will work. Like this I can detect which lines cause the heatmaps to fail. But if I look at the "problematic" line that triggers the error, it is displayed correctly in geoserver and all coordinates look valid.
Further I notice that if I play with the radiusPixels parameter and put it to a very high number (which will cause the 1 linestring to be spread out over half of the globe), sometimes the error goes away and the heatmap is produced.
I checked that for many other lines with longer length it does work.
I would be inclined to think this is a bug and somehow if certain lines have a certain "spread" this creates an indexoutofbounds exception. I admit I 'm on an outdated version, but have noticed some other minor bugs on more recent versions which kept me from upgrading. Would expect it is quite likely that this is related to combination heatmaps+Linestrings in all versions.
Having a fix for this is crucial for me to continue to work with geomesa, so I hope one of the experts can do something with this ��
Thank you very much for the time!
Key: GEOMESA-3252 Type: Bug Priority: Major Status: To Do Resolution: Unresolved Reporter: Joris Billen Created: Thu, 8 Dec 2022 06:04:16 -0500 Updated: Mon, 18 Mar 2024 12:49:18 -0400 Affects Version(s): 3.0.0 Component(s): HBase
Comments:
5ac751bd48753e448a580d54 (Thu, 8 Dec 2022 11:26:46 -0500):
I learned that the error is only triggered when the map is completely zoomed out (which is the default for openlayers in geoserver when a map is loaded: it uses this envelope and fails= (scale 1: 279M) envelope:-298.1531155978747,298.1531155978747,-163.12271684354704,163.12271684354704 If I then zoom in it will be ok, for instance for this envelope (scale 1:70M) BBOX=-26.03027337890626,-8.979492128906244,108.99902337890626,58.549804628906244.
As for my use, it is not necessary to be completely zoomed out, this could mean it works fine.
Will verify further with more data and in case it still holds, this ticket can be closed.
Activity