format = DataFormat.lookup(file);
@Override public void apply(ImportTask task, ImportData data) throws Exception { // let the transform run super.apply(task, data); // see if we need to update the layer definition, we just changed the CRS after all LayerInfo layer = task.getLayer(); ResourceInfo resource = layer.getResource(); String originalSRS = resource.getSRS(); // do so only if it's a direct import if (layer.getId() != null || resource == null || resource.getCatalog() == null) { return; } DataFormat format = DataFormat.lookup(((FileData) data).getFile()); List<ImportTask> tasks = format.list(data, resource.getCatalog(), new ProgressMonitor()); if (tasks == null || tasks.isEmpty()) { return; } LayerInfo updatedLayer = tasks.get(0).getLayer(); ResourceInfo updatedResource = updatedLayer.getResource(); String updatedSRS = updatedResource.getSRS(); // check if the layer srs is incompatible with the one we just reprojected to, update if // necessary if (originalSRS == null || (!originalSRS.equals(updatedSRS) && updatedSRS != null)) { resource.setSRS(updatedSRS); resource.setNativeCRS(updatedResource.getNativeCRS()); resource.setNativeBoundingBox(updatedResource.getNativeBoundingBox()); resource.setLatLonBoundingBox(updatedResource.getLatLonBoundingBox()); } }
targetStore = format.createStore(data, context.getTargetWorkspace(), catalog); for (ImportTask t : format.list(data, catalog, context.progress())) {
public void testMosaicAuxillaryFiles() throws Exception { File unpack = ImporterTestUtils.unpack("mosaic/bm.zip"); // all types of junk! String[] aux = new String[] {"aux", "rrd", "xml", "tif.aux.xml", "tfw"}; File[] tifs = unpack.listFiles(); for (int i = 0; i < tifs.length; i++) { File file = tifs[i]; for (int j = 0; j < aux.length; j++) { new File(unpack, file.getName().replace("tif", aux[j])).createNewFile(); } } Mosaic m = new Mosaic(unpack); m.prepare(); assertEquals(4, m.getFiles().size()); for (int i = 0; i < m.getFiles().size(); i++) { assertEquals("GeoTIFF", m.getFiles().get(1).getFormat().getName()); } // make sure the junk was actually picked up for (FileData f : m.getFiles()) { assertEquals(aux.length, ((SpatialFile) f).getSuppFiles().size()); } }
if (format != null && format.canRead(dir)) { List<FileData> files = map.get(format); if (files.size() == 1) {
format = DataFormat.lookup(file);
targetStore = format.createStore(data, context.getTargetWorkspace(), catalog); for (ImportTask t : format.list(data, catalog, context.progress())) {
assertEquals(ImportTask.State.READY, task.getState()); assertTrue(task.getData() instanceof SpatialFile); assertEquals("Shapefile", task.getData().getFormat().getName()); assertEquals("Shapefile", task.getData().getFormat().getName()); assertEquals(ImportTask.State.BAD_FORMAT, task.getState()); assertTrue(task.getData() instanceof SpatialFile); assertEquals("GeoTIFF", task.getData().getFormat().getName());
if (format != null && format.canRead(dir)) { List<FileData> files = map.get(format); if (files.size() == 1) {
@Test public void testLookupTiff() throws Exception { File dir = unpack("geotiff/EmissiveCampania.tif.bz2"); File tif = new File(dir, "EmissiveCampania.tif"); DataFormat format = DataFormat.lookup(tif); assertNotNull("No format found for tif", format); String name = format.getName(); assertEquals("Tif format not found", "GeoTIFF", name); }
DataFormat format = DataFormat.lookup(f);
@Test public void testImportDirectoryWithRasterDirect() throws Exception { File dir = tmpDir(); unpack("shape/archsites_epsg_prj.zip", dir); unpack("shape/bugsites_esri_prj.tar.gz", dir); unpack("geotiff/EmissiveCampania.tif.bz2", dir); ImportContext context = importer.createContext(new Directory(dir)); assertEquals(3, context.getTasks().size()); assertTrue(context.getData() instanceof Directory); ImportTask task = context.getTasks().get(0); assertEquals(ImportTask.State.READY, task.getState()); assertEquals("archsites", task.getLayer().getResource().getName()); assertTrue(task.getData() instanceof SpatialFile); assertEquals("Shapefile", task.getData().getFormat().getName()); task = context.getTasks().get(1); assertEquals(ImportTask.State.READY, task.getState()); assertEquals("bugsites", task.getLayer().getResource().getName()); assertTrue(task.getData() instanceof SpatialFile); assertEquals("Shapefile", task.getData().getFormat().getName()); task = context.getTasks().get(2); assertEquals(ImportTask.State.READY, task.getState()); assertEquals("EmissiveCampania", task.getLayer().getResource().getName()); assertTrue(task.getData() instanceof SpatialFile); assertEquals("GeoTIFF", task.getData().getFormat().getName()); }
DataFormat format = DataFormat.lookup(f);
@Test public void testLookupKML() throws Exception { File kmlFile = new File(tmpDir(), "foo.kml"); FileUtils.touch(kmlFile); DataFormat format = DataFormat.lookup(kmlFile); assertNotNull("No format found for kml files", format); String name = format.getName(); assertEquals("KML format not found", "KML", name); } }
/** Loads the available tables from this database. */ @Override public void prepare(ProgressMonitor m) throws IOException { tables = new ArrayList<Table>(); DataStoreFactorySpi factory = (DataStoreFactorySpi) DataStoreUtils.aquireFactory(parameters); if (factory == null) { throw new IOException("Unable to find data store for specified parameters"); } m.setTask("Loading tables"); DataStore store = factory.createDataStore(parameters); if (store == null) { throw new IOException("Unable to create data store from specified parameters"); } format = DataFormat.lookup(parameters); try { for (String typeName : store.getTypeNames()) { Table tbl = new Table(typeName, this); tbl.setFormat(format); tables.add(tbl); } } finally { // TODO: cache the datastore for subsquent calls store.dispose(); } }
/** * Loads the available tables from this database. */ @Override public void prepare(ProgressMonitor m) throws IOException { tables = new ArrayList<Table>(); DataStoreFactorySpi factory = (DataStoreFactorySpi) DataStoreUtils.aquireFactory(parameters); if (factory == null) { throw new IOException("Unable to find data store for specified parameters"); } m.setTask("Loading tables"); DataStore store = factory.createDataStore(parameters); if (store == null) { throw new IOException("Unable to create data store from specified parameters"); } format = DataFormat.lookup(parameters); try { for (String typeName : store.getTypeNames()) { Table tbl = new Table(typeName, this); tbl.setFormat(format); tables.add(tbl); } } finally { //TODO: cache the datastore for subsquent calls store.dispose(); } }