schmitzm.geotools.grid
Class WritableGridCoverage

java.lang.Object
  extended by GridCoverage2D
      extended by schmitzm.geotools.grid.ReadableGridCoverage
          extended by schmitzm.geotools.grid.WritableGridCoverage
All Implemented Interfaces:
LateLoadable, ReadableGrid, WritableGrid

public class WritableGridCoverage
extends ReadableGridCoverage
implements WritableGrid

Diese Klasse stellt ein GeoTools-GridCoverage (2D) dar, welches auf einem WritableRaster basiert und darauf direkten Lese- und Schreibzugriff liefert.
Auch wenn WritableRaster prinzipell mehrere Dimensionen (Baender) zulaesst, sind die Zugriffsmethoden dieser Klasse auf ein Band beschraenkt.


Um Instanzen dieser Klasse zu erzeugen, sollten die Factory-Methoden create(.) verwendet werden!

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

Field Summary
protected  WritableRaster writableRaster
          Speichert die Datenbasis des Grids als WritableRaster.
 
Fields inherited from class schmitzm.geotools.grid.ReadableGridCoverage
band, envelope, raster
 
Fields inherited from interface schmitzm.data.ReadableGrid
RASTER_DIM
 
Constructor Summary
protected WritableGridCoverage(CharSequence name, javax.media.jai.PlanarImage image, GridGeometry2D gridGeometry, GridSampleDimension[] bands, GridCoverage[] sources, Map properties, int band)
          Ruft den Standard-Konstruktor der von GridCoverage2D auf.
 
Method Summary
static WritableGridCoverage create(GridCoverage2D gc, int band)
          Erzeugt ein neues Grid.
static WritableGridCoverage create(String name, int type, int w, int h, Envelope2D envelope)
          Erzeugt ein neues Grid.
static WritableGridCoverage create(String name, int type, int w, int h, int x0, int y0, Envelope2D envelope)
          Erzeugt ein neues Grid.
static WritableGridCoverage create(String name, WritableRaster raster, Envelope2D envelope)
          Erzeugt ein neues Grid.
static WritableGridCoverage create(String name, WritableRaster raster, int band, Envelope2D envelope)
          Erzeugt ein neues Grid.
 WritableRaster getRaster()
          Liefert eine direkte Referenz auf die Datenbasis.
 void setGridSample(Object value, double... coord)
          Liefert einen Wert des Rasters ueber Geo-Koordinaten.
 void setRasterSample(Object value, int... cell)
          Setzt einen Wert im Raster ueber Raster-Koordinaten.
 
Methods inherited from class schmitzm.geotools.grid.ReadableGridCoverage
convertRasterToReal, convertRealToRaster, getCellHeight, getCellWidth, getGridSample, getGridSampleAsByte, getGridSampleAsDouble, getGridSampleAsFloat, getGridSampleAsInt, getGridSampleAsLong, getGridSampleAsShort, getHeight, getMinX, getMinY, getRasterSample, getRasterSampleAsByte, getRasterSampleAsDouble, getRasterSampleAsFloat, getRasterSampleAsInt, getRasterSampleAsLong, getRasterSampleAsShort, getRealHeight, getRealWidth, getSampleType, getWidth, getX, getY, isLateLoadable, loadData, unloadData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface schmitzm.data.ReadableGrid
convertRasterToReal, convertRealToRaster, dispose, getCellHeight, getCellWidth, getCoordinateReferenceSystem, getGridSample, getGridSampleAsByte, getGridSampleAsDouble, getGridSampleAsFloat, getGridSampleAsInt, getGridSampleAsLong, getGridSampleAsShort, getHeight, getMinX, getMinY, getRasterSample, getRasterSampleAsByte, getRasterSampleAsDouble, getRasterSampleAsFloat, getRasterSampleAsInt, getRasterSampleAsLong, getRasterSampleAsShort, getRealHeight, getRealWidth, getSampleType, getWidth, getX, getY
 
Methods inherited from interface appl.data.LateLoadable
isLateLoadable, loadData, unloadData
 

Field Detail

writableRaster

protected WritableRaster writableRaster
Speichert die Datenbasis des Grids als WritableRaster. Entspricht ReadableGridCoverage.raster.

Constructor Detail

WritableGridCoverage

protected WritableGridCoverage(CharSequence name,
                               javax.media.jai.PlanarImage image,
                               GridGeometry2D gridGeometry,
                               GridSampleDimension[] bands,
                               GridCoverage[] sources,
                               Map properties,
                               int band)
Ruft den Standard-Konstruktor der von GridCoverage2D auf.

Parameters:
name - Name des Grids
image - Image-Daten (muss ein WritableRaster beinhalten)
gridGeometry - Georeferenz und CRS
bands - Sample-Dimensions fuer jedes Band (kann null sein)
sources - Quell-Grids (kann null sein
properties - Properties fuer das Grid (kann null sein)
band - Band der Datenbasis, auf das die getter/setter referenziert sind
Method Detail

create

public static WritableGridCoverage create(GridCoverage2D gc,
                                          int band)
Erzeugt ein neues Grid.

Parameters:
gc - Datenbasis fuer das Grid
band - Band der Datenbasis, auf das die getter/setter referenziert sind

create

public static WritableGridCoverage create(String name,
                                          WritableRaster raster,
                                          int band,
                                          Envelope2D envelope)
Erzeugt ein neues Grid.

Parameters:
name - Name fuer das Grid
raster - Datenbasis fuer das Grid
band - Band der Datenbasis, auf das referenziert wird
envelope - GeoReferenz fuer das Raster

create

public static WritableGridCoverage create(String name,
                                          int type,
                                          int w,
                                          int h,
                                          Envelope2D envelope)
Erzeugt ein neues Grid. Die Spalten sind von 0 bis w-1, die Zeilen von 0 bis h-1 durchnummeriert.

Parameters:
name - Name fuer das Grid
type - Datentyp, der im Raster gespeichert ist (z.B. DataBuffer.TYPE_INT)
w - Breite des Rasters in Zellen
h - Hoehe des Rasters in Zellen
envelope - GeoReferenz fuer das Raster

create

public static WritableGridCoverage create(String name,
                                          int type,
                                          int w,
                                          int h,
                                          int x0,
                                          int y0,
                                          Envelope2D envelope)
Erzeugt ein neues Grid.

Parameters:
name - Name fuer das Grid
type - Datentyp, der im Raster gespeichert ist (z.B. DataBuffer.TYPE_INT)
w - Breite des Rasters in Zellen
h - Hoehe des Rasters in Zellen
x0 - Index, mit dem die linke Spalte des Rasters angesprochen wird
y0 - Index, mit dem die oberste Zeile des Rasters angesprochen wird
envelope - GeoReferenz fuer das Raster

create

public static WritableGridCoverage create(String name,
                                          WritableRaster raster,
                                          Envelope2D envelope)
Erzeugt ein neues Grid. Es wird automatisch auf Band 0 des WritableRasters Bezug genommen.

Parameters:
name - Name fuer das Grid
raster - Datenbasis fuer das Grid
envelope - GeoReferenz fuer das Raster

getRaster

public WritableRaster getRaster()
Liefert eine direkte Referenz auf die Datenbasis.

Overrides:
getRaster in class ReadableGridCoverage

setRasterSample

public void setRasterSample(Object value,
                            int... cell)
Setzt einen Wert im Raster ueber Raster-Koordinaten.

Specified by:
setRasterSample in interface WritableGrid
Parameters:
value - neuer Wert
cell - 2D-Raster-Koordinate (Zellenindizes, beginnend bei ReadableGridCoverage.getMinX() und ReadableGridCoverage.getMinY())
Throws:
UnsupportedOperationException - falls zu wenig Koordinaten angegeben werden

setGridSample

public void setGridSample(Object value,
                          double... coord)
Liefert einen Wert des Rasters ueber Geo-Koordinaten. Liegt der Koordinatenwert genau auf der Grenze zwischen zwei Rasterzellen, wird die naechst groessere Zelle gewaehlt (ausser die Grenze entspricht dem Raster-Rand!).

Specified by:
setGridSample in interface WritableGrid
Parameters:
coord - 2D-Raster-Koordinate (Lat/Lon-GeoReferenz)
value - neuer Wert
Throws:
UnsupportedOperationException - falls zu wenig Koordinaten angegeben werden