private File localReproject( WcsReaderRequest request, File containingDirectory, String baseFilename) throws NoSuchAuthorityCodeException, FactoryException, IOException { InputStream input = null; File tmpFile = null; try { BoundWcsRequest geotiffRequest = request.bind(_wcsUrl).withFormat("geotiff"); BoundWcsRequest requestNativeFormat = geotiffRequest.withCRS(geotiffRequest.getNativeCRSs().iterator().next()); requestNativeFormat.assertLegalSize(_maxCoverageExtractionSize); input = requestNativeFormat.getCoverage(); File file = null; file = new File(containingDirectory, baseFilename + "." + request.fileExtension()); LOG.debug("Writing GridCoverage obtained from " + _wcsUrl + " to file " + file); tmpFile = File.createTempFile(baseFilename, ".tif"); writeToFile(tmpFile, input); transformCoverage(tmpFile, file, request, requestNativeFormat, true); return file; } finally { if (tmpFile != null) FileUtils.delete(tmpFile); if (input != null) IOUtils.closeQuietly(input); } }
/* ------------------- Support methods for readToFile ------------------- */ private File remoteReproject( WcsReaderRequest request, File containingDirectory, String baseFilename) throws NoSuchAuthorityCodeException, FactoryException, IOException { InputStream input = null; try { BoundWcsRequest requestNegotiatedFormat = negotiateFormat(request.bind(_wcsUrl)); BoundWcsRequest requestNegotiatedFormatCrs = negotiateRequestCRS(requestNegotiatedFormat); BoundWcsRequest requestNegotiatedFormatCrs2 = negotiateResponseCRS(requestNegotiatedFormatCrs); requestNegotiatedFormatCrs2.assertLegalSize(_maxCoverageExtractionSize); input = requestNegotiatedFormatCrs2.getCoverage(); // file = new File (new File("/tmp/"), // baseFilename+"."+request.fileExtension()); File file = null; file = new File(containingDirectory, baseFilename + "." + request.fileExtension()); LOG.debug("Writing GridCoverage obtained from " + _wcsUrl + " to file " + file); convertFormat(baseFilename, input, file, request, requestNegotiatedFormatCrs2); transformCoverage(file, file, request, requestNegotiatedFormatCrs2, false); return file; } finally { if (input != null) IOUtils.closeQuietly(input); } }