Thanks for the replies before. I believe I'm getting closer, but slowly.
In my earlier question I was referring to three CRSs. I now believe that
it is only two since I had overlooked requirement 23, which to my
understanding requires that the CRS of the coverage (top level boundedBy
element) is the same as the CRS of the grid (in domainSet element). Thus
GDAL can and should set the dataset size and geotransform by what's in
domainSet and there's no such ambiguity in the grid size as I thought.
To get multidimensional data into GDAL 2D domain, one may need to slice
the data at some point in the non x/y dimensions. I'm testing this with
the Rasdaman server. My code currently creates a KVP
"SUBSET=unix(2008-01-08T00:02:58.000Z)" in an attempt to slice the time
dimension. The whole test URL is
http://ows.rasdaman.org/rasdaman/ows?SERVICE=WCS&REQUEST=GetCoverage&VERSION=2.0.1&COVERAGEID=test_irr_cube_2&FORMAT=application%2Foctet-stream&SUBSET=E(75042.7273594,95042.7273593873)&SUBSET=N(5434865.55794,5454865.55794)&SUBSET=unix(2008-01-08T00:02:58.000Z)&RANGESUBSET=b1
which replies
Trimming subset in WCS must follow this syntax 'lowerBound,upperBound',
given '2008-01-08T00:02:58.000Z'.
I don't understand why. I'm trying to slice, not trim. I don't know of
other servers serving >2D data so I can't test with other brands.
With a MapServer instance I have a problem setting the rangesubset, it
does not seem to work with field names, only indexes.
http://194.66.252.155/cgi-bin/BGS_EMODnet_bathymetry/ows?SERVICE=WCS&REQUEST=GetCoverage&VERSION=2.0.1&COVERAGEID=BGS_EMODNET_CentralMed-MCol&FORMAT=image%2Ftiff&SUBSET=long(9.83125,9.83958334)&SUBSET=lat(46.18124999,46.18958333)&RANGESUBSET=band1
does not work although band1 is given as name in coverage description, but
http://194.66.252.155/cgi-bin/BGS_EMODnet_bathymetry/ows?SERVICE=WCS&REQUEST=GetCoverage&VERSION=2.0.1&COVERAGEID=BGS_EMODNET_CentralMed-MCol&FORMAT=image%2Ftiff&SUBSET=long(9.83125,9.83958334)&SUBSET=lat(46.18124999,46.18958333)&RANGESUBSET=1
works.
Ari
Ari Jolma kirjoitti 03.11.2017 klo 09:57:
I have two things that I need to ask/discuss regarding WCS 2.0
1) My understanding is that there are potentially three CRS in
operation: the CRS of the bbox of the coverage (the native CRS of the
server); the CRS of the grid; and the CRS where the user wants the
data. I can imagine that it is perfectly possible for a server to
advertise data from an area bounded by geographic coordinates, and
that the data is in some specific projected coordinate system. Also,
the data could be regular but not east-north (it is rotated for
example). This would be described in a CoverageDescription. Despite
the rotation, GDAL would show the data east-nort (without rotation),
since only the bbox of the coverage is given.
Again, it is perfectly possible that the user wants the data in some
CRS that is not the native CRS of the WCS. The GetCoverage request can
contain an instruction for the server to serve the data in the CRS the
user wants the data (this is an extension in 2.0). User can set this
(it must be one of those supported by the server) in the dataset
definition (WCS_GDAL XML). Thus GDAL needs to show the coverage bbox
to its users in that CRS. And, as above, the GeoTransform is east-north.
Is this correct analysis?
BTW, the coordinate transformation of the bbox is not done in WCS
driver at the moment in the case of user CRS != server native CRS.
2) WCS can offer multidimensional data with complex data records. I
want the GDAL user to have a control on how the data is organized into
(current) GDAL. For example the server may offer spatio-temporal
(x/y/t) data with about wave heights in a sea (to link this to what
I'm getting paid for now :)) that are described as average and max.
Obviously I want x/y bands, but I may want either the temporal data or
the wave height data into bands, depending on the application. The
workflow would go
1. gdalinfo to the server, see this data as a layer with name
"VHM0_year_meanmax", gdalinfo reports that layer as a subdataset
2. gdalinfo into the layer, now it reports that there is an additional
dimension (t) and that the datarecord consists of two values mean and
max; it also reports information about the time (begin, end, step)
3. I decide to use a specific time and start using datasets with two
bands (mean and max)
I have such data as NetCDF and I don't think I can follow that
workflow with it since the driver puts the mean and max wave heights
right away into subdatasets and time into bands.
In the WCS there could/should be a similar default behavior but that
should be changeable by options (-oo t=some_timestamp).
Thoughts?
Ari
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev