SCI-Plotting Services (%60 completed)
-- Implementing in Web Service principles
-- Data Conversion
-- Layers compatible to be overlaid on WMS maps or Google Maps
53. What is Sci-Plotting service?
It is a rendering service like WMS providing layers integratable to WMS maps but not map images. They provide layers created from geo-science simulation outputs in tabular format. For the core functionality we use Dislin scientific-data plotting libraries. Dislin is a plotting library containing functions for displaying data graphically as curves, graphs, pie-charts, 3-D color plots, surfaces and contours. All these services are wrapped as Web Services and integrated into the general visualization system. This is a service consists of the functionalities provided as Web Services through which any geo-science application output data can be interpreted, rendered and displayed as images and graphs.
54. Can you give a sample output layer Sci-Plotting service provides?
In the three layer set structured architecture, Layer-1 and Layer-2 come from WMS and, Layer-3 comes from Sci-Plotting services.
In order to get better view of the figure, please click on it.
55. Did you use Sci-Plotting services in any real geo-science application?
Yes we did. GeoFEST is a two- and three-dimensional finite element software package for the modeling of solid stress and strain in geophysical and other continuum domain applications. GeoFEST uses stress-displacement finite elements to model stress and strain due to elastic static response to an earthquake event in the region of the slipping fault, the time-dependent viscoelastic relaxation, and the net effects from a series of earthquakes. Sample output snapshot at Q59.
56. What are the inputs and outputs of Sci-Plotting services?
Currently raw data (input data) is in the column format and located on an HTTP address which can be accessed by using HTTP protocol. It is actually a plain text file. URL to this file is given as parameter to the request for plotting. For each different application there is a data conversion filter to make the data understandable to the service. For example for PI applications Sci-Plotting server is given a file URL to plot in which data is in tabular format. One column shows X coordinate other column shows Y coordinate and other columns shows the values to be plotted. In the future we plan to use VOTables to represent tabular data.
The VOTable format is an XML representation of the tabular data. The VOTable format’s aim is making the online Sci-Data both interoperable and scalable. The interoperability is encouraged through the use of XML standards. When the data is encoded in XML, data interpretation and validation will be easier. During the machine to machine communication, data encapsulation in any kind of messages such as SOAP will also be easier. Application specific metadata can also be embedded in to the VOTable. Metadata can be about the owner of the data, application properties of the data, authentication etc. There is also a price for encoding data in XML. When the data encoded in XML, each data element is tagged. The tagging causes overheads in terms of the volume. Increasing in the data volume basically causes increasing in the transfer time and the processing time.
Return type is image map layers to be overlaid on other maps or graphs showing statistic information to be displayed separately. Most of the output types are application dependent so far but since our implementation packages are open source you can download and modify it in accordance with your application and needs.
57. What is the most challenging part in creating Sci-Plotting services?
Input data comes from variety of different Geo-Science applications to be plotted. Each of these applications output different number of records, columns, variables, and different data structures. Most of the applications outputs thousands or even millions of lines of records. Storing, updating and reusing of the data are cumbersome. Some times, application requires some restrictions and properties on the data. In that case, there should be some properties and attributes about the archived data to check against these requirements. For example, some data are valid just for some specific time intervals or they might have expiration dates for their validations. Furthermore, data on the net may require authentication for access. The remote data needs to be accessed by using various arbitrarily complex protocols by using the URL syntax, “protocol://location”.
The VOTable format seeks answers and solutions to the problems and challenges explained in the previous paragraph. The main goal is making the online geo-data both interoperable and scalable. The interoperability is encouraged through the use of XML standards. When the data encoded in XML, data interpretation and validation will be easier. During the machine to machine communication, data encapsulation in any kind of messages such as SOAP will also be easier. Metadata about the data can also be embedded in to the data. Metadata can be about the owner of the data, application properties of the data, authentication etc. Everything is not perfect when we used the XML encoded data. There is also a price for it. When the data encoded in XML, each data element is tagged. The tagging causes overheads in terms of volume. Increasing in the data volume basically causes increasing in the transfer time and the processing time.
58. How do you use core Dislin libraries through Web Service Interfaces?
Dislin is originally written in Fortran and C but they have also their corresponding native libraries. Native libraries allow us call codes written in any programming language from a program written in the Java language by declaring a native Java method, loading the library that contains the native code, and then calling the native method. We embedded Dislin libraries into our plotting Web Services which is written in Java by using Java Native Interfaces and native methods. In order to install it into our whole system we needed to publish the plotting services as Web Services. Therefore, we first created service description files (WSDL) and publish them by using java axis web services container.
Service stack is composed of native method declarations. All the declared native methods have their own corresponding native implementation routines in the loaded native libraries. Routines can be accessed from any java class through the ServiceStack class. You can see the shrunk version of the ServiceStack class as below. Since all the methods are declared as static, class is assumed to be static as well. So, sample contour calls from any java class will be as below;
// before calling ServiceStack routines first import ServiceStack class
ServiceStack.contour(x-array, x-length, y-array, y-length, data-array, data-length, z-level);
public class ServiceStack
{
public ServiceStack () { }
public static native void contri(float af[], float af1[], float af2[], int i, int ai[], int ai1[], int ai2[]);
public static native void abs3pt(float f, float f1, float f2, float af[]);
public static native void contour(float af[], int i, float af1[], int j, float af2[], float f);
public static native void angle(int i);
/*
Native routine correspondences of all the scientific data plotting libraries
*/
static
{
System.loadLibrary("javaNativeCodeLibraries");
}
}
59. How do you invoke the Sci-Plotting services? Can you give sample snapshot from your outputs?
We initially created below user interface as WMS Client. It was enabling just getting maps from WMSs. Later, we enhanced it with smart map tools and movie streaming interfaces. Finally, we have added and integrated new interfaces for invoking scientific plotting Interfaces in accordance with other interacted GIS services.
GUI and map tools enable users to dynamically interact with the Dislin libraries and GIS visualization services. Each action by the user causes the changes in the parameter values and new request to the corresponding services. Depending on the application and user needs, plotting layers can be shown on another pop-up browser or just overlaid on other layers. All these kinds of service parameters are defined in the requests.
55. Did you use Sci-Plotting services in any real geo-science application?
Yes we did. GeoFEST is a two- and three-dimensional finite element software package for the modeling of solid stress and strain in geophysical and other continuum domain applications. GeoFEST uses stress-displacement finite elements to model stress and strain due to elastic static response to an earthquake event in the region of the slipping fault, the time-dependent viscoelastic relaxation, and the net effects from a series of earthquakes. Sample output snapshot at Q59.
56. What are the inputs and outputs of Sci-Plotting services?
Currently raw data (input data) is in the column format and located on an HTTP address which can be accessed by using HTTP protocol. It is actually a plain text file. URL to this file is given as parameter to the request for plotting. For each different application there is a data conversion filter to make the data understandable to the service. For example for PI applications Sci-Plotting server is given a file URL to plot in which data is in tabular format. One column shows X coordinate other column shows Y coordinate and other columns shows the values to be plotted. In the future we plan to use VOTables to represent tabular data.
The VOTable format is an XML representation of the tabular data. The VOTable format’s aim is making the online Sci-Data both interoperable and scalable. The interoperability is encouraged through the use of XML standards. When the data is encoded in XML, data interpretation and validation will be easier. During the machine to machine communication, data encapsulation in any kind of messages such as SOAP will also be easier. Application specific metadata can also be embedded in to the VOTable. Metadata can be about the owner of the data, application properties of the data, authentication etc. There is also a price for encoding data in XML. When the data encoded in XML, each data element is tagged. The tagging causes overheads in terms of the volume. Increasing in the data volume basically causes increasing in the transfer time and the processing time.
Return type is image map layers to be overlaid on other maps or graphs showing statistic information to be displayed separately. Most of the output types are application dependent so far but since our implementation packages are open source you can download and modify it in accordance with your application and needs.
57. What is the most challenging part in creating Sci-Plotting services?
Input data comes from variety of different Geo-Science applications to be plotted. Each of these applications output different number of records, columns, variables, and different data structures. Most of the applications outputs thousands or even millions of lines of records. Storing, updating and reusing of the data are cumbersome. Some times, application requires some restrictions and properties on the data. In that case, there should be some properties and attributes about the archived data to check against these requirements. For example, some data are valid just for some specific time intervals or they might have expiration dates for their validations. Furthermore, data on the net may require authentication for access. The remote data needs to be accessed by using various arbitrarily complex protocols by using the URL syntax, “protocol://location”.
The VOTable format seeks answers and solutions to the problems and challenges explained in the previous paragraph. The main goal is making the online geo-data both interoperable and scalable. The interoperability is encouraged through the use of XML standards. When the data encoded in XML, data interpretation and validation will be easier. During the machine to machine communication, data encapsulation in any kind of messages such as SOAP will also be easier. Metadata about the data can also be embedded in to the data. Metadata can be about the owner of the data, application properties of the data, authentication etc. Everything is not perfect when we used the XML encoded data. There is also a price for it. When the data encoded in XML, each data element is tagged. The tagging causes overheads in terms of volume. Increasing in the data volume basically causes increasing in the transfer time and the processing time.
58. How do you use core Dislin libraries through Web Service Interfaces?
Dislin is originally written in Fortran and C but they have also their corresponding native libraries. Native libraries allow us call codes written in any programming language from a program written in the Java language by declaring a native Java method, loading the library that contains the native code, and then calling the native method. We embedded Dislin libraries into our plotting Web Services which is written in Java by using Java Native Interfaces and native methods. In order to install it into our whole system we needed to publish the plotting services as Web Services. Therefore, we first created service description files (WSDL) and publish them by using java axis web services container.
Service stack is composed of native method declarations. All the declared native methods have their own corresponding native implementation routines in the loaded native libraries. Routines can be accessed from any java class through the ServiceStack class. You can see the shrunk version of the ServiceStack class as below. Since all the methods are declared as static, class is assumed to be static as well. So, sample contour calls from any java class will be as below;
// before calling ServiceStack routines first import ServiceStack class
ServiceStack.contour(x-array, x-length, y-array, y-length, data-array, data-length, z-level);
public class ServiceStack
{
public ServiceStack () { }
public static native void contri(float af[], float af1[], float af2[], int i, int ai[], int ai1[], int ai2[]);
public static native void abs3pt(float f, float f1, float f2, float af[]);
public static native void contour(float af[], int i, float af1[], int j, float af2[], float f);
public static native void angle(int i);
/*
Native routine correspondences of all the scientific data plotting libraries
*/
static
{
System.loadLibrary("javaNativeCodeLibraries");
}
}
59. How do you invoke the Sci-Plotting services? Can you give sample snapshot from your outputs?
We initially created below user interface as WMS Client. It was enabling just getting maps from WMSs. Later, we enhanced it with smart map tools and movie streaming interfaces. Finally, we have added and integrated new interfaces for invoking scientific plotting Interfaces in accordance with other interacted GIS services.
GUI and map tools enable users to dynamically interact with the Dislin libraries and GIS visualization services. Each action by the user causes the changes in the parameter values and new request to the corresponding services. Depending on the application and user needs, plotting layers can be shown on another pop-up browser or just overlaid on other layers. All these kinds of service parameters are defined in the requests.
Pattern Informatics Geo-Science Application snapshot
In order to get better view of the figure, please click on it.
GeoFEST Geo-Science Application snapshot
In order to get better view of the figure, please click on it.
No comments:
Post a Comment