More

Storing a coverage in a JDBC database

Storing a coverage in a JDBC database


There is another question about raster data for GeoServer. Conditions: - PostGIS 2.0.3 and PostgreSQl 9.2. - I followed: http://docs.geoserver.org/stable/en/user/tutorials/imagemosaic-jdbc/imagemosaic-jdbc_tutorial.html step by step.

I got an error:

java -jar "c:… gt-imagemosaic-jdbc-11.2.jar" import - config c:… osm.postgis.xml -spatialTNPrefix tileosm -tileTNPrefix tileosm -dir c:… 	iles -ext png java.io.IOException: select srid from geometry_columns where f_table_schema=? an d f_table_name=? and f_geometry_column=? has no result for public,tileosm_0,geo m at org.geotools.gce.imagemosaic.jdbc.Import.calculateSRS(Import.java:600 ) at org.geotools.gce.imagemosaic.jdbc.Import.(Import.java:203) at org.geotools.gce.imagemosaic.jdbc.Import.start(Import.java:400) at org.geotools.gce.imagemosaic.jdbc.Toolbox.main(Toolbox.java:46)

The reference system and geometry were added by

psql -U postgres -d gis -f "c:Program FilesPostgreSQL9.3sharecontribpostgis-2.1spatial_ref_sys.sql"

psql -U postgres -d gis -f "c:Program FilesPostgreSQL9.3sharecontribpostgis-2.1postgis.sql"

Has anybody have an idea what is the problem? I had the same with the real database not only in this tutorial.


Check your database connection.

Had the same error caused by a typo in the connect.xml file.

So the java utility couldn't write in the database.


    NGS Samples: For samples collected by the NGS (SW-ALASKA and State datasets) all coordinates were measured by handheld global positioning systems (GPS). Data were recorded in a variety of formats (decimal degrees, degrees plus decimal minutes, degrees-minutes-seconds, and UTM coordinates), and all were translated into decimal degrees.

A number of fields were derived from the primary geographic data discussed above. The ArcView 3.2 program by ESRI was used to make all calculations. In each case, a "point-in-polygon" operation was performed to join the sample location points to an appropriate polygon (map) coverage, and thus to determine which polygon each point was in. The following table describes what was done for each of these derived fields:

A table showing all codes and the quadrangle names to which they refer may be downloaded here.

1:100K map boundaries are not defined in Alaska. However, a series of 1:63500 quadrangles does exist. Therefore, the database field QUAD100CODE contains codes for these 1:63K boundaries for database records in this state. The code is constructed exactly as described above for 1:100K quads (the basemap used can be downloaded here), except that characters 6-7 contain the letter-number cell designation used for 1:63K maps in Alaska.

A table showing all codes and the quadrangle names to which they refer may be downloaded here.

A table showing all codes and the quadrangle names to which they refer may be downloaded here.

A table showing all FIPS and HUC codes and their associated names may be downloaded here.

A table showing all FIPS and HUC codes and their associated names may be downloaded here.


Platform as a Service

Dinkar Sitaram , Geetha Manjunath , in Moving To The Cloud , 2012

Blob Service

Blobs are (typically large) unstructured objects like images and media, and are similar to Amazon S3. Applications deal with blobs as a whole, although they might read/write parts of a blob. Blobs can have optional metadata associated with them in the form of key-value pairs for instance, an image could have a copyright notice stored as metadata. Blobs are always stored under containers, which are similar to AWS buckets. Every storage account must have at least one container, and containers can have blobs within them. Container names can contain the directory separator character (“/”) – this gives developers the facility to create hierarchical “file-systems” similar to those on disks. This is similar to Amazon S3, except that in S3, object names (and not buckets) can have the “/” character.

The blob service defines two kinds of blobs to store text and binary data: A page blob and a block blob. Page blobs are blobs that are optimized for random read/write operations anywhere in the content of the blob, while block blobs are optimized for streaming and are read and written a block at a time. Multiple sets of blobs can be organized in containers that can be created within an Azure storage account. In order to make data transfer more efficient, Windows Azure implements a content delivery network (CDN) that stores frequently accessed data closer to the applications that use it. The AppFabric's Caching component can also be used to improve read performance of applications while accessing Azure blobs.

As mentioned before, access to blob and storage services in Azure is through REST interfaces. Below is an example REST API for creating a block blob. Please note that the same blob can be accessed by a different application or different process in the application to enable sharing of text or binary data.

PUT http://myaccount.blob.core.windows.net/pustakcontainer/mycloudblob HTTP/1.1

x-ms-date: Fri, 2 Sep 2011 12:33:35 GMT

Content-Type: text/plain charset=UTF-8

Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=

Sold book ISBN 978-0747595823

If x-ms-blob-type header is PageBlob , a new page blob is created. On similar lines, to access a blob, one needs to use one of the following URI's in the GET method as below, depending upon whether the shared data is time varying or statically updated.

The response contains the contents of the blob that can be used by the application. Additionally, the response also contains an Etag response header which can be used in the next GET with If-Modified request header, for application optimization.


Storing a coverage in a JDBC database - Geographic Information Systems

This chapter describes the Oracle Spatial and Graph implementation of the Open GIS Consortium (OGC) standard for Web Coverage Service Interface Standard (WCS), which, supports retrieval of “coverages” (according to the OGC, “electronic encoding of geospatial data, that is, digital geospatial information representing space and time-varying phenomena”).

The Oracle Spatial and Graph implementation will be referred to as Web Coverage Service, or WCS.

Web Coverage Service (WCS) enables electronic retrieval of geospatial data as "coverages.” WCS provides data and descriptions, a syntax for querying the data, and the ability to return data on which you can perform various operations (visualize, interpret, extrapolate, and so on). WCS supports the storage of both GridCoverage (GeoRaster object without coordinate reference system) and RectifiedGridCoverage (GeoRaster object with coordinate reference system and georeferenced with an affine transformation) raster types

Oracle Spatial and Graph implements the following OGC standards.

09-110r4 WCS Core 2.0 Interface Standard - Core.

09-146r2 OGC GML Application Schema – Coverages.

09-147r3 OGC Web Coverage Service 2.0 Interface Standard – KVP Protocol Binding Extension – Corrigendum.

09-148r1 OGC Web Coverage Service 2.0 Interface Standard – XML/POST Protocol Binding Extension.

09-149r1 OGC Web Coverage Service 2.0 Interface Standard – XML/SOAP Protocol Binding Extension.

11-053r1 OGC Web Coverage Service Interface Standard – CRS Extension

12-039 OGC Web Coverage Service Interface Standard – Scaling Extension.

12-040 OGC Web Coverage Service Interface Standard – Range Subsetting Extension.

12-049 OGC Web Coverage Service Interface Standard – Interpolation Extension.

12-052 OGC WCS 2.0.1 Corrigendum Release Notes.

12-100r1 OGC GML Application Schema – Coverages – GeoTIFF Coverage Encoding Profile.

Oracle WCS also extends the OGC standards to support all GDAL-supported image or raster features as output format in a GetCoverage request.

Before you use WCS, be sure that you understand the concepts described in Introduction to Spatial Web Services, and that you have performed any necessary configuration work as described in that chapter.


    In Oracle Spatial and Graph, WCS is implemented as a Java web application and can be deployed in WebLogic 12.1.3 or later.
    For Web Coverage Service purposes, this document refers to Oracle Database schemas that can be user schemas and/or WCS schemas.
    Several tables and other database objects are used to implement WCS operations.
    SDO_WCS procedures and functions enable you to perform operations that include the following actions.
    For setting up WCS, WebLogic Server (WLS) 12.1.3 or later is required.
    The Oracle Spatial Web Services Administration Console supports WCS administration.
    The Oracle WCS extension defines optional elements inside a wcs:Extension element in a WCS request, to let you control the following aspects of request processing.
    WCS provides three major operations, and each operation has a request and response format.
    This topic describes the WCS Extensions implemented and gives examples of some elements defined by each extension.
    WCS log files provide diagnostic information.

17.1 Web Coverage Service Architecture

In Oracle Spatial and Graph, WCS is implemented as a Java web application and can be deployed in WebLogic 12.1.3 or later.

The required Java version is JDK 1.8 or later. This implementation of WCS is packaged in the Spatial Web Services sdows.ear file in the $ORACLE_HOME/md/jlib directory. For information about deploying this file, see Deploying and Configuring Spatial Web Services.

WCS implements three protocol binding extensions, KVP (HTTP GET), XML/POST (HTTP/POST), and XML/SOAP. It also uses a GDAL Java API to generate image formats supported by GDAL. A GDAL instance must be configured on the same system as the application container where Spatial Web Services is deployed.

The SDO_WCS package inside Oracle Database contains procedures to initialize a WCS schema, publish GeoRaster objects as WCS coverages, and process WCS requests.

The following figure shows the WCS architecture.

Figure 17-1 Web Coverage Service Architecture


Description of "Figure 17-1 Web Coverage Service Architecture"

17.2 Database Schemas for WCS

For Web Coverage Service purposes, this document refers to Oracle Database schemas that can be user schemas and/or WCS schemas.

A user schema is any schema used to store GeoRaster objects.

In some examples used in this document, the schema of a database user named SCOTT is a user schema.

A WCS schema is any database schema with an SDO_WCS_COVERAGE table, which must be created using the SDO_WCS.Init procedure. The coverage information is stored in a WCS schema.

In some examples in this document, the schema of a specially created database user named WCS_USER is the WCS schema.

A given Oracle Database schema can be a user schema, a WCS schema, or both a user schema and a WCS schema.

Each WCS instance requires a WCS schema configured as a JDBC data source in the application container. Generally, only one WCS schema is configured for a specific database, but many WCS instances can be configured for use with the same database using different WCS schemas.

17.3 Database Objects Used for WCS

Several tables and other database objects are used to implement WCS operations.

Table SDO_WCS_COVERAGE contains metadata for all published coverages. The metadata includes coverage ID, raster ID, and raster data table. Each row corresponds to a coverage.

Sequence SDO_WCS_COVERAGE_ID_SEQ is used to generate a unique coverage ID value.

Table WCS_TEMP_TABLE is used as a temporary storage for GeoRaster objects when reprojection or transformation is involved when processing a GetCoverage Operation (WCS) request. GeoRaster objects are kept in this table until the response is sent, after which the objects are deleted from the table.

Table WCS_TEMP_RDT is the raster data table for GeoRaster objects in the WCS_TEMP_TABLE table.

17.4 PL/SQL Subprograms for Using WCS

SDO_WCS procedures and functions enable you to perform operations that include the following actions.

Initializing a WCS schema.

Creating temporary tables to store GeoRaster when a reprojection or transformation is needed. (CRS Extension or Scaling Extension.).

Granting and revoking privileges to WCS schema.

Dropping (unpublishing) coverages

SDO_WCS.Initcreates the SDO_WCS_COVERAGE table, causing that database schema to become a WCS schema.

SDO_WCS.PublishCoverage has two formats. One format publishes a GeoRaster object as a coverage, stores metadata in SDO_WCS_COVERAGE table, and assigns a unique coverage ID to it. The other format publishes all unpublished GeoRaster objects in a specified column.

SDO_WCS.CreateTempTable should be executed once for each user schema. This procedure creates a GeoRaster table and an RDT table for temporarily storing a GeoRaster object when reprojection or transformation is involved in processing a GetCoverage Operation (WCS) request.

17.5 Setting Up WCS Using WebLogic Server

For setting up WCS, WebLogic Server (WLS) 12.1.3 or later is required.

This topic uses an example that assumes the following:

A user schema SCOTT has a table named IMAGE, defined as:

The WCS schema is named WCS_USER.

Setting up the WCS server involves deploying the sdows.ear file into WebLogic Server (explained in Deploying and Configuring Spatial Web Services), as well as the following actions.

17.5.1 Configuring the Database Schemas

To configure the Oracle Database schemas, follow these steps:

Create metadata tables. To do so, use SQL*Plus to connect to Oracle Database as the user that you want to be the WCS user (in this example, a user named WCS_USER), and enter the following:

Connect as the database user (in this example, SCOTT, which owns a GeoRaster table named IMAGE) that stores GeoRaster objects.

Connect as the WCS user (in this example, WCS_USER), and publish the GeoRaster images from a user table containing the desired GeoRaster objects (for example, from the RASTER column in the SCOTT.IMAGES table)..

17.5.2 Setting Up WCS Data Sources

The WCS engine requires a single data source. Follow these steps to configure the WCS data source.

Log into the WebLogic Server (WLS) console.

In the left pane, under Domain Structure , select Data Sources

Click New , then Generic Data Source .

On Create a New JDBC Data Source page, specify:

JNDI Name : jdbc/wcs_admin_ds

For Database Driver select Oracle’s Driver (Thin) for Instance connections Versions: Any.

You can skip Supports Global Transactions.

On the Connection Properties page, specify:

Database User Name (for example, WCS_USER )

On the next page, test this connection. If the connection is successful, choose the appropriate server name for this deployment: either AdminServer or your managed server name.

Restart WebLogic Server or at least restart the sdows application, to discover the new data source.

17.5.3 Configuring GDAL for the WCS Server

The Oracle WCS implementation can generate any GDAL supported format. You must configure a GDAL instance on the same system as WebLogic Server. The GDAL VRT driver and the GDAL Oracle GeoRaster driver are needed to communicate with the WCS server. (To get GDAL, you can download it from http://www.gdal.org, or you can get its Linux and Windows versions from your Oracle Database installation as described in Oracle Spatial and Graph GeoRaster Developer's Guide .)

To know if you have the necessary GDAL drivers, execute the following GDAL command:

After the required GDAL drivers and desired GDAL output format drivers are installed, add the GDAL library directory to LD_LIBRARY_PATH. For example (Linux/UNIX):

Copy gdal.jar (located in the gdal/lib directory) to the WebLogic Server domain's lib directory,

Configure the GDAL database connection parameters using the Configuration File tab of the WCS Administration Console.

Optionally, specify creation options ( CreationOption ) to GDAL in a GetCoverage Operation (WCS) request

17.6 WCS Administration Console

The Oracle Spatial Web Services Administration Console supports WCS administration.

You can use the Web Coverage Service administration console by going to a URL in the following format:

The WCS administration console provides screens to configure, test, and diagnose problems. It has the following tabs:

This tab lets an administrator modify the sdows.ear/WEB-INF/conf/WCSConfig.xml file, which lets you configure WCS logging, GDAL parameters, and GetCapabilities responses ( ServiceIdentification and ServiceProvider ).

Logging attributes can be configured: log level, log file size limit, and number of log files.

Log rotation is supported based on the file size. By limiting the number of files, you can limit how much disk space the log files will take. Log files are created in the sdows/web/WEB-INF/log/ directory and have names in the form wcs_ n . log , where wcs_0.log has the most recent log messages and when it has reached its file size limit, the oldest file is removed and all log files are renamed to let wcs_0.log be used for the next set of log messages.

Log level can be SEVERE , WARNING , INFO (default), CONFIG , FINE , FINER , FINEST , or ALL .

Log size limit is file size limit in megabytes (default 10).

Log file count is the maximum number of log files.

The GDAL database connection is configured using the gdalParameters element as follows:

<gdalParameters user="<user>" password="!<password>" connectionString="<db_host:port:sid>" temporaryDirectory="<directory>" />

The specified user must have privileges to read all GeoRaster objects that are published as coverages. Is recommended that this user be the same as the WCS user.

The password must be encrypted by the server. You must add an exclamation point (!) character at the beginning of password attribute, to have the server encrypt the password.

The temporary directory should point to a writable directory to be used by GDAL to generate output files.

To validate that GDAL was properly configured, go to the About tab in the Oracle Spatial Web Services Administration Console ( http://<host>:<port>/oraclespatial/home.jsp ), which shows the GDAL version if it was properly configured.

ServiceIdentification and ServiceProvider can be configured by uncommenting the appropriate element and specifying the desired information, complying with the XML schemas at http://schemas.opengis.net/ows/2.0/owsGetCapabilities.xsd.

When you click Save Changes , your modifications make the changes in that file. If the file is updated successfully, you can choose to apply the changes to the running WCS instance or wait until the next applicationserver start.

This tab lets you publish new coverages. It requires administrator credentials.

To see all GeoRaster objects and their publishing status, click List All GeoRaster objects .

You can publish GeoRaster objects as coverages by providing a select query that returns a single column of type SDO_GEORASTER. All GeoRaster objects returned by the select query will be published. Use the following to specify the select query. (For simplicity, you can select any entry from “Select a raster table (schema, table, column)” and click Fill query parameters to populate these fields.)

Column Name : An SDO_GEORASTER column name from a table listed in From Clause

From Clause : A valid FROM clause that includes schema name, table name, and alias if required by the WHERE clause.

Where Clause : A valid WHERE clause that can include spatial operations. If the WHERE clause is empty, the SELECT statement will return all rows of the specified table.

You can click List GeoRaster to populate an HTML table with all specified GeoRaster objects, and you can choose to publish or unpublish individual GeoRaster objects.

A GeoRaster cannot be published more than once in a WCS instance.

This tab lets you send post requests. The Test tab is initially empty, in which case you need to send a GetCapabilities request to populate following elements:

Operation : An HTML select element with all operations discovered on last GetCapabilities response.

Coverage : An HTML select element which is populated with content of last GetCapabilities response. It contains all Coverage IDs from GetCapabilities response received.

Create Request : Populates the request test area with a request to the specified operations, coverage IDs, and operation URLs.

Request : A text area whose content will be sent in a post request to the Operation URL. This element can be populated by clicking Create Request , and you can edit that request as needed.

Operation URL : The URL where the request is to be sent. This element can be populated by clicking Create Request , and you can edit that request as needed.

Send Request : Sends an HTTP post request to the Operation URL using the content of the request. The response of the HTTP post request will be shown in the Response.

Response : A text area populated with the response of a Send Request operation.

This tab lets you visualize and download WCS log files. It requires administrator credentials.

All Oracle WCS log file are located in the sdows.ear/WEB-INF/log/ directory, with file names in the form wcs_ n .log , where n is a consecutive number.

This tab shows the content of the wcs_0.log file which has the most recent log messages generated by the WCS server. However, you can select other log files to see their contents. You can also refresh the display to include new log messages generated since the page was loaded or last refreshed.

Download lets you download the selected log file in zip format.

17.7 Oracle Implementation Extension for WCS

The Oracle WCS extension defines optional elements inside a wcs:Extension element in a WCS request, to let you control the following aspects of request processing.

GDAL CreationOption in a GetCoverage request

CompressResponseFile in a GetCoverage request

All formats included in your GDAL installation are supported the GetCoverage request. You can see the full list of formats and their names in the Capabilities XML document.

GDAL CreationOption in a GetCoverage Request

This element sends a -co parameter to GDAL on GetCoverage requests. Every GDAL driver defines its own creation option parameters.

CompressResponseFile in a GetCoverage Request

This element compresses the generated image into a zip file.

17.8 WCS Operations: Requests and Responses with XML Examples

WCS provides three major operations, and each operation has a request and response format.

When a client performs any sequence of WCS requests, it should first issue a GetCapabilities request to the server to obtain an up-to-date listing of available data. Then, it may issue a DescribeCoverage request to find out more details about particular coverages offered. To retrieve a coverage or part of a coverage, the client issues a GetCoverage request.

17.8.1 GetCapabilities Operation (WCS)

A GetCapabilities operation allows a WCS client to retrieve service and coverage metadata offered by a WCS server.

All WCS servers must implement KVP protocol for GetCapabilities requests. A user begins interaction with a WCS Server by sending a GetCapabilities request using KVP protocol (HTTP GET request) to the URL. For example:

A GetCapabilities operation returns an XML document describing the service and brief descriptions of the coverages that clients can request. Clients would generally run the GetCapabilities operation and cache its result for use throughout a session, or reuse it for multiple sessions.

GetCapabilities response includes the following:

WCS response version. If the request does not specify the desired response version, the server returns latest version supported.

The profile list of the ServiceIdentification identifies an OGC Interface Standard conformance class.

Operation elements in OperationsMetadata contain the URL for each WCS operation of each protocol. Each WCS operation of each WCS protocol might have a different URL.

formatSupported elements in ServiceMetadata list all available output formats by a GetCoverage request. This list includes GDAL-supported formats when configured. For example::

Extension elements allow WCS extension standards to define their individual extra service metadata. This element includes 16.8.2 12-039 OGC Web Coverage Service Interface Standard – Scaling Extension elements like: nearest-neighbor, bilinear, biquadratic, . It also includes 16.8.1 11-053r1 OGC Web Coverage Service Interface Standard – CRS Extension includes crsSupported elements.

The list of coverages offered by this server includes a coverage ID, which is a unique identifier used in DescribeCoverage and GetCoverage operation requests and the coverage subtype.

17.8.2 DescribeCoverage Operation (WCS)

A DescribeCoverage operation lets clients request detailed metadata for one or more coverages offered by a WCS server, and it provides an estimate of the amount of data to be expected in the domain and range set. A DescribeCoverage request provides a list of coverage identifiers and prompts the server to return, for each identifier, a description of the corresponding coverage. The following is an XML/POST DescribeCoverage request example:

The DescribeCoverage response contains a list of coverage metadata, one for each coverage identifier passed in the request. Coverage metadata is an XML document of type gml:Grid for GridCoverages , and of type gml:rectifiedGrid for RectifiedGridCoverages . The xsd schemas for those documents can be found in http://schemas.opengis.net/wcs/2.0/.

The gml:Grid element implicitly defines a grid, which is a network composed of two or more sets of curves in which the members of each set intersect the members of the other sets in an algorithmic way. The region of interest within the grid is given in terms of its gml:limits , being the grid coordinates of diagonally opposed corners of a rectangular region. gml:axisLabels is provided with a list of labels of the axes of the grid ( gml:axisName has been deprecated). gml:dimension specifies the dimension of the grid.

The gml:limits element contains a single gml:GridEnvelope . The gml:low and gml:high property elements of the envelope are lists of integers, which are coordinate tuples. The coordinates are measured as offsets from the origin of the grid, along each axis, of the diagonally opposing corners of a "rectangular" region of interest.

A rectified grid is a grid for which there is an affine transformation between the grid coordinates and the coordinates of an external coordinate reference system. It is defined by specifying the position (in some geometric space) of the grid "origin" and of the vectors that specify the post locations.

Note that the grid limits (post indexes) and axis name properties are inherited from gml:GridType , and that gml:RectifiedGrid adds a gml:origin property (contains or references a gml:Point ) and a set of gml:offsetVector properties.

17.8.3 GetCoverage Operation (WCS)

A GetCoverage operation is normally run after GetCapabilities and DescribeCoverage operation responses have shown what requests are allowed and what data is available. The GetCoverage operation returns a coverage (that is, values or properties of a set of geographic locations) encoded in a well-known coverage format.

A GetCoverage request prompts a WCS service to process a particular coverage selected from the service’s offering and return a derived coverage.

The WCS Core standard defines the domain subsetting operation, which delivers all data from a coverage inside a specified request envelope (“bounding box”), relative to the coverage’s envelope – more precisely, the intersection of the request envelope with the coverage envelope.

Domain subsetting is subdivided into trimming and slicing . A trim operation identifies a dimension and a lower and upper bound (which both must lie inside the coverage’s domain) and delivers a coverage whose domain, in the dimension specified, is reduced to these new, narrower limits. The resulting coverage’s dimension is identical to that of the input coverage. The following is an example of a DimensionTrim element:

A domain slice operation receives a dimension and a position (which must lie inside the coverage’s domain) and delivers a coverage that is a slice of the offered coverage obtained at the cutting position specified. The dimension of the resulting coverage is reduced by one as compared to the original coverage.

Both trimming and slicing can be combined in a request and on as many dimensions as desired. However, in any request, at most one operation can be applied per dimension. The following is an example of a DimensionSlice element:

The encoding format in which the coverage will be returned is specified by the combination of format and mediaType elelemts. The formats supported are those listed in the server’s Capabilities document, and the default is either application/gml+xml or image/tiff if GDAL is configured. For example:

17.9 WCS Extensions Implemented

This topic describes the WCS Extensions implemented and gives examples of some elements defined by each extension.

It concludes with a GetCoverage request example that includes all the extensions.

11-053r1 OGC Web Coverage Service Interface Standard – CRS Extension

This WCS CRS Extension defines how to request and obtain a coverage in CRSs different from the Native CRS, and also how to provide a subsetting bounding box with coordinates in a CRS different from the Native CRS. A WCS server supporting this WCS CRS Extension announces the CRSs supported by listing their CRS Identifiers in its Capabilities document. For example:

112-039 OGC Web Coverage Service Interface Standard – Scaling Extension

This extension allows scaling of a coverage along one or more of its axes during its server-side processing in a GetCoverage request. For example:

112-040 OGC Web Coverage Service Interface Standard – Range Subsetting Extension

This extension allows extraction of specific fields, according to the range type specification, from the range set of a coverage during server-side processing of a coverage in a GetCoverage request. For example:

112-049 OGC Web Coverage Service Interface Standard – Interpolation Extension

This extension gives control over interpolation of a coverage during its server-side processing.

This allows the WCS client to control and specify the interpolation mechanism to be applied to a coverage during server processing. For example:

112-100r1 OGC GML Application Schema – Coverages – GeoTIFF Coverage Encoding Profile

This encoding profile specifies the usage of the GeoTIFF data format for the encoding of GML coverages. For example:

Example Showing All Extensions

The following is an example of a GetCoverage request example with all extensions included:

17.10 Diagnosing WCS Issues

WCS log files provide diagnostic information.

These log files are inside the sdows.ear/WEB-INF/log directory. In the WCS Administration Console , the Configuration Files tab lets you configure logging, and the Log tab lets you visualize and download WCS log files.

This topic explains some error messages and how to deal with them.

“DataSource jdbc/wcs_admin_ds not found” GetCapabilities response error message

An OWS error response may be like the following (reformatted here for readability):

This means that a WCS data source is not configured or that WebLogic Server cannot connect to the database. Setting Up WCS Data Sources for information about configuring WCS data sources.

“INFO: GDAL was not found” message in WCS log file shown every time WebLogic Server starts

If no GDAL supported formats are needed, you can ignore this message. This message indicates that gdal.jar not found in the WebLogic Server libraries or that the LD_LIBRARY_PATH not properly configured.

If java.lang.NoClassDefFoundError: org/gdal/gdal/gdal appears in the WCS log, then the gdal.jar file was not found.

If java.lang.UnsatisfiedLinkError: org.gdal.gdal.gdalJNI.GetDriverCount()I appears in the WCS log, then the libgdal.so file was not found in LD_LIBRARY_PATH.

GDALParameter error response

An error message like the following is generated when GDAL is not properly configured:

The error indicates that the GDAL database connection parameters are not correct. See the Configuration File tab in the WCS Administration Console

Database connection error

The following message in the WCS log means that the database is not running:

“Error reading log file” message on WCS administration console Log tab

If an authenticated user does not interact with the WCS server administration console for a given period of time, the user session in the browser might have timed out. In this case, refresh the browser display, and re-authenticate to get a new session.

Document received does not conform with protocol syntax

An error message like the following indicates that the request contains XML elements or character elements that are not defined in any OGC specification:


  • TRT Terms:Conferences Fatalities Geographic information systems High risk locations Law enforcement Photography Safety Speed
  • Geographic Terms:Australia
  • ITRD Terms:1663 : Accident black spot 8006 : Australia 8525 : Conference 1534 : Enforcement (law) 1602 : Fatality 8605 : Geographical information system 6751 : Photography 1665 : Safety 5408 : Speed
  • Subject Areas: Safety and Human Factors Security and Emergencies
  • Accession Number: 00940140
  • Record Type: Publication
  • Source Agency: ARRB
  • ISBN: 0-7310-5471-7
  • Files: ITRD, ATRI
  • Created Date:Apr 4 2003 12:00AM

The National Academies of Sciences, Engineering, and Medicine

Copyright © 2021 National Academy of Sciences. All Rights Reserved. Terms of Use and Privacy Statement


Storing a coverage in a JDBC database - Geographic Information Systems

Bulk Loading and Scanning

The two simple operations: scanning a relation and loading a relation. Pages can be read in parallel while scanning a relation, and the retrieved tuples can then be merged, if the relation is partitioned across several disks. More generally, the idea also applies when retrieving all tuples that meet a selection condition. If hashing or range partitioning is used, selection queries can be answered by going to just those processors that contain relevant tuples .

A simple idea is to let each CPU sort the part of the relation that is on its local disk and to then merge these sorted sets of tuples . The degree of parallelism is likely to be limited by the merging phase.

A better idea is to redistribute all tuples in the relation using range partitioning. For example, if we want to sort a collection of employee tuples by salary, salary values range from 10 to 210, and we have 20 processors, we could send all tuples with salary values in the range 10 to 20 to the processor, all in the range 21 to 30 to the second processor, and so on. (Prior to the redistribution, while tuples are distributed across the processors, we cannot assume that they are distributed according to salary ranges.)

Each processor then sorts the tuples assigned to it, using some sequential sorting algorithm. For example, a processor can collect tuples until its memory is full, then sort these tuples and write out a run, until all incoming tuples have been written to such sorted runs on the local disk. These runs can then be merged to create the sorted version of the set of tuples assigned to this processor. The entire sorted relation can be retrieved by visiting the processors in an order corresponding to the ranges assigned to them and simply scanning the tuples .

The basic challenge in parallel sorting is to do the range partitioning so that each processor receives roughly the same number of tuples otherwise, a processor that receives a disproportionately large number of tuples to sort becomes a bottleneck and limits the scalability of the parallel sort. One good approach to range partitioning is to obtain a sample of the entire relation by taking samples at each processor that initially contains part of the relation. The (relatively small) sample is sorted and used to identify ranges with equal numbers of tuples . This set of range values, called a splitting vector, is then distributed to all processors and used to range partition th e entire relation.

A particularly important application of parallel sorting is sorting the data entries in tree-structured indexes. Sorting data entries can signi ficantly speed up the process of bulk-loading an index.

Suppose that we want to join two relations, say, A and B,on the age attribute. We assume that they are initially distributed across several disks in some way that is not useful for the join operation, that is, the initial partitioning is not based on the join attribute. The basic idea for joining A and B in parallel is to decompose the join into a collection of k smaller joins. We can decompose the join by partitioning both A and B into a collection of k logical buckets or partitions. By using the same partitioning function for both A and B, we ensure that the union of the k smaller joins computes the join of A and B this idea is similar to intuition behind the partitioning phase of a sequential hash join. Because A and B are initially distributed across several processors, the partitioning step can itself be done in parallel at these processors. At each processor, all local tuples are retrieved and hashed into one of k partitions, with the same hash function used at all sites, of course.

Alternatively, we can partition A and B by dividing the range of the join attribute age into k disjoint subranges and placing A and B tuples into partitions according to the subrange to which their age values belong. For example, suppose that we have 10 processors, the join attribute is age, with values from 0 to 100. Assuming uniform distribution, A and B tuples with 0  age < 10 go to processor 1, 10  age < 20 go to processor 2, and so on. This approach is likely to be more susceptible than hash partitioning to data skew (i.e., the number of tuples to be joined can vary widely across partitions), unless the subranges are carefully determined.

If range partitioning is used, the algorithm outlined above leads to a parallel version of a sort-merge join, with the advantage that the output is available in sorted order. If hash partitioning is used, we obtain a parallel version of a hash join.


Storing a coverage in a JDBC database - Geographic Information Systems

This chapter describes the Oracle Spatial and Graph implementation of the Open GIS Consortium (OGC) standard for Web Coverage Service Interface Standard (WCS), which, supports retrieval of “coverages” (according to the OGC, “electronic encoding of geospatial data, that is, digital geospatial information representing space and time-varying phenomena”).

The Oracle Spatial and Graph implementation will be referred to as Web Coverage Service, or WCS.

Web Coverage Service (WCS) enables electronic retrieval of geospatial data as "coverages.” WCS provides data and descriptions, a syntax for querying the data, and the ability to return data on which you can perform various operations (visualize, interpret, extrapolate, and so on). WCS supports the storage of both GridCoverage (GeoRaster object without coordinate reference system) and RectifiedGridCoverage (GeoRaster object with coordinate reference system and georeferenced with an affine transformation) raster types

Oracle Spatial and Graph implements the following OGC standards.

09-110r4 WCS Core 2.0 Interface Standard - Core.

09-146r2 OGC GML Application Schema – Coverages.

09-147r3 OGC Web Coverage Service 2.0 Interface Standard – KVP Protocol Binding Extension – Corrigendum.

09-148r1 OGC Web Coverage Service 2.0 Interface Standard – XML/POST Protocol Binding Extension.

09-149r1 OGC Web Coverage Service 2.0 Interface Standard – XML/SOAP Protocol Binding Extension.

11-053r1 OGC Web Coverage Service Interface Standard – CRS Extension

12-039 OGC Web Coverage Service Interface Standard – Scaling Extension.

12-040 OGC Web Coverage Service Interface Standard – Range Subsetting Extension.

12-049 OGC Web Coverage Service Interface Standard – Interpolation Extension.

12-052 OGC WCS 2.0.1 Corrigendum Release Notes.

12-100r1 OGC GML Application Schema – Coverages – GeoTIFF Coverage Encoding Profile.

Oracle WCS also extends the OGC standards to support all GDAL-supported image or raster features as output format in a GetCoverage request.

Before you use WCS, be sure that you understand the concepts described in Introduction to Spatial Web Services, and that you have performed any necessary configuration work as described in that chapter.


    In Oracle Spatial and Graph, WCS is implemented as a Java web application and can be deployed in WebLogic 12.1.3 or later.
    For Web Coverage Service purposes, this document refers to Oracle Database schemas that can be user schemas and/or WCS schemas.
    Several tables and other database objects are used to implement WCS operations.
    SDO_WCS procedures and functions enable you to perform operations that include the following actions.
    For setting up WCS, WebLogic Server (WLS) 12.1.3 or later is required.
    The Oracle Spatial Web Services administration console is a single-page application that you can access by going to a URL in the following format.
    The Oracle WCS extension defines optional elements inside a wcs:Extension element in a WCS request, to let you control the following aspects of request processing.
    WCS provides three major operations, and each operation has a request and response format.
    This topic describes the WCS Extensions implemented and gives examples of some elements defined by each extension.
    WCS log files provide diagnostic information.

17.1 Web Coverage Service Architecture

In Oracle Spatial and Graph, WCS is implemented as a Java web application and can be deployed in WebLogic 12.1.3 or later.

The required Java version is JDK 1.8 or later. This implementation of WCS is packaged in the Spatial Web Services sdows.ear file in the $ORACLE_HOME/md/jlib directory. For information about deploying this file, see Deploying and Configuring Spatial Web Services.

WCS implements three protocol binding extensions, KVP (HTTP GET), XML/POST (HTTP/POST), and XML/SOAP. It also uses a GDAL Java API to generate image formats supported by GDAL. A GDAL instance must be configured on the same system as the application container where Spatial Web Services is deployed.

The SDO_WCS package inside Oracle Database contains procedures to initialize a WCS schema, publish GeoRaster objects as WCS coverages, and process WCS requests.

The following figure shows the WCS architecture.

Figure 17-1 Web Coverage Service Architecture


Description of "Figure 17-1 Web Coverage Service Architecture"

17.2 Database Schemas for WCS

For Web Coverage Service purposes, this document refers to Oracle Database schemas that can be user schemas and/or WCS schemas.

A user schema is any schema used to store GeoRaster objects.

In some examples used in this document, the schema of a database user named SCOTT is a user schema.

A WCS schema is any database schema with an SDO_WCS_COVERAGE table, which must be created using the WCS Administration Console or the SDO_WCS.Init procedure. The coverage information is stored in a WCS schema.

In some examples in this document, the schema of a specially created database user named WCS_USER is the WCS schema.

A given Oracle Database schema can be a user schema, a WCS schema, or both a user schema and a WCS schema.

Each WCS instance requires a WCS schema configured as a JDBC data source in the application container. Generally, only one WCS schema is configured for a specific database, but many WCS instances can be configured for use with the same database.

17.3 Database Objects Used for WCS

Several tables and other database objects are used to implement WCS operations.

Table SDO_WCS_COVERAGE contains metadata for all published coverages. The metadata includes coverage ID, raster ID, and raster data table. Each row corresponds to a coverage.

Sequence SDO_WCS_COVERAGE_ID_SEQ is used to generate a unique coverage ID value.

Table WCS_TEMP_TABLE is used as a temporary storage for GeoRaster objects when reprojection or transformation is involved when processing a GetCoverage Operation (WCS) request. GeoRaster objects are kept in this table until the response is sent, after which the objects are deleted from the table.

Table WCS_TEMP_RDT is the raster data table for GeoRaster objects in the WCS_TEMP_TABLE table.

17.4 PL/SQL Subprograms for Using WCS

SDO_WCS procedures and functions enable you to perform operations that include the following actions.

Initializing a WCS schema.

Creating temporary tables to store GeoRaster when a reprojection or transformation is needed. (CRS Extension or Scaling Extension.).

Granting and revoking privileges to WCS schema.

Dropping (unpublishing) coverages

SDO_WCS.Initcreates the SDO_WCS_COVERAGE table, causing that database schema to become a WCS schema.

SDO_WCS.PublishCoverage has two formats. One format publishes a GeoRaster object as a coverage, stores metadata in SDO_WCS_COVERAGE table, and assigns a unique coverage ID to it. The other format publishes all unpublished GeoRaster objects in a specified column.

SDO_WCS.CreateTempTable should be executed once for each user schema. This procedure creates a GeoRaster table and an RDT table for temporarily storing a GeoRaster object when reprojection or transformation is involved in processing a GetCoverage Operation (WCS) request.

17.5 Setting Up WCS Using WebLogic Server

For setting up WCS, WebLogic Server (WLS) 12.1.3 or later is required.

This topic uses an example that assumes the following:

A user schema SCOTT has a table named IMAGE, defined as:

The WCS schema is named WCS_USER.

Setting up the WCS server involves deploying the sdows.ear file into WebLogic Server (explained in Deploying and Configuring Spatial Web Services), as well as the following actions.

17.5.1 Configuring the Database Schemas

If you plan to use the same Oracle Database schema both to store GeoRaster objects and to access them through WCS, skip this section and go to Setting Up WCS Data Sources.

To configure the Oracle Database schemas, follow these steps:

Create metadata tables. To do so, use SQL*Plus to connect to Oracle Database as the user that you want to be the WCS user (in this example, a user named WCS_USER), and enter the following:

Connect as the database user (in this example, SCOTT, which owns a GeoRaster table named IMAGE) that stores GeoRaster objects.

Connect as the WCS user (in this example, WCS_USER), and publish the GeoRaster images from a user table containing the desired GeoRaster objects (for example, from the RASTER column in the SCOTT.IMAGES table).

17.5.2 Setting Up WCS Data Sources

Each database can have multiple WCS schemas, each of which corresponds to one data source in WebLogic. You can also have multiple data sources configured for WCS in WebLogic sever. Each data source can be accessed through a different URL, where the last part of the URL correspond to the Data Source name configured in WebLogic Server.

The following is an example link with a WLS data source named wcsdata1 :

Follow these steps to configure a WCS data source.

Log into the WebLogic Server (WLS) console.

In the left pane, under Domain Structure , select Data Sources

Click New , then Generic Data Source .

On Create a New JDBC Data Source page, specify:

Name : Any name without spaces

JNDI Name : Any name starting tihe jdbc/

For Database Driver select Oracle’s Driver (Thin) for Instance connections Versions: Any.

You can skip Supports Global Transactions.

On the Connection Properties page, specify:

Database User Name (for example, WCS_USER )

On the next page, test this connection. If the connection is successful, choose the appropriate server name for this deployment: either AdminServer or your managed server name.

17.5.3 Configuring GDAL for the WCS Server

The Oracle WCS implementation can generate any GDAL supported format. You must configure a GDAL instance on the same system as WebLogic Server. The GDAL VRT driver and the GDAL Oracle GeoRaster driver are needed to communicate with the WCS server. (To get GDAL, you can download it from http://www.gdal.org, or you can get its Linux and Windows versions from your Oracle Database installation as described in Oracle Spatial and Graph GeoRaster Developer's Guide .)

To know if you have the necessary GDAL drivers, execute the following GDAL command:

After the required GDAL drivers and desired GDAL output format drivers are installed, add the GDAL library directory to LD_LIBRARY_PATH to the WLS setDomainEnv script. For example, for Linux/UNIX:

Copy gdal.jar (located in the gdal/lib directory) to the WebLogic Server domain's lib directory,

Configure the GDAL database connection parameters using the Configuration File tab of the WCS Administration Console.

Optionally, specify creation options ( CreationOption ) to GDAL in a GetCoverage Operation (WCS) request

17.6 WCS Administration Console

The Oracle Spatial Web Services administration console is a single-page application that you can access by going to a URL in the following format.

Before you can use any administration console page, select a WCS data source from the list of all available data source names. (The currently selected data source is shown in the upper-right corner, and you can change it there at any time.)

The WCS administration console provides screens to configure, test, and diagnose problems. It has the following tabs:

This tab lets an administrator modify the WCSConfig.xml file, which lets you configure WCS logging, GDAL parameters, and GetCapabilities responses ( ServiceIdentification and ServiceProvider ).

Logging attributes can be configured: log level, log file size limit, and number of log files.

Log rotation is supported based on the file size. By limiting the number of files, you can limit how much disk space the log files will take. Log files are generated inside the directory referenced by the sdows java property, and they have names in the form wcs_ n<data source name> .log , where wcs_0.log has the most recent log messages and when it has reached its file size limit, the oldest file is removed and all log files are renamed to let wcs_0.log be used for the next set of log messages.

Log level can be SEVERE , WARNING , INFO (default), CONFIG , FINE , FINER , FINEST , or ALL .

Log size limit is file size limit in megabytes (default 10).

Log file count is the maximum number of log files.

The GDAL database connection is configured using the gdalParameters element as follows:

<gdalParameters user="<user>" password="!<password>" connectionString="<db_host:port:sid>" temporaryDirectory="<directory>" />

The specified user must have privileges to read all GeoRaster objects that are published as coverages. Is recommended that this user be the same as the WCS user.

The password must be encrypted by the server. You must add an exclamation point (!) character at the beginning of password attribute, to make the server encrypt the password.

The temporary directory should point to a writable directory to be used by GDAL to generate output files. Example: /tmp

To validate that GDAL was properly configured, go to the About tab in the Oracle Spatial Web Services administration console ( http://<host>:<port>/oraclespatial ), which shows the GDAL version if it was properly configured.

ServiceIdentification and ServiceProvider can be configured by uncommenting the appropriate element and specifying the desired information, complying with the XML schemas at http://schemas.opengis.net/ows/2.0/owsGetCapabilities.xsd.

When you click Save Changes , the server applies the changes, and no restart is needed.

This tab lets you publish new coverages. It requires administrator credentials.

You can publish GeoRaster objects as coverages by providing a select query that returns a single column of type SDO_GEORASTER. All GeoRaster objects returned by the select query will be published. Use the following to specify the select query. (For simplicity, you can select any entry from “Select a raster table (schema, table, column)” and click Fill query parameters to populate these fields.)

Column Name : An SDO_GEORASTER column name from a table listed in From Clause

From Clause : A valid FROM clause that includes schema name, table name, and alias if required by the WHERE clause.

Where Clause : A valid WHERE clause that can include spatial operations. If the WHERE clause is empty, the SELECT statement will return all rows of the specified table.

This page shows an HTML table with all GeoRaster objects. You can choose to publish or unpublish individual GeoRaster objects by right-clicking the desired row..

A GeoRaster cannot be published more than once in a WCS instance.

This tab lets you send post requests. The Test tab is initially empty, in which case you need to send a GetCapabilities request to populate following elements:

Operation : An HTML select element with all operations discovered on last GetCapabilities response.

Coverage : An HTML select element which is populated with content of last GetCapabilities response. It contains all Coverage IDs from GetCapabilities response received.

Create Request : Populates the request test area with a request to the specified operations, coverage IDs, and operation URLs.

Request : A text area whose content will be sent in a post request to the Operation URL. This element can be populated by clicking Create Request , and you can edit that request as needed.

Operation URL : The URL where the request is to be sent. This element can be populated by clicking Create Request , and you can edit that request as needed.

Send Request : Sends an HTTP post request to the Operation URL using the content of the request. The response of the HTTP post request will be shown in the Response.

Response : A text area populated with the response of a Send Request operation.

This tab lets you visualize and download WCS log files. Log files are generated inside the directory referenced by the sdows java property. Using the Log tab requires administrator credentials.

All Oracle WCS log files have file names in the form wcs_ n .log , where n is a consecutive number, and for the newest log files n is 0 (zero).

This tab shows the content of the wcs_<data_source_name>_0.log file, which has the most recent log messages generated by the WCS server. However, you can select other log files to see their contents. You can also refresh the display to include new log messages generated since the page was loaded or last refreshed.

Download lets you download the selected log file in zip format.

17.7 Oracle Implementation Extension for WCS

The Oracle WCS extension defines optional elements inside a wcs:Extension element in a WCS request, to let you control the following aspects of request processing.

GDAL CreationOption in a GetCoverage request

CompressResponseFile in a GetCoverage request

All formats included in your GDAL installation are supported the GetCoverage request. You can see the full list of formats and their names in the Capabilities XML document.

GDAL CreationOption in a GetCoverage Request

This element sends a -co parameter to GDAL on GetCoverage requests. Every GDAL driver defines its own creation option parameters.

CompressResponseFile in a GetCoverage Request

This element compresses the generated image into a zip file.

17.8 WCS Operations: Requests and Responses with XML Examples

WCS provides three major operations, and each operation has a request and response format.

When a client performs any sequence of WCS requests, it should first issue a GetCapabilities request to the server to obtain an up-to-date listing of available data. Then, it may issue a DescribeCoverage request to find out more details about particular coverages offered. To retrieve a coverage or part of a coverage, the client issues a GetCoverage request.

17.8.1 GetCapabilities Operation (WCS)

A GetCapabilities operation allows a WCS client to retrieve service and coverage metadata offered by a WCS server.

All WCS servers must implement KVP protocol for GetCapabilities requests. A user begins interaction with a WCS Server by sending a GetCapabilities request using KVP protocol (HTTP GET request) to the URL. For example:

A GetCapabilities operation returns an XML document describing the service and brief descriptions of the coverages that clients can request. Clients would generally run the GetCapabilities operation and cache its result for use throughout a session, or reuse it for multiple sessions.

GetCapabilities response includes the following:

WCS response version. If the request does not specify the desired response version, the server returns latest version supported.

The profile list of the ServiceIdentification identifies an OGC Interface Standard conformance class.

Operation elements in OperationsMetadata contain the URL for each WCS operation of each protocol. Each WCS operation of each WCS protocol might have a different URL.

formatSupported elements in ServiceMetadata list all available output formats by a GetCoverage request. This list includes GDAL-supported formats when configured. For example:

Extension elements allow WCS extension standards to define their individual extra service metadata. This element includes 16.8.2 12-039 OGC Web Coverage Service Interface Standard – Scaling Extension elements like: nearest-neighbor, bilinear, biquadratic, . It also includes 16.8.1 11-053r1 OGC Web Coverage Service Interface Standard – CRS Extension includes crsSupported elements.

The list of coverages offered by this server includes a coverage ID, which is a unique identifier used in DescribeCoverage and GetCoverage operation requests and the coverage subtype.

17.8.2 DescribeCoverage Operation (WCS)

A DescribeCoverage operation lets clients request detailed metadata for one or more coverages offered by a WCS server, and it provides an estimate of the amount of data to be expected in the domain and range set. A DescribeCoverage request provides a list of coverage identifiers and prompts the server to return, for each identifier, a description of the corresponding coverage. The following is an XML/POST DescribeCoverage request example:

The DescribeCoverage response contains a list of coverage metadata, one for each coverage identifier passed in the request. Coverage metadata is an XML document of type gml:Grid for GridCoverages , and of type gml:rectifiedGrid for RectifiedGridCoverages . The xsd schemas for those documents can be found in http://schemas.opengis.net/wcs/2.0/.

The gml:Grid element implicitly defines a grid, which is a network composed of two or more sets of curves in which the members of each set intersect the members of the other sets in an algorithmic way. The region of interest within the grid is given in terms of its gml:limits , being the grid coordinates of diagonally opposed corners of a rectangular region. gml:axisLabels is provided with a list of labels of the axes of the grid ( gml:axisName has been deprecated). gml:dimension specifies the dimension of the grid.

The gml:limits element contains a single gml:GridEnvelope . The gml:low and gml:high property elements of the envelope are lists of integers, which are coordinate tuples. The coordinates are measured as offsets from the origin of the grid, along each axis, of the diagonally opposing corners of a "rectangular" region of interest.

A rectified grid is a grid for which there is an affine transformation between the grid coordinates and the coordinates of an external coordinate reference system. It is defined by specifying the position (in some geometric space) of the grid "origin" and of the vectors that specify the post locations.

Note that the grid limits (post indexes) and axis name properties are inherited from gml:GridType , and that gml:RectifiedGrid adds a gml:origin property (contains or references a gml:Point ) and a set of gml:offsetVector properties.

17.8.3 GetCoverage Operation (WCS)

A GetCoverage operation is normally run after GetCapabilities and DescribeCoverage operation responses have shown what requests are allowed and what data is available. The GetCoverage operation returns a coverage (that is, values or properties of a set of geographic locations) encoded in a well-known coverage format.

A GetCoverage request prompts a WCS service to process a particular coverage selected from the service’s offering and return a derived coverage.

The WCS Core standard defines the domain subsetting operation, which delivers all data from a coverage inside a specified request envelope (“bounding box”), relative to the coverage’s envelope – more precisely, the intersection of the request envelope with the coverage envelope.

Domain subsetting is subdivided into trimming and slicing . A trim operation identifies a dimension and a lower and upper bound (which both must lie inside the coverage’s domain) and delivers a coverage whose domain, in the dimension specified, is reduced to these new, narrower limits. The resulting coverage’s dimension is identical to that of the input coverage. The following is an example of a DimensionTrim element:

A domain slice operation receives a dimension and a position (which must lie inside the coverage’s domain) and delivers a coverage that is a slice of the offered coverage obtained at the cutting position specified. The dimension of the resulting coverage is reduced by one as compared to the original coverage.

Both trimming and slicing can be combined in a request and on as many dimensions as desired. However, in any request, at most one operation can be applied per dimension. The following is an example of a DimensionSlice element:

The encoding format in which the coverage will be returned is specified by the combination of format and mediaType elelemts. The formats supported are those listed in the server’s Capabilities document, and the default is either application/gml+xml or image/jpeg if GDAL is configured. For example:

17.9 WCS Extensions Implemented

This topic describes the WCS Extensions implemented and gives examples of some elements defined by each extension.

It concludes with a GetCoverage request example that includes all the extensions.

11-053r1 OGC Web Coverage Service Interface Standard – CRS Extension

This WCS CRS Extension defines how to request and obtain a coverage in CRSs different from the Native CRS, and also how to provide a subsetting bounding box with coordinates in a CRS different from the Native CRS. A WCS server supporting this WCS CRS Extension announces the CRSs supported by listing their CRS Identifiers in its Capabilities document. For example:

112-039 OGC Web Coverage Service Interface Standard – Scaling Extension

This extension allows scaling of a coverage along one or more of its axes during its server-side processing in a GetCoverage request. For example:

112-040 OGC Web Coverage Service Interface Standard – Range Subsetting Extension

This extension allows extraction of specific fields, according to the range type specification, from the range set of a coverage during server-side processing of a coverage in a GetCoverage request. For example:

112-049 OGC Web Coverage Service Interface Standard – Interpolation Extension

This extension gives control over interpolation of a coverage during its server-side processing.

This allows the WCS client to control and specify the interpolation mechanism to be applied to a coverage during server processing. For example:

112-100r1 OGC GML Application Schema – Coverages – GeoTIFF Coverage Encoding Profile

This encoding profile specifies the usage of the GeoTIFF data format for the encoding of GML coverages. For example:

Example Showing All Extensions

The following is an example of a GetCoverage request example with all extensions included:

17.10 Diagnosing WCS Issues

WCS log files provide diagnostic information.

In the WCS Administration Console , the Configuration Files tab lets you configure logging, and the Log tab lets you visualize and download WCS log files.

This topic explains some error messages and how to deal with them.

“DataSource jdbc/wcs_admin_ds not found” GetCapabilities response error message

An OWS error response may be like the following (reformatted here for readability):

This means that a WCS data source is not configured or that WebLogic Server cannot connect to the database. Setting Up WCS Data Sources for information about configuring WCS data sources.

“INFO: GDAL was not found” message in WCS log file shown every time WebLogic Server starts

If no GDAL supported formats are needed, you can ignore this message. This message indicates that gdal.jar not found in the WebLogic Server libraries or that the LD_LIBRARY_PATH not properly configured.

If java.lang.NoClassDefFoundError: org/gdal/gdal/gdal appears in the WCS log, then the gdal.jar file was not found.

If java.lang.UnsatisfiedLinkError: org.gdal.gdal.gdalJNI.GetDriverCount()I appears in the WCS log, then the libgdal.so file was not found in LD_LIBRARY_PATH.

GDALParameter error response

An error message like the following is generated when GDAL is not properly configured:

The error indicates that the GDAL database connection parameters are not correct. See the Configuration File tab in the WCS Administration Console

Database connection error

The following message in the WCS log means that the database is not running:

“Error reading log file” message on WCS administration console Log tab

If an authenticated user does not interact with the WCS server administration console for a given period of time, the user session in the browser might have timed out. In this case, refresh the browser display, and re-authenticate to get a new session.

Document received does not conform with protocol syntax

An error message like the following indicates that the request contains XML elements or character elements that are not defined in any OGC specification:


Storing a coverage in a JDBC database - Geographic Information Systems

Geoinformatics & Geostatistics: An Overview is a peer-reviewed scholarly journal and aims to publish the most complete and reliable source of information on the discoveries and current developments in the mode of original articles, review articles, case reports, short communications, etc. in all major themes pertaining to Geographical Studies and making them available online freely without any restrictions or any other subscriptions to researchers worldwide.

Geoinformatics & Geostatistics: An Overview focuses on the topics that include:

    Information Science (GIScience)
  • Geography Studies and Geocomputation Decision Support Systems
  • Web mapping
  • Land cover and land use changes
  • Geodesy and Geoportal
  • Photogrammetry Modeling and Interpretation

The Journal is using Editorial Tracking System for quality in review process. Editorial Tracking is an online manuscript submission, review and tracking system. Review processing is performed by the editorial board members of Geoinformatics & Geostatistics: An Overview or outside experts at least two independent reviewers approval followed by editor approval is required for acceptance of any citable manuscript. Authors may submit manuscripts and track their progress through the online tracking system, hopefully to publication.

*2018 Journal Impact Factor is the ratio of the number of citations achieved in the year 2018 based on Google Search and Google Scholar Citations to the total number of articles published in the last two years i.e. in 2016 and 2017. Impact factor measures the quality of the Journal.If &lsquoX&rsquo is the total number of articles published in 2016 and 2017, and &lsquoY&rsquo is the number of times these articles were cited in indexed journals during 2018 then, impact factor = Y/X.

Geographic Information Science (GIScience):

Geographic Information Science (GIScience) is the information system with advanced computer technology used to evaluate, design, edit and visualize the geographic information from the database. Geographic Information Science is used in the disciplines of social, environmental, biological, health and engineering sciences.

Geographic Information Technology

Geographic Information Technology is the major field using the various advanced technologies for the capturing, storing and displaying data related to geographical systems. Geographic Information Technology covers all the essential data in the study.

Geo-visualization:

Geo-visualization, the field in geographical sciences constitutes the various techniques and tools for understanding, interpretation, assessment and interactive visualization of geospatial data. Geo visualization deals with interaction techniques and combined visual and computational mining of geospatial data.

Geo-spatial Intelligence:

Geo-spatial Intelligence is the field in geological sciences wherein the intelligence of human activity on earth is assessed in exploitation and analysis of geospatial data and visually depicts physical features (both natural and constructed) and geographically referenced activities on the Earth. Geo-spatial Intelligence is used as imagery as map-based intelligence and geospatial information in support of the nation's military forces, national policy makers and civil users.

Spatial Decision Support Systems:

Spatial Decision Support Systems is a computer based interactive system structured to help the user or group of users in making a decision while dealing with the semi-structured spatial problems. Spatial Decision Support System is the advancement to many calculations in geographic studies.

Remote Sensing:

Remote Sensing is the advanced technology in geography which deals with the science of observing or recording the objects or events which are far away i.e. remote places such as earth&rsquos surface and atmosphere using sensors onboard platforms. Remote Sensing deals with various topics like Radio meters, Photo meters, RADAR, LIDAR, Hyper spectral imaging.

Web Mapping:

Web Mapping is the field of geographical sciences dealing with the use of maps delivered by geographical information system. Web Mapping generally uses a web browser or other user agent capable of client-server interaction.

Agro-ecosystem Modeling:

Agro-ecosystem Modeling is the most advancing technology for agricultural analytics. Agro-ecosystem Modeling is the geographical approach of assessing the information related to agriculture by using several geographical techniques for its statistics and information generation.

Agro-Geoinformatics:

Agro-Geoinformatics, a branch of geoinformatics, is the science and technology dealing with the digital agro-geoinformation, such as collection of data through remote sensing, processing, storing, retrieving, transmitting and visualization agro-geoinformation. Agro-Geoinformation is crucial for the agricultural sustainability, food security, environmental research, etc.

Geodetic Systems:

Geodetic system is the widely used technology wherein, it consists of a coordinate system along with the set of reference points used to locate places on earth. Geodetic systems are used in surveying by cartographers and satellite navigation systems.

Land-Use and Land-Cover Change:

Land-Use and Land-Cover Change (LULCC) is the term majorly used for the human modification on earth surface. Scientists are in vast research on the Monitoring and mediating the negative consequences of LULCC. Land-Use / Land-Cover Changes (LULCC) affect climate through impacts on surface albedo, sensible and latent heat fluxes, the boundary layer temperature-moisture profile, and the partitioning of rainfall between evaporation, transpiration and runoff.

Global Navigation Satellite Systems:

Global Navigation Satellite Systems is the advanced technology of satellite system that is used to provide signals from space for geographic positioning and timing of data anywhere in the globe. A GNSS system employs a constellation of orbiting satellites working in conjunction with a network of ground stations.

Cartography:

Cartography is the art of science which involves representation of data such as geographical area on a flat surface like map or chart graphically. Cartography is widely used in geological studies for easy evaluation and comparision of data.

Geodesy and Geoportal:

Geodesy or Geodetics engineering is the associated field of geological sciences including applied mathematics and earth sciences with the measurement and understanding of the earth&rsquos shape, orientation and its gravity. A geoportal is the basic web portal used to access geographic information and associated geographic services through the Internet.

GeoComputation:

GeoComputation is the field of geographical sciences which uses the computer technology such as neural networks, cellular automata, etc for the spatial data analysis, geographic data assessment, storage and updating. GeoComputation seeks to investigate problems in geographic studies in their spatial context.

Photogrammetry:
Photogrammetry is the field of research in geographical sciences used for making measurements through photographs, for recovering surface points on earth. Photogrammetry uses high-speed imaging and remote sensing techniques to detect, measure and record complex 2-D and 3-D motion fields.

Geo-Data Techniques :

Geo-Data Techniques is the field of geography which uses various techniques for the collection, storage and updating of Geographic data obtained at several instincts for its future comparison with the advanced data.

Geodynamics

Geodynamics is the associated field of geophysics which deals with the earth dynamics in combination with fields of mathematics and chemistry. Geodynamics generally use data from geodetic GPS, InSAR, and seismology.

Geography Studies

Geography Studies is the science of dealing with the geography of Earth's landscapes, peoples, places and environments. Geography Studies include the studies of assessing environmental studies, spatial studies, satellite events etc.

Geophysical Modeling

Geophysical Modeling and Interpretation is the applied science of creating computerized representations of the Earth based on geophysical and geological observations and their interpretation results with the comparative studies. Geophysical Modeling and Interpretation deals with development, and evaluation of numerical models of the Earth system and its components.

Geothermal Engineering

Geothermal Engineering, field of engineering which deals with the thermal energy studies obtained from the earth. Temperature studies including studies of natural disasters can be assessed in geothermal studies.

Geostatistics

Geostatistics is the combined field of geography and statistics. Geostatistics focuses on modeling spatial data using spatiotemporal datasets. Geostatistics is used majorly in Epidemiology and planning studies.


Product Focus: Desktop GIS

Until recently, the term "desktop GIS" meant a system with limited functions running on a personal computer. High-end GIS was found only on workstations. Now these distinctions are beginning to blur. Market forces, advances in software technology and the growing use of modular architecture to expand desktop GIS capabilities are accelerating the migration of workstation functionalities to the PC.

GIS is becoming more widely accepted as an information-processing tool. Versatile servers and network solutions now automate many tasks that formerly required a specialist. Users can access multiple data sources across an enterprise without third-party translation merge geographic and relational data, producing a separate geographic database and publish geographic databases and mapping applications in Internet/intranet environments. Concurrently, modular extensions are redefining the concept of desktop GIS by expanding functionalities well beyond basic core features.

The following the growth of the Internet has given rise to map servers for publishing geographic databases and mapping applications in Internet/intranet environments. All of these capabilities are showing up in leading desktop GIS.


I don't have the time to test this, so I hope you can do that for me. I decided not to use HashMap straight away because type conversion makes things a bit more complicated than they should, but let me know if this is important for you and causes you trouble.

I don't like it much because some parts of the code rely on side effects of other parts of the code, so even if it works, it's still ugly.

Here's option 2, which I like more:

Nicer, IMHO, you can save some dots over there but I decided to keep them. Maybe something like this:

Again, I didn't test it, I don't know how to do it without a DB and I don't feel like setting one up now, sorry for that.

Finally, I'm not sure if you realized this, but "realize" is probably not the best name for this method (or for any method, unless you are programming some epistemic system, IMHO).