/*
* This file is part of rasdaman community.
*
* Rasdaman community is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Rasdaman community is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with rasdaman community. If not, see .
*
* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
rasdaman GmbH.
*
* For more information please see
* or contact Peter Baumann via .
*/
/*************************************************************
*
*
* PURPOSE: Example Java program for computing the avg cell value
* for each n-D 8-bit grey image in a given collection.
*
*
************************************************************/
import rasj.*;
import rasj.odmg.*;
import org.odmg.*;
import java.util.*;
/** Example Java program for computing the avg cell value
* for each n-D 8-bit grey image in a given collection.
*
* set the server name with -server, the database name with -database, the collection name with -collection,
* the port number with -port, the user login with -user, the password with -passwd
*/
public class AvgCell
{
public static void main(String[] args)
{
String server = "localhost";
String base = "RASBASE";
String coll = "mr";
String port = "7001";
String user = "rasguest";
String passwd = "rasguest";
double sum;
for (int i=args.length-1; i>=0; i--)
{
//System.out.println(args[i]);
if (args[i].equals("-server"))
server = args[i+1];
if (args[i].equals("-database"))
base = args[i+1];
if (args[i].equals("-collection"))
coll = args[i+1];
if (args[i].equals("-port"))
port = args[i+1];
if (args[i].equals("-user"))
user = args[i+1];
if (args[i].equals("-passwd"))
passwd = args[i+1];
}
//System.out.println(server+base+coll+port+user+passwd);
DBag resultBag = null;
RasGMArray result = null;
Transaction myTa = null;
Database myDb = null;
OQLQuery myQu = null;
try
{
Implementation myApp = new RasImplementation("http://"+server+":"+port);
((RasImplementation)myApp).setUserIdentification(user, passwd);
myDb = myApp.newDatabase();
System.out.println("Opening database ...");
myDb.open(base, Database.OPEN_READ_ONLY);
System.out.println("Starting transaction ...");
myTa = myApp.newTransaction();
myTa.begin();
System.out.println("Retrieving MDDs ...");
myQu = myApp.newOQLQuery();
myQu.create("select img from " + coll + " as img");
resultBag = (DBag)myQu.execute();
if (resultBag != null)
{
Iterator iter = resultBag.iterator();
while (iter.hasNext())
{
result = (RasGMArray)iter.next();
System.out.println(result);
if(result.getTypeLength() != 1)
System.out.println("skipping image because of non-int cell type");
else
{
byte[] pixelfield = result.getArray();
sum = 0.0;
long size = result.getArraySize();
for(int i=0; i