001: /*
002: * Geotools2 - OpenSource mapping toolkit
003: * http://geotools.org
004: * (C) 2002, Geotools Project Managment Committee (PMC)
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation;
009: * version 2.1 of the License.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: */
017: package org.geotools.gce.mrsid;
018:
019: import org.geotools.test.TestData;
020: import org.geotools.coverage.grid.GridCoverage2D;
021: import org.geotools.coverage.grid.GridGeometry2D;
022: import org.geotools.coverage.grid.io.AbstractGridCoverage2DReader;
023: import org.geotools.coverage.grid.io.AbstractGridFormat;
024: import org.opengis.parameter.GeneralParameterValue;
025: import org.opengis.parameter.ParameterValueGroup;
026:
027: /**
028: * @author Daniele Romagnoli, GeoSolutions
029: * @author Simone Giannecchini (simboss), GeoSolutions
030: *
031: * Testing {@link MrSIDReader}
032: */
033: public final class MrSIDTest extends AbstractMrSIDTestCase {
034:
035: /**
036: * file name of a valid MrSID sample data to be used for tests. All MrSID
037: * sample data found are too large to be placed in the test-data folder by
038: * means of the SVN.
039: *
040: * We suggest to download a valid MrSID sample file from this site:
041: * https://zulu.ssc.nasa.gov/mrsid/
042: *
043: * For each .SID file, a .MET file exists. Use the last one to build a valid
044: * .PRJ for the sample. If you are only interested in reading/rendering
045: * capabilities, or displaying coverages as simple rasters, the .PRJ is not
046: * necessary. However, a valid .PRJ file is required anytime you need to use
047: * the sample data as a coherently GeoReferenced coverage, by means of, as
048: * an instance, uDIG.
049: */
050: private final static String fileName = "";
051:
052: /**
053: * Creates a new instance of {@link MrSIDTest}
054: *
055: * @param name
056: */
057: public MrSIDTest(String name) {
058: super (name);
059: }
060:
061: public static final void main(String[] args) throws Exception {
062: junit.textui.TestRunner.run(MrSIDTest.class);
063: }
064:
065: /**
066: * Test for reading a grid coverage from a MrSID source
067: *
068: * @throws Exception
069: */
070: public void testVisualization() throws Exception {
071: // check we can go online
072: if (!testingEnabled())
073: return;
074:
075: // read in the grid coverage
076: if (fileName.equalsIgnoreCase("")) {
077: LOGGER
078: .info("==================================================================\n"
079: + " Warning! No valid test File has been specified.\n"
080: + " Please provide a valid sample in the source code and repeat this test!\n"
081: + "========================================================================");
082: return;
083: }
084:
085: final AbstractGridCoverage2DReader reader = new MrSIDReader(
086: TestData.file(this , fileName));
087:
088: ParameterValueGroup params;
089: params = reader.getFormat().getReadParameters();
090:
091: params.parameter(
092: AbstractGridFormat.READ_GRIDGEOMETRY2D.getName()
093: .toString()).setValue(
094: new GridGeometry2D(reader.getOriginalGridRange(),
095: reader.getOriginalEnvelope()));
096: GeneralParameterValue[] gpv = { params
097: .parameter(AbstractGridFormat.READ_GRIDGEOMETRY2D
098: .getName().toString()) };
099:
100: GridCoverage2D gc = (GridCoverage2D) reader.read(gpv);
101:
102: if (TestData.isInteractiveTest()) {
103: gc.show();
104: } else
105: gc.getRenderedImage().getData();
106: if (TestData.isInteractiveTest()) {
107: // printing CRS information
108: LOGGER.info(gc.getCoordinateReferenceSystem().toWKT());
109: LOGGER.info(gc.getEnvelope().toString());
110: }
111: }
112: }
|