wiki:Clients

Version 31 (modified by Bang Pham Huu, 8 years ago) ( diff )

add Rasql Servlet description with detail.

Clients

It is important for data users to get convenient access to rasdaman functionality, for manifold reasons: users want to stay in their well-known environments (such as QGIS, ESRI, or R); users have additional functionality in their tools which they want to apply on data retrieved from rasdaman; users do not want to learn yet another data language. To this end, a large and increasing number of tools can access rasdaman today, thereby enabling these with flexible, scalable server-side processing of n-D "Big Array Data". They largely fall into two categories, rasdaman-provided and "external" third-party tools. Below they are listed and explained.

rasdaman can interface with a large and increasing number of tools. Some clients allow direct query submission, such as rasql and directql. For rapid development of browser clients the raswct toolkit is provided.

Geo tools supported include OpenLayers, QGIS, ncWMS, THREDDS, GDAL, MapServer, !ArcGIS; soon: GeoServer. Geo standards supported are OGC WMS, WCS, WCPS, and WPS; hence, all clients conforming to these standards can additionally be used for interfacing. All geo semantics is implemented through the petascope component (source) which is implemented as a Java application layer offering OGC Web services.

Clients coming with rasdaman

Rasql query language access

The following clients allow to submit rasql queries:

  • rasql is a command-line utility for sending queries and saving results in local files. Invocation example (see rasql --help for details):
    rasql -q "select encode( mr, "png" ) from mr" --out file
    
  • rasql queries can also be invoked via a Web service by default listening at localhost:8080/rasdaman/rasql. To this end, the corresponding servlet needs to be started (see Installation Guide).
    • Syntax:
      http://{service}/{path}/rasdaman/rasql?params
      
      Example: 
      http://www.acme.com/rasdaman?query=select%20rgb.red+rgb.green%20from%20rgb&username=rasguest&password=rasguest
      
    • This servlet endpoint accepts KVP requests with the following parameters:
      • query=q where q is a valid rasql query, appropriately escaped as per http pecification.
      • username=u where u is the user name for logging into rasdaman (current: rasguest for retrieval query (select) and rasadmin for the editable query (insert, update, delete,…).
      • password=p where p is the password for logging into rasdaman (current: rasguest for username: rasguest and rasadmin for username: rasadmin).
    • To upload data to server, it is needed to attach the data in HTTP message's body and send the POST request to the Servlet endpoint with user have the write permission (e.g: rasadmin). In Linux, one tool can support this feature is cURL. Syntax:
      curl -F 'image=@{/Path_To_Image}' '{http://Rasql_Servlet_Endpoint?username=rasadmin&password=rasadmin&query={insert/update query}'
      
      • Here is an example:
        Collection: test_mr_test1
        
        Insert file to collection:
        curl -F 'image=@/home/rasdaman/rasdaman/systemtest/testcases_services/test_all_wcst_import/test_data/wcps_mr/mr_1.png' 'http://localhost:8080/rasdaman/rasql?username=rasadmin&password=rasadmin&query=insert%20into%20test_mr_test1%20values%20decode(%241)' 
        
        Update file to collection:
        curl -F 'image=@/home/rasdaman/rasdaman/systemtest/testcases_services/test_all_wcst_import/test_data/wcps_mr/mr_1.png' 'http://localhost:8080/rasdaman/rasql?username=rasadmin&password=rasadmin&query=update%20test_mr_test1%20set%20test_mr_test1%20assign%20decode(%241)'
        
        
  • directql is not strictly a client, but a rasdaman server linked directly with the rasql utility (see above). Main purpose is for simplified debugging of the server by allowing command-line invocation of the server engine. (source )
  • rview is a deprecated visual query interface for desktop use (executable). It is still part of the rasdaman package, but not maintained any longer and will soon be phased out. See below.

python

(to be documented)

Geo clients

To setup rasgeo its configuration file ~/.rasdaman/rasconnect needs to be customized:

# Example file:
-------------------------------------------------
host=localhost
rasport=7001
pgport=5432
rasdbname=RASBASE
petadbname=petascopedb

# RASBASE login
rasuser=rasdaman
raspassword=rasdaman

# petascopedb login
petauser=petauser
petapassword=petapasswd

# for rasdaman 9.0
# rasdaman login
rasloginuser=rasadmin
rasloginpassword=rasadmin
------------------------------------------------

Note that passwords etc. need to be adjusted to the actual installation values.

raswct (rasdaman Web Client Toolkit)

This JavaScript library allows, by way of input and output widgets, to easily compose a Web client. Simple versions need only HTML, but advanced interfaces can be created. One example for the use of raswct is standards.rasdaman.org. See documentation for details.

rview (deprecated)

rview is a deprecated desktop visualization client of rasdaman. It is deprecated as it uses an insecure, soon-to-be-replaced client/server protocol based on RPCs. For building clients use one of the Web client or the raswct library instead.

Caveat: This client is fixed to RPC as client/server protocol, hence (i) rpcbind/portmapper must be installed and running and (ii) at least one rasdaman server process using RPC must be up and running; see the rasdaman Installation Guide for details on this.

Background: rview is deprecated and unmaintained. Reason is that the wxWindows library has changed so substantially that, despite severe ettempts, it was not possible to adapt the rview code; therefore, only the old binary remains available. In fact, there are strong reasons not to use rview: As highlighted, RPC is highly insecure and not recommended. Further, RPC communication is deprecated and will soon be replaced (together with HTTP and RNP) by rasnet.

If you have read the above and still wish to use rview, proceed as follows: start the rpcbind service has to be started in insecure mode (or rasdaman has to be started as root, which is strongly discouraged as well) in order for rview to be able to connect to rasdaman.

To start rpcbind in insecure mode, edit /etc/init.d/rpcbind (more recently: /etc/init/portmap.conf) and add '-i' to the OPTIONS variable. Start rpcbind. Restart rasdaman. Open rview with

cd $RMANHOME/bin
./rview

Third-party clients

R (data analysis)

RRasdaman is an R package providing a database interface for rasdaman, i.e.: for submitting rasdaman queries from within R. It is submitted to R and part of this toolset. See installation/setup guide and tutorial for more information.

NASA WorldWind (Web-based virtual globe)

documentation tbd

OpenLayers and Leaflet (Web-based map navigation)

documentation tbd

ncWMS (Web-based climate data navigation)

documentation tbd

QGIS (Web GIS)

This plugin enables the direct download, processing, integration and usage of Coverages from an OGC compliant WCPS 1.0 enabled servers within the QGIS software (v2.0+ supported). The plugin has been submitted to the official QGIS plugin repository, approval is pending; in the meantime it can be installed manually:

  • get the rasdaman source tree:
    git clone git://rasdaman.org/rasdaman.git
    
  • the plugin can be found in directory rasdaman/applications/qgis-wcps
  • copy the qgis-wcps/QgsWcpsClient1 directory to your qgis-python-plugin directory, usually located in $HOME/.qgis2/python/plugins:
    mkdir -p $HOME/.qgis2/python/plugins/
    cp -r rasdaman/applications/qgis-wcps/QgsWcpsClient1 $HOME/.qgis2/python/plugins/
    
  • now you can start QGIS and access the QgsWcpsClient1 plug-in via the Qgis Menu → Plugins → WcpsClient1 → WCPS 1.0 Client

MapServer (Web GIS server)

documentation tbd

GeoServer (Web GIS server)

documentation tbd

GDAL (image processing library)

To compile GDAL with rasdaman support:

  1. Get latest GDAL source
  2. Compile and install (in the /home/rasdaman/gdal)
    ./configure --prefix=/home/rasdaman/gdal --mandir=/home/rasdaman/gdal/share/man --includedir=/home/rasdaman/gdal/include/gdal 
      --with-threads --with-grass=no --with-hide-internal-symbols=yes --with-libtiff=internal --with-geotiff=internal --with-jasper 
      --with-netcdf --with-xerces --with-geos --with-sqlite3 --with-curl --with-pg --with-ogdi --with-python --with-odbc 
      --with-static-proj4=yes --with-spatialite=/usr --with-cfitsio=no --with-epsilon=/usr --with-rasdaman=/home/rasdaman/install
    make
    make install
    
    • Note: rasdaman should be compiled with -fPIC, so make sure to specify --with-pic when running ./configure on rasdaman.
  3. Setup environment
    export GDAL_HOME=/home/rasdaman/gdal
    export PATH=$PATH:$GDAL_HOME/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GDAL_HOME/lib
    

THREDDS (scientific data cataolog)

documentation tbd

ESRI ArcGIS (GIS tool)

documentation tbd

Note: See TracWiki for help on using the wiki.