Hello Jody, I even tested with GeoTools v29-snapshot with this code below and it returned size 18 x 5 instead of 17 x 3 for gdal_translate or 17 x 4 for geoserver WCS GetCoverage. I thought using geotools should yield the same result as geoserver WCS GetCoverage, but it is not. Do you have any suggestions for the code before?
File file = new File("/home/aaa/Downloads/temp/test.tif"); Hints hint = new Hints(); hint.put(Hints.DEFAULT_COORDINATE_REFERENCE_SYSTEM, WGS84); hint.put(Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER, Boolean.TRUE); GeoTiffReader reader = new GeoTiffReader(file, hint); GridCoverage2D coverage = reader.read(null); CoverageProcessor processor = CoverageProcessor.getInstance(); final ParameterValueGroup param = processor.getOperation("CoverageCrop").getParameters(); // 137.915315044103 -36.51629558851893 154.64770004642423 -40.081875882617666 double minLong = 137.915315044103; double maxLong = 154.64770004642423; double minLat = -40.081875882617666; double maxLat = -36.51629558851893; final GeneralEnvelope crop = new GeneralEnvelope(new GeographicBoundingBoxImpl(minLong, maxLong, minLat, maxLat)); ReferencedEnvelope envelope = new ReferencedEnvelope(new Envelope(minLong, maxLong, minLat, maxLat), WGS84); param.parameter("Source").setValue(coverage); param.parameter("Envelope").setValue(envelope); GridCoverage2D cropped = (GridCoverage2D) processor.doOperation(param); GridCoverageFactory gcf = new GridCoverageFactory(); GridCoverage2D gc = gcf.create("name", cropped.getRenderedImage(), cropped.getEnvelope()); String url = "/tmp/geotools.tif"; File outputFile = new File(url); GeoTiffWriter writer = new GeoTiffWriter(outputFile); writer.write(gc, null); writer.dispose(); gdalinfo /tmp/geotools.tif Size is 18, 5 On Mon, 3 Apr 2023 at 16:08, Jody Garnett <jody.garn...@gmail.com> wrote: > To our request defines the grid locations, you may have to read the > standard to determine exactly how the grid is defined for your request. > The standard is available on the OGC website. > > Thanks > > On Mon, Apr 3, 2023 at 7:00 AM Pham Huu Bang <a09...@gmail.com> wrote: > >> Hello Jody, >> >> >I find WCS tricky to use, did you use the WCS Request Builder to produce >> your curl command? >> No, I didn't use any tool for that. The parameters in curl command are >> standard WCS 2.0.1 GetCoverage request. >> >> >One thing I could not determine from your curl example is what what >> target coverage layout is being used (which is probably what your question >> is about). I am not sure if WCS 2 allows you to specify that manually or >> not. >> I'm not sure about this either. I used only standard parameters request >> for WCS GetCoverage. >> >> >Given your raster contains both shifted pixels and one additional row >> than anticipated by gdal. This may be a difference between sampling at the >> grid locations defined (WCS), rather that defining a grid of pixels and >> sampling in the middle of each pixel defined (gdal)? >> I'm not sure about this either. I used GeoServer normally to create a >> data source as one TIFF file, then published it as a Layer and I didn't >> define any grid locations. >> >> On Mon, 3 Apr 2023 at 15:56, Jody Garnett <jody.garn...@gmail.com> wrote: >> >>> I find WCS tricky to use, did you use the WCS Request Builder to produce >>> your curl command? >>> >>> One thing I could not determine from your curl example is what what >>> target coverage layout is being used (which is probably what your question >>> is about). I am not sure if WCS 2 allows you to specify that manually or >>> not. >>> >>> Given your raster contains both shifted pixels and one additional row >>> than anticipated by gdal. This may be a difference between sampling at the >>> grid locations defined (WCS), rather that defining a grid of pixels and >>> sampling in the middle of each pixel defined (gdal)? >>> >>> Jody >>> >>> On Mon, Apr 3, 2023 at 5:48 AM Pham Huu Bang <a09...@gmail.com> wrote: >>> >>>> Hello, >>>> >>>> I've a hard time understanding which one should be the correct result >>>> by gdal_translate or GeoServer. >>>> >>>> My system (Ubuntu 22.04) has: >>>> - GDAL 3.4.1 >>>> - Geoserver 2.22 running on Tomcat on port 9090 >>>> >>>> I have a small tiff file (link to download at the bottom of this >>>> thread) in EPSG:4326, then I wanted to have a small subset on Lat and Long >>>> axes from it by running: >>>> >>>> - gdal_translate -projwin 137.915315044103 -36.51629558851893 >>>> 154.64770004642423 -40.081875882617666 test.tif gdal.tif >>>> >>>> >>>> - curl ' >>>> http://localhost:9090/geoserver/wcs?service=WCS&version=2.0.1&request=GetCoverage&format=image/tiff&coverageId=test_raster:output&subset=Lat(-40.081875882617666,-36.51629558851893)&subset=Long(137.915315044103,154.64770004642423)' >>>> -o geoserver.tiff >>>> >>>> - Then gdalinfo gdal.tif returns: >>>> >>>> Size is 17, 4 >>>> >>>> and gdalinfo geoserver.tif returns >>>> >>>> Size is 17, 3 >>>> >>>> - Also the geo bbox of gdal.tif and geoserver.tif are different. >>>> First file gives: >>>> >>>> Upper Left ( 136.9750000, -35.9750000) >>>> >>>> Second file gives: >>>> >>>> Upper Left ( 137.9750000, -36.9750000) >>>> >>>> >>>> More importantly, the pixels are shifted from gdal.tif at the top to >>>> geoserver.tif at the bottom which you can see from this image: >>>> https://imgur.com/a/L0vKvYk >>>> >>>> Here is the link to download test.tif, gdal.tif and geoserver.tif >>>> https://drive.google.com/file/d/1dawCy38FMwx4J7OQsky-gAHHOXsMuDcy/view?usp=sharing >>>> >>>> Please share your opinion which result (gdal.tif or geoserver.tif) >>>> should be correct? >>>> >>>> Thanks, >>>> >>>> _______________________________________________ >>>> Geoserver-users mailing list >>>> >>>> Please make sure you read the following two resources before posting to >>>> this list: >>>> - Earning your support instead of buying it, but Ian Turton: >>>> http://www.ianturton.com/talks/foss4g.html#/ >>>> - The GeoServer user list posting guidelines: >>>> http://geoserver.org/comm/userlist-guidelines.html >>>> >>>> If you want to request a feature or an improvement, also see this: >>>> https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer >>>> >>>> >>>> Geoserver-users@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/geoserver-users >>>> >>> -- >>> -- >>> Jody Garnett >>> >> -- > -- > Jody Garnett >
_______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users