Changes between Version 19 and Version 20 of WCS+interoperability


Ignore:
Timestamp:
Nov 13, 2017, 1:20:46 PM (7 years ago)
Author:
Ari Jolma
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WCS+interoperability

    v19 v20  
    33WCS is designed for serving potentially multidimensional (2D surface of the earth, depth, elevation, time) complex data (multiple measurements from a single point or area). The server needs to describe both the coordinate system and the internal organization of the data, and also its extent and magnitude respectively. The coordinate system is described as axis names and reference systems. The extent of the data in the coordinate system is given as an envelope. The internal organization (relationship between axes of data and coordinate system axes) is described with a sequence rule, which is by default linear and increasing in the order of the coordinate axes but the order and whether data is arranged first to last or last to first along the axis can be changed.
    44
    5 The data is further tied to the coordinate system with starting point of data, location of the origin of the data in the coordinate system, and with offset vectors. The starting point of data is by default the first data point. The offset vectors give coefficients for converting data point locations into coordinates. The offset vectors are in the order defined by the sequence rule. The magnitude of the data is given as an envelope, which gives the number of data points along each data axis.
     5The data is further tied to the coordinate system with starting point (indexes) of data, location of the origin of the data in the coordinate system, and with offset vectors. The starting point of data is by default the first data point. The offset vectors give coefficients for converting data point locations into coordinates. The offset vectors are in the order defined by the sequence rule. The magnitude of the data is given as an envelope, which gives the number of data points along each data axis.
    66
    7 The situation is much complicated by the fact that coordinate systems defined for the surface of the earth can be set up in many ways. It is common to have the first axis to point east but it is possible to have it pointing north. Also the data can organized internally for computer in many ways. GDAL traditionally calls the organization sequences of pixels that form lines, which form sequences of lines. In GDAL the first data point is assumed to be at the location of (0,0) in the pixel,line coordinates, and that the pixel,line coordinates increase linearly. GDAL also traditionally associates pixels with X axis of the coordinate system and lines with Y axis of the coordinate system. GDAL uses the concept of a !GeoTransform to tie the data points to the coordinate system. The GDAL !GeoTransform defines the minimum or maximum of the  X and Y coordinates associated with the first data point (it assumes the data point represents a rectangular area with the point in the center; whether the values are minimum or maximum depends on the signs of the first and third coefficient), and the coefficients (above offset vectors) for computing the X,Y coordinates for any data point (again, the min/max X,Y coordinates associated with it).
     7The situation is much complicated by the fact that coordinate systems defined for the surface of the earth can be set up in many ways. It is common to have the first axis to point east but it is possible to have it pointing north. Also the data can organized internally for computer in many ways. GDAL traditionally calls the organization sequences of pixels that form lines, which form sequences of lines. In GDAL the first data point is assumed to be at the location of (0,0) in the pixel,line coordinates, and that the pixel,line coordinates increase linearly. GDAL also traditionally associates pixels with X axis of the coordinate system and lines with Y axis of the coordinate system. GDAL uses the concept of a !GeoTransform to tie the data points to the coordinate system. The GDAL !GeoTransform defines the minimum or maximum of the  X and Y coordinates associated with the first data point (there it assumes that the data point (value) represents a rectangular area; whether the values are minimum or maximum depends on the signs of the first and third coefficient), and the coefficients (above offset vectors) for computing the X,Y coordinates for any data point (again, the min/max X,Y coordinates associated with it).
    88
    9 GDAL usually expects the coordinate system to be such that X increases eastward and Y increases northward. (I'm not sure about this. "usually" is also not a good word in computing. I think Even mentioned something like this in an email some time ago.). GDAL has functions to detect the cases where coordinate systems differ from the GDAL concept of first axis east, second axis north. When such coordinate systems are detected in WCS, the order of all things related to the two axes is swapped. This means axis labels, and coordinate values among other things. The swapping happens in all communication, that is, when parsing a response from a server and when constructing a request.
     9GDAL usually expects the coordinate system to be such that X increases eastward and Y increases northward. (I'm not sure about this. "usually" is also not a good word in computing. I think Even mentioned something like this in an email some time ago. Probably this applies to situations where coordinate system transformations need to be made). GDAL has functions to detect the cases where coordinate systems differ from the GDAL concept of first axis east, second axis north. When such coordinate systems are detected in WCS, the order of all things related to the two axes is swapped. This means axis labels, and coordinate values among other things. The swapping happens in all communication, that is, when parsing a response from a server and when constructing a request.
    1010
    1111to write: what happens if the internal organization of data that is served over WCS is not according to what GDAL assumes (data axis order, sequence)
     
    1313to write: WCS servers may allow asking data in CRS that is not the CRS the coverage is described. If GDAL sets the CRS of the dataset into that CRS, it needs to set its !GeoTransform and raster size accordingly. That requires projection transformation.
    1414
    15 to consider: What if, for some reason, somebody makes a WCS server that supports both GeoTIFF and Windows BMP, or some other format that is having the origin at the lower left corner instead of top left corner. Theoretically there should be different DescribeCoverage responses for these cases with different grid origins and offset vectors. The OSGeo recommendation might be to avoid such output formats.
     15to consider: What if, for some reason, somebody makes a WCS server that supports both GeoTIFF and Windows BMP, or some other format that is having the origin at the lower left corner instead of top left corner. Theoretically there should be different !DescribeCoverage responses for these cases with different grid origins and offset vectors. The OSGeo recommendation might be to avoid such output formats.
    1616
    1717== GDAL WCS Driver and Interoperability