This is similar to your other request in it revolves around handling of "no
data" defined by a mask or in this case an area of validity for the
projection.

Some recent work was done to allow data stores to provide a clipping area
(to respect tile boundaries) perhaps a similar change is needed to for
raster data (which could default in this case to area of defined by spatial
reference system area of validity).

--
Jody Garnett


On Wed, 1 Apr 2020 at 21:33, Andrew Miskelly <amiske...@weatherzone.com.au>
wrote:

> Hi everyone,
>
> Is there a way of having StreamingRenderer.paint(...) handle the
> ProjectionException that is thrown by Resample.doOperation() when you
> request an envelope that extends outside the valid domain of the projection
> of the source coverage? Sample stack trace below.
>
> I'm working with imagery from geostationary satellites and the projection
> is handled by
> https://github.com/geotools/geotools/blob/master/modules/library/referencing/src/main/java/org/geotools/referencing/operation/projection/GeostationarySatellite.java
> .
>
> The aim is to be able to extract sub-images in, say, WGS84 from a (cloud
> optimised) GeoTIFF. When the requested envelope is in the middle of the
> source image it all works seamlessly but I can't request an image from the
> edge of the satellite's field of view.
>
> A successful request would, of course, have empty pixels through the part
> of the destination image that was outside of the source projection's valid
> domain.
>
> Thanks in advance for any help.
>
> Andrew
>
> org.geotools.renderer.lite.StreamingRenderer$RenderCoverageReaderRequest
> execute
> WARNING: Can't reproject grid coverage ....
> org.geotools.coverage.processing.CannotReprojectException: Can't reproject
> grid coverage ....
> at
> org.geotools.coverage.processing.operation.Resample.doOperation(Resample.java:260)
> at
> org.geotools.renderer.lite.gridcoverage2d.GridCoverageRendererUtilities.resample(GridCoverageRendererUtilities.java:129)
> at
> org.geotools.renderer.lite.gridcoverage2d.GridCoverageRendererUtilities.reproject(GridCoverageRendererUtilities.java:182)
> at
> org.geotools.renderer.lite.gridcoverage2d.GridCoverageRendererUtilities.reproject(GridCoverageRendererUtilities.java:150)
> at
> org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.renderImage(GridCoverageRenderer.java:733)
> at
> org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.paint(GridCoverageRenderer.java:897)
> at
> org.geotools.renderer.lite.StreamingRenderer$RenderCoverageReaderRequest.execute(StreamingRenderer.java:3880)
> at
> org.geotools.renderer.lite.StreamingRenderer$PainterThread.run(StreamingRenderer.java:3991)
> at
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:830)
> Caused by:
> org.geotools.referencing.operation.projection.ProjectionException
> at
> org.geotools.referencing.operation.projection.GeostationarySatellite$Ellipsoidal.inverseTransformNormalized(GeostationarySatellite.java:230)
> at
> org.geotools.referencing.operation.projection.MapProjection$Inverse.transform(MapProjection.java:1047)
> at
> org.geotools.referencing.operation.projection.MapProjection$Inverse.transform(MapProjection.java:1106)
> at
> org.geotools.referencing.operation.transform.AbstractMathTransform.transform(AbstractMathTransform.java:215)
> at
> org.geotools.referencing.operation.transform.ConcatenatedTransformDirect.transform(ConcatenatedTransformDirect.java:55)
> at org.geotools.referencing.CRS.transform(CRS.java:1397)
> at org.geotools.referencing.CRS.transform(CRS.java:1477)
> at
> org.geotools.coverage.processing.operation.Resampler2D.reproject(Resampler2D.java:478)
> at
> org.geotools.coverage.processing.operation.Resample.doOperation(Resample.java:248)
> ... 12 more
>
> _______________________________________________
> GeoTools-GT2-Users mailing list
> GeoTools-GT2-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to