From: Olaf D. <ola...@br...> - 2007-06-10 22:44:27
|
Martin, =20 interesting discussion indeed. The problem looks very similar to ours described in http://www.nabble.com/Still-problems-with-reprojecting-raster-data-p9689563= .html http://www.nabble.com/Still-problems-with-reprojecting-raster-data-p9689563= .html=20 We found a workaround in the way that we calculate our target envelope ourselves before the rendering, and then put this envelope in a modified StreamingRenderer and GridCoverageRenderer, which just hand this unchanged envelope over to be used in Resampler2D. Originally, the target envelope wa= s determined there by calling 'CRSUtilities.transform(..., sourceEnvelope). Moreover, we skipped the cropping in GridCoverageRenderer done by 'CRSUtilities.transform(deviceCRSToGCCRSTransform,destinationEnvelope)', which already produced a wrong 'destinationEnvelopeInSourceGCCRS' when a pole is included. Of course I'm not sure if we might have missed something (it was hard to understand all the rendering stuff), but at least we now obtain reasonable raster images for AzimuthalEquidistant and Gnomonic projections including a pole. Cheers, Olaf Martin Desruisseaux-2 wrote: >=20 > Andrea Aime a =C3=A9crit : >> In this case the singularity is the south pole, whose latitude is >> determined, but longitude is not. When you have it, you should add >> the -180,180 range to envelope longitudes (or I'm missing something)? >=20 > Longitude would be tested too, like every bounded axis (no matter which > axis it > is). In the particular case of South Pole, the longitude is irrelevant, > but this > is just a particular case. Generally speaking, we have a choice: >=20 > Testing (-180, -90), (180, -90), (-180, 90), (180, 90) >=20 > or testing (-180, centerY), (180, centerY), (centerX, -90), (centerX, 90)= . >=20 > Where (centerX, centerY) are relative to the initially transformed > envelope. I > tend toward the later. It make no difference for polar projections, but > may make > a difference for the 180=C2=B0 longitude bounds. Consider a MercatorProje= ction > where > the transformed envelope is between 20=C2=B0N and 40=C2=B0N. If we try to= project > (-180, > 90) and its friends, we will get a TransformException because Mercator > projection is not supported at the pole. If we try to project (-180, > centerY) > instead, we will get a valid point. If this point is inside the source > envelope > because this envelope overlaps the 180=C2=B0 longitude, the transformed > envelope will > be expanded on the full (-180 to 180) width. This is quite large, but at > least > it is correct, better than actual behavior which return a completly wrong > target > envelope when the source envelope overlaps the 180=C2=B0 longitude. >=20 > =09Martin >=20 > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Geotools-devel mailing list > Geo...@li... > https://lists.sourceforge.net/lists/listinfo/geotools-devel >=20 >=20 --=20 View this message in context: http://www.nabble.com/Envelope-reprojection-i= ssues-on-stereographic-projectsion-tf3884518.html#a11053054 Sent from the geotools-devel mailing list archive at Nabble.com. |