/**
*
*/
package org.geotools.coverage.io.range.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.measure.Measure;
import javax.measure.quantity.Dimensionless;
import javax.measure.unit.SI;
import javax.measure.unit.Unit;
import junit.framework.Assert;
import org.geotools.coverage.io.impl.range.DefaultAxis;
import org.geotools.coverage.io.impl.range.EnumMeasure;
import org.geotools.feature.NameImpl;
import org.geotools.referencing.crs.DefaultEngineeringCRS;
import org.geotools.referencing.cs.DefaultCoordinateSystemAxis;
import org.geotools.referencing.cs.DefaultLinearCS;
import org.geotools.referencing.datum.DefaultEngineeringDatum;
import org.geotools.util.SimpleInternationalString;
import org.opengis.coverage.SampleDimension;
import org.opengis.referencing.cs.AxisDirection;
import org.opengis.referencing.cs.CoordinateSystemAxis;
import org.opengis.referencing.datum.EngineeringDatum;
import org.junit.Test;
/**
* @author Simone Giannecchini, GeoSolutions
*
*
*
* @source $URL: http://svn.osgeo.org/geotools/trunk/modules/unsupported/coverage-experiment/coverage-api/src/test/java/org/geotools/coverage/io/range/impl/EnumMeasureTest.java $
*/
public class EnumMeasureTest extends Assert {
/** Bands captured as an enumeration used as an example below */
enum Band {
BLUE,GREE,RED,NIR,SWIT,TIR,SWR2
};
/**
* This test uses use the default implementations
* to express 7 bands of a landsat image.
*/
@Test
public void testLandsatAxis(){
CoordinateSystemAxis csAxis = new DefaultCoordinateSystemAxis(
new SimpleInternationalString("light"),
"light",
AxisDirection.OTHER,
SI.MICRO(SI.METER));
DefaultLinearCS lightCS = new DefaultLinearCS("light",csAxis);
Map<String,Object> datumProperties = new HashMap<String,Object>();
datumProperties.put("name", "light");
EngineeringDatum lightDatum = new DefaultEngineeringDatum( datumProperties );
DefaultEngineeringCRS lightCRS = new DefaultEngineeringCRS("wave length", lightDatum, lightCS );
List<Measure<Band, Dimensionless>> keys = EnumMeasure.valueOf( Band.class );
DefaultAxis<Band, Dimensionless> axis =
new DefaultAxis<Band,Dimensionless>(
new NameImpl("Bands"),
new SimpleInternationalString("Landsat bands by wavelength"),
keys,
Unit.ONE );
Map<Measure<Integer,Dimensionless>,SampleDimension> samples = new HashMap<Measure<Integer,Dimensionless>, SampleDimension>();
}
}