schmitzm.geotools.io
Class GeoImportUtil

java.lang.Object
  extended by schmitzm.geotools.io.GeoImportUtil
Direct Known Subclasses:
GeoImportUtilURL

public class GeoImportUtil
extends Object

In dieser Klasse sind Funktionen zum Datenimport von Geo-Daten zusammengefasst.

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)

Nested Class Summary
static class GeoImportUtil.ARCASCII_POSTFIXES
          These postfixes are associated with Arc/Info ASCII Grid files TODO .0 habe ich auch schon gesehen.
static class GeoImportUtil.GEOTIFF_POSTFIXES
          These postfixes are associated with GeoTiff files
static class GeoImportUtil.IMAGE_POSTFIXES
          These postfixes are associated with ordinary image files, excluding GeoTIFF endings please
static class GeoImportUtil.SHP_POSTFIXES
          These postfixes are associated with ESRI SHape files
static class GeoImportUtil.WORLD_POSTFIXES
          These postfixes are associated with world files
 
Field Summary
static CoordinateReferenceSystem DEFAULT_CRS
          Standard-CRS, welches verwendet wird, wenn beim Import kein CRS ermittelt werden kann (Default: DefaultGeographicCRS#WGS84).
 
Constructor Summary
GeoImportUtil()
           
 
Method Summary
static AbstractGridCoverage2DReader createGridReaderFromGeoTiff(File file)
          Deprecated. WorldImageReader klappt noch nicht so 100%ig (Colorisierung schlaegt fehl!)
static AbstractGridCoverage2DReader createGridReaderFromGeoTiff(File file, CoordinateReferenceSystem crs)
          Deprecated. WorldImageReader klappt noch nicht so 100%ig (Colorisierung schlaegt fehl!)
static CoordinateReferenceSystem determineProjection(File file)
          Liest das CRS aus einer Datei.
static CoordinateReferenceSystem determineProjection(URL prjUrl)
          Liest das CRS aus einer URL.
static CoordinateReferenceSystem getDEFAULT_CRS()
           
static DataStore readDataStoreFromShape(URL shpURL, URL prjURL)
          TODO DOKU
static FeatureCollection readFeaturesFromShapeFile(File file)
          Diese Methode extrahiert saemtliche Features aus einem ShapeFile-Projekt (name.shp name.prj name.dbf ...
static FeatureCollection readFeaturesFromShapeURL(URL url, URL prjUrl)
          Diese Methode extrahiert saemtliche Features aus einem ShapeFile-Projekt (name.shp name.prj name.dbf ...
static Vector<Geometry> readGeometriesFromShapeFile(File file)
          Diese Methode extrahiert saemtliche Geometrien aus einem ShapeFile-Projekt ( name.shp name.prj name.dbf ...
static GridCoverage2D readGridFromArcInfoASCII(File file)
          Diese Methode importiert ein Raster aus einer Datei im ArcInfoASCII-Grid-Format.
static GridCoverage2D readGridFromArcInfoASCII(File file, CoordinateReferenceSystem crs)
          Diese Methode importiert ein Raster aus einer Datei im ArcInfoASCII-Grid-Format.
static GridCoverage2D readGridFromArcInfoASCII(URL url, CoordinateReferenceSystem crs)
          Diese Methode importiert ein Raster aus einer Datei im ArcInfoASCII-Grid-Format.
static GridCoverage2D readGridFromGeoTiff(File file)
          Diese Methode importiert ein Raster aus einer Datei im GeoTIFF-Format.
static GridCoverage2D readGridFromGeoTiff(File file, CoordinateReferenceSystem crs)
          Diese Methode importiert ein Raster aus einer Datei im GeoTIFF-Format.
static WritableGridRaster readGridRasterFromArcInfoASCII(File file)
          Diese Methode importiert ein Raster aus einer Datei im ArcInfoASCII-Grid-Format.
static WritableGridRaster readGridRasterFromArcInfoASCII(File file, CoordinateReferenceSystem crs)
          Diese Methode importiert ein Raster aus einer Datei im ArcInfoASCII-Grid-Format.
static WritableGridRaster readGridRasterFromGeoTiff(File file)
          Diese Methode importiert ein Raster aus einer Datei im GeoTIFF-Format.
static WritableGridRaster readGridRasterFromGeoTiff(File file, CoordinateReferenceSystem crs)
          Diese Methode importiert ein Raster aus einer Datei im GeoTIFF-Format.
static CoordinateReferenceSystem readProjectionFile(File prjFile)
          Liest ein CRS aus einer Datei.
static CoordinateReferenceSystem readProjectionFile(URL prjURL)
          Liest ein CRS aus einer URL.
static String readProjectionString(URL url)
          Liest alle Zeilen aus der prj-Datei URL und fuegt diese zu einem String zusammen Kommentarzeilen werden ignoriert.
static double[] readWorldFile(File file)
          Liest ein World-File (.tfw) ein und liefert die darin zeilenweise gespeicherten Werte zurueck.
static double[] readWorldFile(InputStream inputStream)
          Liest ein World-File (.tfw) ein und liefert die darin zeilenweise gespeicherten Werte zurueck.
static void setDEFAULT_CRS(CoordinateReferenceSystem dEFAULT_CRS)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_CRS

public static CoordinateReferenceSystem DEFAULT_CRS
Standard-CRS, welches verwendet wird, wenn beim Import kein CRS ermittelt werden kann (Default: DefaultGeographicCRS#WGS84).
Achtung:
Anwendungen koennen diese Variable gefahrlos ueberschreiben, um ein fuer die Anwendung adaequates Standard-CRS zu verwenden.

Constructor Detail

GeoImportUtil

public GeoImportUtil()
Method Detail

readFeaturesFromShapeURL

public static FeatureCollection readFeaturesFromShapeURL(URL url,
                                                         URL prjUrl)
                                                  throws IOException
Diese Methode extrahiert saemtliche Features aus einem ShapeFile-Projekt (name.shp name.prj name.dbf ...) und speichert diese in einer org.geotools.feature.FeatureCollection.

Parameters:
url - URL to Shape-File
prjUrl - URL zu .prj Datei des Shape-File
Returns:
FeatureCollection that was read
Throws:
IOException

readFeaturesFromShapeFile

public static FeatureCollection readFeaturesFromShapeFile(File file)
                                                   throws Exception
Diese Methode extrahiert saemtliche Features aus einem ShapeFile-Projekt (name.shp name.prj name.dbf ...) und speichert diese in einer org.geotools.feature.FeatureCollection.

Parameters:
file - Shape-File
Throws:
Exception - bei irgendeinem Fehler

readDataStoreFromShape

public static DataStore readDataStoreFromShape(URL shpURL,
                                               URL prjURL)
                                        throws IOException
TODO DOKU

Parameters:
shpURL -
prjURL -
Returns:
Throws:
IOException

readGeometriesFromShapeFile

public static Vector<Geometry> readGeometriesFromShapeFile(File file)
                                                    throws Exception
Diese Methode extrahiert saemtliche Geometrien aus einem ShapeFile-Projekt ( name.shp name.prj name.dbf ...) und speichert diese in einer Liste (Vector) von com.vividsolutions.jts.geom.Geometry-Objekten.
Baut auf folgenden Geotools-Klassen auf:
  • org.geotools.data.shapefile.shp.ShapefileReader
  • com.vividsolutions.jts.geom.Geometry

Parameters:
file - Shape-File
Throws:
Exception - bei irgendeinem Fehler

readGridFromArcInfoASCII

public static GridCoverage2D readGridFromArcInfoASCII(File file)
                                               throws Exception
Diese Methode importiert ein Raster aus einer Datei im ArcInfoASCII-Grid-Format. Das CRS wird aus einem prj-File (EPSG-Code "EPSG:..." oder WKT-Definition) gelesen. Ist dies nicht erfolgreich, wird DEFAULT_CRS als CRS verwendet.

Parameters:
file - ASCII-File
Returns:
GridCoverage2D
Throws:
Exception - bei irgendeinem Fehler

readGridFromArcInfoASCII

public static GridCoverage2D readGridFromArcInfoASCII(File file,
                                                      CoordinateReferenceSystem crs)
                                               throws Exception
Diese Methode importiert ein Raster aus einer Datei im ArcInfoASCII-Grid-Format. Wenn kein CRS angegeben wird, wird versucht das CRS aus einem prj-File (EPSG-Code "EPSG:..." oder WKT-Definition) zu lesen. Ist dies nicht erfolgreich, wird DEFAULT_CRS als CRS verwendet.

Parameters:
file - ASCII-File
crs - CoordinateReferenceSystem fuer das Raster (kann null sein)
Throws:
Exception - bei irgendeinem Fehler TODO

readGridFromArcInfoASCII

public static GridCoverage2D readGridFromArcInfoASCII(URL url,
                                                      CoordinateReferenceSystem crs)
                                               throws Exception
Diese Methode importiert ein Raster aus einer Datei im ArcInfoASCII-Grid-Format. Wenn kein CRS angegeben wird, wird versucht das CRS aus einem prj-File (EPSG-Code "EPSG:..." oder WKT-Definition) zu lesen. Ist dies nicht erfolgreich, wird DEFAULT_CRS als CRS verwendet.

Parameters:
url - Link to Arc/Info GRID ASCII file
crs - CoordinateReferenceSystem fuer das Raster (kann null sein)
Throws:
Exception - bei irgendeinem Fehler

createGridReaderFromGeoTiff

public static AbstractGridCoverage2DReader createGridReaderFromGeoTiff(File file,
                                                                       CoordinateReferenceSystem crs)
                                                                throws Exception
Deprecated. WorldImageReader klappt noch nicht so 100%ig (Colorisierung schlaegt fehl!)

Diese Methode erzeugt einen AbstractGridCoverage2DReader aus einer Datei im GeoTIFF-Format. Zunaechst wird versucht, die Geo-Informationen (Referenz+CRS) aus den TIFF-Metadaten zu ermitteln. Ist dies nicht erfolgreich, werden ein gleichnamiges World-File (.tfw) und Projection-File (.prj) herangezogen (siehe WorldImageReader).

Parameters:
file - GeoTIFF-File
crs - erzwungenes CoordinateReferenceSystem fuer das Raster (kann null sein)
Throws:
Exception - bei irgendeinem Fehler

createGridReaderFromGeoTiff

public static AbstractGridCoverage2DReader createGridReaderFromGeoTiff(File file)
                                                                throws Exception
Deprecated. WorldImageReader klappt noch nicht so 100%ig (Colorisierung schlaegt fehl!)

Diese Methode erzeugt einen AbstractGridCoverage2DReader aus einer Datei im GeoTIFF-Format.

Parameters:
file - GeoTIFF-File
Throws:
Exception - bei irgendeinem Fehler
See Also:
createGridReaderFromGeoTiff(File, CoordinateReferenceSystem)

readGridFromGeoTiff

public static GridCoverage2D readGridFromGeoTiff(File file,
                                                 CoordinateReferenceSystem crs)
                                          throws Exception
Diese Methode importiert ein Raster aus einer Datei im GeoTIFF-Format.

Parameters:
file - GeoTIFF-File
crs - erzwungenes CoordinateReferenceSystem fuer das Raster (kann null sein)
Throws:
Exception - bei irgendeinem Fehler
See Also:
createGridReaderFromGeoTiff(File, CoordinateReferenceSystem)

readGridFromGeoTiff

public static GridCoverage2D readGridFromGeoTiff(File file)
                                          throws Exception
Diese Methode importiert ein Raster aus einer Datei im GeoTIFF-Format.

Parameters:
file - GeoTIFF-File
Throws:
Exception - bei irgendeinem Fehler
See Also:
readGridFromGeoTiff(File, CoordinateReferenceSystem)

readGridRasterFromArcInfoASCII

public static WritableGridRaster readGridRasterFromArcInfoASCII(File file)
                                                         throws Exception
Diese Methode importiert ein Raster aus einer Datei im ArcInfoASCII-Grid-Format. Das CRS wird aus einem prj-File (EPSG-Code "EPSG:..." oder WKT-Definition) gelesen. Ist dies nicht erfolgreich, wird DEFAULT_CRS als CRS verwendet.

Parameters:
file - ASCII-File
Throws:
Exception - bei irgendeinem Fehler

readGridRasterFromArcInfoASCII

public static WritableGridRaster readGridRasterFromArcInfoASCII(File file,
                                                                CoordinateReferenceSystem crs)
                                                         throws Exception
Diese Methode importiert ein Raster aus einer Datei im ArcInfoASCII-Grid-Format. Wenn kein CRS angegeben wird, wird versucht das CRS aus einem prj-File (EPSG-Code "EPSG:..." oder WKT-Definition) zu lesen. Ist dies nicht erfolgreich, wird DEFAULT_CRS als CRS verwendet.

Parameters:
file - ASCII-File
crs - CoordinateReferenceSystem fuer das Raster (kann null sein)
Throws:
Exception - bei irgendeinem Fehler

readGridRasterFromGeoTiff

public static WritableGridRaster readGridRasterFromGeoTiff(File file)
                                                    throws Exception
Diese Methode importiert ein Raster aus einer Datei im GeoTIFF-Format. Zunaechst wird versucht, die Geo-Informationen (Referenz+CRS) aus den TIFF-Metadaten zu ermitteln. Ist dies nicht erfolgreich, werden ein gleichnamiges World-File (.tfw) und Projection-File (.prj) herangezogen. Als Projektion (.prj) ist sowohl ein EPSG-Code "EPSG:...", als auch eine WKT-Definition erlaubt. Kann kein CRS ermitteln werden, wird DEFAULT_CRS als CRS verwendet.

Parameters:
file - GeoTIFF-File
Throws:
Exception - bei irgendeinem Fehler

readGridRasterFromGeoTiff

public static WritableGridRaster readGridRasterFromGeoTiff(File file,
                                                           CoordinateReferenceSystem crs)
                                                    throws Exception
Diese Methode importiert ein Raster aus einer Datei im GeoTIFF-Format. Zunaechst wird versucht, die Geo-Informationen (Referenz+CRS) aus den TIFF-Metadaten zu ermitteln. Ist dies nicht erfolgreich, werden ein gleichnamiges World-File (.tfw) und Projection-File (.prj) herangezogen. Als Projektion (.prj) ist sowohl ein EPSG-Code "EPSG:...", als auch eine WKT-Definition erlaubt. Kann kein CRS ermitteln werden, wird DEFAULT_CRS als CRS verwendet.

Parameters:
file - GeoTIFF-File
crs - erzwungenes CoordinateReferenceSystem fuer das Raster (kann null sein)
Throws:
Exception - bei irgendeinem Fehler

readWorldFile

public static double[] readWorldFile(File file)
                              throws IOException
Liest ein World-File (.tfw) ein und liefert die darin zeilenweise gespeicherten Werte zurueck. Leer- und Kommentarzeilen werden dabei ignoriert. Kann ein Zeilen-Wert nicht in einen double umgewandelt werden, wird diese Zeile ignoriert, als 1.0 interpretiert und eine Meldung in die Standard-Fehler-Ausgabe geschrieben.
Der zurueckgegebene Array hat mindestens die Groesse 6:
  1. Zellengroesse in X-Richtung (in Meter)
  2. Koeffizient fuer Rotation in Y-Richtung
  3. Koeffizient fuer Rotation in X-Richtung
  4. negative Zellengroesse in Y-Richtung (in Meter)
  5. Horizontale Geo-Referenz (Longitude) der nord-westlichen Ecke
  6. Vertikale Geo-Referenz (Latitude) der nord-westlichen Ecke

Parameters:
file - World-File
Throws:
IOException - falls die Datei nicht existiert oder ein unerwarteter Fehler beim Einlesen auftritt
See Also:
IOUtil.isCommentLine(String), System.err

readWorldFile

public static double[] readWorldFile(InputStream inputStream)
                              throws IOException
Liest ein World-File (.tfw) ein und liefert die darin zeilenweise gespeicherten Werte zurueck. Leer- und Kommentarzeilen werden dabei ignoriert. Kann ein Zeilen-Wert nicht in einen double umgewandelt werden, wird diese Zeile ignoriert, als 1.0 interpretiert und eine Meldung in die Standard-Fehler-Ausgabe geschrieben.
Der zurueckgegebene Array hat mindestens die Groesse 6:
  1. Zellengroesse in X-Richtung (in Meter)
  2. Koeffizient fuer Rotation in Y-Richtung
  3. Koeffizient fuer Rotation in X-Richtung
  4. negative Zellengroesse in Y-Richtung (in Meter)
  5. Horizontale Geo-Referenz (Longitude) der nord-westlichen Ecke
  6. Vertikale Geo-Referenz (Latitude) der nord-westlichen Ecke

Parameters:
inputStream - Stream of World-File
Throws:
IOException - falls die Datei nicht existiert oder ein unerwarteter Fehler beim Einlesen auftritt
See Also:
IOUtil.isCommentLine(String), System.err

determineProjection

public static CoordinateReferenceSystem determineProjection(File file)
                                                     throws IOException
Liest das CRS aus einer Datei. Zunaechst wird versucht das CRS aus der uebergebene Datei zu lesen. Ist dies nicht erfolgreich wird das zur Datei korrespondierende prj-File herangezogen.

Parameters:
file - Datei
Returns:
null, wenn kein CRS gelesen werden konnte
Throws:
IOException

determineProjection

public static CoordinateReferenceSystem determineProjection(URL prjUrl)
Liest das CRS aus einer URL. Wenn keine CRS gelesen werden kann, dann wird die Endung der URL gegen .prj gewechselt und nochmal versucht bevor das DEFAULT_CRS benutzt wird.


readProjectionFile

public static CoordinateReferenceSystem readProjectionFile(URL prjURL)
                                                    throws IOException
Liest ein CRS aus einer URL. Als Dateiinhalt wird entweder ein EPSG-Code oder eine WKT-Definition des CRS akzeptiert.

Parameters:
prjURL - prj-Datei in der die Projektion hinterlegt ist
Returns:
null, wenn kein CRS gelesen werden konnte
Throws:
IOException - falls die URL nicht wie erwartet gelesen werden konnte.
See Also:
GTUtil.createCRS(String)

readProjectionFile

public static CoordinateReferenceSystem readProjectionFile(File prjFile)
                                                    throws IOException
Liest ein CRS aus einer Datei. Als Dateiinhalt wird entweder ein EPSG-Code oder eine WKT-Definition des CRS akzeptiert.

Parameters:
prjFile - prj-Datei in der die Projektion hinterlegt ist
Returns:
null, wenn kein CRS gelesen werden konnte
Throws:
IOException
See Also:
GTUtil.createCRS(String)

readProjectionString

public static String readProjectionString(URL url)
                                   throws IOException
Liest alle Zeilen aus der prj-Datei URL und fuegt diese zu einem String zusammen Kommentarzeilen werden ignoriert. Wenn mehr als 3000 Zeichen (ohne Kommentare) gelesen werden, wird davon ausgegangen, dass es sich nicht um eine .PRJ Datei handelt, und "" wird zurückgegeben.

Parameters:
url - URL auf prj-Datei
Returns:
Leerstring, wenn url == null
Throws:
IOException

setDEFAULT_CRS

public static void setDEFAULT_CRS(CoordinateReferenceSystem dEFAULT_CRS)

getDEFAULT_CRS

public static CoordinateReferenceSystem getDEFAULT_CRS()